pax_global_header 0000666 0000000 0000000 00000000064 12667016244 0014522 g ustar 00root root 0000000 0000000 52 comment=99776ee97399ac723b7d687db43bd9a0bd8871eb
enigmail/ 0000775 0000000 0000000 00000000000 12667016244 0012653 5 ustar 00root root 0000000 0000000 enigmail/.eslintrc.js 0000664 0000000 0000000 00000002651 12667016244 0015116 0 ustar 00root root 0000000 0000000 module.exports = {
"rules": {
"linebreak-style": [
2,
"unix"
],
"semi": [
2,
"always"
],
"strict": [2, "global"],
"no-unused-vars": 0,
"no-empty": 0,
"comma-dangle": 0,
"consistent-return": 2,
"block-scoped-var": 2,
"dot-notation": 2,
"no-alert": 2,
"no-caller": 2,
"no-case-declarations": 2,
"no-div-regex": 2,
"no-empty-label": 2,
"no-empty-pattern": 2,
"no-eq-null": 2,
"no-eval": 2,
"no-extend-native": 2,
"no-extra-bind": 2,
"no-fallthrough": 2,
"no-floating-decimal": 2,
"no-implicit-coercion": 2,
"no-implied-eval": 2,
"no-invalid-this": 2,
"no-iterator": 2,
"no-labels": 2,
"no-lone-blocks": 2,
"no-loop-func": 2,
"no-multi-str": 2,
"no-native-reassign": 2,
"no-new-func": 2,
"no-new-wrappers": 2,
"no-new": 2,
"no-octal-escape": 2,
"no-process-env": 2,
"no-proto": 2,
"no-redeclare": [2, {
"builtinGlobals": true
}],
"no-return-assign": 2,
"no-script-url": 2,
"no-self-compare": 2,
"no-sequences": 2,
"no-unused-expressions": 2,
"no-useless-call": 2,
"no-useless-concat": 2,
"no-void": 2,
"no-with": 2,
"radix": 2,
"wrap-iife": [2, "inside"],
"yoda": 2,
// TODO:
//"eqeqeq": 2,
},
"env": {
"es6": true,
"browser": true,
"node": true,
},
"extends": "eslint:recommended"
};
enigmail/.gitattributes 0000664 0000000 0000000 00000000053 12667016244 0015544 0 ustar 00root root 0000000 0000000 *.xul text
*.rdf text
*.js text
*.jsm text
enigmail/.gitignore 0000664 0000000 0000000 00000000702 12667016244 0014642 0 ustar 00root root 0000000 0000000 # generated files:
*.pyc
*.dtd.gen
*.properties.gen
/config.log
/config.status
/config/autoconf.mk
/build
/ui/content/enigmailBuildDate.js
/ipc/src/subprocess.o
/public/_xpidlgen
ipc/src/libsubprocess-*.dylib
ipc/src/libsubprocess-*.so
/test_output.log
/ipc/tests/ipc-data.txt
# vi tmp files:
*.swp
*.swo
# emacs tmp files:
\#*\#
.dir-locals.el
# backup files:
*~
# vagrant files:
provisioning/.vagrant
# other local configuration files:
.ackrc
enigmail/.jsbeautifyrc 0000664 0000000 0000000 00000001150 12667016244 0015343 0 ustar 00root root 0000000 0000000 {
"indent_size": 2,
"indent_char": " ",
"eol": "\n",
"indent_level": 0,
"indent_with_tabs": false,
"preserve_newlines": true,
"max_preserve_newlines": 10,
"jslint_happy": false,
"space_after_anon_function": false,
"brace_style": "end-expand",
"keep_array_indentation": false,
"keep_function_indentation": false,
"space_before_conditional": true,
"break_chained_methods": false,
"eval_code": false,
"unescape_strings": false,
"wrap_line_length": 0,
"wrap_attributes": "auto",
"wrap_attributes_indent_size": 4,
"end_with_newline": true
}
enigmail/.travis.yml 0000664 0000000 0000000 00000000521 12667016244 0014762 0 ustar 00root root 0000000 0000000 language: c
sudo: required
compiler:
- gcc
install:
provisioning/provision-travis.sh
script:
- ./configure
- make > /dev/null 2>&1
- Xvfb :99 >/dev/null 2>&1 &
- export DISPLAY=:99
- ./configure --enable-tests --with-tb-path=$(which thunderbird)
- make
- ./build.sh
- ./test.sh
after_failure:
- cat test_output.log
enigmail/COMPILING 0000664 0000000 0000000 00000001014 12667016244 0014113 0 ustar 00root root 0000000 0000000 Instructions for compiling and packaging Enigmail
=================================================
Prerequisites
-------------
In order to build Enigmail you will need the following helper tools:
- GNU make 3.81 or newer
- zip
- python 2.7 or newer
- perl 5 or newer
If you want to execute unit tests, you will also need:
- eslint (installable via node.js / npm, see http://eslint.org)
Building
--------
Execute the following commands:
./configure
make
The resulting XPI file can be found in the "build" directory.
enigmail/Makefile 0000664 0000000 0000000 00000002025 12667016244 0014312 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
XPI_MODULE = enigmail
XPI_MODULE_VERS = 1.9.1
DEPTH = .
include $(DEPTH)/config/autoconf.mk
DIRS = ipc public
DIRS += ui package lang
ALL = dirs xpi
ifeq ($(TESTS),yes)
ALL += test
endif
XPIFILE = $(XPI_MODULE)-$(XPI_MODULE_VERS).xpi
.PHONY: dirs $(DIRS) test
all: $(ALL)
dirs: $(DIRS)
$(DIRS):
$(MAKE) -C $@
xpi:
$(srcdir)/util/genxpi $(XPIFILE) $(XPI_MODULE_VERS) $(DIST) $(srcdir) $(XPI_MODULE) $(ENABLE_LANG)
check:
util/checkFiles.py
eslint:
static_analysis/eslint ipc
static_analysis/eslint package
static_analysis/eslint ui
unit:
make -C package/tests
make -C ui/tests
test: eslint check unit
clean:
rm -f build/$(XPIFILE)
for dir in $(DIRS); do \
if [ "$${dir}x" != "checkx" ]; then \
$(MAKE) -C $$dir clean; fi; \
done
distclean: clean
rm -rf build/*
rm -f config/autoconf.mk config.log config.status
enigmail/build.sh 0000775 0000000 0000000 00000000503 12667016244 0014307 0 ustar 00root root 0000000 0000000 #!/usr/bin/env bash
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
export TB_PATH=${TB_PATH:-`which thunderbird`}
make clean
./configure --with-tb-path=$TB_PATH
make
enigmail/config.guess 0000775 0000000 0000000 00000127166 12667016244 0015210 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Attempt to guess a canonical system name.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2013-02-12'
# This file 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 .
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
#
# Originally written by Per Bothner.
#
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
#
# Please send patches with a ChangeLog entry to config-patches@gnu.org.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to ."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
set_cc_for_build='
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
case "${UNAME_VERSION}" in
Debian*)
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
exit ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
exit ;;
*:ekkoBSD:*:*)
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
exit ;;
*:SolidBSD:*:*)
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
echo powerpc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
;;
*5.*)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
;;
esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
case "$ALPHA_CPU_TYPE" in
"EV4 (21064)")
UNAME_MACHINE="alpha" ;;
"EV4.5 (21064)")
UNAME_MACHINE="alpha" ;;
"LCA4 (21066/21068)")
UNAME_MACHINE="alpha" ;;
"EV5 (21164)")
UNAME_MACHINE="alphaev5" ;;
"EV5.6 (21164A)")
UNAME_MACHINE="alphaev56" ;;
"EV5.6 (21164PC)")
UNAME_MACHINE="alphapca56" ;;
"EV5.7 (21164PC)")
UNAME_MACHINE="alphapca57" ;;
"EV6 (21264)")
UNAME_MACHINE="alphaev6" ;;
"EV6.7 (21264A)")
UNAME_MACHINE="alphaev67" ;;
"EV6.8CB (21264C)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8AL (21264B)")
UNAME_MACHINE="alphaev68" ;;
"EV6.8CX (21264D)")
UNAME_MACHINE="alphaev68" ;;
"EV6.9A (21264/EV69A)")
UNAME_MACHINE="alphaev69" ;;
"EV7 (21364)")
UNAME_MACHINE="alphaev7" ;;
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
exitcode=$?
trap '' 0
exit $exitcode ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit ;;
*:z/VM:*:*)
echo s390-ibm-zvmoe
exit ;;
*:OS400:*:*)
echo powerpc-ibm-os400
exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
echo arm-unknown-riscos
exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
exit ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7; exit ;;
esac ;;
s390x:SunOS:*:*)
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
echo i386-pc-auroraux${UNAME_RELEASE}
exit ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
eval $set_cc_for_build
SUN_ARCH="i386"
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
SUN_ARCH="x86_64"
fi
fi
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit ;;
m68k:machten:*:*)
echo m68k-apple-machten${UNAME_RELEASE}
exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c &&
dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`$dummy $dummyarg` &&
{ echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
then
echo "$SYSTEM_NAME"
else
echo rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include
#include
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
eval $set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
# generating 64-bit code. GNU and HP use different nomenclature:
#
# $ CC_FOR_BUILD=cc ./config.guess
# => hppa2.0w-hp-hpux11.23
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
HP_ARCH="hppa2.0w"
else
HP_ARCH="hppa64"
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
*:UNICOS/mp:*:*)
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
case ${UNAME_PROCESSOR} in
amd64)
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
*)
echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
esac
exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
*:MINGW64*:*)
echo ${UNAME_MACHINE}-pc-mingw64
exit ;;
*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys
exit ;;
i*:windows32*:*)
# uname -m includes "-pc" on this system.
echo ${UNAME_MACHINE}-mingw32
exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
*:Interix*:*)
case ${UNAME_MACHINE} in
x86)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
authenticamd | genuineintel | EM64T)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
IA64)
echo ia64-unknown-interix${UNAME_RELEASE}
exit ;;
esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
8664:Windows_NT:*)
echo x86_64-pc-mks
exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
echo x86_64-unknown-cygwin
exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
*:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit ;;
aarch64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit ;;
arm*:Linux:*:*)
eval $set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
echo ${UNAME_MACHINE}-unknown-linux-gnu
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
else
echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
fi
fi
exit ;;
avr32*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
cris:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-gnu
exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
hexagon:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __dietlibc__
LIBC=dietlibc
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m32r*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
mips:Linux:*:* | mips64:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef ${UNAME_MACHINE}
#undef ${UNAME_MACHINE}el
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=${UNAME_MACHINE}el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=${UNAME_MACHINE}
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
or1k:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
or32:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
padre:Linux:*:*)
echo sparc-unknown-linux-gnu
exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-gnu ;;
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit ;;
sh64*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
tile*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
vax:Linux:*:*)
echo ${UNAME_MACHINE}-dec-linux-gnu
exit ;;
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit ;;
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i586.
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configury will decide that
# this is a cross-build.
echo i586-pc-msdosdjgpp
exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit ;;
paragon:*:*:*)
echo i860-intel-osf1
exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
exit ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
OS_REL='.3'
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says
echo i586-unisys-sysv4
exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes .
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
echo ${UNAME_MACHINE}-stratus-vos
exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
echo i586-pc-haiku
exit ;;
x86_64:Haiku:*:*)
echo x86_64-unknown-haiku
exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
SX-7:SUPER-UX:*:*)
echo sx7-nec-superux${UNAME_RELEASE}
exit ;;
SX-8:SUPER-UX:*:*)
echo sx8-nec-superux${UNAME_RELEASE}
exit ;;
SX-8R:SUPER-UX:*:*)
echo sx8r-nec-superux${UNAME_RELEASE}
exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
case $UNAME_PROCESSOR in
i386)
eval $set_cc_for_build
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
UNAME_PROCESSOR="x86_64"
fi
fi ;;
unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit ;;
NEO-?:NONSTOP_KERNEL:*:*)
echo neo-tandem-nsk${UNAME_RELEASE}
exit ;;
NSE-*:NONSTOP_KERNEL:*:*)
echo nse-tandem-nsk${UNAME_RELEASE}
exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "$cputype" = "386"; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
exit ;;
SEI:*:*:SEIUX)
echo mips-sei-seiux${UNAME_RELEASE}
exit ;;
*:DragonFly:*:*)
echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
exit ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
case "${UNAME_MACHINE}" in
A*) echo alpha-dec-vms ; exit ;;
I*) echo ia64-dec-vms ; exit ;;
V*) echo vax-dec-vms ; exit ;;
esac ;;
*:XENIX:*:SysV)
echo i386-pc-xenix
exit ;;
i*86:skyos:*:*)
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
exit ;;
i*86:rdos:*:*)
echo ${UNAME_MACHINE}-pc-rdos
exit ;;
i*86:AROS:*:*)
echo ${UNAME_MACHINE}-pc-aros
exit ;;
x86_64:VMkernel:*:*)
echo ${UNAME_MACHINE}-unknown-esx
exit ;;
esac
eval $set_cc_for_build
cat >$dummy.c <
# include
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
c34*)
echo c34-convex-bsd
exit ;;
c38*)
echo c38-convex-bsd
exit ;;
c4*)
echo c4-convex-bsd
exit ;;
esac
fi
cat >&2 < in order to provide the needed
information to handle your system.
config.guess timestamp = $timestamp
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = ${UNAME_MACHINE}
UNAME_RELEASE = ${UNAME_RELEASE}
UNAME_SYSTEM = ${UNAME_SYSTEM}
UNAME_VERSION = ${UNAME_VERSION}
EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
enigmail/config.sub 0000775 0000000 0000000 00000105257 12667016244 0014650 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2013 Free Software Foundation, Inc.
timestamp='2013-02-12'
# This file 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 .
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that
# program. This Exception is an additional permission under section 7
# of the GNU General Public License, version 3 ("GPLv3").
# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS
$0 [OPTION] ALIAS
Canonicalize a configuration name.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to ."
version="\
GNU config.sub ($timestamp)
Copyright 1992-2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit ;;
--version | -v )
echo "$version" ; exit ;;
--help | --h* | -h )
echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help"
exit 1 ;;
*local*)
# First pass through any local machine types.
echo $1
exit ;;
* )
break ;;
esac
done
case $# in
0) echo "$me: missing argument$help" >&2
exit 1;;
1) ;;
*) echo "$me: too many arguments$help" >&2
exit 1;;
esac
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
android-linux)
os=-linux-android
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
-sun*os*)
# Prevent following clause from handling this invalid input.
;;
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
-bluegene*)
os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
;;
-scout)
;;
-wrs)
os=-vxworks
basic_machine=$1
;;
-chorusos*)
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco6)
os=-sco5v6
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*178)
os=-lynxos178
;;
-lynx*5)
os=-lynxos5
;;
-lynx*)
os=-lynxos
;;
-ptx*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
;;
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
-mint | -mint[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
| aarch64 | aarch64_be \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| be32 | be64 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
| mips64r5900 | mips64r5900el \
| mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 \
| or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
| spu \
| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
| ubicom32 \
| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
| we32k \
| x86 | xc16x | xstormy16 | xtensa \
| z8k | z80)
basic_machine=$basic_machine-unknown
;;
c54x)
basic_machine=tic54x-unknown
;;
c55x)
basic_machine=tic55x-unknown
;;
c6x)
basic_machine=tic6x-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
ms1)
basic_machine=mt-unknown
;;
strongarm | thumb | xscale)
basic_machine=arm-unknown
;;
xgate)
basic_machine=$basic_machine-unknown
os=-none
;;
xscaleeb)
basic_machine=armeb-unknown
;;
xscaleel)
basic_machine=armel-unknown
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
| microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mips64octeon-* | mips64octeonel-* \
| mips64orion-* | mips64orionel-* \
| mips64r5900-* | mips64r5900el-* \
| mips64vr-* | mips64vrel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
| nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
| tron-* \
| ubicom32-* \
| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
| vax-* \
| we32k-* \
| x86-* | x86_64-* | xc16x-* | xps100-* \
| xstormy16-* | xtensa*-* \
| ymp-* \
| z8k-* | z80-*)
;;
# Recognize the basic CPU types without company name, with glob match.
xtensa*)
basic_machine=$basic_machine-unknown
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=i386-unknown
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
a29khif)
basic_machine=a29k-amd
os=-udi
;;
abacus)
basic_machine=abacus-unknown
;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
altos | altos3068)
basic_machine=m68k-altos
;;
am29k)
basic_machine=a29k-none
os=-bsd
;;
amd64)
basic_machine=x86_64-pc
;;
amd64-*)
basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
amdahl)
basic_machine=580-amdahl
os=-sysv
;;
amiga | amiga-*)
basic_machine=m68k-unknown
;;
amigaos | amigados)
basic_machine=m68k-unknown
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
os=-sysv4
;;
apollo68)
basic_machine=m68k-apollo
os=-sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
os=-bsd
;;
aros)
basic_machine=i386-pc
os=-aros
;;
aux)
basic_machine=m68k-apple
os=-aux
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
;;
blackfin)
basic_machine=bfin-unknown
os=-linux
;;
blackfin-*)
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
bluegene*)
basic_machine=powerpc-ibm
os=-cnk
;;
c54x-*)
basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c55x-*)
basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c6x-*)
basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
c90)
basic_machine=c90-cray
os=-unicos
;;
cegcc)
basic_machine=arm-unknown
os=-cegcc
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
;;
convex-c2)
basic_machine=c2-convex
os=-bsd
;;
convex-c32)
basic_machine=c32-convex
os=-bsd
;;
convex-c34)
basic_machine=c34-convex
os=-bsd
;;
convex-c38)
basic_machine=c38-convex
os=-bsd
;;
cray | j90)
basic_machine=j90-cray
os=-unicos
;;
craynv)
basic_machine=craynv-cray
os=-unicosmp
;;
cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
basic_machine=m68k-crds
;;
crisv32 | crisv32-* | etraxfs*)
basic_machine=crisv32-axis
;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
crx)
basic_machine=crx-unknown
os=-elf
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
os=-tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
delta88)
basic_machine=m88k-motorola
os=-sysv3
;;
dicos)
basic_machine=i686-pc
os=-dicos
;;
djgpp)
basic_machine=i586-pc
os=-msdosdjgpp
;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
;;
dpx2* | dpx2*-bull)
basic_machine=m68k-bull
os=-sysv3
;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
;;
elxsi)
basic_machine=elxsi-elxsi
os=-bsd
;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
os=-ose
;;
fx2800)
basic_machine=i860-alliant
;;
genix)
basic_machine=ns32k-ns
;;
gmicro)
basic_machine=tron-gmicro
os=-sysv
;;
go32)
basic_machine=i386-pc
os=-go32
;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
h8300hms)
basic_machine=h8300-hitachi
os=-hms
;;
h8300xray)
basic_machine=h8300-hitachi
os=-xray
;;
h8500hms)
basic_machine=h8500-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
;;
hp300-*)
basic_machine=m68k-hp
;;
hp300bsd)
basic_machine=m68k-hp
os=-bsd
;;
hp300hpux)
basic_machine=m68k-hp
os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hppa-next)
os=-nextstep3
;;
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
;;
hppro)
basic_machine=hppa1.1-hp
os=-proelf
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i*86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i*86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i*86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
i386-vsta | vsta)
basic_machine=i386-unknown
os=-vsta
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
-irix*)
;;
*)
os=-irix4
;;
esac
;;
isi68 | isi)
basic_machine=m68k-isi
os=-sysv
;;
m68knommu)
basic_machine=m68k-unknown
os=-linux
;;
m68knommu-*)
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
m88k-omron*)
basic_machine=m88k-omron
;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
;;
merlin)
basic_machine=ns32k-utek
os=-sysv
;;
microblaze*)
basic_machine=microblaze-xilinx
;;
mingw64)
basic_machine=x86_64-pc
os=-mingw64
;;
mingw32)
basic_machine=i386-pc
os=-mingw32
;;
mingw32ce)
basic_machine=arm-unknown
os=-mingw32ce
;;
miniframe)
basic_machine=m68000-convergent
;;
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
morphos)
basic_machine=powerpc-unknown
os=-morphos
;;
msdos)
basic_machine=i386-pc
os=-msdos
;;
ms1-*)
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
basic_machine=i386-pc
os=-msys
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
nacl)
basic_machine=le32-unknown
os=-nacl
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
netbsd386)
basic_machine=i386-unknown
os=-netbsd
;;
netwinder)
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
;;
news1000)
basic_machine=m68030-sony
os=-newsos
;;
news-3600 | risc-news)
basic_machine=mips-sony
os=-newsos
;;
necv70)
basic_machine=v70-nec
os=-sysv
;;
next | m*-next )
basic_machine=m68k-next
case $os in
-nextstep* )
;;
-ns2*)
os=-nextstep2
;;
*)
os=-nextstep3
;;
esac
;;
nh3000)
basic_machine=m68k-harris
os=-cxux
;;
nh[45]000)
basic_machine=m88k-harris
os=-cxux
;;
nindy960)
basic_machine=i960-intel
os=-nindy
;;
mon960)
basic_machine=i960-intel
os=-mon960
;;
nonstopux)
basic_machine=mips-compaq
os=-nonstopux
;;
np1)
basic_machine=np1-gould
;;
neo-tandem)
basic_machine=neo-tandem
;;
nse-tandem)
basic_machine=nse-tandem
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
;;
openrisc | openrisc-*)
basic_machine=or32-unknown
;;
os400)
basic_machine=powerpc-ibm
os=-os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
;;
os68k)
basic_machine=m68k-none
os=-os68k
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
paragon)
basic_machine=i860-intel
os=-osf
;;
parisc)
basic_machine=hppa-unknown
os=-linux
;;
parisc-*)
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
os=-linux
;;
pbd)
basic_machine=sparc-tti
;;
pbb)
basic_machine=m68k-tti
;;
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pc98)
basic_machine=i386-pc
;;
pc98-*)
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc
;;
pentium4)
basic_machine=i786-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentium4-*)
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=power-ibm
;;
ppc | ppcbe) basic_machine=powerpc-unknown
;;
ppc-* | ppcbe-*)
basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
pw32)
basic_machine=i586-unknown
os=-pw32
;;
rdos | rdos64)
basic_machine=x86_64-pc
os=-rdos
;;
rdos32)
basic_machine=i386-pc
os=-rdos
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
s390 | s390-*)
basic_machine=s390-ibm
;;
s390x | s390x-*)
basic_machine=s390x-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
sb1)
basic_machine=mipsisa64sb1-unknown
;;
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
sde)
basic_machine=mipsisa32-sde
os=-elf
;;
sei)
basic_machine=mips-sei
os=-seiux
;;
sequent)
basic_machine=i386-sequent
;;
sh)
basic_machine=sh-hitachi
os=-hms
;;
sh5el)
basic_machine=sh5le-unknown
;;
sh64)
basic_machine=sh64-unknown
;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
;;
spur)
basic_machine=spur-unknown
;;
st2000)
basic_machine=m68k-tandem
;;
stratus)
basic_machine=i860-stratus
os=-sysv4
;;
strongarm-* | thumb-*)
basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
sun2)
basic_machine=m68000-sun
;;
sun2os3)
basic_machine=m68000-sun
os=-sunos3
;;
sun2os4)
basic_machine=m68000-sun
os=-sunos4
;;
sun3os3)
basic_machine=m68k-sun
os=-sunos3
;;
sun3os4)
basic_machine=m68k-sun
os=-sunos4
;;
sun4os3)
basic_machine=sparc-sun
os=-sunos3
;;
sun4os4)
basic_machine=sparc-sun
os=-sunos4
;;
sun4sol2)
basic_machine=sparc-sun
os=-solaris2
;;
sun3 | sun3-*)
basic_machine=m68k-sun
;;
sun4)
basic_machine=sparc-sun
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
sv1)
basic_machine=sv1-cray
os=-unicos
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
;;
t90)
basic_machine=t90-cray
os=-unicos
;;
tile*)
basic_machine=$basic_machine-unknown
os=-linux-gnu
;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
tpf)
basic_machine=s390x-ibm
os=-tpf
;;
udi29k)
basic_machine=a29k-amd
os=-udi
;;
ultra3)
basic_machine=a29k-nyu
os=-sym1
;;
v810 | necv810)
basic_machine=v810-nec
os=-none
;;
vaxv)
basic_machine=vax-dec
os=-sysv
;;
vms)
basic_machine=vax-dec
os=-vms
;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
;;
vxworks68)
basic_machine=m68k-wrs
os=-vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
os=-vxworks
;;
w65*)
basic_machine=w65-wdc
os=-none
;;
w89k-*)
basic_machine=hppa1.1-winbond
os=-proelf
;;
xbox)
basic_machine=i686-pc
os=-mingw32
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
xscale-* | xscalee[bl]-*)
basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
;;
ymp)
basic_machine=ymp-cray
os=-unicos
;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
;;
z80-*-coff)
basic_machine=z80-unknown
os=-sim
;;
none)
basic_machine=none-none
os=-none
;;
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
basic_machine=hppa1.1-winbond
;;
op50n)
basic_machine=hppa1.1-oki
;;
op60c)
basic_machine=hppa1.1-oki
;;
romp)
basic_machine=romp-ibm
;;
mmix)
basic_machine=mmix-knuth
;;
rs6000)
basic_machine=rs6000-ibm
;;
vax)
basic_machine=vax-dec
;;
pdp10)
# there are many clones, so DEC is not a safe bet
basic_machine=pdp10-unknown
;;
pdp11)
basic_machine=pdp11-dec
;;
we32k)
basic_machine=we32k-att
;;
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
basic_machine=sparc-sun
;;
cydra)
basic_machine=cydra-cydrome
;;
orion)
basic_machine=orion-highlevel
;;
orion105)
basic_machine=clipper-highlevel
;;
mac | mpw | mac-mpw)
basic_machine=m68k-apple
;;
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
*-commodore*)
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-auroraux)
os=-auroraux
;;
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
-solaris)
os=-solaris2
;;
-svr4*)
os=-sysv4
;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
| -bitrig* | -openbsd* | -solidbsd* \
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
| -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
case $basic_machine in
x86-* | i*86-*)
;;
*)
os=-nto$os
;;
esac
;;
-nto-qnx*)
;;
-nto*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
-linux-dietlibc)
os=-linux-dietlibc
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-os400*)
os=-os400
;;
-wince*)
os=-wince
;;
-osfrose*)
os=-osfrose
;;
-osf*)
os=-osf
;;
-utek*)
os=-bsd
;;
-dynix*)
os=-bsd
;;
-acis*)
os=-aos
;;
-atheos*)
os=-atheos
;;
-syllable*)
os=-syllable
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
-nova*)
os=-rtmk-nova
;;
-ns2 )
os=-nextstep2
;;
-nsk*)
os=-nsk
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
-sinix*)
os=-sysv4
;;
-tpf*)
os=-tpf
;;
-triton*)
os=-sysv3
;;
-oss*)
os=-sysv3
;;
-svr4)
os=-sysv4
;;
-svr3)
os=-sysv3
;;
-sysvr4)
os=-sysv4
;;
# This must come after -sysvr4.
-sysv*)
;;
-ose*)
os=-ose
;;
-es1800*)
os=-ose
;;
-xenix)
os=-xenix
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
-aros*)
os=-aros
;;
-zvmoe)
os=-zvmoe
;;
-dicos*)
os=-dicos
;;
-nacl*)
;;
-none)
;;
*)
# Get rid of the `-' at the beginning of $os.
os=`echo $os | sed 's/[^-]*-//'`
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
exit 1
;;
esac
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
score-*)
os=-elf
;;
spu-*)
os=-elf
;;
*-acorn)
os=-riscix1.2
;;
arm*-rebel)
os=-linux
;;
arm*-semi)
os=-aout
;;
c4x-* | tic4x-*)
os=-coff
;;
hexagon-*)
os=-elf
;;
tic54x-*)
os=-coff
;;
tic55x-*)
os=-coff
;;
tic6x-*)
os=-coff
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
pdp11-*)
os=-none
;;
*-dec | vax-*)
os=-ultrix4.2
;;
m68*-apollo)
os=-domain
;;
i386-sun)
os=-sunos4.0.2
;;
m68000-sun)
os=-sunos3
;;
m68*-cisco)
os=-aout
;;
mep-*)
os=-elf
;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
or1k-*)
os=-elf
;;
or32-*)
os=-coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
*-be)
os=-beos
;;
*-haiku)
os=-haiku
;;
*-ibm)
os=-aix
;;
*-knuth)
os=-mmixware
;;
*-wec)
os=-proelf
;;
*-winbond)
os=-proelf
;;
*-oki)
os=-proelf
;;
*-hp)
os=-hpux
;;
*-hitachi)
os=-hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
os=-sysv
;;
*-cbm)
os=-amigaos
;;
*-dg)
os=-dgux
;;
*-dolphin)
os=-sysv3
;;
m68k-ccur)
os=-rtu
;;
m88k-omron*)
os=-luna
;;
*-next )
os=-nextstep
;;
*-sequent)
os=-ptx
;;
*-crds)
os=-unos
;;
*-ns)
os=-genix
;;
i370-*)
os=-mvs
;;
*-next)
os=-nextstep3
;;
*-gould)
os=-sysv
;;
*-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
*-sgi)
os=-irix
;;
*-siemens)
os=-sysv4
;;
*-masscomp)
os=-rtu
;;
f30[01]-fujitsu | f700-fujitsu)
os=-uxpv
;;
*-rom68k)
os=-coff
;;
*-*bug)
os=-coff
;;
*-apple)
os=-macos
;;
*-atari*)
os=-mint
;;
*)
os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
vendor=unknown
case $basic_machine in
*-unknown)
case $os in
-riscix*)
vendor=acorn
;;
-sunos*)
vendor=sun
;;
-cnk*|-aix*)
vendor=ibm
;;
-beos*)
vendor=be
;;
-hpux*)
vendor=hp
;;
-mpeix*)
vendor=hp
;;
-hiux*)
vendor=hitachi
;;
-unos*)
vendor=crds
;;
-dgux*)
vendor=dg
;;
-luna*)
vendor=omron
;;
-genix*)
vendor=ns
;;
-mvs* | -opened*)
vendor=ibm
;;
-os400*)
vendor=ibm
;;
-ptx*)
vendor=sequent
;;
-tpf*)
vendor=ibm
;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
vendor=apple
;;
-hms*)
vendor=hitachi
;;
-mpw* | -macos*)
vendor=apple
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
-vos*)
vendor=stratus
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
echo $basic_machine$os
exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
enigmail/config/ 0000775 0000000 0000000 00000000000 12667016244 0014120 5 ustar 00root root 0000000 0000000 enigmail/config/autoconf.mk.in 0000664 0000000 0000000 00000000505 12667016244 0016674 0 ustar 00root root 0000000 0000000 # @configure_input@
PERL = @PERL@
PYTHON = @PYTHON@
TB_PATH = "@TB_PATH@"
TB_ARGS = @TB_ARGS@
TESTS = @enable_tests@
FIX_LANGUAGES = @enable_fix_lang@
ENABLE_LANG = @enable_lang@
srcdir = @srcdir@
DIST = $(DEPTH)/build/dist
BUILD = $(DEPTH)/build
JSUNIT = $(DEPTH)/util/run-jsunit $(PERL) $(TB_PATH) $(TB_ARGS) -jsunit
enigmail/configure 0000775 0000000 0000000 00000267061 12667016244 0014576 0 ustar 00root root 0000000 0000000 #! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for enigmail 1.9.1.
#
# Report bugs to .
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
_as_can_reexec=no; export _as_can_reexec;
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
as_fn_exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
else
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
if (eval "$as_required") 2>/dev/null; then :
as_have_required=yes
else
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir/$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
CONFIG_SHELL=$as_shell as_have_required=yes
if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
break 2
fi
fi
done;;
esac
as_found=false
done
$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
{ $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi; }
IFS=$as_save_IFS
if test "x$CONFIG_SHELL" != x; then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno; then :
$as_echo "$0: This script requires a shell more modern than all"
$as_echo "$0: the shells that I found on your system."
if test x${ZSH_VERSION+set} = xset ; then
$as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
$as_echo "$0: Please tell bug-autoconf@gnu.org and
$0: https://www.enigmail.net about your system, including
$0: any error possibly output before this message. Then
$0: install a modern shell, or manually run the script
$0: under such a shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
test -n "$DJDIR" || exec 7<&0 &1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='enigmail'
PACKAGE_TARNAME='enigmail'
PACKAGE_VERSION='1.9.1'
PACKAGE_STRING='enigmail 1.9.1'
PACKAGE_BUGREPORT='https://www.enigmail.net'
PACKAGE_URL=''
ac_subst_vars='LTLIBOBJS
LIBOBJS
enable_fix_lang
TB_ARGS
TB_PATH
enable_lang
enable_tests
target_os
target_vendor
target_cpu
target
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
PERL
PYTHON
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_tests
enable_lang
with_tb_path
with_tb_args
enable_fix_lang
'
ac_precious_vars='build_alias
host_alias
target_alias'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: $ac_useropt"
ac_useropt_orig=$ac_useropt
ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
$as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
$as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# 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 1.9.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/enigmail]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of enigmail 1.9.1:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-tests run unit tests during build process
--disable-lang disable creation of locales other than en-US
--disable-fix-lang disable replacing of missing strings in
localizations with en-US
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-tb-path=/path/to/thunderbird set the path to an installed Thunderbird
--with-tb-args="-P profilename" set additional arguments for Thunderbird
Report bugs to .
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for guested configure.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
enigmail configure 1.9.1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
cat >config.log <<_ACEOF
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 1.9.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
$as_echo "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Save into config.log some information that might help in debugging.
{
echo
$as_echo "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
$as_echo "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
$as_echo "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
$as_echo "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
$as_echo "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
$as_echo "$as_me: caught signal $ac_signal"
$as_echo "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
$as_echo "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
cat >>confdefs.h <<_ACEOF
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_VERSION "$PACKAGE_VERSION"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_STRING "$PACKAGE_STRING"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
_ACEOF
cat >>confdefs.h <<_ACEOF
#define PACKAGE_URL "$PACKAGE_URL"
_ACEOF
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
ac_site_file1=NONE
ac_site_file2=NONE
if test -n "$CONFIG_SITE"; then
# We do not want a PATH search for config.site.
case $CONFIG_SITE in #((
-*) ac_site_file1=./$CONFIG_SITE;;
*/*) ac_site_file1=$CONFIG_SITE;;
*) ac_site_file1=./$CONFIG_SITE;;
esac
elif test "x$prefix" != xNONE; then
ac_site_file1=$prefix/share/config.site
ac_site_file2=$prefix/etc/config.site
else
ac_site_file1=$ac_default_prefix/share/config.site
ac_site_file2=$ac_default_prefix/etc/config.site
fi
for ac_site_file in "$ac_site_file1" "$ac_site_file2"
do
test "x$ac_site_file" = xNONE && continue
if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
$as_echo "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
$as_echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
$as_echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Extract the first word of ""python2"", so it can be a program name with args.
set dummy "python2"; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PYTHON+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PYTHON in
[\\/]* | ?:[\\/]*)
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PYTHON=$ac_cv_path_PYTHON
if test -n "$PYTHON"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
$as_echo "$PYTHON" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
# fallback to python if python2 does not exist
if test "x$PYTHON" = "x" ; then
# Extract the first word of ""python"", so it can be a program name with args.
set dummy "python"; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PYTHON+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PYTHON in
[\\/]* | ?:[\\/]*)
ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PYTHON=$ac_cv_path_PYTHON
if test -n "$PYTHON"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
$as_echo "$PYTHON" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
fi
if test "x$PYTHON" = "x" ; then
as_fn_error $? "python2 or python not found." "$LINENO" 5
fi
# Extract the first word of ""perl"", so it can be a program name with args.
set dummy "perl"; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_PERL+:} false; then :
$as_echo_n "(cached) " >&6
else
case $PERL in
[\\/]* | ?:[\\/]*)
ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PERL=$ac_cv_path_PERL
if test -n "$PERL"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
$as_echo "$PERL" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$PERL" = "x" ; then
as_fn_error $? "Perl not found." "$LINENO" 5
fi
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install-sh -c"
break
elif test -f "$ac_dir/install.sh"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/install.sh -c"
break
elif test -f "$ac_dir/shtool"; then
ac_aux_dir=$ac_dir
ac_install_sh="$ac_aux_dir/shtool install -c"
break
fi
done
if test -z "$ac_aux_dir"; then
as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Make sure we can run config.sub.
$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
$as_echo_n "checking build system type... " >&6; }
if ${ac_cv_build+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
$as_echo_n "checking host system type... " >&6; }
if ${ac_cv_host+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
$as_echo "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
$as_echo_n "checking target system type... " >&6; }
if ${ac_cv_target+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "x$target_alias" = x; then
ac_cv_target=$ac_cv_host
else
ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
$as_echo "$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
esac
target=$ac_cv_target
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_target
shift
target_cpu=$1
target_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
target_os=$*
IFS=$ac_save_IFS
case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
# The aliases save the names the user supplied, while $host etc.
# will get canonicalized.
test -n "$target_alias" &&
test "$program_prefix$program_suffix$program_transform_name" = \
NONENONEs,x,x, &&
program_prefix=${target_alias}-
# Enable running of unit test during build
#
# Check whether --enable-tests was given.
if test "${enable_tests+set}" = set; then :
enableval=$enable_tests; enable_tests=$enableval
fi
# Disable creation of languages other than en-US (for submitting to babelzilla)
#
# Check whether --enable-lang was given.
if test "${enable_lang+set}" = set; then :
enableval=$enable_lang; enable_lang=$enableval
else
enable_lang=yes
fi
# Check whether --with-tb-path was given.
if test "${with_tb_path+set}" = set; then :
withval=$with_tb_path; if test "$withval" = yes ; then
withval=no
elif test "$withval" != no ; then
TB_PATH="$withval"
fi
else
withval=no
fi
# Check whether --with-tb-args was given.
if test "${with_tb_args+set}" = set; then :
withval=$with_tb_args; if test "$withval" = yes ; then
withval=no
elif test "$withval" != no ; then
TB_ARGS="$withval"
fi
else
withval=no
fi
# Check whether --enable-fix-lang was given.
if test "${enable_fix_lang+set}" = set; then :
enableval=$enable_fix_lang; enable_fix_lang=$enableval
else
enable_fix_lang=yes
fi
ac_config_files="$ac_config_files config/autoconf.mk"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
$as_echo "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
#
# If the first sed substitution is executed (which looks for macros that
# take arguments), then branch to the quote section. Otherwise,
# look for a macro that doesn't take arguments.
ac_script='
:mline
/\\$/{
N
s,\\\n,,
b mline
}
t clear
:clear
s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
t quote
s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
t quote
b any
:quote
s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
s/\[/\\&/g
s/\]/\\&/g
s/\$/$$/g
H
:any
${
g
s/^\n//
s/\n/ /g
p
}
'
DEFS=`sed -n "$ac_script" confdefs.h`
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
as_nl='
'
export as_nl
# Printing a long string crashes Solaris 7 /usr/bin/printf.
as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
# Prefer a ksh shell builtin over an external printf program on Solaris,
# but without wasting forks for bash or zsh.
if test -z "$BASH_VERSION$ZSH_VERSION" \
&& (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='print -r --'
as_echo_n='print -rn --'
elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
as_echo='printf %s\n'
as_echo_n='printf %s'
else
if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
as_echo_n='/usr/ucb/echo -n'
else
as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
as_echo_n_body='eval
arg=$1;
case $arg in #(
*"$as_nl"*)
expr "X$arg" : "X\\(.*\\)$as_nl";
arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
esac;
expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
'
export as_echo_n_body
as_echo_n='sh -c $as_echo_n_body as_echo'
fi
export as_echo_body
as_echo='sh -c $as_echo_body as_echo'
fi
# The user is always right.
if test "${PATH_SEPARATOR+set}" != set; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# IFS
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent editors from complaining about space-tab.
# (If _AS_PATH_WALK were called with IFS unset, it would disable word
# splitting by setting IFS to empty value.)
IFS=" "" $as_nl"
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
$as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Unset variables that we do not need and which cause bugs (e.g. in
# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
# suppresses any "Segmentation fault" message there. '((' could
# trigger a bug in pdksh 5.2.14.
for as_var in BASH_ENV ENV MAIL MAILPATH
do eval test x\${$as_var+set} = xset \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# CDPATH.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
$as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
$as_echo "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# 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 1.9.1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
Configuration files:
$config_files
Report bugs to ."
_ACEOF
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 1.9.1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
Copyright (C) 2012 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
$as_echo "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
$as_echo "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h | --help | --hel | -h )
$as_echo "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
$as_echo "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"config/autoconf.mk") CONFIG_FILES="$CONFIG_FILES config/autoconf.mk" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
trap 'exit_status=$?
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' >$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
eval set X " :F $CONFIG_FILES "
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
$as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
$as_echo "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`$as_echo "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
$as_echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
enigmail/configure.ac 0000664 0000000 0000000 00000003451 12667016244 0015144 0 ustar 00root root 0000000 0000000 # Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
min_automake_version="1.10"
AC_INIT([enigmail],[1.9.1], [https://www.enigmail.net])
AC_PATH_PROG(PYTHON, "python2")
# fallback to python if python2 does not exist
if test "x$PYTHON" = "x" ; then
AC_PATH_PROG(PYTHON, "python")
fi
if test "x$PYTHON" = "x" ; then
AC_MSG_ERROR([[python2 or python not found.]])
fi
AC_PATH_PROG(PERL,"perl")
if test "x$PERL" = "x" ; then
AC_MSG_ERROR([[Perl not found.]])
fi
AC_CANONICAL_TARGET
# Enable running of unit test during build
#
AC_ARG_ENABLE(tests,
AC_HELP_STRING([--enable-tests],[run unit tests during build process]),
enable_tests=$enableval)
# Disable creation of languages other than en-US (for submitting to babelzilla)
#
AC_ARG_ENABLE(lang,
AC_HELP_STRING([--disable-lang],[disable creation of locales other than en-US]),
enable_lang=$enableval,
enable_lang=yes
)
AC_SUBST(enable_tests)
AC_SUBST(enable_lang)
AC_ARG_WITH(tb-path,
[ --with-tb-path=/path/to/thunderbird set the path to an installed Thunderbird],
[if test "$withval" = yes ; then
withval=no
elif test "$withval" != no ; then
TB_PATH="$withval"
fi],withval=no)
AC_SUBST(TB_PATH)
AC_ARG_WITH(tb-args,
[ --with-tb-args="-P profilename" set additional arguments for Thunderbird],
[if test "$withval" = yes ; then
withval=no
elif test "$withval" != no ; then
TB_ARGS="$withval"
fi],withval=no)
AC_SUBST(TB_ARGS)
AC_ARG_ENABLE(fix-lang,
AC_HELP_STRING([--disable-fix-lang],[disable replacing of missing strings in localizations with en-US]),
enable_fix_lang=$enableval,
enable_fix_lang=yes
)
AC_SUBST(enable_fix_lang)
AC_CONFIG_FILES([config/autoconf.mk])
AC_OUTPUT
enigmail/install-sh 0000775 0000000 0000000 00000033255 12667016244 0014667 0 ustar 00root root 0000000 0000000 #!/bin/sh
# install - install a program, script, or datafile
scriptversion=2011-11-20.07; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
# Protect names problematic for 'test' and other utilities.
case $dst_arg in
-* | [=\(\)!]) dst_arg=./$dst_arg;;
esac
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
do_exit='(exit $ret); exit $ret'
trap "ret=129; $do_exit" 1
trap "ret=130; $do_exit" 2
trap "ret=141; $do_exit" 13
trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names problematic for 'test' and other utilities.
case $src in
-* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
[-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
enigmail/ipc/ 0000775 0000000 0000000 00000000000 12667016244 0013426 5 ustar 00root root 0000000 0000000 enigmail/ipc/Makefile 0000664 0000000 0000000 00000000722 12667016244 0015067 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ..
include $(DEPTH)/config/autoconf.mk
DIRS = modules
#ifeq ($(TESTS),yes)
# DIRS += tests
#endif
.PHONY: dirs $(DIRS)
all: dirs
dirs: $(DIRS)
$(DIRS):
$(MAKE) -C $@
clean:
for dir in $(DIRS); do \
$(MAKE) -C $$dir clean; \
done
enigmail/ipc/modules/ 0000775 0000000 0000000 00000000000 12667016244 0015076 5 ustar 00root root 0000000 0000000 enigmail/ipc/modules/.eslintrc.js 0000664 0000000 0000000 00000000153 12667016244 0017334 0 ustar 00root root 0000000 0000000 module.exports = {
"extends": "../../.eslintrc.js",
"rules": {
"no-constant-condition": 0,
}
};
enigmail/ipc/modules/Makefile 0000664 0000000 0000000 00000001050 12667016244 0016532 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ../..
include $(DEPTH)/config/autoconf.mk
EXTRA_JS_MODULES = \
subprocess.jsm \
subprocess_worker_win.js \
subprocess_worker_unix.js
all: $(EXTRA_JS_MODULES)
$(DEPTH)/util/install -m 644 $(DIST)/modules $^
clean: $(EXTRA_JS_MODULES)
$(DEPTH)/util/install -u $(DIST)/modules $^
enigmail/ipc/modules/subprocess.jsm 0000664 0000000 0000000 00000151040 12667016244 0020002 0 ustar 00root root 0000000 0000000 // -*- coding: utf-8 -*-
// vim: et:ts=4:sw=4:sts=4:ft=javascript
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
* Import into a JS component using
* 'Components.utils.import("resource://firefogg/subprocess.jsm");'
*
* This object allows to start a process, and read/write data to/from it
* using stdin/stdout/stderr streams.
* Usage example:
*
* var p = subprocess.call({
* command: '/bin/foo',
* arguments: ['-v', 'foo'],
* environment: [ "XYZ=abc", "MYVAR=def" ],
* charset: 'UTF-8',
* workdir: '/home/foo',
* //stdin: "some value to write to stdin\nfoobar",
* stdin: function(stdin) {
* stdin.write("some value to write to stdin\nfoobar");
* stdin.close();
* },
* stdout: function(data) {
* dump("got data on stdout:" + data + "\n");
* },
* stderr: function(data) {
* dump("got data on stderr:" + data + "\n");
* },
* done: function(result) {
* dump("process terminated with " + result.exitCode + "\n");
* },
* mergeStderr: false
* });
* p.wait(); // wait for the subprocess to terminate
* // this will block the main thread,
* // only do if you can wait that long
*
*
* Description of parameters:
* --------------------------
* Apart from , all arguments are optional.
*
* command: either a |nsIFile| object pointing to an executable file or a
* String containing the platform-dependent path to an executable
* file.
*
* arguments: optional string array containing the arguments to the command.
*
* environment: optional string array containing environment variables to pass
* to the command. The array elements must have the form
* "VAR=data". Please note that if environment is defined, it
* replaces any existing environment variables for the subprocess.
*
* charset: Output is decoded with given charset and a string is returned.
* If charset is undefined, "UTF-8" is used as default.
* To get binary data, set this explicitly to null and the
* returned string is not decoded in any way.
*
* workdir: optional; String containing the platform-dependent path to a
* directory to become the current working directory of the subprocess.
*
* stdin: optional input data for the process to be passed on standard
* input. stdin can either be a string or a function.
* A |string| gets written to stdin and stdin gets closed;
* A |function| gets passed an object with write and close function.
* Please note that the write() function will return almost immediately;
* data is always written asynchronously on a separate thread.
*
* stdout: an optional function that can receive output data from the
* process. The stdout-function is called asynchronously; it can be
* called mutliple times during the execution of a process.
* At a minimum at each occurance of \n or \r.
* Please note that null-characters might need to be escaped
* with something like 'data.replace(/\0/g, "\\0");'.
*
* stderr: an optional function that can receive stderr data from the
* process. The stderr-function is called asynchronously; it can be
* called mutliple times during the execution of a process. Please
* note that null-characters might need to be escaped with
* something like 'data.replace(/\0/g, "\\0");'.
* (on windows it only gets called once right now)
*
* pipes: **NOT AVAILABLE ON WINDOWS**
* optional argmuent containing an |array| of the objects with the
* following structure:
* - readFd: function(data) or string - working identically to stdout()
* - writeFd: function(pipe) - working identically to stdin()
* The array is treated as an ordered list.
* For every element in the array, a new file descriptor is opened
* to read from or and write to. The file descriptors are numbered
* sequentially starting by 3, i.e. the child process can read or
* write from/to file descriptors 3, 4, etc.
* NOTE: pipes are directed; you can only specify either readFd OR
* writeFd for any element of the array.
*
* done: optional function that is called when the process has terminated.
* The exit code from the process available via result.exitCode. If
* stdout is not defined, then the output from stdout is available
* via result.stdout. stderr data is in result.stderr
*
* mergeStderr: optional boolean value. If true, stderr is merged with stdout;
* no data will be provided to stderr. Default is false.
*
* bufferedOutput: optional boolean value. If true, stderr and stdout are buffered
* and will only deliver data when a certain amount of output is
* available. Enabling the option will give you some performance
* benefits if you read a lot of data. Don't enable this if your
* application works in a conversation-like mode. Default is false.
*
*
* Description of object returned by subprocess.call(...)
* ------------------------------------------------------
* The object returned by subprocess.call offers a few methods that can be
* executed:
*
* wait(): waits for the subprocess to terminate. It is not required to use
* wait; done will be called in any case when the subprocess terminated.
*
* kill(hardKill): kill the subprocess. Any open pipes will be closed and
* done will be called.
* hardKill [ignored on Windows]:
* - false: signal the process terminate (SIGTERM)
* - true: kill the process (SIGKILL)
*
*
* Other methods in subprocess
* ---------------------------
*
* registerDebugHandler(functionRef): register a handler that is called to get
* debugging information
* registerLogHandler(functionRef): register a handler that is called to get error
* messages
*
* example:
* subprocess.registerLogHandler( function(s) { dump(s); } );
*/
/* global Components: false, dump: false, ChromeWorker: false */
"use strict";
Components.utils.import("resource://gre/modules/ctypes.jsm"); /* global ctypes: false */
let EXPORTED_SYMBOLS = ["subprocess"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const NS_LOCAL_FILE = "@mozilla.org/file/local;1";
var WinABI;
//Windows API definitions
if (ctypes.size_t.size == 8) {
WinABI = ctypes.default_abi;
}
else {
WinABI = ctypes.winapi_abi;
}
const WORD = ctypes.uint16_t;
const DWORD = ctypes.uint32_t;
const LPDWORD = DWORD.ptr;
const UINT = ctypes.unsigned_int;
const BOOL = ctypes.bool;
const HANDLE = ctypes.size_t;
const HWND = HANDLE;
const HMODULE = HANDLE;
const WPARAM = ctypes.size_t;
const LPARAM = ctypes.size_t;
const LRESULT = ctypes.size_t;
const ULONG_PTR = ctypes.uintptr_t;
const PVOID = ctypes.voidptr_t;
const LPVOID = PVOID;
const LPCTSTR = ctypes.jschar.ptr;
const LPCWSTR = ctypes.jschar.ptr;
const LPTSTR = ctypes.jschar.ptr;
const LPSTR = ctypes.char.ptr;
const LPCSTR = ctypes.char.ptr;
const LPBYTE = ctypes.char.ptr;
const CREATE_NEW_CONSOLE = 0x00000010;
const CREATE_NO_WINDOW = 0x08000000;
const CREATE_UNICODE_ENVIRONMENT = 0x00000400;
const STARTF_USESHOWWINDOW = 0x00000001;
const STARTF_USESTDHANDLES = 0x00000100;
const SW_HIDE = 0;
const DUPLICATE_SAME_ACCESS = 0x00000002;
const STILL_ACTIVE = 259;
const INFINITE = DWORD(0xFFFFFFFF);
const WAIT_TIMEOUT = 0x00000102;
// stdin pipe states
const PIPE_STATE_NOT_INIT = 3;
const PIPE_STATE_OPEN = 2;
const PIPE_STATE_CLOSEABLE = 1;
const PIPE_STATE_CLOSED = 0;
/*
typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
*/
const SECURITY_ATTRIBUTES = new ctypes.StructType("SECURITY_ATTRIBUTES", [{
"nLength": DWORD
}, {
"lpSecurityDescriptor": LPVOID
}, {
"bInheritHandle": BOOL
}]);
/*
typedef struct _STARTUPINFO {
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;
*/
const STARTUPINFO = new ctypes.StructType("STARTUPINFO", [{
"cb": DWORD
}, {
"lpReserved": LPTSTR
}, {
"lpDesktop": LPTSTR
}, {
"lpTitle": LPTSTR
}, {
"dwX": DWORD
}, {
"dwY": DWORD
}, {
"dwXSize": DWORD
}, {
"dwYSize": DWORD
}, {
"dwXCountChars": DWORD
}, {
"dwYCountChars": DWORD
}, {
"dwFillAttribute": DWORD
}, {
"dwFlags": DWORD
}, {
"wShowWindow": WORD
}, {
"cbReserved2": WORD
}, {
"lpReserved2": LPBYTE
}, {
"hStdInput": HANDLE
}, {
"hStdOutput": HANDLE
}, {
"hStdError": HANDLE
}]);
/*
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION, *LPPROCESS_INFORMATION;
*/
const PROCESS_INFORMATION = new ctypes.StructType("PROCESS_INFORMATION", [{
"hProcess": HANDLE
}, {
"hThread": HANDLE
}, {
"dwProcessId": DWORD
}, {
"dwThreadId": DWORD
}]);
/*
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
*/
const OVERLAPPED = new ctypes.StructType("OVERLAPPED");
//UNIX definitions
const pid_t = ctypes.int32_t;
const WNOHANG = 1;
const F_GETFL = 3;
const F_SETFL = 4;
const LIBNAME = 0;
const O_NONBLOCK = 1;
const RLIM_T = 2;
const RLIMIT_NOFILE = 3;
function getPlatformValue(valueType) {
if (!gXulRuntime)
gXulRuntime = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime);
const platformDefaults = {
// Windows API:
'winnt': ['kernel32.dll'],
// Unix API:
// library name O_NONBLOCK RLIM_T RLIMIT_NOFILE
'darwin': ['libc.dylib', 0x04, ctypes.uint64_t, 8],
'linux': ['libc.so.6', 2024, ctypes.unsigned_long, 7],
'freebsd': ['libc.so.7', 0x04, ctypes.int64_t, 8],
'dragonfly': ['libc.so.8', 0x04, ctypes.int64_t, 8],
'gnu/kfreebsd': ['libc.so.0.1', 0x04, ctypes.int64_t, 8],
'netbsd': ['libc.so', 0x04, ctypes.int64_t, 8],
'openbsd': ['libc.so.61.0', 0x04, ctypes.int64_t, 8],
'sunos': ['libc.so', 0x80, ctypes.unsigned_long, 5]
};
return platformDefaults[gXulRuntime.OS.toLowerCase()][valueType];
}
var gDebugFunc = null,
gLogFunc = null,
gXulRuntime = null;
function LogError(s) {
if (gLogFunc)
gLogFunc(s);
}
function debugLog(s) {
if (gDebugFunc)
gDebugFunc(s);
}
function setTimeout(callback, timeout) {
var timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
timer.initWithCallback(callback, timeout, Ci.nsITimer.TYPE_ONE_SHOT);
}
function convertBytes(data, charset) {
var string = charset == "null" || charset == "UTF-8" ? data : Cc["@mozilla.org/intl/utf8converterservice;1"]
.getService(Ci.nsIUTF8ConverterService)
.convertStringToUTF8(data, charset, false, true);
return string;
}
function getCommandStr(command) {
let commandStr = null;
if (typeof(command) == "string") {
let file = Cc[NS_LOCAL_FILE].createInstance(Ci.nsIFile);
file.initWithPath(command);
if (!(file.isExecutable() && file.isFile()))
throw ("File '" + command + "' is not an executable file");
commandStr = command;
}
else {
if (!(command.isExecutable() && command.isFile()))
throw ("File '" + command.path + "' is not an executable file");
commandStr = command.path;
}
return commandStr;
}
function getWorkDir(workdir) {
let workdirStr = null;
if (typeof(workdir) == "string") {
let file = Cc[NS_LOCAL_FILE].createInstance(Ci.nsIFile);
file.initWithPath(workdir);
if (!(file.isDirectory()))
throw ("Directory '" + workdir + "' does not exist");
workdirStr = workdir;
}
else if (workdir) {
if (!workdir.isDirectory())
throw ("Directory '" + workdir.path + "' does not exist");
workdirStr = workdir.path;
}
return workdirStr;
}
var subprocess = {
call: function(options) {
options.mergeStderr = options.mergeStderr || false;
options.bufferedOutput = options.bufferedOutput || false;
options.workdir = options.workdir || null;
options.environment = options.environment || [];
options.charset = !options.charset ? "null" : options.charset || "UTF-8";
if (options.arguments) {
var args = options.arguments;
options.arguments = [];
args.forEach(function(argument) {
options.arguments.push(argument);
});
}
else {
options.arguments = [];
}
if (options.pipes) {
for (let i in options.pipes) {
if (options.pipes[i].writeFd && options.pipes[i].readFd) {
throw ("Fatal - pipe " + i + ": readFd and writeFd specified");
}
if (!options.pipes[i].writeFd && !options.pipes[i].readFd) {
throw ("Fatal - pipe " + i + ": neither readFd nor writeFd specified");
}
}
}
options.libc = getPlatformValue(LIBNAME);
if (gXulRuntime.OS.substring(0, 3) == "WIN") {
return subprocess_win32(options);
}
else {
return subprocess_unix(options);
}
},
registerDebugHandler: function(func) {
gDebugFunc = func;
},
registerLogHandler: function(func) {
gLogFunc = func;
},
getPlatformValue: getPlatformValue
};
function subprocess_win32(options) {
var kernel32dll = ctypes.open(options.libc),
hChildProcess,
active = true,
done = false,
exitCode = -1,
child = {},
stdinWorker = null,
stdoutWorker = null,
stderrWorker = null,
pendingWriteCount = 0,
readers = options.mergeStderr ? 1 : 2,
stdinOpenState = PIPE_STATE_NOT_INIT,
error = '',
output = '';
//api declarations
/*
BOOL WINAPI CloseHandle(
__in HANDLE hObject
);
*/
var CloseHandle = kernel32dll.declare("CloseHandle",
WinABI,
BOOL,
HANDLE
);
/*
BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine,
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
*/
var CreateProcessW = kernel32dll.declare("CreateProcessW",
WinABI,
BOOL,
LPCTSTR,
LPTSTR,
SECURITY_ATTRIBUTES.ptr,
SECURITY_ATTRIBUTES.ptr,
BOOL,
DWORD,
LPVOID,
LPCTSTR,
STARTUPINFO.ptr,
PROCESS_INFORMATION.ptr
);
// /*
// BOOL WINAPI ReadFile(
// __in HANDLE hFile,
// __out LPVOID ReadFileBuffer,
// __in DWORD nNumberOfBytesToRead,
// __out_opt LPDWORD lpNumberOfBytesRead,
// __inout_opt LPOVERLAPPED lpOverlapped
// );
// */
// var ReadFileBufferSize = 1024,
// ReadFileBuffer = ctypes.char.array(ReadFileBufferSize),
// ReadFile = kernel32dll.declare("ReadFile",
// WinABI,
// BOOL,
// HANDLE,
// ReadFileBuffer,
// DWORD,
// LPDWORD,
// OVERLAPPED.ptr
// );
//
// /*
// BOOL WINAPI PeekNamedPipe(
// __in HANDLE hNamedPipe,
// __out_opt LPVOID lpBuffer,
// __in DWORD nBufferSize,
// __out_opt LPDWORD lpBytesRead,
// __out_opt LPDWORD lpTotalBytesAvail,
// __out_opt LPDWORD lpBytesLeftThisMessage
// );
// */
// var PeekNamedPipe = kernel32dll.declare("PeekNamedPipe",
// WinABI,
// BOOL,
// HANDLE,
// ReadFileBuffer,
// DWORD,
// LPDWORD,
// LPDWORD,
// LPDWORD
// );
//
// /*
// BOOL WINAPI WriteFile(
// __in HANDLE hFile,
// __in LPCVOID lpBuffer,
// __in DWORD nNumberOfBytesToWrite,
// __out_opt LPDWORD lpNumberOfBytesWritten,
// __inout_opt LPOVERLAPPED lpOverlapped
// );
// */
// var WriteFile = kernel32dll.declare("WriteFile",
// WinABI,
// BOOL,
// HANDLE,
// ctypes.char.ptr,
// DWORD,
// LPDWORD,
// OVERLAPPED.ptr
// );
/*
BOOL WINAPI CreatePipe(
__out PHANDLE hReadPipe,
__out PHANDLE hWritePipe,
__in_opt LPSECURITY_ATTRIBUTES lpPipeAttributes,
__in DWORD nSize
);
*/
var CreatePipe = kernel32dll.declare("CreatePipe",
WinABI,
BOOL,
HANDLE.ptr,
HANDLE.ptr,
SECURITY_ATTRIBUTES.ptr,
DWORD
);
/*
HANDLE WINAPI GetCurrentProcess(void);
*/
var GetCurrentProcess = kernel32dll.declare("GetCurrentProcess",
WinABI,
HANDLE
);
/*
DWORD WINAPI GetLastError(void);
*/
var GetLastError = kernel32dll.declare("GetLastError",
WinABI,
DWORD
);
/*
BOOL WINAPI DuplicateHandle(
__in HANDLE hSourceProcessHandle,
__in HANDLE hSourceHandle,
__in HANDLE hTargetProcessHandle,
__out LPHANDLE lpTargetHandle,
__in DWORD dwDesiredAccess,
__in BOOL bInheritHandle,
__in DWORD dwOptions
);
*/
var DuplicateHandle = kernel32dll.declare("DuplicateHandle",
WinABI,
BOOL,
HANDLE,
HANDLE,
HANDLE,
HANDLE.ptr,
DWORD,
BOOL,
DWORD
);
/*
BOOL WINAPI GetExitCodeProcess(
__in HANDLE hProcess,
__out LPDWORD lpExitCode
);
*/
var GetExitCodeProcess = kernel32dll.declare("GetExitCodeProcess",
WinABI,
BOOL,
HANDLE,
LPDWORD
);
/*
DWORD WINAPI WaitForSingleObject(
__in HANDLE hHandle,
__in DWORD dwMilliseconds
);
*/
var WaitForSingleObject = kernel32dll.declare("WaitForSingleObject",
WinABI,
DWORD,
HANDLE,
DWORD
);
/*
BOOL WINAPI TerminateProcess(
__in HANDLE hProcess,
__in UINT uExitCode
);
*/
var TerminateProcess = kernel32dll.declare("TerminateProcess",
WinABI,
BOOL,
HANDLE,
UINT
);
//functions
function popen(command, workdir, args, environment, child) {
//escape arguments
args.unshift(command);
for (var i = 0; i < args.length; i++) {
if (typeof args[i] != "string") {
args[i] = args[i].toString();
}
/* quote arguments with spaces */
if (args[i].match(/\s/)) {
args[i] = "\"" + args[i] + "\"";
}
/* If backslash is followed by a quote, double it */
args[i] = args[i].replace(/\\\"/g, "\\\\\"");
}
command = args.join(' ');
environment = environment || [];
if (environment.length) {
//An environment block consists of
//a null-terminated block of null-terminated strings.
//Using CREATE_UNICODE_ENVIRONMENT so needs to be jschar
environment = ctypes.jschar.array()(environment.join('\0') + '\0');
}
else {
environment = null;
}
var hOutputReadTmp = new HANDLE(),
hOutputRead = new HANDLE(),
hOutputWrite = new HANDLE();
var hErrorRead = new HANDLE(),
hErrorReadTmp = new HANDLE(),
hErrorWrite = new HANDLE();
var hInputRead = new HANDLE(),
hInputWriteTmp = new HANDLE(),
hInputWrite = new HANDLE();
// Set up the security attributes struct.
var sa = new SECURITY_ATTRIBUTES();
sa.nLength = SECURITY_ATTRIBUTES.size;
sa.lpSecurityDescriptor = null;
sa.bInheritHandle = true;
// Create output pipe.
if (!CreatePipe(hOutputReadTmp.address(), hOutputWrite.address(), sa.address(), 0))
LogError("CreatePipe hOutputReadTmp failed");
if (options.mergeStderr) {
// Create a duplicate of the output write handle for the std error
// write handle. This is necessary in case the child application
// closes one of its std output handles.
if (!DuplicateHandle(GetCurrentProcess(), hOutputWrite,
GetCurrentProcess(), hErrorWrite.address(), 0,
true, DUPLICATE_SAME_ACCESS))
LogError("DuplicateHandle hOutputWrite failed");
}
else {
// Create error pipe.
if (!CreatePipe(hErrorReadTmp.address(), hErrorWrite.address(), sa.address(), 0))
LogError("CreatePipe hErrorReadTmp failed");
}
// Create input pipe.
if (!CreatePipe(hInputRead.address(), hInputWriteTmp.address(), sa.address(), 0))
LogError("CreatePipe hInputRead failed");
// Create new output/error read handle and the input write handles. Set
// the Properties to FALSE. Otherwise, the child inherits the
// properties and, as a result, non-closeable handles to the pipes
// are created.
if (!DuplicateHandle(GetCurrentProcess(), hOutputReadTmp,
GetCurrentProcess(),
hOutputRead.address(), // Address of new handle.
0, false, // Make it uninheritable.
DUPLICATE_SAME_ACCESS))
LogError("DupliateHandle hOutputReadTmp failed");
if (!options.mergeStderr) {
if (!DuplicateHandle(GetCurrentProcess(), hErrorReadTmp,
GetCurrentProcess(),
hErrorRead.address(), // Address of new handle.
0, false, // Make it uninheritable.
DUPLICATE_SAME_ACCESS))
LogError("DupliateHandle hErrorReadTmp failed");
}
if (!DuplicateHandle(GetCurrentProcess(), hInputWriteTmp,
GetCurrentProcess(),
hInputWrite.address(), // Address of new handle.
0, false, // Make it uninheritable.
DUPLICATE_SAME_ACCESS))
LogError("DupliateHandle hInputWriteTmp failed");
// Close inheritable copies of the handles.
if (!CloseHandle(hOutputReadTmp)) LogError("CloseHandle hOutputReadTmp failed");
if (!options.mergeStderr)
if (!CloseHandle(hErrorReadTmp)) LogError("CloseHandle hErrorReadTmp failed");
if (!CloseHandle(hInputWriteTmp)) LogError("CloseHandle failed");
var pi = new PROCESS_INFORMATION();
var si = new STARTUPINFO();
si.cb = STARTUPINFO.size;
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdInput = hInputRead;
si.hStdOutput = hOutputWrite;
si.hStdError = hErrorWrite;
// Launch the process
if (!CreateProcessW(null, // executable name
command, // command buffer
null, // process security attribute
null, // thread security attribute
true, // inherits system handles
CREATE_UNICODE_ENVIRONMENT | CREATE_NO_WINDOW, // process flags
environment, // envrionment block
workdir, // set as current directory
si.address(), // (in) startup information
pi.address() // (out) process information
))
throw ("Fatal - Could not launch subprocess '" + command + "'");
// Close any unnecessary handles.
if (!CloseHandle(pi.hThread))
LogError("CloseHandle pi.hThread failed");
// Close pipe handles (do not continue to modify the parent).
// You need to make sure that no handles to the write end of the
// output pipe are maintained in this process or else the pipe will
// not close when the child process exits and the ReadFile will hang.
if (!CloseHandle(hInputRead)) LogError("CloseHandle hInputRead failed");
if (!CloseHandle(hOutputWrite)) LogError("CloseHandle hOutputWrite failed");
if (!CloseHandle(hErrorWrite)) LogError("CloseHandle hErrorWrite failed");
//return values
child.stdin = hInputWrite;
child.stdout = hOutputRead;
child.stderr = options.mergeStderr ? undefined : hErrorRead;
child.process = pi.hProcess;
return pi.hProcess;
}
/*
* createStdinWriter ()
*
* Create a ChromeWorker object for writing data to the subprocess' stdin
* pipe. The ChromeWorker object lives on a separate thread; this avoids
* internal deadlocks.
*/
function createStdinWriter() {
debugLog("Creating new stdin worker\n");
stdinWorker = new ChromeWorker("subprocess_worker_win.js");
stdinWorker.onmessage = function(event) {
switch (event.data) {
case "WriteOK":
pendingWriteCount--;
debugLog("got OK from stdinWorker - remaining count: " + pendingWriteCount + "\n");
break;
case "InitOK":
stdinOpenState = PIPE_STATE_OPEN;
debugLog("Stdin pipe opened\n");
break;
case "ClosedOK":
stdinOpenState = PIPE_STATE_CLOSED;
debugLog("Stdin pipe closed\n");
break;
default:
debugLog("got msg from stdinWorker: " + event.data + "\n");
}
};
stdinWorker.onerror = function(error) {
pendingWriteCount--;
exitCode = -2;
LogError("got error from stdinWorker: " + error.message + "\n");
};
stdinWorker.postMessage({
msg: "init",
libc: options.libc
});
}
/*
* writeStdin()
* @data: String containing the data to write
*
* Write data to the subprocess' stdin (equals to sending a request to the
* ChromeWorker object to write the data).
*/
function writeStdin(data) {
if (stdinOpenState == PIPE_STATE_CLOSED) {
LogError("trying to write data to closed stdin");
return;
}
++pendingWriteCount;
debugLog("sending " + data.length + " bytes to stdinWorker\n");
var pipePtr = parseInt(ctypes.cast(child.stdin.address(), ctypes.uintptr_t).value, 10);
stdinWorker.postMessage({
msg: 'write',
pipe: pipePtr,
data: data
});
}
/*
* closeStdinHandle()
*
* Close the stdin pipe, either directly or by requesting the ChromeWorker to
* close the pipe. The ChromeWorker will only close the pipe after the last write
* request process is done.
*/
function closeStdinHandle() {
debugLog("trying to close stdin\n");
if (stdinOpenState != PIPE_STATE_OPEN) return;
stdinOpenState = PIPE_STATE_CLOSEABLE;
if (stdinWorker) {
debugLog("sending close stdin to worker\n");
var pipePtr = parseInt(ctypes.cast(child.stdin.address(), ctypes.uintptr_t).value, 10);
stdinWorker.postMessage({
msg: 'close',
pipe: pipePtr
});
}
else {
stdinOpenState = PIPE_STATE_CLOSED;
debugLog("Closing Stdin\n");
if (!CloseHandle(child.stdin)) LogError("CloseHandle hInputWrite failed");
}
}
/*
* createReader(pipe, name)
*
* @pipe: handle to the pipe
* @name: String containing the pipe name (stdout or stderr)
*
* Create a ChromeWorker object for reading data asynchronously from
* the pipe (i.e. on a separate thread), and passing the result back to
* the caller.
*/
function createReader(pipe, name, callbackFunc) {
var worker = new ChromeWorker("subprocess_worker_win.js");
worker.onmessage = function(event) {
switch (event.data.msg) {
case "data":
debugLog("got " + event.data.count + " bytes from " + name + "\n");
var data = convertBytes(event.data.data, options.charset);
callbackFunc(data);
break;
case "done":
debugLog("Pipe " + name + " closed\n");
--readers;
if (readers === 0) cleanup();
break;
case "error":
exitCode = -2;
LogError("Got msg from " + name + ": " + event.data.data + "\n");
break;
default:
debugLog("Got msg from " + name + ": " + event.data.data + "\n");
}
};
worker.onerror = function(errorMsg) {
LogError("Got error from " + name + ": " + errorMsg.message);
exitCode = -2;
};
var pipePtr = parseInt(ctypes.cast(pipe.address(), ctypes.uintptr_t).value, 10);
worker.postMessage({
msg: 'read',
pipe: pipePtr,
libc: options.libc,
charset: !options.charset ? "null" : options.charset,
bufferedOutput: options.bufferedOutput,
name: name
});
return worker;
}
/*
* readPipes()
*
* Open the pipes for reading from stdout and stderr
*/
function readPipes() {
stdoutWorker = createReader(child.stdout, "stdout", function(data) {
if (options.stdout) {
setTimeout(function() {
options.stdout(data);
}, 0);
}
else {
output += data;
}
});
if (!options.mergeStderr) stderrWorker = createReader(child.stderr, "stderr", function(data) {
if (options.stderr) {
setTimeout(function() {
options.stderr(data);
}, 0);
}
else {
error += data;
}
});
}
/*
* cleanup()
*
* close stdin if needed, get the exit code from the subprocess and invoke
* the caller's done() function.
*
* Note: because stdout() and stderr() are called using setTimeout, we need to
* do the same here in order to guarantee the message sequence.
*/
function cleanup() {
debugLog("Cleanup called\n");
if (active) {
active = false;
closeStdinHandle(); // should only be required in case of errors
var exit = new DWORD();
GetExitCodeProcess(child.process, exit.address());
if (exitCode > -2)
exitCode = exit.value;
exitCode = exitCode % 0xFF;
if (stdinWorker)
stdinWorker.postMessage({
msg: 'stop'
});
setTimeout(function _done() {
if (options.done) {
try {
options.done({
exitCode: exitCode,
stdout: output,
stderr: error
});
}
catch (ex) {
// prevent from blocking if options.done() throws an error
done = true;
throw ex;
}
}
done = true;
}, 0);
kernel32dll.close();
}
}
function startWriting() {
debugLog("startWriting called\n");
if (stdinOpenState == PIPE_STATE_NOT_INIT) {
setTimeout(function _f() {
startWriting();
}, 1);
return;
}
if (typeof(options.stdin) == 'function') {
try {
options.stdin({
write: function(data) {
writeStdin(data);
},
close: function() {
closeStdinHandle();
}
});
}
catch (ex) {
// prevent from failing if options.stdin() throws an exception
closeStdinHandle();
throw ex;
}
}
else {
writeStdin(options.stdin);
closeStdinHandle();
}
}
//main
if (options.pipes) throw "Error - additional pipes are not supported on this OS";
var cmdStr = getCommandStr(options.command);
var workDir = getWorkDir(options.workdir);
hChildProcess = popen(cmdStr, workDir, options.arguments, options.environment, child);
readPipes();
if (options.stdin) {
createStdinWriter();
startWriting();
}
else
closeStdinHandle();
return {
kill: function(hardKill) {
if (!active) return true;
// hardKill is currently ignored on Windows
var r = Boolean(TerminateProcess(child.process, 255));
cleanup(-1);
return r;
},
wait: function() {
// wait for async operations to complete
var thread = Cc['@mozilla.org/thread-manager;1'].getService(Ci.nsIThreadManager).currentThread;
while (!done) thread.processNextEvent(true);
return exitCode;
}
};
}
function subprocess_unix(options) {
var libc = ctypes.open(options.libc),
active = true,
done = false,
exitCode = -1,
workerExitCode = 0,
child = {},
pid = -1,
writeWorker = [],
stdoutWorker = null,
stderrWorker = null,
readFdWorker = [],
pendingWriteCount = 0,
readers = options.mergeStderr ? 1 : 2,
stdinOpenState = [PIPE_STATE_NOT_INIT],
error = '',
output = '';
//api declarations
//pid_t fork(void);
var fork = libc.declare("fork",
ctypes.default_abi,
pid_t
);
//NULL terminated array of strings, argv[0] will be command >> + 2
var argv = ctypes.char.ptr.array(options.arguments.length + 2);
var envp = ctypes.char.ptr.array(options.environment.length + 1);
// posix_spawn_file_actions_t is a complex struct that may be different on
// each platform. We do not care about its attributes, we don't need to
// get access to them, but we do need to allocate the right amount
// of memory for it.
// At 2013/10/28, its size was 80 on linux, but better be safe (and larger),
// than crash when posix_spawn_file_actions_init fill `action` with zeros.
// Use `gcc sizeof_fileaction.c && ./a.out` to check that size.
var posix_spawn_file_actions_t = ctypes.uint8_t.array(100);
//int posix_spawn(pid_t *restrict pid, const char *restrict path,
// const posix_spawn_file_actions_t *file_actions,
// const posix_spawnattr_t *restrict attrp,
// char *const argv[restrict], char *const envp[restrict]);
var posix_spawn = libc.declare("posix_spawn",
ctypes.default_abi,
ctypes.int,
pid_t.ptr,
ctypes.char.ptr,
posix_spawn_file_actions_t.ptr,
ctypes.voidptr_t,
argv,
envp
);
//int posix_spawn_file_actions_init(posix_spawn_file_actions_t *file_actions);
var posix_spawn_file_actions_init = libc.declare("posix_spawn_file_actions_init",
ctypes.default_abi,
ctypes.int,
posix_spawn_file_actions_t.ptr
);
//int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *file_actions);
var posix_spawn_file_actions_destroy = libc.declare("posix_spawn_file_actions_destroy",
ctypes.default_abi,
ctypes.int,
posix_spawn_file_actions_t.ptr
);
// int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *
// file_actions, int fildes, int newfildes);
var posix_spawn_file_actions_adddup2 = libc.declare("posix_spawn_file_actions_adddup2",
ctypes.default_abi,
ctypes.int,
posix_spawn_file_actions_t.ptr,
ctypes.int,
ctypes.int
);
// int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *
// file_actions, int fildes);
var posix_spawn_file_actions_addclose = libc.declare("posix_spawn_file_actions_addclose",
ctypes.default_abi,
ctypes.int,
posix_spawn_file_actions_t.ptr,
ctypes.int
);
//int pipe(int pipefd[2]);
var pipefd = ctypes.int.array(2);
var pipe = libc.declare("pipe",
ctypes.default_abi,
ctypes.int,
pipefd
);
//int dup2(int oldfd, int newfd);
var dup2 = libc.declare("dup2",
ctypes.default_abi,
ctypes.int,
ctypes.int,
ctypes.int
);
//int close(int fd);
var close = libc.declare("close",
ctypes.default_abi,
ctypes.int,
ctypes.int
);
var execve = libc.declare("execve",
ctypes.default_abi,
ctypes.int,
ctypes.char.ptr,
argv,
envp
);
//void exit(int status);
var exit = libc.declare("exit",
ctypes.default_abi,
ctypes.void_t,
ctypes.int
);
//pid_t waitpid(pid_t pid, int *status, int options);
var waitpid = libc.declare("waitpid",
ctypes.default_abi,
pid_t,
pid_t,
ctypes.int.ptr,
ctypes.int
);
//int kill(pid_t pid, int sig);
var kill = libc.declare("kill",
ctypes.default_abi,
ctypes.int,
pid_t,
ctypes.int
);
//int read(int fd, void *buf, size_t count);
var bufferSize = 1024;
var buffer = ctypes.char.array(bufferSize);
var read = libc.declare("read",
ctypes.default_abi,
ctypes.int,
ctypes.int,
buffer,
ctypes.int
);
var WriteBuffer = ctypes.uint8_t.array(256);
//ssize_t write(int fd, const void *buf, size_t count);
var write = libc.declare("write",
ctypes.default_abi,
ctypes.int,
ctypes.int,
WriteBuffer,
ctypes.int
);
//int chdir(const char *path);
var chdir = libc.declare("chdir",
ctypes.default_abi,
ctypes.int,
ctypes.char.ptr
);
//int sleep(int);
var sleep = libc.declare("sleep",
ctypes.default_abi,
ctypes.int,
ctypes.int);
//int fcntl(int fd, int cmd, ... /* arg */ );
var fcntl = libc.declare("fcntl",
ctypes.default_abi,
ctypes.int,
ctypes.int,
ctypes.int,
ctypes.int
);
var libcWrapper = null,
launchProcess = null;
var additionalFds = 0;
if (options.pipes) {
additionalFds = options.pipes.length;
}
var fdArr = ctypes.int.array(additionalFds + 2);
function popen(command, workdir, args, environment, child) {
var _in,
_out,
_err,
pid,
rc,
i;
_in = new pipefd();
_out = new pipefd();
if (!options.mergeStderr)
_err = new pipefd();
var _args = argv();
args.unshift(command);
for (i = 0; i < args.length; i++) {
_args[i] = ctypes.char.array()(args[i]);
}
var _envp = envp();
for (i = 0; i < environment.length; i++) {
_envp[i] = ctypes.char.array()(environment[i]);
}
rc = pipe(_in);
if (rc < 0) {
return -1;
}
rc = pipe(_out);
fcntl(_out[0], F_SETFL, getPlatformValue(O_NONBLOCK));
if (rc < 0) {
close(_in[0]);
close(_in[1]);
return -1;
}
if (!options.mergeStderr) {
rc = pipe(_err);
fcntl(_err[0], F_SETFL, getPlatformValue(O_NONBLOCK));
if (rc < 0) {
close(_in[0]);
close(_in[1]);
close(_out[0]);
close(_out[1]);
return -1;
}
}
child.otherFdChild = fdArr(); // FD's to use in the subprocess (close in parent)
child.otherFdParent = fdArr(); // FD's to use in the parent process (close in child)
if (additionalFds > 0) {
debugLog("adding Fds: " + additionalFds + "\n");
for (i = 0; i < additionalFds; i++) {
var fd = new pipefd();
rc = pipe(fd);
if (rc < 0) {
close(_in[0]);
close(_in[1]);
close(_out[0]);
close(_out[1]);
return -1;
}
if (options.pipes[i].readFd) {
debugLog("adding input fd: " + fd[1] + "\n");
child.otherFdChild[i] = fd[1];
child.otherFdParent[i] = fd[0];
}
else if (options.pipes[i].writeFd) {
debugLog("adding output fd: " + fd[0] + "\n");
child.otherFdChild[i] = fd[0];
child.otherFdParent[i] = fd[1];
}
}
}
child.otherFdChild[additionalFds] = 0;
let STDIN_FILENO = 0;
let STDOUT_FILENO = 1;
let STDERR_FILENO = 2;
let action = posix_spawn_file_actions_t();
posix_spawn_file_actions_init(action.address());
posix_spawn_file_actions_adddup2(action.address(), _in[0], STDIN_FILENO);
posix_spawn_file_actions_addclose(action.address(), _in[1]);
posix_spawn_file_actions_addclose(action.address(), _in[0]);
posix_spawn_file_actions_adddup2(action.address(), _out[1], STDOUT_FILENO);
posix_spawn_file_actions_addclose(action.address(), _out[1]);
posix_spawn_file_actions_addclose(action.address(), _out[0]);
if (!options.mergeStderr) {
posix_spawn_file_actions_adddup2(action.address(), _err[1], STDERR_FILENO);
posix_spawn_file_actions_addclose(action.address(), _err[1]);
posix_spawn_file_actions_addclose(action.address(), _err[0]);
}
// posix_spawn doesn't support setting a custom workdir for the child,
// so change the cwd in the parent process before launching the child process.
if (workdir) {
if (chdir(workdir) < 0) {
throw new Error("Unable to change workdir before launching child process");
}
}
closeOtherFds(action, _in[1], _out[0], options.mergeStderr ? undefined : _err[0]);
let id = pid_t(0);
let rv = posix_spawn(id.address(), command, action.address(), null, _args, _envp);
posix_spawn_file_actions_destroy(action.address());
if (rv !== 0) {
// we should not really end up here
if (!options.mergeStderr) {
close(_err[0]);
close(_err[1]);
}
close(_out[0]);
close(_out[1]);
close(_in[0]);
close(_in[1]);
throw new Error("Fatal - failed to create subprocess '" + command + "'");
}
pid = id.value;
close(_in[0]);
close(_out[1]);
if (!options.mergeStderr)
close(_err[1]);
child.stdin = _in[1];
child.stdout = _out[0];
child.stderr = options.mergeStderr ? undefined : _err[0];
child.pid = pid;
return pid;
}
// close any file descriptors that are not required for the process
function closeOtherFds(action, fdIn, fdOut, fdErr, otherFd, additionalFds) {
// Unfortunately on mac, any fd registered in posix_spawn_file_actions_addclose
// that can't be closed correctly will make posix_spawn fail...
// Even if we ensure registering only still opened fds.
if (gXulRuntime.OS == "Darwin")
return;
var maxFD = 256; // arbitrary max
var rlim_t = getPlatformValue(RLIM_T);
const RLIMITS = new ctypes.StructType("RLIMITS", [{
"rlim_cur": rlim_t
}, {
"rlim_max": rlim_t
}]);
try {
var getrlimit = libc.declare("getrlimit",
ctypes.default_abi,
ctypes.int,
ctypes.int,
RLIMITS.ptr
);
var rl = new RLIMITS();
if (getrlimit(getPlatformValue(RLIMIT_NOFILE), rl.address()) === 0) {
if (rl.rlim_cur < Math.pow(2, 20)) // ignore too high numbers
maxFD = rl.rlim_cur;
}
debugLog("getlimit: maxFD=" + maxFD + "\n");
}
catch (ex) {
debugLog("getrlimit: no such function on this OS\n");
debugLog(ex.toString());
}
// close any file descriptors
// fd's 0-2 + additional FDs are already closed
for (var i = 3 + additionalFds; i < maxFD; i++) {
let doClose = true;
if (i != fdIn && i != fdOut && i != fdErr) {
for (var j = 0; j < additionalFds; j++) {
if (i == otherFd[j]) doClose = false;
}
if (doClose) {
posix_spawn_file_actions_addclose(action.address(), i);
}
}
}
}
/*
* createWriter ()
*
* Create a ChromeWorker object for writing data to the subprocess' stdin
* pipe. The ChromeWorker object lives on a separate thread; this avoids
* internal deadlocks.
*/
function createWriter(fileDesc, workerNum) {
debugLog("Creating new writing worker " + workerNum + " for pipe " + fileDesc + "\n");
let wrk = new ChromeWorker("subprocess_worker_unix.js");
wrk.onmessage = function(event) {
switch (event.data.msg) {
case "info":
switch (event.data.data) {
case "WriteOK":
pendingWriteCount--;
debugLog("got OK from writing Worker " + workerNum + " - remaining count: " + pendingWriteCount + "\n");
break;
case "InitOK":
stdinOpenState[workerNum] = PIPE_STATE_OPEN;
debugLog("write pipe " + workerNum + " opened\n");
break;
case "ClosedOK":
stdinOpenState[workerNum] = PIPE_STATE_CLOSED;
debugLog("write pipe " + workerNum + " closed\n");
break;
default:
debugLog("got msg from write Worker: " + event.data.data + "\n");
}
break;
case "debug":
debugLog("write Worker " + workerNum + ": " + event.data.data + "\n");
break;
case "error":
LogError("got error from write Worker " + workerNum + ": " + event.data.data + "\n");
pendingWriteCount = 0;
stdinOpenState[workerNum] = PIPE_STATE_CLOSED;
exitCode = -2;
}
};
wrk.onerror = function(error) {
pendingWriteCount = 0;
exitCode = -2;
closeWriteHandle(wrk);
LogError("got error from write Worker " + workerNum + ": " + error.message + "\n");
};
var pipePtr = parseInt(fileDesc, 10);
wrk.postMessage({
msg: "init",
libc: options.libc,
pipe: pipePtr
});
return wrk;
}
/*
* writeToPipe()
* @writeWorker: worker object that processes the data
* @data: String containing the data to write
*
* Write data to the subprocess' stdin (equals to sending a request to the
* ChromeWorker object to write the data).
*/
function writeToPipe(workerNum, data) {
if (stdinOpenState[workerNum] == PIPE_STATE_CLOSED) {
LogError("trying to write data to closed stdin");
return;
}
++pendingWriteCount;
debugLog("sending " + data.length + " bytes to writing Worker " + workerNum + "\n");
writeWorker[workerNum].postMessage({
msg: 'write',
data: data
});
}
/*
* closeStdinHandle()
*
* Close the stdin pipe, either directly or by requesting the ChromeWorker to
* close the pipe. The ChromeWorker will only close the pipe after the last write
* request process is done.
*/
function closeWriteHandle(workerNum) {
debugLog("trying to close input pipe for worker " + workerNum + "\n");
if (stdinOpenState[workerNum] != PIPE_STATE_OPEN) return;
stdinOpenState[workerNum] = PIPE_STATE_CLOSEABLE;
if (writeWorker[workerNum]) {
debugLog("sending close stdin to worker " + workerNum + "\n");
writeWorker[workerNum].postMessage({
msg: 'close'
});
}
else {
stdinOpenState[workerNum] = PIPE_STATE_CLOSED;
debugLog("Closing Stdin for " + workerNum + "\n");
if (!workerNum)
if (close(child.stdin)) LogError("CloseHandle stdin failed");
else {
let wrk = 0;
for (let i = 0; i < options.pipes.length; i++) {
if (options.pipes[i].writeFd) {
++wrk;
if (wrk == workerNum) {
if (close(child.writeFdParent[i])) LogError("CloseHandle stdin failed");
}
}
}
}
}
}
/*
* createReader(pipe, name, callbackFunc)
*
* @pipe: handle to the pipe
* @name: String containing the pipe name (stdout or stderr)
* @callbackFunc: function to be called with the read data
*
* Create a ChromeWorker object for reading data asynchronously from
* the pipe (i.e. on a separate thread), and passing the result back to
* the caller.
*
*/
function createReader(pipe, name, callbackFunc) {
debugLog("Opening pipe: " + pipe + "\n");
var worker = new ChromeWorker("subprocess_worker_unix.js");
worker.onmessage = function(event) {
switch (event.data.msg) {
case "data":
debugLog("got " + event.data.count + " bytes from " + name + "\n");
var data = convertBytes(event.data.data, options.charset);
callbackFunc(data);
break;
case "done":
debugLog("Pipe " + name + " closed\n");
if (event.data.data !== 0) workerExitCode = event.data.data;
--readers;
if (readers === 0) cleanup();
break;
case "error":
LogError("Got error from " + name + ": " + event.data.data);
exitCode = -2;
break;
default:
debugLog("Got msg from " + name + ": " + event.data.data + "\n");
}
};
worker.onerror = function(error) {
LogError("Got error from " + name + ": " + error.message);
exitCode = -2;
};
worker.postMessage({
msg: 'read',
pipe: pipe,
pid: pid,
libc: options.libc,
charset: !options.charset ? "null" : options.charset,
bufferedOutput: options.bufferedOutput,
name: name
});
return worker;
}
/*
* readPipes()
*
* Open the pipes for reading from stdout and stderr
*/
function readPipes() {
stdoutWorker = createReader(child.stdout, "stdout", function(data) {
if (options.stdout) {
setTimeout(function() {
options.stdout(data);
}, 0);
}
else {
output += data;
}
});
if (!options.mergeStderr) stderrWorker = createReader(child.stderr, "stderr", function(data) {
if (options.stderr) {
setTimeout(function() {
options.stderr(data);
}, 0);
}
else {
error += data;
}
});
function flusher(pipe) {
return function(data) {
setTimeout(function() {
pipe.readFd(data);
}, 0);
};
}
if (options.pipes) {
for (let i = 0; i < options.pipes.length; i++) {
if (typeof(options.pipes[i].readFd) == "function") {
let pipe = options.pipes[i];
let wrk = createReader(child.otherFdParent[i], "fd_" + (i + 3), flusher(pipe));
readFdWorker.push(wrk);
}
}
}
}
function cleanup() {
debugLog("Cleanup called\n");
var i;
if (active) {
active = false;
for (i = 0; i < writeWorker.length; i++) {
if (writeWorker[i])
closeWriteHandle(i); // should only be required in case of errors
}
var result, status = ctypes.int();
result = waitpid(child.pid, status.address(), 0);
if (exitCode > -2) {
if (result > 0)
exitCode = status.value;
else
if (workerExitCode >= 0)
exitCode = workerExitCode;
else
exitCode = status.value;
}
exitCode = exitCode % 0xFF;
for (i = 0; i < writeWorker.length; i++) {
if (writeWorker[i])
writeWorker[i].postMessage({
msg: 'stop'
});
}
setTimeout(function _done() {
if (options.done) {
try {
options.done({
exitCode: exitCode,
stdout: output,
stderr: error
});
}
catch (ex) {
// prevent from blocking if options.done() throws an error
done = true;
throw ex;
}
}
done = true;
}, 0);
libc.close();
}
}
/**
* Start wrinting on a pipe. The corresponding worker needs to exist.
* @workerNum: Number of the worker (0 = stdin)
* @pipeWriteFunc: Function or String that writes data to the pipe
*/
function startWriting(workerNum, pipeWriteFunc) {
debugLog("startWriting called for " + workerNum + "\n");
if (stdinOpenState[workerNum] == PIPE_STATE_NOT_INIT) {
setTimeout(function _f() {
startWriting(workerNum, pipeWriteFunc);
}, 2);
return;
}
if (typeof(pipeWriteFunc) == 'function') {
try {
pipeWriteFunc({
write: function(data) {
writeToPipe(workerNum, data);
},
close: function() {
closeWriteHandle(workerNum);
}
});
}
catch (ex) {
// prevent from failing if options.stdin() throws an exception
closeWriteHandle(workerNum);
throw ex;
}
}
else {
debugLog("writing <" + pipeWriteFunc + "> to " + workerNum + "\n");
writeToPipe(workerNum, pipeWriteFunc);
closeWriteHandle(workerNum);
}
}
//main
var cmdStr = getCommandStr(options.command);
var workDir = getWorkDir(options.workdir);
child = {};
pid = popen(cmdStr, workDir, options.arguments, options.environment, child);
debugLog("subprocess started; got PID " + pid + "\n");
readPipes();
var workerNum = 0;
if (options.stdin) {
writeWorker[0] = createWriter(child.stdin, 0);
startWriting(0, options.stdin);
++workerNum;
}
else
closeWriteHandle(0);
if (options.pipes) {
for (let i = 0; i < options.pipes.length; i++) {
if (options.pipes[i].writeFd) {
stdinOpenState.push(PIPE_STATE_NOT_INIT);
writeWorker.push(createWriter(child.otherFdParent[i], workerNum));
startWriting(workerNum, options.pipes[i].writeFd);
++workerNum;
}
}
}
return {
wait: function() {
// wait for async operations to complete
var thread = Cc['@mozilla.org/thread-manager;1'].getService(Ci.nsIThreadManager).currentThread;
while (!done) thread.processNextEvent(true);
return exitCode;
},
kill: function(hardKill) {
if (!active) return true;
var rv = kill(pid, (hardKill ? 9 : 15));
cleanup(-1);
return rv;
}
};
}
enigmail/ipc/modules/subprocess_worker_unix.js 0000664 0000000 0000000 00000024374 12667016244 0022272 0 ustar 00root root 0000000 0000000 /*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
* ChromeWorker Object subprocess.jsm on Unix-like systems (Linux, Mac OS X, ...)
* to process stdin/stdout/stderr on separate threads.
*
*/
// Being a ChromeWorker object, implicitly uses the following:
// Components.utils.import("resource://gre/modules/ctypes.jsm");
/* global ctypes: false, onmessage: true */
"use strict";
const BufferSize = 1024;
const MaxBufferLen = 102400;
var libc = null;
var libcFunc = {};
var WritePipeHandle = null;
/*
struct pollfd {
int fd; // file descriptor
short events; // events to look for
short revents; // events returned
};
*/
var pollfd = new ctypes.StructType("pollfd", [{
'fd': ctypes.int
}, {
'events': ctypes.short
}, {
'revents': ctypes.short
}]);
var WriteBuffer = ctypes.uint8_t.array(BufferSize);
var ReadBuffer = ctypes.uint8_t.array(BufferSize);
const POLLIN = 0x0001;
const POLLOUT = 0x0004;
const POLLERR = 0x0008; // some poll error occurred
const POLLHUP = 0x0010; // file descriptor was "hung up"
const POLLNVAL = 0x0020; // requested events "invalid"
const WNOHANG = 0x01;
const ECHILD = 10;
const EPIPE = 32; /* Broken pipe */
const EAGAIN = 35; /* Resource temporarily unavailable */
const EINPROGRESS = 36; /* Operation now in progress */
const EALREADY = 37; /* Operation already in progress */
const pid_t = ctypes.int32_t;
const INDEFINITE = -1;
const NOWAIT = 0;
const WAITTIME = 200; // wait time for poll() in ms
function initLibc(libName) {
postMessage({
msg: "debug",
data: "initialising library with " + libName
});
libc = ctypes.open(libName);
libcFunc.pollFds = pollfd.array(1);
// int poll(struct pollfd fds[], nfds_t nfds, int timeout);
libcFunc.poll = libc.declare("poll",
ctypes.default_abi,
ctypes.int,
libcFunc.pollFds,
ctypes.unsigned_int,
ctypes.int);
//ssize_t write(int fd, const void *buf, size_t count);
// NOTE: buf is declared as array of unsigned int8 instead of char to avoid
// implicit charset conversion
libcFunc.write = libc.declare("write",
ctypes.default_abi,
ctypes.int,
ctypes.int,
WriteBuffer,
ctypes.int);
//int read(int fd, void *buf, size_t count);
libcFunc.read = libc.declare("read",
ctypes.default_abi,
ctypes.int,
ctypes.int,
ReadBuffer,
ctypes.int);
//int pipe(int pipefd[2]);
libcFunc.pipefd = ctypes.int.array(2);
//int close(int fd);
libcFunc.close = libc.declare("close",
ctypes.default_abi,
ctypes.int,
ctypes.int);
//pid_t waitpid(pid_t pid, int *status, int options);
libcFunc.waitpid = libc.declare("waitpid",
ctypes.default_abi,
pid_t,
pid_t,
ctypes.int.ptr,
ctypes.int);
}
function createNpeError() {
let e = new Error("NULL Poiner", "npeError", 1);
try {
// throw an error and catch it to get a stack trace
throw e;
}
catch (ex) {
postMessage({
msg: "error",
data: "Got NULL pointer error\n" + ex.stack
});
}
return;
}
function closePipe(pipe) {
if (!pipe) {
createNpeError();
return;
}
libcFunc.close(pipe);
}
function writePipe(pipe, data) {
postMessage({
msg: "debug",
data: "trying to write to " + pipe
});
let numChunks = Math.floor(data.length / BufferSize);
let pData = new WriteBuffer();
for (var chunk = 0; chunk <= numChunks; chunk++) {
let numBytes = chunk < numChunks ? BufferSize : data.length - chunk * BufferSize;
for (var i = 0; i < numBytes; i++) {
pData[i] = data.charCodeAt(chunk * BufferSize + i) % 256;
}
let bytesWritten = libcFunc.write(pipe, pData, numBytes);
if (bytesWritten != numBytes) {
postMessage({
msg: "error",
data: "error: write failed, errno=" + ctypes.errno
});
closePipe(pipe);
libc.close();
close();
}
}
postMessage({
msg: "info",
data: "wrote " + data.length + " bytes of data"
});
}
function readString(data, length, charset) {
var r = '';
for (var i = 0; i < length; i++) {
if (data[i] === 0 && charset != "null") // stop on NULL character for non-binary data
break;
r += String.fromCharCode(data[i]);
}
// For non-UTF-8 strings, the next read always starts at the beginning.
data[0] = 0;
return r;
}
function readUtf8(data, length) {
// This function provides better performance for UTF-8 strings by using
// the readStringReplaceMalformed() method available on CData string
// objects. Before we can call it, though, we have to check the end of
// the string to see if we only read part of a multi-byte character.
var endChar = [];
if (data[length - 1] >= 0x80) {
// Collect all bytes from the last character if it's a non-ASCII.
for (let i = length - 1; i >= 0; i--) {
endChar.unshift(data[i]);
if (data[i] >= 0xc0) break;
}
// Find out how long the character should be from the first byte.
var leadingOne = 0x20;
var numBytes = 2;
while (endChar[0] & leadingOne) {
numBytes++;
leadingOne >>= 1;
}
// If we read the full character, we don't need to do anything special.
if (endChar.length == numBytes) endChar = [];
}
// Mark the end of the string, excluding any trailing partial character.
data[length - endChar.length] = 0;
var r = data.readStringReplaceMalformed();
// Place the partial character at the beginning for the next read.
let i = 0;
endChar.forEach(function(v) {
data[i++] = v;
});
// Place a null character to mark where the next read should start.
data[i] = 0;
return r;
}
function readPipe(pipe, charset, pid, bufferedOutput) {
var p = new libcFunc.pollFds();
p[0].fd = pipe;
p[0].events = POLLIN | POLLERR | POLLHUP;
p[0].revents = 0;
var pollTimeout = WAITTIME;
var exitCode = -1;
var readCount = 0;
var result, status = ctypes.int();
result = 0;
var dataStr = "";
var dataObj = {};
var line = new ReadBuffer();
const i = 0;
while (true) {
if (result === 0) {
result = libcFunc.waitpid(pid, status.address(), WNOHANG);
if (result > 0) {
pollTimeout = NOWAIT;
exitCode = parseInt(status.value, 10);
postMessage({
msg: "debug",
data: "waitpid signaled subprocess stop, exitcode=" + status.value
});
}
else if (result < 0) {
postMessage({
msg: "debug",
data: "waitpid returned with errno=" + ctypes.errno
});
if (ctypes.errno == ECHILD) {
pollTimeout = NOWAIT;
}
}
}
p[i].revents = 0;
var r = libcFunc.poll(p, 1, pollTimeout);
if (pollTimeout == NOWAIT) {
readCount = 0;
}
if (r > 0) {
if (p[i].revents & POLLIN) {
// postMessage({msg: "debug", data: "reading next chunk"});
readCount = readPolledFd(p[i].fd, line, charset, dataObj);
if (!bufferedOutput)
postMessage({
msg: "data",
data: dataObj.value,
count: dataObj.value.length
});
else {
dataStr += dataObj.value;
if (dataStr.length > MaxBufferLen) {
postMessage({
msg: "data",
data: dataStr,
count: dataStr.length
});
dataStr = "";
}
}
if (readCount === 0) break;
}
if (p[i].revents & POLLHUP) {
postMessage({
msg: "debug",
data: "poll returned HUP"
});
break;
}
else if (p[i].revents & POLLERR) {
postMessage({
msg: "error",
data: "poll returned error"
});
break;
}
else if (p[i].revents != POLLIN) {
postMessage({
msg: "error",
data: "poll returned " + p[i]
});
break;
}
}
else
if (pollTimeout == NOWAIT || r < 0) break;
}
// continue reading until the buffer is empty
while (readCount > 0) {
readCount = readPolledFd(pipe, line, charset, dataObj);
if (!bufferedOutput)
postMessage({
msg: "data",
data: dataObj.value,
count: dataObj.value.length
});
else
dataStr += dataObj.value;
libcFunc.poll(p, 1, NOWAIT);
}
if (bufferedOutput)
postMessage({
msg: "data",
data: dataStr,
count: dataStr.length
});
libcFunc.close(pipe);
postMessage({
msg: "done",
data: exitCode
});
libc.close();
close();
}
function readPolledFd(pipe, line, charset, dataObj) {
// Start reading at first null byte (line might begin with an
// incomplete UTF-8 character from the previous read).
var offset = 0;
while (line[offset] !== 0) offset++;
var r = libcFunc.read(pipe, line.addressOfElement(offset), BufferSize - offset - 1);
if (r > 0) {
var readStringFunc = charset == "UTF-8" ? readUtf8 : readString;
var c = readStringFunc(line, r + offset, charset);
dataObj.value = c;
}
else
dataObj.value = "";
return r;
}
onmessage = function(event) {
switch (event.data.msg) {
case "init":
if (!event.data.pipe) {
createNpeError();
return;
}
WritePipeHandle = event.data.pipe;
initLibc(event.data.libc);
postMessage({
msg: "info",
data: "InitOK"
});
break;
case "read":
if (!event.data.pipe) {
createNpeError();
return;
}
initLibc(event.data.libc);
readPipe(event.data.pipe, event.data.charset, event.data.pid, event.data.bufferedOutput);
break;
case "write":
// data contents:
// msg: 'write'
// data: the data (string) to write
// pipe: ptr to pipe
writePipe(WritePipeHandle, event.data.data);
postMessage({
msg: "info",
data: "WriteOK"
});
break;
case "close":
postMessage({
msg: "debug",
data: "closing input pipe\n"
});
closePipe(WritePipeHandle);
postMessage({
msg: "info",
data: "ClosedOK"
});
break;
case "stop":
libc.close(); // do not use libc after this point
close();
break;
default:
throw ("error: Unknown command" + event.data.msg + "\n");
}
return;
};
enigmail/ipc/modules/subprocess_worker_win.js 0000664 0000000 0000000 00000017020 12667016244 0022072 0 ustar 00root root 0000000 0000000 /*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
* ChromeWorker Object subprocess.jsm on Windows to process stdin/stdout/stderr
* on separate threads.
*
*/
// Being a ChromeWorker object, implicitly uses the following:
// Components.utils.import("resource://gre/modules/ctypes.jsm");
/* global ctypes: false, onmessage: true */
"use strict";
const BufferSize = 1024;
const MaxBufferLen = 102400;
const BOOL = ctypes.bool;
const HANDLE = ctypes.size_t;
const DWORD = ctypes.uint32_t;
const LPDWORD = DWORD.ptr;
const PVOID = ctypes.voidptr_t;
const LPVOID = PVOID;
/*
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
*/
const OVERLAPPED = new ctypes.StructType("OVERLAPPED");
var ReadFileBuffer = ctypes.uint8_t.array(BufferSize);
var WriteFileBuffer = ctypes.uint8_t.array(BufferSize);
var kernel32dll = null;
var libFunc = {};
function initLib(libName) {
var WinABI;
if (ctypes.size_t.size == 8) {
WinABI = ctypes.default_abi;
}
else {
WinABI = ctypes.winapi_abi;
}
kernel32dll = ctypes.open(libName);
/*
BOOL WINAPI WriteFile(
__in HANDLE hFile,
__in LPCVOID lpBuffer,
__in DWORD nNumberOfBytesToWrite,
__out_opt LPDWORD lpNumberOfBytesWritten,
__inout_opt LPOVERLAPPED lpOverlapped
);
NOTE: lpBuffer is declared as array of unsigned int8 instead of char to avoid
implicit charset conversion
*/
libFunc.WriteFile = kernel32dll.declare("WriteFile",
WinABI,
BOOL,
HANDLE,
WriteFileBuffer,
DWORD,
LPDWORD,
OVERLAPPED.ptr
);
/*
BOOL WINAPI ReadFile(
__in HANDLE hFile,
__out LPVOID ReadFileBuffer,
__in DWORD nNumberOfBytesToRead,
__out_opt LPDWORD lpNumberOfBytesRead,
__inout_opt LPOVERLAPPED lpOverlapped
);
*/
libFunc.ReadFile = kernel32dll.declare("ReadFile",
WinABI,
BOOL,
HANDLE,
ReadFileBuffer,
DWORD,
LPDWORD,
OVERLAPPED.ptr
);
/*
BOOL WINAPI CloseHandle(
__in HANDLE hObject
);
*/
libFunc.CloseHandle = kernel32dll.declare("CloseHandle",
WinABI,
BOOL,
HANDLE
);
}
// Windows error codes
const ERROR_HANDLE_EOF = 38;
const ERROR_BROKEN_PIPE = 109;
function writePipe(pipe, data) {
var bytesWritten = DWORD(0);
var pData = new WriteFileBuffer();
var numChunks = Math.floor(data.length / BufferSize);
for (var chunk = 0; chunk <= numChunks; chunk++) {
var numBytes = chunk < numChunks ? BufferSize : data.length - chunk * BufferSize;
for (var i = 0; i < numBytes; i++) {
pData[i] = data.charCodeAt(chunk * BufferSize + i) % 256;
}
var r = libFunc.WriteFile(pipe, pData, numBytes, bytesWritten.address(), null);
if (bytesWritten.value != numBytes)
throw ("error: wrote " + bytesWritten.value + " instead of " + numBytes + " bytes");
}
postMessage("wrote " + data.length + " bytes of data");
}
function readString(data, length, charset) {
var r = '';
for (var i = 0; i < length; i++) {
if (data[i] === 0 && charset != "null") // stop on NULL character for non-binary data
break;
r += String.fromCharCode(data[i]);
}
// For non-UTF-8 strings, the next read always starts at the beginning.
data[0] = 0;
return r;
}
function readUtf8(data, length) {
// This function provides better performance for UTF-8 strings by using
// the readStringReplaceMalformed() method available on CData string
// objects. Before we can call it, though, we have to check the end of
// the string to see if we only read part of a multi-byte character.
var endChar = [];
if (data[length - 1] >= 0x80) {
// Collect all bytes from the last character if it's a non-ASCII.
for (let i = length - 1; i >= 0; i--) {
endChar.unshift(data[i]);
if (data[i] >= 0xc0) break;
}
// Find out how long the character should be from the first byte.
var leadingOne = 0x20;
var numBytes = 2;
while (endChar[0] & leadingOne) {
numBytes++;
leadingOne >>= 1;
}
// If we read the full character, we don't need to do anything special.
if (endChar.length == numBytes) endChar = [];
}
// Mark the end of the string, excluding any trailing partial character.
data[length - endChar.length] = 0;
var r = data.readStringReplaceMalformed();
// Place the partial character at the beginning for the next read.
let i = 0;
endChar.forEach(function(v) {
data[i++] = v;
});
// Place a null character to mark where the next read should start.
data[i] = 0;
return r;
}
function readPipe(pipe, charset, bufferedOutput) {
var dataStr = "";
var bytesRead = DWORD(0);
var line = new ReadFileBuffer();
var readStringFunc = charset == "UTF-8" ? readUtf8 : readString;
while (true) {
// Start reading at first null byte (line might begin with an
// incomplete UTF-8 character from the previous read).
var offset = 0;
while (line[offset] !== 0) offset++;
var r = libFunc.ReadFile(
pipe, line.addressOfElement(offset), BufferSize - offset - 1,
bytesRead.address(), null
);
if (!r) {
// stop if we get an error (such as EOF reached)
let lastErr = ctypes.winLastError;
switch (lastErr) {
case ERROR_HANDLE_EOF:
case ERROR_BROKEN_PIPE:
postMessage({
msg: "info",
data: "EOF reached"
});
break;
default:
postMessage({
msg: "error",
data: "Windows error " + lastErr
});
}
break;
}
if (bytesRead.value > 0) {
var c = readStringFunc(line, bytesRead.value + offset, charset);
if (!bufferedOutput)
postMessage({
msg: "data",
data: c,
count: c.length
});
else {
dataStr += c;
if (dataStr.length > MaxBufferLen) {
postMessage({
msg: "data",
data: dataStr,
count: dataStr.length
});
dataStr = "";
}
}
}
else {
break;
}
}
if (bufferedOutput)
postMessage({
msg: "data",
data: dataStr,
count: dataStr.length
});
libFunc.CloseHandle(pipe);
postMessage({
msg: "done"
});
kernel32dll.close();
close();
}
onmessage = function(event) {
let pipePtr;
switch (event.data.msg) {
case "init":
initLib(event.data.libc);
postMessage("InitOK");
break;
case "write":
// data contents:
// msg: 'write'
// data: the data (string) to write
// pipe: ptr to pipe
pipePtr = HANDLE.ptr(event.data.pipe);
writePipe(pipePtr.contents, event.data.data);
postMessage("WriteOK");
break;
case "read":
initLib(event.data.libc);
pipePtr = HANDLE.ptr(event.data.pipe);
readPipe(pipePtr.contents, event.data.charset, event.data.bufferedOutput);
break;
case "close":
pipePtr = HANDLE.ptr(event.data.pipe);
postMessage("closing stdin\n");
if (libFunc.CloseHandle(pipePtr.contents)) {
postMessage("ClosedOK");
}
else
postMessage("Could not close stdin handle");
break;
case "stop":
kernel32dll.close();
close();
break;
default:
throw ("error: Unknown command" + event.data.msg + "\n");
}
return;
};
enigmail/ipc/readme.os2 0000664 0000000 0000000 00000001362 12667016244 0015312 0 ustar 00root root 0000000 0000000 IPC for OS/2 and eComstation
=================================
BUILD INSTRUCTIONS
---------------------------------
To build IPC for OS/2, you must first create Makefiles with the included
MAKEMAKE.CMD script. The script accepts the following arguments.
MAKEMAKE.CMD [/R] [ObjDir]
/R: build recursively all Makefiles
ObjDir: should correspond to the MOZ_OBJDIR parameter of your .mozconfig, if
defined.
Then, simply go to %MOZ_OBJDIR\extensions\ipc and do a make.
CONTACTS
---------------------------------
For questions specific to the OS/2 port of IPC, contact Davide Bresolin at
davide@teamos2.it.
For general questions about Enigmail, see the official enigmail web site at
http://www.enigmail.net
enigmail/ipc/tests/ 0000775 0000000 0000000 00000000000 12667016244 0014570 5 ustar 00root root 0000000 0000000 enigmail/ipc/tests/.eslintrc.js 0000664 0000000 0000000 00000000067 12667016244 0017032 0 ustar 00root root 0000000 0000000 module.exports = {
"rules": {
"strict": 0,
}
}
enigmail/ipc/tests/IpcCat.pl 0000775 0000000 0000000 00000003223 12667016244 0016273 0 ustar 00root root 0000000 0000000 #!perl
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# Helper tool to read or write data to/from stdin/stdout
#
# Usage:
# IpcCat {write|read|dump|getenv} arg
#
# Parameters:
# write: read from stdin and write to file
# read: read from file and write to stdout
# dump: read from stdin; write to stdout
# getenv: print value of environment variable
#
# Exit codes:
# 0: success
# > 0: failure
use Env;
sub readFile {
my $fn = $_[0];
open IN, $fn or die $!;
my $r = "";
while () {
$r .= $_;
}
close IN;
return $r;
}
if ($#ARGV < 0) {
exit(1);
}
#$| = 1; # disable buffering of output
# wait a little before doing anything
select(undef, undef, undef, 0.1);
if ($ARGV[0] =~ /^dump$/i) {
print STDERR "Starting dump\n";
my $buf = readFile("-");
print $buf;
print STDERR sprintf("Dumped %d bytes\n", length($buf));
}
elsif ($ARGV[0] =~ /^read$/i) {
print STDERR "Starting read\n";
my $buf = readFile($ARGV[1]);
print $buf;
print STDERR sprintf("Read %d bytes\n", length($buf));
}
elsif ($ARGV[0] =~ /^write$/i) {
my $of = $ARGV[1];
open(OF, ">$of") or die $!;
print STDERR "Starting write\n";
my $buf = readFile("-");
print OF $buf;
close(OF);
print STDERR sprintf("Wrote %d bytes\n", length($buf));
}
elsif ($ARGV[0] =~ /^getenv$/i) {
print STDERR sprintf("Reading environment variable %s\n", $ARGV[1]);
print STDOUT $ENV{$ARGV[1]};
}
else {
print STDERR "Invalid arguments\n";
exit(1);
}
exit(0);
enigmail/ipc/tests/Makefile 0000664 0000000 0000000 00000000530 12667016244 0016226 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ../..
include $(DEPTH)/config/autoconf.mk
UNITTEST =
ifneq ($(TB_PATH),"")
UNITTEST = $(JSUNIT) main.js
endif
all:
$(UNITTEST)
enigmail/ipc/tests/main.js 0000664 0000000 0000000 00000000452 12667016244 0016053 0 ustar 00root root 0000000 0000000 /*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/* global do_subtest:false */
// the subprocess tests
do_subtest("subprocess-test.js");
enigmail/ipc/tests/subprocess-test.js 0000664 0000000 0000000 00000016362 12667016244 0020303 0 ustar 00root root 0000000 0000000 /* global Components: false, Assert: false, do_get_file: false, do_print: false, do_get_cwd: false */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/**
* This file tests the implementation of subprocess.jsm
*/
Components.utils.import("resource://enigmail/subprocess.jsm"); /* global subprocess: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
var gTestLines;
var gResultData;
var gResultStdErr;
function run_test() {
var isWindows = ("@mozilla.org/windows-registry-key;1" in Components.classes);
var dataFile = do_get_file("ipc-data.txt", true);
var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
var plPath = env.get("PL_PATH");
Assert.ok(plPath.length > 0, "PL_PATH length is > 0");
if (plPath.length === 0) throw "perl path undefined";
var pl = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
pl.initWithPath(plPath);
if (!pl.exists())
throw "Could not locate the perl executable";
var processDir = do_get_cwd();
var cmd = processDir.clone();
cmd.append("IpcCat.pl");
if (!cmd.exists())
throw "Could not locate the IpcCat.pl helper executable";
var dirSvc = Cc["@mozilla.org/file/directory_service;1"].
getService(Ci.nsIProperties).
QueryInterface(Ci.nsIDirectoryService);
var greDir = dirSvc.get("GreD", Ci.nsIFile);
var envList = [
"DYLD_LIBRARY_PATH=" + greDir.path, // for Mac
"LD_LIBRARY_PATH=" + greDir.path // for Linux
];
var eol = isWindows ? "\r\n" : "\n";
gTestLines = ["Writing example data" + eol,
"Writing something more" + eol,
"And yet some more text" + eol
];
/////////////////////////////////////////////////////////////////
// Test standard scenario
/////////////////////////////////////////////////////////////////
do_print("Standard scenario");
gResultData = "";
gResultStdErr = "";
var p = subprocess.call({
command: pl,
arguments: [cmd.path, 'dump'],
environment: envList,
stdin: function(pipe) {
for (var i = 0; i < gTestLines.length; i++) {
pipe.write(gTestLines[i]);
}
pipe.close();
},
stdout: function(data) {
gResultData += data;
},
stderr: function(data) {
gResultStdErr += data;
},
done: function(result) {
Assert.equal(0, result.exitCode, "exit code");
},
mergeStderr: false
});
p.wait();
Assert.equal(
gTestLines.join(""),
gResultData,
"result matching"
);
let len = gTestLines.join("").length;
if (isWindows) {
len -= gTestLines.length;
}
Assert.equal(
"Starting dump\nDumped " + len + " bytes\n",
gResultStdErr.replace(/\r\n/g, "\n"),
"stderr result matching"
);
/////////////////////////////////////////////////////////////////
// Test mergeStderr=true & stdin as string
/////////////////////////////////////////////////////////////////
do_print("mergeStderr=true & stdin as string");
gResultData = "";
p = subprocess.call({
command: pl,
arguments: [cmd.path, 'dump'],
environment: envList,
stdin: gTestLines.join(""),
stdout: function(data) {
gResultData += data;
},
stderr: function(data) {
Assert.ok(false, "Got unexpected data '" + data + "' on stderr\n");
},
done: function(result) {
Assert.equal(0, result.exitCode, "exit code");
},
mergeStderr: true
});
p.wait();
Assert.equal(gTestLines.join("").length + (isWindows ? 32 : 30), gResultData.length, "comparing result");
/////////////////////////////////////////////////////////////////
// Test with workdir & no stderr
/////////////////////////////////////////////////////////////////
do_print("workdir & no stderr");
gResultData = "";
p = subprocess.call({
command: pl,
arguments: [cmd.path, 'dump'],
environment: envList,
workdir: do_get_file(".", true),
stdin: function(pipe) {
for (var i = 0; i < gTestLines.length; i++) {
pipe.write(gTestLines[i]);
}
pipe.close();
},
done: function(result) {
gResultData = result.stdout;
Assert.equal(0, result.exitCode, "exit code");
},
mergeStderr: false
});
p.wait();
Assert.equal(gTestLines.join(""), gResultData, "comparing result");
/////////////////////////////////////////////////////////////////
// Test exit code != 0
/////////////////////////////////////////////////////////////////
gResultData = "";
gResultStdErr = "";
p = subprocess.call({
command: pl,
arguments: [cmd.path, 'wrong', 'arguments'],
environment: envList,
stdin: "Dummy text",
stdout: function(data) {
gResultData += data;
},
stderr: function(data) {
gResultStdErr += data;
},
done: function(result) {},
mergeStderr: false
});
var exitCode = p.wait();
// Assert.notEqual(0, exitCode, "expecting non-zero exit code"); // fails from time to time
Assert.equal("", gResultData, "comapring result");
gResultStdErr = gResultStdErr.replace(/\r\n/g, "\n");
Assert.equal(18, gResultStdErr.length, "check error message");
/////////////////////////////////////////////////////////////////
// Test minimal scenario with stdout only
/////////////////////////////////////////////////////////////////
do_print("minimal scenario with stdin and stdout separately");
gResultData = "";
gResultStdErr = "";
p = subprocess.call({
command: pl,
arguments: [cmd.path, 'write', dataFile.path],
stdin: gTestLines.join("")
});
p.wait();
p = subprocess.call({
command: pl,
arguments: [cmd.path, 'read', dataFile.path],
environment: envList,
stdin: "",
stdout: function(data) {
gResultData += data;
}
});
p.wait();
Assert.equal(gTestLines.join(""), gResultData, "read file");
/////////////////////////////////////////////////////////////////
// Test minimal scenario with done only
/////////////////////////////////////////////////////////////////
do_print("minimal scenario with done only");
gResultData = "";
gResultData = "";
p = subprocess.call({
command: pl,
charset: null,
arguments: [cmd.path, 'read', dataFile.path],
environment: envList,
done: function(result) {
gResultData = result.stdout;
gResultStdErr = result.stderr.replace(/\r\n/g, "\n");
Assert.equal(0, result.exitCode, "exit code");
Assert.equal(gTestLines.join(""), gResultData, "stdout");
Assert.equal(gResultStdErr.length, 28, "stderr");
}
});
p.wait();
/////////////////////////////////////////////////////////////////
// Test environment variables
/////////////////////////////////////////////////////////////////
do_print("environment variables");
gTestLines = ["This is a test variable"];
envList.push("TESTVAR=" + gTestLines[0]);
gResultData = "";
p = subprocess.call({
command: pl.path,
arguments: [cmd.path, 'getenv', 'TESTVAR'],
cwd: do_get_file(".", true),
environment: envList,
done: function(result) {
gResultData = result.stdout;
Assert.equal(0, result.exitCode, "exit code");
},
mergeStderr: false
});
p.wait();
Assert.equal(gTestLines.join(""), gResultData, "variable comparison");
}
enigmail/lang/ 0000775 0000000 0000000 00000000000 12667016244 0013574 5 ustar 00root root 0000000 0000000 enigmail/lang/Makefile 0000664 0000000 0000000 00000002062 12667016244 0015234 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ..
define copyLang =
mkdir -p $(BUILD)/lang/$^
endef
DO_FIX_LANG =
NO_GEN_FILES =
include ../config/autoconf.mk
ifneq ($(FIX_LANGUAGES),no)
DO_FIX_LANG = prepFiles
else
NO_GEN_FILES = -ng
endif
all: jar
ifneq ($(ENABLE_LANG),no)
languages = $(shell cat current-languages.txt)
EXPORT_CMD = $(PERL) $(DEPTH)/util/make-lang-xpi.pl $(NO_GEN_FILES) current-languages.txt $(BUILD)/lang
else
languages =
EXPORT_CMD = echo "" > $(BUILD)/lang/jar.mn
endif
prepFiles:
for l in $(languages); do \
$(PERL) $(DEPTH)/util/fixlang.pl $(DEPTH)/ui/locale/en-US $$l; \
done
export: $(DO_FIX_LANG)
mkdir -p $(BUILD)/lang
$(EXPORT_CMD)
jar: export
$(PYTHON) ../util/JarMaker.py -j $(DIST)/chrome -t . -f jar $(BUILD)/lang/jar.mn
clean:
for l in $(languages); do \
rm -f $$l/enigmail.dtd.gen $$l/enigmail.properties.gen; \
done
rm -f $(BUILD)/lang/jar.mn
enigmail/lang/ar/ 0000775 0000000 0000000 00000000000 12667016244 0014176 5 ustar 00root root 0000000 0000000 enigmail/lang/ar/am-enigprefs.properties 0000664 0000000 0000000 00000000125 12667016244 0020667 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=خصوصية OpenPGP
enigmail/lang/ar/enigmail.dtd 0000664 0000000 0000000 00000100002 12667016244 0016451 0 ustar 00root root 0000000 0000000
Ù…Ù„Ø§ØØ¸Ø©: قد يستغرق توليد Ø§Ù„Ù…ÙØªØ§Ø بضع دقائق ليتم. لا تغلق التطبيق أثناء توليد Ø§Ù„Ù…ÙØªØ§Ø. Ø§Ù„ØªØµÙØ بنشاط أو إجراء عمليات تستخدم القرص Ø¨ÙƒØ«Ø§ÙØ© Ù…Ùيد لملء 'وعاء العشوائية' ÙˆØ³ÙŠÙØ³Ø±Ù‘ÙØ¹ التوليد. ستبلّغ عندما يتم التوليد.">
' غير مقبول">
Ù…Ù„Ø§ØØ¸Ø©: قد يستغرق توليد Ø§Ù„Ù…ÙØªØ§Ø بضع دقائق ليتم. لا تغلق التطبيق أثناء توليد Ø§Ù„Ù…ÙØªØ§Ø. ستبلّغ٠عند تمام التوليد.">
Ù„Ø§ØØ¸: سيقوم Enigmail دائما بالتØÙ‚Ù‚ من التوقيعات على البريد لكل ØØ³Ø§Ø¨ أو هوية، بغض النظر عن ØªÙØ¹ÙŠÙ„ها من عدمه">
شكرًا لاستخدامك Enigmail.">
enigmail/lang/ar/enigmail.properties 0000664 0000000 0000000 00000066135 12667016244 0020114 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=تنبيه Enigmail
enigConfirm=تأكيد Enigmail
enigError=عطل Enigmail
enigPrompt=Ù…ØØ« Enigmail
dlgYes=&نعم
dlgNo=&لا
dlgKeepSetting=تذكر إجابتي ولا تسألني ثانية
dlgNoPrompt=لا تظهر هذا الØÙˆØ§Ø± ثانية
dlg.button.delete=ا&ØØ°Ù
dlg.button.cancel=أل&غÙ
dlg.button.close=أغل&ق
dlg.button.continue=وا&صل
dlg.button.skip=أغ&ÙÙ„
dlg.button.view=&عاين
repeatPrefix=\n\nسيتكرر هذا التنبيه %S
repeatSuffixSingular=مرة أخرى.
repeatSuffixPlural=مرات أخرى.
noRepeat=\n\nلن يتكرر هذا التنبيه إلى أن ØªØØ¯Ù‘ÙØ« Enigmail.
pgpNotSupported=يبدو أنك تستخدم Enigmail مع PGP 6.x\n\nÙ„Ù„Ø£Ø³ÙØŒ PGP 6.x به بعض الأمر التي تمنع Enigmail من العمل جيدا. لذا لم يعد Enigmail يدعم PGP 6.xØŒ من ÙØ¶Ù„Ùƒ انتقل إلى GnuPG (GPG) كبديل.\n\nإذا Ø§ØØªØ¬Øª للمساعدة ØÙˆÙ„ الانتقال إلى GnuPGØŒ راجع قسم المساعدة ÙÙŠ موقع Enigmail.
passphraseCleared=لم تÙÙ…Ø ÙƒÙ„Ù…Ø© السر
noPhotoAvailable=لا توجد صور
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Photo path '%S' is not readable
usingVersion=ÙŠÙØ´ØºÙ„ Enigmail إصدارة %S
usingAgent=يستخدم %S التنÙيذي %S للتعمية والتظهير
agentError=عطل: ÙØ´Ù„ت ÙÙŠ Ø§Ù„Ù†ÙØ§Ø° إلى خدمة Enigmime
accessError=عطل أثناء Ø§Ù„Ù†ÙØ§Ø° لخدمة Enigmime
onlyGPG=يعمل توليد Ø§Ù„Ù…ÙØ§ØªÙŠØ Ùقط مع GnuPG (وليس PGP)!
keygenComplete=اكتمل توليد Ø§Ù„Ù…ÙØªØ§Ø! Ø³ØªÙØ³ØªØ®Ø¯Ù… الهوية <%S> للتوقيع.
revokeCertRecommended=Ù†Ù†ØµØ Ø¨Ø´Ø¯Ø© أن تنشئ شهادة نقض Ø§Ù„Ù…ÙØªØ§Ø. لتستخدم هذه لشهادة لإبطال Ø§Ù„Ù…ÙØªØ§ØØŒ مثلا ÙÙŠ ØØ§Ù„ ضياع Ø§Ù„Ù…ÙØªØ§Ø السري أو انكشاÙÙ‡. أتريد إنشاءها الآن؟
keyMan.button.generateCert=&ÙˆÙ„Ù‘ÙØ¯ شهادة
genCompleteNoSign=تم توليد Ø§Ù„Ù…ÙØªØ§Ø!
genGoing=توليد Ø§Ù„Ù…ÙØªØ§Ø جار Ø¨Ø§Ù„ÙØ¹Ù„!
passNoMatch=عبارتا السر لا تتطابقا، أعد الإدخال من ÙØ¶Ù„Ùƒ
passCheckBox=من ÙØ¶Ù„Ùƒ أشّر هذا إن كنت لن تضع عبارة سر Ù„Ù„Ù…ÙØªØ§Ø (غير Ù…ØØ¨Ø°)
passUserName=من ÙØ¶Ù„Ùƒ ØØ¯Ø¯ اسم المستخدم لهذه الهوية
changePassFailed=ÙØ´Ù„ تغيير كلمة السر.
keyConfirm=أأولد Ù…ÙØ§ØªØÙŠÙ† لأجل '%S'ØŸ
keyMan.button.generateKey=ÙˆÙ„Ù‘ÙØ¯ Ù…&ÙØªØ§ØØ§
keyAbort=أأجهض توليد Ø§Ù„Ù…ÙØªØ§ØØŸ
keyMan.button.generateKeyAbort=أجه&ض توليد Ø§Ù„Ù…ÙØªØ§Ø
keyMan.button.generateKeyContinue=&عاود توليد Ø§Ù„Ù…ÙØªØ§Ø
expiryTooLong=لا يمكنك إنشاء Ù…ÙØªØ§Ø تنتهي صلاØÙŠØªÙ‡ بعد أكثر من 100 عام.
expiryTooShort=يجب أن يكون Ø§Ù„Ù…ÙØªØ§Ø ØµØ§Ù„ØØ§ ليوم ÙˆØ§ØØ¯ على الأقل.
keyGenFailed=ÙØ´Ù„ توليد Ø§Ù„Ù…ÙØªØ§Ø. من ÙØ¶Ù„Ùƒ راجع مرقاب Enigmail (قائمة Enigmail > ØªÙ†Ù‚ÙŠØ Enigmail) لمزيد من Ø§Ù„ØªÙØ§ØµÙŠÙ„.
# Strings in enigmailMessengerOverlay.js
securityInfo=معلومات خصوصية Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *مرÙقات هذه الرسالة لم تÙوقّع أو ØªÙØ¹Ù…ّى*\n\n
possiblyPgpMime=قد تكون رسالة PGP/MIME معماة أو موقّعة؛ انقر 'Ø¸Ù‡Ù‘ÙØ±' للتأكد
noDecrypted=لا توجد رسائل Ù…ÙØ¸Ù‡Ù‘َرة Ù„ØªÙØÙØ¸!\nاستخدم أمر 'اØÙظ' من قائمة ملÙ
noMessage=لا رسائل Ù„ØªÙØÙØ¸!
useButton=من ÙØ¶Ù„Ùƒ انقر زر 'Ø¸Ù‡Ù‘ÙØ±' لتظهير الرسالة
saveHeader=Enigmail: اØÙظ الرسالة Ø§Ù„Ù…ÙØ¸Ù‡Ù‘َرة
saveAttachmentHeader=Enigmail: اØÙظ المرÙقة Ø§Ù„Ù…ÙØ¸Ù‡Ù‘َرة
noTempDir=تعذّر العثور على دليل مؤقت للكتابه Ùيه\nمن ÙØ¶Ù„Ùƒ اضبط متغير البيئة TEMP
attachmentPgpKey=المرÙقة '%S' الذي ØªÙØªØÙ‡Ø§ تبدو ÙƒÙ…Ù„Ù Ù…ÙØ§ØªÙŠØ OpenPGP.\n\nانقر 'نعم' لتصدير Ø§Ù„Ù…ÙØ§ØªÙŠØ التي ØªØØªÙˆÙŠÙ‡Ø§ أو 'لا' لعرض Ù…ØØªÙˆÙŠØ§Øª المل٠ÙÙŠ Ù†Ø§ÙØ°Ø© Ø§Ù„Ù…ØªØµÙØ
beginPgpPart=********* *بداية الجزء المعمى أو الموقّع* *********
endPgpPart=********* *نهاية الجزء المعمى أو الموقّع* *********
notePartEncrypted=Enigmail: *تØÙˆÙŠ Ù‡Ø°Ù‡ الرسالة أجزاءً لم تÙوقّع أو ØªÙØ¹Ù…ّى*
noteCutMessage=Enigmail: *توجد عدة كتل رسائل -- Ø£ÙØ¬Ù‡Ø¶ التظهير/التØÙ‚Ù‚*
decryptOkNoSig=ØªØØ°ÙŠØ±\n\nكان التظهير Ù†Ø§Ø¬ØØ§ØŒ لكن تعذر التØÙ‚Ù‚ من التوقيع بشكل صØÙŠØ
msgOvl.button.contAnyway=&واصل على أي ØØ§Ù„
signature.verifiedOK=The signature for attachment %S was successfully verified
signature.verifyFailed=The signature for attachment %S could not be verified
attachment.noMatchToSignature=Could not match attachment '%S' to a signature file
attachment.noMatchFromSignature=Could not match signature file '%S' to an attachment
keysToExport=اختر Ù…ÙØªØ§Ø OpenPGP لإدراجه
keysToUse=اختر Ù…ÙØªØ§Ø OpenPGP لاستخدامه لأجل %S
pubKey=Ù…ÙØªØ§Ø %S العلني\n
windowLocked=Ù†Ø§ÙØ°Ø© Ø§Ù„ØªØØ±ÙŠØ± Ù…ÙÙ‚Ùلة؛ Ø£ÙلغÙÙŠ الإرسال
sendUnencrypted=ÙØ´Ù„ بدء Enigmail.\nأأرسل رسالة غير Ù…ÙØ¹Ù…ّاة؟
composeSpecifyEmail=من ÙØ¶Ù„Ùƒ ØØ¯Ø¯ عنوان بريدك الأساسي الذي Ø³ÙŠÙØ³ØªØ®Ø¯Ù… لاختيار Ù…ÙØªØ§Ø توقيع الرسائل الصادرة.\n إذا تركته خاويا ÙØ³ÙŠØ³ØªØ®Ø¯Ù… عنوان ØÙ‚Ù„ 'Ù…ÙÙ†' ÙÙŠ الرسالة لاختيار Ù…ÙØªØ§Ø التوقيع.
sendingHiddenRcpt=بعض متلقي هذه الرسالة يتلقونها ÙÙŠ العماء (BCC)ØŒ إن عÙمّÙيت هذه الرسالة Ùلن تظهر أسماؤهم كمتلقين للرسالة غير أن بعض أدوات التعمية (مثل التي تنتجها شركة PGP) لن يكون يمكنها تظهير الرسالة، لذا Ù†ÙØØ¨Ù‘ÙØ° ØªÙØ§Ø¯ÙŠ Ø§Ù„Ù…Ø²Ø§ÙˆØ¬Ø© بين التعمية Ùˆ المتلقين ÙÙŠ العماء (BCC)
sendWithHiddenBcc=أخÙ٠المتلقين ÙÙŠ العماء (BCC)
sendWithShownBcc=عمّ٠كالمعتاد
sendingNews=Ø£ÙØ¬Ù‡Ùضت عمليّة الإرسال Ø§Ù„Ù…ÙØ¹Ù…ّى.\n\nلا يمكن تعمية هذه الرسالة لوجود مجموعات بريدية ضمن المستلمين. من ÙØ¶Ù„Ùƒ أعد إرسال الرسالة بدون تعمية.
sendToNewsWarning=ØªØØ°ÙŠØ±: أنت بصدد إرسال رسالة معماة إلى مجموعة أخبار (newsgroup)ØŒ\n\nÙˆ هذا غير Ù…ÙØØ¨Ù‘ÙŽØ° لأنه لا معنى له إلا إن كان بوسع جميع أعضاء المجموعة تظهير الرسالة، أي أن الرسالة تنبغي تعميتها Ø¨Ù…ÙØ§ØªÙŠØ جميع المشاركين ÙÙŠ المجموعة. أرسل هذه الرسالة إن كنت تعلم ما ØªÙØ¹Ù„.\n\nأأواصل؟
hasHTML=ØªØØ°ÙŠØ± بريد HTML:\nربما ØªØØªÙˆÙŠ Ù‡Ø°Ù‡ الرسالة على رَقْم HTMLØŒ مما قد يتسبب ÙÙŠ ÙØ´Ù„ التوقيع/التعمية. Ù„ØªØªÙØ§Ø¯Ù‰ هذا ÙÙŠ المستقبل، يجب أن تضغط زر SHIFT أثناء النقر على زر ØØ±Ø±/Ø±ÙØ¯ لإرسال بريد Ù…Ùوقّع.\nإذا كنت توقع البريد بدئيا، ÙŠØ³ØªØØ³Ù† أن تلغي ØªÙØ¶ÙŠÙ„ 'ØØ±Ø± رسائل HTML' لتعطيل بريد HTML بشكل دائم Ù„ØØ³Ø§Ø¨ البريد هذا.
strippingHTML=ØªØØªÙˆÙŠ Ø§Ù„Ø±Ø³Ø§Ù„Ø© على معلومات تنسيق HTML ستÙÙقد عند تØÙˆÙŠÙ„ها إلى نص ØµÙØ±Ù لتوقيعه/تعميته. أترغب ÙÙŠ المتابعة؟
msgCompose.button.sendAnyway=أر&سل الرسالة على أي ØØ§Ù„
attachWarning=مرÙقات هذه الرسالة ليست Ù…ØÙ„Ù‘Ùية لذا لا تÙمكن تعميتها. لتعمية المرÙقات اØÙظها أولا ÙƒÙ…Ù„ÙØ§Øª Ù…ØÙ„ية ثم أرÙÙ‚ Ø§Ù„Ù…Ù„ÙØ§Øª. أترغب إرسال الرسالة بالرغم من ذلك؟
quotedPrintableWarn=لقد ÙØ¹Ù‘لت ترميز 'quoted-printable' للرسائل الصادرة، مما قد يؤدي إلى أخطاء عند تظهيرها أو التØÙ‚Ù‚.\nأترغب ÙÙŠ تعطيل الإرسال بترميز 'quoted-printable' الآن؟
minimalLineWrapping=لقد ضبطت طول السطر على %S ØØ±Ù. لتعمية Ùˆ/أو توقيع سليمين، ينبغي لهذه القيمة أن تكون 68 على الأقل.\nأتريد تغيير طول السطر إلى 68 ØØ±Ùا الآن؟
warning=ØªØØ°ÙŠØ±
signIconClicked=لقد قمت يدويا بتغيير ØªÙØ¹ÙŠÙ„ التوقيع. لذا ÙÙيما يتعلق بهذه الرسالة ÙØ¥Ù† ØªÙØ¹ÙŠÙ„/تعطيل التوقيع لم يعد يعتمد على ØªÙØ¹ÙŠÙ„/تعطيل التعمية.
pgpMime_sMime.dlg.text=You have enabled PGP/MIME and S/MIME together. Unfortunately it is not possible to support both protocols at the same time. Please select if you want to use PGP/MIME or S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Use &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Use &S/MIME
errorKeyUnusable=The email address or key ID '%S' cannot be matched to a valid, not expired OpenPGP key.\nPlease ensure that you have a valid OpenPGP key, and that your account settings point to that key.
# note: should end with double newline:
sendAborted=Ø£ÙØ¬Ù‡Ùضت عملية الإرسال.\n\n
statPGPMIME=PGP/MIME
statSigned=Ù…Ùوقّع
statEncrypted=Ù…ÙØ¹Ù…ّى
statPlain=نص ØµØ±ÙŠØ Ùˆ غير Ù…Ùوقَّع
offlineSave=أأØÙظ الرسالة %S إلى %S ÙÙŠ مجلد الرسائل غير المرسلة؟
onlineSend=أأرسل الرسالة %S إلى %S؟
encryptKeysNote=ملØÙˆØ¸Ø©: لقد عÙمّيت الرسالة باستخدام هويات/Ù…ÙØ§ØªÙŠØ المستخدمين التالية: %S
signFailed=Ø¹ÙØ·Ù„ ÙÙŠ EnigmailØ› ÙØ´Ù„ت التعمية/التوقيع؛ Ø£ÙØ±Ø³Ù„٠الرسالة غير Ù…ÙØ¹Ù…ّاة؟
msgCompose.button.sendUnencrypted=أر&سل الرسالة بلا تعمية
recipientsSelectionHdr=اختر المستلمين للتعمية
configureNow=لم تضبط خصوصية Enigmail للهوية المختارة. أترغب ÙÙŠ ÙØ¹Ù„ هذا الآن؟
# should not be used anymore:
encryptYes=Ø³ØªÙØ¹Ù…ّى الرسالة
encryptNo=لن ØªÙØ¹Ù…ّى الرسالة
# should not be used anymore:
signYes=ستÙوقّع الرسالة
signNo=لن تÙوقّع الرسالة
rulesConflict=ÙˆÙØ¬Ùدت قواعد مستلمين متعارضة\n%S\n\nأأرسل الرسالة بهذه الإعدادات؟
msgCompose.button.configure=ا&ضبط
msgCompose.button.send=أ&رسل الرسالة
msgCompose.button.save=ا&ØÙظ الرسالة
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Ø§Ù„Ù…ÙØªØ§Ø العلني %S مطلوب للتØÙ‚Ù‚ من التوقيع
clickDecrypt='Ø› انقر زر 'Ø¸Ù‡Ù‘ÙØ±
clickDecryptRetry=Ø› انقر زر 'Ø¸Ù‡Ù‘ÙØ±' لتعيد Ø§Ù„Ù…ØØ§ÙˆÙ„Ø©
msgPart=جزة من الرسالة %S
msgSigned=Ù…Ùوقّعة
msgEncrypted=Ù…ÙØ¹Ù…ّاة
msgSignedAndEnc=Ù…Ùوقّعة Ùˆ Ù…ÙØ¹Ù…ّاة
unverifiedSig=توقيع غير Ù…ÙØÙ‚Ù‚
incompleteDecrypt=التظهير ناقص
needKey=Ø¹ÙØ·Ù„ - Ø¨ØØ§Ø¬Ø© Ù„Ù…ÙØªØ§Ø سري لتعمية الرسالة
failedDecrypt=Ø¹ÙØ·Ù„ - ÙØ´Ù„ التظهير
badPhrase=Ø¹ÙØ·Ù„ - عبارة سر غير صØÙŠØØ©
failedDecryptVerify=Ø¹ÙØ·Ù„ - ÙØ´Ù„ التظهير/التØÙ‚Ù‚
viewInfo=Ø› اعرض > معلومات خصوصية الرسالة Ù„Ù„ØªÙØ§ØµÙŠÙ„
decryptedMsg=Ø¸Ù‡Ù‘ÙØ± الرسالة
locateGpg=ØØ¯Ø¯ موضع برمجية GnuPG
invalidGpgPath=لا ÙŠÙمكن تنÙيذ GnuPG من المسار Ø§Ù„Ù…ÙØ¹Ø·Ù‰. لذا Ø³ÙŠÙØ¹Ø·Ù‘Ù„ Enigmail ØØªÙ‰ ØªÙØºÙŠÙ‘ر المسار إلى GnuPG أو ØªÙØ¹ÙŠØ¯ تشغيل التطبيق.
warningsAreReset=تم تصÙير كل Ø§Ù„ØªØØ°ÙŠØ±Ø§Øª.
prefs.gpgFound=ÙˆÙØ¬Ùد GnuPG ÙÙŠ %S
prefs.gpgNotFound=تعذَّر إيجاد برمجية GnuPG '%S'.\nتأكد من ضبط مسار مل٠GnuPG التنÙيذي ÙÙŠ ØªÙØ¶ÙŠÙ„ات Enigmail.
prefs.warnAskNever=ØªØØ°ÙŠØ±: ØªÙØ¹ÙŠÙ„ هذا الخيار سيؤدي إلى إرسال بغير تعمية دون أي تنويهات إذا لم يوجد Ù…ÙØªØ§Ø Ù„Ø£ØØ¯ Ø§Ù„Ù…ÙØ³ØªÙ„مين -- لن ÙŠÙنبهك Enigmail عند ØØ¯ÙˆØ« ذلك!
prefEnigmail.oneKeyserverOnly=عطل - لا يمكن ØªØØ¯ÙŠØ¯ سوى خادوم Ù…ÙØ§ØªÙŠØ ÙˆØ§ØØ¯ لجلب Ù…ÙØ§ØªÙŠØ OpenPGP الناقصة.
enterAdminPin=من ÙØ¶Ù„Ùƒ أدخل PIN المدير لبطاقتك الذكية (SmartCard)
enterCardPin=من ÙØ¶Ù„Ùƒ أدخل PIN بطاقتك الذكية (SmartCard)
notInit=Ø¹ÙØ·Ù„ - لم تستبدأ خدمة Enigmail بعد
badCommand=Ø¹ÙØ·Ù„ - ÙØ´Ù„ أمر التعمية
cmdLine=خرج سطر الأوامر:
notRequired=Ø¹ÙØ·Ù„ - لا تعمية مطلوبة
notComplete=Ø¹ÙØ·Ù„ - لم يتم توليد Ø§Ù„Ù…ÙØªØ§Ø
invalidEmail=Ø¹ÙØ·Ù„ - عنوان بريد غير صØÙŠØ
noPassphrase=Ø¹ÙØ·Ù„ - لم تدخل أية عبارة سر
noPGPblock=Ø¹ÙØ·Ù„ - لم ÙŠÙØ¹Ø«Ø± على أي كتل بيانات OpenPGP مدرّع
unverifiedReply=جزء الرسالة Ø§Ù„Ù…Ø²Ø§Ø (الرد) قد تغيير على الأغلب
sigMismatch=Ø¹ÙØ·Ù„ - توقيع غير صØÙŠØ
cantImport=خطأ ÙÙŠ استيراد Ø§Ù„Ù…ÙØªØ§Ø العلني\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=البطاقة الذكية %S الموجودة ÙÙŠ القارئ لا يمكن استخدامها لمعالجة الرسالة.\nأدخل البطاقة الذكية %S Ùˆ أعد العملية.
sc.insertCard=تتطلب هذه العملية البطاقة الذكية %S.\nأدخل البطاقة الذكية المطلوبة و أعد العملية.
sc.removeCard=تتطلب هذه العملية ألا توجد ÙÙŠ القارئ بطاقة ذكية.\nأخرج البطاقة الذكية Ùˆ أعد العملية.
sc.noCardAvailable=لم ÙŠÙØ¹Ø«Ø± على بطاقة ذكية ÙÙŠ القارئ\nأدخل البطاقة الذكية ثم أعد العملية.
sc.noReaderAvailable=لا يمكن Ø§Ù„Ù†ÙØ§Ø° إلى قارئ البطاقات الذكية\nأوصل قارئ البطاقات الذكية ثم أدخل البطاقة ثم أعد العملية.
gpgNotFound=تعذر ØªØØ¯ÙŠØ¯ موضع برمجية GnuPG '%S'.\nتأكد أنك ضبطت مسار مل٠GnuPG التنÙيذي صØÙŠØØ§ ÙÙŠ ØªÙØ¶ÙŠÙ„ات Enigmail.
gpgNotInPath=تعذَّر إيجاد برمجية GnuPG ÙÙŠ المسار المعرَّ٠PATH.\nتأكد من ضبط مسار مل٠GnuPG التنÙيذي ÙÙŠ ØªÙØ¶ÙŠÙ„ات Enigmail.
gpgAgentNotStarted=تعذر بدأ برمجية gpg-agent وهو ضروري لإصدارة %S من GnuPG.
prefUntrusted=غير موثوق
prefRevoked=Ù…ÙØªØ§Ø منقوض
prefExpiredKey=Ù…ÙØªØ§Ø منتهي
prefExpired=منتهي
prefGood=توقيع صØÙŠØ من %S
prefBad=توقيع غير صØÙŠØ من %S
failCancel=Ø¹ÙØ·Ù„ - ألغى المستخدم جلب Ø§Ù„Ù…ÙØªØ§Ø
failNoServer=Ø¹ÙØ·Ù„ - لم ØªØØ¯Ø¯ خادوم Ù…ÙØ§ØªÙŠØ لجلب Ø§Ù„Ù…ÙØ§ØªÙŠØ منه
failNoID=Ø¹ÙØ·Ù„ - لم ØªØØ¯Ø¯ هوية لجلب Ù…ÙØªØ§Ø لها
failKeyExtract=Ø¹ÙØ·Ù„ - ÙØ´Ù„ أمر استخراج Ø§Ù„Ù…ÙØªØ§Ø
notFirstBlock=Ø¹ÙØ·Ù„ - أول كتلة OpenPGP ليست كتلة Ù…ÙØªØ§Ø علني
importKeyConfirm=أأستورد Ø§Ù„Ù…ÙØ§ØªÙŠØ العلنية المضمنة ÙÙŠ الرسالة؟
failKeyImport=Ø¹ÙØ·Ù„ - ÙØ´Ù„ استيراد Ø§Ù„Ù…ÙØªØ§Ø
fileWriteFailed=ÙØ´Ù„ت الكتابة ÙÙŠ المل٠%S
importKey=استورد Ø§Ù„Ù…ÙØªØ§Ø العلني %S من خادوم Ø§Ù„Ù…ÙØ§ØªÙŠØ
uploadKey=أرسل Ø§Ù„Ù…ÙØªØ§Ø العلني %S إلى الخادوم
keyId=هويّة Ø§Ù„Ù…ÙØªØ§Ø
keyAndSigDate=معرّÙÙ Ø§Ù„Ù…ÙØªØ§Ø: 0x%S / Ù…Ùوقع ÙÙŠ: %S
keyFpr=بصمة Ø§Ù„Ù…ÙØªØ§Ø: %S
noEmailProvided=لم ØªÙØ¹Ø· عنوان بريد!
keyAlreadySigned=Ø§Ù„Ù…ÙØªØ§Ø Ù…Ùوقَّع مسبقا، لا يمكن توقيعه مرتين.
gnupg.invalidKey.desc=Key %S not found or not valid. The (sub-)key might have expired.
selKeyExpired=انتهى %S
createdHeader=تاريخ الإنشاء
atLeastOneKey=لم تختر أي Ù…ÙØ§ØªÙŠØ! ينبغي اختيار Ù…ÙØªØ§Ø ÙˆØ§ØØ¯ على الأقل لقبول هذا الØÙˆØ§Ø±
fewerKeysThanRecipients=قد اخترت عددا من Ø§Ù„Ù…ÙØ§ØªÙŠØ أقل من عدد المرسل إليهم. أمتأكد أن قائمة Ù…ÙØ§ØªÙŠØ التعمية كاملة؟
userSel.button.goBack=اختر المزيد من Ø§Ù„Ù…ÙØ§ØªÙŠØ
userSel.secretKeySel.title=اختر Ù…ÙØªØ§Ø OpenPGP سريا لتوقيع رسائلك.
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=ملØÙˆØ¸Ø©: برمجيات بريد قليلة تدعم PGP/MIME. على ويندوز Ùقط موزيلا/ثندربيرد Ùˆ Sylpheed Ùˆ Pegasus Ùˆ Mulberry معرو٠دعمها لهذا المعيار؛ على لينكس/يونكس Ùˆ ماك أوإس إكس أغلب البرمجيات المشهورة تدعمه. إذا لم تكن متأكدا اختر %S.
first=الأوّل
second=الثّاني
# Strings used in am-enigprefs.js
encryptKeyHeader=اختر Ù…ÙØªØ§Ø OpenPGP للتعمية
identityName=الهوية: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=لقد ÙØ¹Ù‘لت التعمية لكنك لم تختر Ù…ÙØªØ§ØØ§. لتعمي الرسائل إلى %S ينبغي لك ØªØØ¯ÙŠØ¯ Ù…ÙØªØ§Ø سليم أو أكثر من قائمة Ø§Ù„Ù…ÙØ§ØªÙŠØ. أترغب ÙÙŠ تعطيل التعمية إلى %SØŸ
noKeyToUse=(لا شيء - لا تعمية)
noEmptyRule=لا يمكن أن تكون القاعدة خاوية! من ÙØ¶Ù„Ùƒ ضع عنوان بريد ÙÙŠ ØÙ‚Ù„ القاعدة.
invalidAddress=عناوين البريد التي أدخلتها ليست سليمة. يجب ألا تضع أسماء المستلمين؛ Ùقط عناوين البريد. مثلا:\nغير سليم: اسم ما \nسليم : some.name@address.net
noCurlyBrackets=الأقواس Ø§Ù„Ù…Ø¹Ù‚ÙˆÙØ© {} لها معنى خاص Ùˆ يجب ألا تستخدم ÙÙŠ عناوين البريد. إذا أردت تغيير سلوك المطابقة لهذه القاعدة ÙØ§Ø³ØªØ®Ø¯Ù… خيار 'طبق القاعدة إن كان المستلم...'.\nالمزيد من المعلومات Ù…ØªÙˆÙØ± عبر زر المساعدة.
# Strings used in enigmailRulesEditor.js
never=أبدًا
always=دائمًا
possible=ممكن
deleteRule=Ø£Ø£ØØ°Ù القاعدة المختارة ØÙ‚ا؟
nextRcpt=(المستلم التالي)
negateRule=ليس
addKeyToRule=Add key %S (%S) to per-recipient rule
# Strings used in enigmailSearchKey.js
needOnline=الخاصية التي اخترتها غير Ù…ØªØ§ØØ© ÙÙŠ طور عدم الاتصال. من ÙØ¶Ù„Ùƒ تØÙˆÙ„ إلى طور الاتصال ÙˆØØ§ÙˆÙ„ مجددا.
protocolNotSupported=البروتوكول '%S://' الذي اخترته غير مدعوم لجلب Ù…ÙØ§ØªÙŠØ OpenPGP.
gpgkeysDisabled=قد ÙŠÙØ³Ø§Ø¹Ø¯Ùƒ ØªÙØ¹ÙŠÙ„ الخيار 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=تعذّر الاتصال بخادوم Ø§Ù„Ù…ÙØ§ØªÙŠØ %S.
keyDownloadFailed=ÙØ´Ù„ الجلب من خادوم Ø§Ù„Ù…ÙØ§ØªÙŠØ. رسالة Ø§Ù„ØØ§Ù„Ø© هي:\n%S
internalError=ØØ¯Ø« عطل داخلي. تعذّر جلب Ø§Ù„Ù…ÙØ§ØªÙŠØ أو استيرادها.
noKeyFound=لم أعثر على أي Ù…ÙØ§ØªÙŠØ تتطابق معايير Ø§Ù„Ø¨ØØ«.\nÙ„Ø§ØØ¸ أن هويات Ø§Ù„Ù…ÙØ§ØªÙŠØ يجب أن ØªÙØ³Ø¨Ù‚ ب†\\"0x\\" (مثلا: 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=ÙØ´Ù„ Ø§Ù„Ø¨ØØ« عن أو جلب Ø§Ù„Ù…ÙØªØ§Ø من خادوم Ø§Ù„Ù…ÙØ§ØªÙŠØ: لا ÙŠÙمكن تنÙيذ gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=ÙØ´Ù„ ضبط الثقة ÙÙŠ المالك
# Strings in enigmailSignKeyDlg.js
signKeyFailed=ÙØ´Ù„ توقيع Ø§Ù„Ù…ÙØªØ§Ø
alreadySigned.label=Ù…Ù„Ø§ØØ¸Ø©: Ø§Ù„Ù…ÙØªØ§Ø %S موقَّع مسبقا Ø¨Ø§Ù„Ù…ÙØªØ§Ø السريّ٠المختار
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=ÙŠÙØÙ…Ù‘ÙÙ„ Ø§Ù„Ù…ÙØ§ØªÙŠØØŒ من ÙØ¶Ù„Ùƒ انتظر...
keyValid.unknown=مجهول
keyValid.invalid=غير صØÙŠØ
keyValid.disabled=معطّل
keyValid.revoked=منقوض
keyValid.expired=انتهت صلاØÙŠØªÙ‡
keyValid.noSubkey=لا Ù…ÙØªØ§Ø ÙØ±Ø¹ÙŠ ØµØ§Ù„Ø
keyTrust.untrusted=منعدمة
keyTrust.marginal=هامشية
keyTrust.full=تامة
keyTrust.ultimate=مطلقة
keyTrust.group=(مجموعة)
keyType.public=علني
keyType.publicAndSec=علني/سري
keyMan.enableKey=ÙØ¹Ù‘Ù„ Ø§Ù„Ù…ÙØªØ§Ø
keyMan.disableKey=عطّل Ø§Ù„Ù…ÙØªØ§Ø
userAtt.photo=خصيصة المستخدم (صورة JPEG)
asciiArmorFile=â€®Ù…Ù„ÙØ§Øª أسكي (‪ASCII‬) Ù…ÙØ¯Ø±Ù‘عة (*.‪asc‬)
importKeyFile=Import OpenPGP Key File
gnupgFile=Ù…Ù„ÙØ§Øª GnuPG
saveRevokeCertAs=أنشئ واØÙظ شهادة نقض
revokeCertOK=Ø£Ùنشأت شهادة النقض بنجاØ. يمكن استخدامها لإبطال Ø§Ù„Ù…ÙØªØ§Ø العلني، مثلا ÙÙŠ ØØ§Ù„ Ùقدت Ø§Ù„Ù…ÙØªØ§Ø السري.\n\nمن ÙØ¶Ù„Ùƒ انقلها إلى وسيط ÙŠÙمكن ØÙظه بعيدا بأمان كقرص مدمج أو مرن. إذا ØØ§Ø² Ø£ØØ¯Ù‡Ù… هذه الشهادة سيكون بإمكانه استخدامها لجعل Ù…ÙØªØ§ØÙƒ غير ذي ÙØ§Ø¦Ø¯Ø©.
revokeCertFailed=تعذّر إنشاء شهادة النقض.
addUidOK=تمت Ø¥Ø¶Ø§ÙØ© هوية المستخدم بنجاØ
addUidFailed=ÙØ´Ù„ت Ø¥Ø¶Ø§ÙØ© هوية المستخدم
noKeySelected=يجب أن تختار Ù…ÙØªØ§ØØ§ ÙˆØ§ØØ¯Ø§ على الأقل لإجراء العملية المطلوبة
exportToFile=صدّر Ø§Ù„Ù…ÙØªØ§Ø العلني إلى ملÙ
exportSecretKey=أتريد تضمين Ø§Ù„Ù…ÙØªØ§Ø السري ÙÙŠ Ù…Ù„Ù Ù…ÙØªØ§Ø OpenPGP المØÙوظ؟
saveKeysOK=تم ØÙظ Ø§Ù„Ù…ÙØ§ØªÙŠØ بنجاØ
saveKeysFailed=ÙØ´Ù„ ØÙظ Ø§Ù„Ù…ÙØ§ØªÙŠØ
importKeysFailed=ÙØ´Ù„ استيراد Ø§Ù„Ù…ÙØ§ØªÙŠØ
enableKeyFailed=ÙØ´Ù„ ØªÙØ¹ÙŠÙ„/تعطيل Ø§Ù„Ù…ÙØ§ØªÙŠØ
noSecretKeys=لم ÙŠÙØ¹Ø«Ø± على Ù…ÙØ§ØªÙŠØ سرية.\n\nأتريد توليد Ù…ÙØªØ§Ø الآن؟
sendKeysOk=تم إرسال Ø§Ù„Ù…ÙØ§ØªÙŠØ بنجاØ
sendKeysFailed=ÙØ´Ù„ إرسال Ø§Ù„Ù…ÙØ§ØªÙŠØ
receiveKeysOk=تم ØªØØ¯ÙŠØ« Ø§Ù„Ù…ÙØ§ØªÙŠØ بنجاØ
receiveKeysFailed=ÙØ´Ù„ جلب Ø§Ù„Ù…ÙØ§ØªÙŠØ
importFromClip=أتريد استيراد Ø§Ù„Ù…ÙØ§ØªÙŠØ من Ø§Ù„ØØ§Ùظة؟
copyToClipbrdFailed=تعذر نسخ Ø§Ù„Ù…ÙØ§ØªÙŠØ المختارة إلى Ø§Ù„ØØ§Ùظة.
copyToClipbrdOK=تم نسخ Ø§Ù„Ù…ÙØ§ØªÙŠØ إلى Ø§Ù„ØØ§Ùظة
deleteSecretKey=ØªØØ°ÙŠØ±: أنت بصدد ØØ°Ù Ù…ÙØªØ§Ø سري!\nإن ØØ°Ùت Ù…ÙØªØ§ØÙƒ السري Ùلن يعود بوسعك تظهير أية رسالة عÙمّÙيت لهذا Ø§Ù„Ù…ÙØªØ§ØØŒ Ùˆ لن تستطيع نقض Ø§Ù„Ù…ÙØªØ§Ø كذلك.\n\nأترغب ØÙ‚ا ÙÙŠ ØØ°Ù كلا Ø§Ù„Ù…ÙØªØ§ØÙŠÙ† السري Ùˆ العلني\n'%S'ØŸ
deleteMix=ØªØØ°ÙŠØ±: أنت بصدد ØØ°Ù Ù…ÙØªØ§Ø سري!\nإن ØØ°Ùت Ù…ÙØªØ§ØÙƒ السري Ùلن يعود بوسعك تظهير أية رسالة عÙمّÙيت لهذا Ø§Ù„Ù…ÙØªØ§ØØŒ ولن تستطيع نقض Ø§Ù„Ù…ÙØªØ§Ø كذلك.\n\nأترغب ØÙ‚ا ÙÙŠ ØØ°Ù كلا Ø§Ù„Ù…ÙØªØ§ØÙŠÙ† السري والعلني؟
deletePubKey=أتريد ØØ°Ù Ø§Ù„Ù…ÙØªØ§Ø العلني\n'%S'ØŸ
deleteSelectedPubKey=أتريد ØØ°Ù Ø§Ù„Ù…ÙØ§ØªÙŠØ العلنية؟
deleteKeyFailed=تعذّر ØØ°Ù Ø§Ù„Ù…ÙØªØ§Ø.
revokeKeyOk=لقد تم نقض هذا Ø§Ù„Ù…ÙØªØ§Ø. إذا كان Ù…ÙØªØ§ØÙƒ منشورا على خادوم Ù…ÙØ§ØªÙŠØ ÙÙŠÙÙØ¶Ù‘Ù„ أن تعيد Ø±ÙØ¹Ù‡ ليرى الآخرون النقض.
revokeKeyFailed=تعذّر نقض Ø§Ù„Ù…ÙØªØ§Ø.
refreshAllQuestion=لم تختر أي Ù…ÙØªØ§Ø. أتريد ØªØØ¯ÙŠØ« كل Ø§Ù„Ù…ÙØ§ØªÙŠØØŸ
refreshKey.warn=ØªØØ°ÙŠØ±: طبقا لعدد Ø§Ù„Ù…ÙØ§ØªÙŠØ وسرعة الاتصال Ùقد يستغرق ØªØØ¯ÙŠØ« كل Ø§Ù„Ù…ÙØ§ØªÙŠØ وقتا طويلا نوعا ما.
keyMan.button.exportSecKey=&ØµØ¯Ù‘ÙØ± Ø§Ù„Ù…ÙØ§ØªÙŠØ السرية
keyMan.button.exportPubKey=Export &Public Keys Only
keyMan.button.import=ا&ستورد
keyMan.button.refreshAll=&ØØ¯Ù‘ÙØ« كل Ø§Ù„Ù…ÙØ§ØªÙŠØ
keyMan.button.revokeKey=ان&قض Ø§Ù„Ù…ÙØªØ§Ø
keylist.noOtherUids=ليست له هويات أخرى
keylist.hasOtherUids=معرو٠كذلك باسم
keylist.noPhotos=لا توجد صورة
keylist.hasPhotos=الصور
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=ÙØ´Ù„ تغيير هوية المستخدم الأساسية
changePrimUidOK=تم تغيير هوية المستخدم الأساسية بنجاØ
deleteUidFailed=ÙØ´Ù„ ØØ°Ù هوية المستخدم %S
deleteUidOK=تم ØØ°Ù هوية المستخدم %S بنجاØ
revokeUidFailed=ÙØ´Ù„ Ø³ØØ¨ هوية المستخدم %S
revokeUidOK=تم نقض هوية المستخدم %S بنجاØ. إذا كان Ù…ÙØªØ§ØÙƒ منشورا على خادوم Ù…ÙØ§ØªÙŠØ ÙÙŠÙÙØ¶Ù‘Ù„ أن تعيد Ø±ÙØ¹Ù‡ ليرى الآخرون النقض.
revokeUidQuestion=أترغب ØÙ‚ا ÙÙŠ نقض هوية المستخدم هذه %SØŸ
deleteUidQuestion=أترغب ØÙ‚ا ÙÙŠ ØØ°Ù هوية المستخدم هذه %SØŸ\n\nÙ„Ø§ØØ¸: إذا كنت قد Ø±ÙØ¹Øª Ù…ÙØªØ§ØÙƒ إلى خادوم Ù…ÙØ§ØªÙŠØ ÙØ¥Ù† ØØ°Ù هوية المستخدم لن ÙŠÙØºÙŠÙ‘ر شيئا. ÙÙŠ هذه Ø§Ù„ØØ§Ù„Ø© استخدم 'انقض هوية المستخدم' ثم أعد Ø±ÙØ¹ Ø§Ù„Ù…ÙØªØ§Ø.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=Ù…ÙØªØ§Ø علني
keyTypePrimary=primary key
keyTypeSubkey=Ù…ÙØªØ§Ø ÙØ±Ø¹ÙŠ
keyTypePair=زوج Ù…ÙØ§ØªÙŠØ
keyExpiryNever=أبدا
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=الجمل
keyAlgorithm_17=DSA
keyAlgorithm_20=الجمل
# Strings in enigmailGenCardKey.xul
keygen.started=من ÙØ¶Ù„Ùƒ انتظر بينما يجري توليد Ø§Ù„Ù…ÙØªØ§Ø...
keygen.completed=تم توليد Ø§Ù„Ù…ÙØªØ§Ø. معرّÙÙ Ø§Ù„Ù…ÙØªØ§Ø الجديد هو: 0x%S
keygen.keyBackup=تم ØÙظ Ø§Ù„Ù…ÙØªØ§Ø Ø§ØØªÙŠØ§Ø·ÙŠØ§ باسم %S
keygen.passRequired=من ÙØ¶Ù„Ùƒ ØØ¯Ø¯ عبارة سر إذا كنت تريد إنشاء نسخة Ø§ØØªÙŠØ§Ø·ÙŠØ© من Ù…ÙØªØ§ØÙƒ خارج البطاقة الذكية.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=لأن PIN التي أدخلته لا تتطابق، من ÙØ¶Ù„Ùƒ أعد الإدخال
cardPin.minLength=يجب أن يتأل٠PIN من %S ØØ±Ù أو رقم على الأقل
cardPin.processFailed=ÙØ´Ù„ تغيير PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=يجري ØªØØ¯ÙŠØ« Ø§Ù„Ù…ÙØ§ØªÙŠØØ› انتظر...
keyserverProgress.uploading=يجري Ø±ÙØ¹ Ø§Ù„Ù…ÙØ§ØªÙŠØØ› انتظر...
keyserverTitle.refreshing=تم ØªØØ¯ÙŠØ« Ø§Ù„Ù…ÙØ§ØªÙŠØ
keyserverTitle.uploading=تم ØªØØ¯ÙŠØ« Ø§Ù„Ù…ÙØªØ§Ø
# Strings in enigmailSetupWizard
passphrase.min8keys=يجب أن تتأل٠كلمة السر من 8 Ù…ØØ§Ø±Ù على الأقل
setupWizard.reallyCancel=أترغب ØÙ‚ا ÙÙŠ صر٠مرشد إعداد EnigmailØŸ
setupWizard.specifyFile=You need to at least specify a public key file in order to proceed.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=ينبغي أن تدخل اسما و عنوان بريد إلكتروني
addUidDlg.nameMinLengthError=ينبغي أن يتأل٠الاسم من خمسة Ù…ØØ§Ø±Ù على الأقل
addUidDlg.invalidEmailError=ينبغي أن تضع عنوان بريد صØÙŠØ
addUidDlg.commentError=غير Ù…Ø³Ù…ÙˆØ Ø¨Ø§Ù„Ø£Ù‚ÙˆØ§Ø³ المربعة ÙÙŠ التعليق
enigmail/lang/ar/help/ 0000775 0000000 0000000 00000000000 12667016244 0015126 5 ustar 00root root 0000000 0000000 enigmail/lang/ar/help/compose.html 0000664 0000000 0000000 00000010037 12667016244 0017462 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/ar/help/editRcptRule.html 0000664 0000000 0000000 00000011451 12667016244 0020424 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/ar/help/initError.html 0000664 0000000 0000000 00000004525 12667016244 0017777 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/ar/help/messenger.html 0000664 0000000 0000000 00000010012 12667016244 0017776 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/ar/help/rulesEditor.html 0000664 0000000 0000000 00000005722 12667016244 0020323 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/ar/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020462 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/bg/ 0000775 0000000 0000000 00000000000 12667016244 0014164 5 ustar 00root root 0000000 0000000 enigmail/lang/bg/am-enigprefs.properties 0000664 0000000 0000000 00000000121 12667016244 0020651 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP Security
enigmail/lang/bg/enigmail.dtd 0000664 0000000 0000000 00000107514 12667016244 0016456 0 ustar 00root root 0000000 0000000
Забележка: Генерирането на ключа може да отнеме нÑколко минути. Ðе излизайте от приложението докато трае генерирането на ключа. Ðктивното браузване или извършването на активни операции Ñ Ð´Ð¸Ñка по време на генерирането на ключа ще генерира 'Ñлучайни чиÑла' и ще уÑкори процеÑа. Ще бъдете уведомени, когато генерирането на ключа приключи.">
' е невалидно">
Забележка: Генерирането на ключа може да отнеме нÑколко минути. Ðе излизайте от приложението докато трае генерирането на ключа. Ще бъдете уведомени, когато генерирането на ключа приключи">
Забележка: Enigmail винаги ще проверÑва подпиÑите на пиÑмата за вÑеки акаунт или идентичноÑÑ‚, незавиÑимо дали това е активирано или не">
Благодарим ви, че използвате Enigmail.">
enigmail/lang/bg/enigmail.properties 0000664 0000000 0000000 00000115413 12667016244 0020074 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail Предупреждение
enigConfirm=Enigmail Потвърждение
enigError=Enigmail Грешка
enigPrompt=Enigmail ÐапомнÑне
dlgYes=&Да
dlgNo=&Ðе
dlgKeepSetting=Запомни отговора и не питай отново
dlgNoPrompt=Ðе показвай този диалог отново
dlg.button.delete=&Изтриване
dlg.button.cancel=&Отказ
dlg.button.close=&ЗатварÑне
dlg.button.continue=Продължаване
dlg.button.skip=&ПропуÑкане
dlg.button.view=&Отвори
repeatPrefix=\n\nТова предупреждение ще Ñе повтори %S
repeatSuffixSingular=един път.
repeatSuffixPlural=повече пъти.
noRepeat=\n\nТова предупреждение нÑма да Ñе Ð¿Ð¾Ð²Ñ‚Ð°Ñ€Ñ Ð´Ð¾ÐºÐ°Ñ‚Ð¾ не обновите Enigmail.
pgpNotSupported=Желаете да използвате Enigmail заедно Ñ PGP 6.x\n\nза Ñъжаление, PGP 6.x има проблеми, който не позволÑват на Enigmail да работи коректно. Ето защо, Enigmail не поддържа PGP 6.x повече; Ð¼Ð¾Ð»Ñ Ð¸Ð½Ñталирайте GnuPG (GPG) поддръжка.\n\nÐко Ñе нуждаете от помощ за инÑталиране на GnuPG, Ñе обърнете към ÑекциÑта за помощ, намираща Ñе на заглавната Ñтраница на Enigmail.
passphraseCleared=Паролата за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ беше изтрита.
noPhotoAvailable=ÐÑма налична Ñнимка
debugLog.title=Enigmail дебъгер дневник
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Тази нова верÑÐ¸Ñ Ð½Ð° Enigmail има значителни промени в боравенето Ñ Ð¿Ñ€ÐµÐ´Ð¿Ð¾Ñ‡Ð¸Ñ‚Ð°Ð½Ð¸Ñта и възможноÑтите. Опитахме Ñе да прехвърлим Ñтарите наÑтройки в тази нова верÑиÑ. Въпреки това, ние не можахме да обхванем вÑичко автоматично. МолÑ, проврете отново получените нови преференции и възможноÑти.
enigmailCommon.checkPreferences=Проверeте Преференциите ...
usingVersion=Използваната Enigmail верÑÐ¸Ñ Ðµ %S
usingAgent=Използва Ñе %S изпълним файл %S за криптиране и декриптиране
agentError=ERROR: Грешка при опит за доÑтъп до Enigmime уÑлуги!
accessError=Грешка при опит за доÑтъп до Enigmail уÑлуги
onlyGPG=Генерирането на ключове работи Ñамо Ñ GnuPG (не работи Ñ PGP)!
keygenComplete=Генерирането на ключа е готово! ИдентификациÑта <%S> ще бъде използвана за подпиÑване.
revokeCertRecommended=Силно препоръчваме да Ñъздадете нулиращ Ñертификат за вашиÑÑ‚ ключ. Този Ñертификат може да Ñе използва девалидиране, в Ñлучай че вашиÑÑ‚ Ñекретен ключ бъде изгубен или компроментиран. Желаете ли да Ñъздадете нулиращ Ñертификат Ñега?
keyMan.button.generateCert=&Генериране на Ñертификат
genCompleteNoSign=Генерирането на ключа е готово!
genGoing=Генерирането на ключа е в прогреÑ!
passNoMatch=Паролите за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ не Ñъвпадат! ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ ги отново!
passCheckBox=ÐœÐ¾Ð»Ñ Ð¼Ð°Ñ€ÐºÐ¸Ñ€Ð°Ð¹Ñ‚Ðµ опциÑта 'Без парола за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡', ако не желаете да използвате парола
passUserName=ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ потребителÑко име за тази идентификациÑ
passSpaceProblem=\nПоради техничеÑки причини, паролата ви, не може да започне или завърши Ñ Ð¸Ð½Ñ‚ÐµÑ€Ð²Ð°Ð».
changePassFailed=ПромÑната на паролата за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ е неуÑпешна.
keyConfirm=Генериране на публичен и чаÑтен ключ за '%S'?
keyMan.button.generateKey=&Генериране на ключ
keyAbort=Да Ñе прекъÑне ли генерирането на ключ?
keyMan.button.generateKeyAbort=&ПрекъÑване на генерирането на ключ
keyMan.button.generateKeyContinue=&Продължаване на генерирането на ключ
expiryTooLong=Ðе може да Ñъздавате ключ ÑÑŠÑ Ñрок на валидноÑÑ‚ по-голÑм от 100 години.
expiryTooLongShorter=Вие не можете да Ñъздадете ключ, който изтича Ñлед повече от 90 години.
expiryTooShort=Ключа трÑбва да има валидноÑÑ‚ поне един ден.
keyGenFailed=Генерирането на ключ беше провалено. ÐœÐ¾Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÑ‚Ðµ Enigmail конзолата (Меню Enigmail > Опции за отÑтранÑване на грешки) за подробноÑти.
setKeyExpirationDateFailed=Срокът на валидноÑÑ‚ не може да бъде променен
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° ÑигурноÑÑ‚\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Прикачените ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÑŠÐ¼ това Ñъобщение не Ñа криптирани или подпиÑани*\n\n
possiblyPgpMime=Възможно е Ñъобщението да е криптирано или подпиÑано Ñ PGP/MIME; натиÑнете бутона 'Декриптирай' за да го проверите
noDecrypted=ÐÑма декриптирани ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° запиÑ!\nИзползвайте командата 'Запиши' от меню 'Файл'
noMessage=ÐÑма ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð° запиÑ!
useButton=ÐœÐ¾Ð»Ñ Ð½Ð°ÑтиÑнете бутона 'Декриптирай' за да декриптирате Ñъобщението
saveHeader=Enigmail: Запишете декриптираното Ñъобщение
saveAttachmentHeader=Enigmail: Запишете Ð´ÐµÐºÑ€Ð¸Ð¿Ñ‚Ð¸Ñ€Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½ файл
noTempDir=Ðе може да бъде намерен път към временна директориÑ\nÐœÐ¾Ð»Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð¸Ñ€Ð°Ð¹Ñ‚Ðµ Ð¿ÑŠÑ‚Ñ ÐºÑŠÐ¼ временната директориÑ
attachmentPgpKey=ПрикачениÑÑ‚ файл '%S' който отварÑте Ñъдържа OpenPGP ключ файл.\n\nÐатиÑнете 'ВнеÑи' за да запишете Ñъдържащите Ñе ключове или 'Отвори' за да разгледате Ñъдържанието на файла
beginPgpPart=********* *ÐÐЧÐЛО ÐРКРИПТИРÐÐÐТРИЛИ ПОДПИСÐÐÐТРЧÐСТ* *********
endPgpPart=********** *КРÐЙ ÐРКРИПТИРÐÐÐТРИЛИ ПОДПИСÐÐÐТРЧÐСТ* **********
notePartEncrypted=Enigmail: *ЧаÑтите на това Ñъобщение не Ñа криптирани или подпиÑани*
noteCutMessage=Enigmail: *Ð’ Ñъобщението Ñа намерени множеÑтво блокове -- декриптирането/проверката Ñа прекъÑнати*
decryptOkNoSig=Предупреждение\n\nДекриптирането беше уÑпешно, но подпиÑа не не беше проверен коректно
msgOvl.button.contAnyway=&Въпреки това продължете
signature.verifyFailed=ПодпиÑÑŠÑ‚ за прикрепване на файл %S беше уÑпешно проверена
attachment.noMatchToSignature=ÐÑма Ñъвпадение на Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%S' към подпиÑа на файла
attachment.noMatchFromSignature=ÐÑма Ñъвпадение на подпиÑÐ°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð» '%S' към Ð¿Ñ€Ð¸ÐºÐ°Ñ‡ÐµÐ½Ð¸Ñ Ñ„Ð°Ð¹Ð»
keysToExport=Изберете OpenPGP ключове за внаÑÑне
keysToUse=Изберете OpenPGP Ключ(ове) за да ги използвате за %S
pubKey=Публичен ключ за %S\n
windowLocked=Прозореца за ÑÑŠÑтавÑне на ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ðµ блокиран; изпращането е прекратено
sendUnencrypted=Грешка при инициализирането на Enigmail.\nДа Ñе изпрати ли некриптирано Ñъобщение?
composeSpecifyEmail=ÐœÐ¾Ð»Ñ ÑƒÑ‚Ð¾Ñ‡Ð½Ð¸Ñ‚Ðµ ÑÐ²Ð¾Ñ Ð¿ÑŠÑ€Ð²Ð¸Ñ‡ÐµÐ½ пощенÑки адреÑ, който ще Ñе използва за подпиÑване на изходÑщите ÑъобщениÑ.\nÐко оÑтавите полето празно, за подпиÑване на Ñъобщението ще бъде използван адреÑа от полето 'От'.
sendingHiddenRcpt=Това Ñъобщение Ñъдържа Ñкрити ÐºÐ¾Ð¿Ð¸Ñ (BCC) към нÑкой от получателите. Ðко то е криптирано, може да изпратите Ñкрити ÐºÐ¾Ð¿Ð¸Ñ ÐºÑŠÐ¼ тези получатели, но тези от Ñ‚ÑÑ… които използват други програми (например: PGP Corp.) нÑма да могат да декриптират Ñъобщението. УточнÑвайки това, препоръчваме да избÑгвате Ñкрити ÐºÐ¾Ð¿Ð¸Ñ (BCC) при изпращане на криптирани ÑъобщениÑ.
sendWithHiddenBcc=Скрит получател на Ñкрито копие
sendWithShownBcc=Криптирай нормално
sendingNews=Изпращането на криптирано Ñъобщение е прекратено.\n\nТова Ñъобщение не може да бъде криптирано защото Ñъдържа newsgroup получатели. ÐœÐ¾Ð»Ñ Ð¸Ð·Ð¿Ñ€Ð°Ñ‚ÐµÑ‚Ðµ Ñъобщението отново без да го криптирате.
sendToNewsWarning=Предупреждение: на път Ñте да изпратите криптирано пиÑмо къm newsgroup.\n\nТова не е препоръчително, защото има ÑмиÑъл, Ñамо ако вÑички членове на групата може да декриптират Ñъобщението, Ñ‚.е.Ñъобщението трÑбва да бъде криптирано Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²ÐµÑ‚Ðµ на вÑички учаÑтници в групата. ÐœÐ¾Ð»Ñ Ð¸Ð·Ð¿Ñ€Ð°Ñ‚ÐµÑ‚Ðµ това Ñъобщение Ñамо ако знаете какео правите.\n\nДа продължа ли?
hasHTML=HTML mail warning:\nТова Ñъобщение може да Ñъдържа HTML, и това да доведе до неуÑпешно криптиране/подпиÑване. За да избегнете това в бъдеще, трÑбва да задържите 'SHIFT' бутона и да натиÑнете СъÑтави/Отговори бутон за да изпращате криптирани пиÑма.\nÐко подпиÑвате ÑъобщениÑта по-подразбиране, трÑбва да деактивирате 'СъÑтавÑй ÑъобщениÑта като HTML' за поÑтоÑнно деактивиране на HTML ÑъобщениÑта за този имейл акаунт.
strippingHTML=Съобщението ÑÑŠÑържа HTML форматиране и Ñ‚Ñ Ñ‰Ðµ бъде изгубена при преминаването към нормален текÑÑ‚ за подпиÑване/криптиране. Желаете ли да продължите?
msgCompose.button.sendAnyway=&Изпратете Ñъобщението въпреки това
attachWarning=Прикачените файлове към това Ñъобщение не Ñа запиÑани на Ð²Ð°ÑˆÐ¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ и не може да бъдат криптирани. За да криптирате прикачените файлове, първо ги запишете на Ð²Ð°ÑˆÐ¸Ñ ÐºÐ¾Ð¼Ð¿ÑŽÑ‚ÑŠÑ€ и Ñлед това ги прикачете. Желаете ли вÑе пак да изпратите това Ñъобщение?
quotedPrintableWarn=Вие Ñте активирали 'quoted-printable' кодиране за вашите изходÑщи ÑъобщениÑ. Това може да доведе до неправилно декриптиране и/или проверка на вашето Ñъобщение.\nЖелаете ли да изключите изпращането на 'quoted-printable' ÑÑŠÐ¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñега?
minimalLineWrapping=Вие решихте да изравните редовете по %S Ñимвола ширина. За правилно криптиране и/или подпиÑване, тази ÑтойноÑÑ‚ трÑбва да е най-малко 68.\nЖелаете ли да промените подравнÑването на 68 Ñимвола?
warning=Предупреждение
signIconClicked=Вие ръчно определихте дали да Ñе подпиÑва Ñъобщението. Ето защо използването на подпиÑване не завиÑи от използването на криптиране.
pgpMime_sMime.dlg.pgpMime.button=Използвайте &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Използвайте &S/MIME
msgCompose.toolbarTxt.signOnly=Това Ñъобщение ще бъде подпиÑано
msgCompose.toolbarTxt.noEncryption=Това Ñъобщение ще бъде неподпиÑано и некодирано
# note: should end with double newline:
sendAborted=Изпращането е прекъÑнато.\n\n
statPGPMIME=PGP/MIME
statSigned=ПОДПИСÐÐО
statEncrypted=EКОДИРÐÐО
statPlain=ÐЕПОДПИСÐÐО и ÐЕКРИПТИРÐÐО
offlineSave=Да запиша ли %S Ñъобщението %S в папката за неизпратени ÑъобщениÑ?
onlineSend=Да Ð¸Ð·Ð¿Ñ€Ð°Ñ‚Ñ Ð»Ð¸ %S Ñъобщение на %S?
encryptKeysNote=Забележка: Ñъобщението е криптирано ÑÑŠÑ Ñледната ПотребителÑка Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ / Ключове: %S
signFailed=Грешка в Enigmail; Криптирането/подпиÑването беше неуÑпешно; Да Ð¸Ð·Ð¿Ñ€Ð°Ñ‚Ñ Ð»Ð¸ Ñъобщението некриптирано?
msgCompose.button.sendUnencrypted=&Изпращане на некриптирано Ñъобщение
recipientsSelectionHdr=Избери получателите на криптираното Ñъобщение
configureNow=Ðе Ñте конфигирурали тази потребителÑка Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð·Ð° работа Ñ Enigmail. ÐайÑтина ли желаете да направите това?
reasonByRecipientRules=принудени от правилата на получателите
reasonByAutoEncryption=принудени от автоматичното криптиране
reasonByConflict=поради конфликт в правилата на получателите
reasonByEncryptionMode=поради режим на криптиране
# should not be used anymore:
encryptYes=Съобщението ще бъде криптирано
encryptNo=Съобщението нÑма да бъде криптирано
# should not be used anymore:
signYes=Съобщението ще бъде подпиÑано
signNo=Съобщението нÑма да бъде подпиÑано
# should not be used anymore
pgpmimeYes=PGP/MIME ще бъдат използвани
pgpmimeNo=Inline PGP ще бъдат използван
rulesConflict=Възникна конфликт Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»Ð°Ñ‚Ð° на получателÑ\n%S\n\nДа Ð¸Ð·Ð¿Ñ€Ð°Ñ‚Ñ Ð»Ð¸ Ñъобщението Ñ Ñ‚ÐµÐ·Ð¸ наÑтройки?
msgCompose.button.configure=&ÐаÑтройки
msgCompose.button.send=&Изпращане на Ñъобщение
msgCompose.button.save=&Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° Ñъобщение
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=За проверка на подпиÑа Ñе нуждаете от Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ %S
keyUsed=ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ %S Ñе използва за проверка на подпиÑ
clickDecrypt=; натиÑнете бутона за Декриптиране
clickDecryptRetry=; натиÑнете бутона за Декриптиране за повторен опит
clickDetailsButton=; щракнете върху бутона 'Детайли' за повече информациÑ
msgPart=ЧаÑÑ‚ от Ñъобщението %S
msgSigned=подпиÑано
msgEncrypted=криптирано
msgSignedAndEnc=подпиÑано и криптирано
unverifiedSig=Ðепроверен цифров подпиÑ
incompleteDecrypt=Декриптирането е неуÑпешно
needKey=Грешка - за да декриптирате Ñъобщението имате нужда от ÑÐµÐºÑ€ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡
failedDecrypt=Грешка - декриптирането е неуÑпешно
badPhrase=Грешка - грешна парола за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡
failedDecryptVerify=Грешка - декриптирането или проверката на Ñ†Ð¸Ñ„Ñ€Ð¾Ð²Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ðµ неуÑпешно
viewInfo=; View > Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð·Ð° детайлите на ÑигурноÑтта на Ñъобщението
decryptedMsg=Декриптирано Ñъобщение
locateGpg=Ðамерете програмата GnuPG
invalidGpgPath=ИзпълнимиÑÑ‚ файл на GnuPG не може да бъде намерен в указаната директориÑ. Ето защо Enigmail ще бъде деактивиран .
warningsAreReset=Ð’Ñички Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ñ‰Ðµ бъдат нулирани.
prefs.gpgFound=GnuPG е намерен в %S
prefs.gpgNotFound=Ðе може да бъде намерен GnuPG
prefs.warnAskNever=Предупреждение: активирането на тази Ð¾Ð¿Ñ†Ð¸Ñ Ñ‰Ðµ доведе до некриптирани имейли без вÑÑкаква допълнителна информациÑ, ако нÑма ключ за нÑкой от получателите - Enigmail нÑма да ви информира, ако това Ñе Ñлучи!
prefEnigmail.oneKeyserverOnly=Грешка - може да изберете Ñамо един Ñървър за ключове за Ñвалене на липÑтващи OpenPGP ключове.
enterAdminPin=ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ админиÑтраторÑки ПИРна вашата Смарткарта
enterCardPin=ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ ПИÐ-а на вашата Смарткарта
notInit=Грешка - Enigmail уÑлугите вÑе още не Ñа инициализирани
badCommand=Грешка - грешка при криптирането
cmdLine=командна Ð»Ð¸Ð½Ð¸Ñ Ð¸ изход:
notRequired=Грешка - не Ñе изиÑква криптиране
notComplete=Грешка - генерирането на ключа вÑе още не е приключило
invalidEmail=Грешка - грешен имейл адреÑ(и)
noPassphrase=Грешка - не беше въведена парола за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡
noPGPblock=Грешка - Ðе е намерен Ð·Ð°Ñ‰Ð¸Ñ‚ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾Ðº Ñ Ð´Ð°Ð½Ð½Ð¸ на OpenPGP
unverifiedReply=Indented message part (reply) was probably modified
sigMismatch=Грешка - ПодпиÑите не Ñъвпадат
cantImport=Грешка при внаÑÑнето на Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Смарткартата %S намерена във Ð²Ð°ÑˆÐ¸Ñ Ñ‡ÐµÑ‚ÐµÑ† не може да бъде използвана за обработка на Ñъобщението.\nÐœÐ¾Ð»Ñ Ð¿Ð¾Ñтавете ÑвоÑта Смарткарта %S отново и повторете операциÑта.
sc.insertCard=ОперациÑта изиÑква вашата Смарткарта %S.\nÐœÐ¾Ð»Ñ Ð¿Ð¾Ñтавете изиÑкваната Смарткарта и повторете операциÑта.
sc.removeCard=ОперациÑта изиÑква вашата Смарткарта да бъде поÑтавена в четеца.\nÐœÐ¾Ð»Ñ Ñложете вашата Смарткарта и повторете операциÑта.
sc.noCardAvailable=Във Ð²Ð°ÑˆÐ¸Ñ Ñ‡ÐµÑ‚ÐµÑ† не беше открита Смарткарта\nÐœÐ¾Ð»Ñ Ð¿Ð¾Ñтавете вашата Смарткарта, и повторете операциÑта.
sc.noReaderAvailable=ВашиÑÑ‚ четец за Смарт карти е недоÑтъпен.\nÐœÐ¾Ð»Ñ Ñвържете Ð²Ð°ÑˆÐ¸Ñ Ñ‡ÐµÑ‚ÐµÑ† за Смарткарти, поÑтавете вашата карта, и повторете операциÑта.
gpgNotFound=Ðевъзможно е да Ñе намери GnuPG програмата '%S'.\nУверете Ñе, че Ñте задали Ð¿ÑŠÑ‚Ñ Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ GnuPG файли в наÑтройките.
gpgNotInPath=Ðевъзможно е да Ñе намери GnuPG Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ Ñ„Ð°Ð¹Ð».\nУверете Ñе, че Ñте задали Ð¿ÑŠÑ‚Ñ Ð½Ð° Ð¸Ð·Ð¿ÑŠÐ»Ð½Ð¸Ð¼Ð¸Ñ GnuPG файли в наÑтройките.
gpgAgentNotStarted=Ðе може да бъде Ñтартирана gpg-agent програмата коÑто е необходима за вашата верÑÐ¸Ñ Ð½Ð° GnuPG %S.
prefUntrusted=ÐЕДОВЕРЕÐ
prefRevoked=ÐÐУЛИРÐРКЛЮЧ
prefExpiredKey=ИЗТЕКЪЛ КЛЮЧ
prefExpired=ИЗТЕКЪЛ
prefGood=Правилен Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ %S
prefBad=Ðеправилен Ð¿Ð¾Ð´Ð¿Ð¸Ñ Ð¾Ñ‚ %S
failCancel=Error - Получаването на ключа е отменено от потребителÑ
failNoServer=Error - Ðе е указан Ñървър за ключове
failNoID=Error - Ðе е указан идентификатор на ключа за получаването на ключа
failKeyExtract=Error - извличането на ключа е неуÑпешно
notFirstBlock=Error - ПървиÑÑ‚ OpenPGP блок не е блок на Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡
importKeyConfirm=Да импортирам ли ключа(овете) приложени в Ñъобщението?
failKeyImport=Error - внаÑÑнето Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° е неуÑпешно
fileWriteFailed=ЗапиÑа на файла е неуÑпешен %S
importKey=ВнаÑÑне на Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ %S от Ñървъра за ключове:
uploadKey=Изпратете публичниÑÑ‚ ключ %S към Ñървъра за ключове:
keyId=Идентификатор на ключа
keyAndSigDate=Идентификатор на ключа: 0x%S / ПодпиÑан: %S
keyFpr=Отпечатък на ключа: %S
noEmailProvided=Ðе Ñте указали Ð°Ð´Ñ€ÐµÑ Ð·Ð° електронна поща!
keyAlreadySigned=Ключа е вече подпиÑан, не може да го подпиÑвате повторно.
selKeyExpired=изтича %S
createdHeader=Създаден на
atLeastOneKey=Ðе е избран ключ! ТрÑбва да изберете поне един ключ
fewerKeysThanRecipients=Избраните от Ð²Ð°Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ðµ Ñа по-малко от Ð±Ñ€Ð¾Ñ Ð½Ð° получателите. Сигурни ли Ñте че лиÑта Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð²Ðµ за шифроване е пълен?
userSel.button.goBack=Изберете още ключове
userSel.secretKeySel.title=Изберете Ñекретен OpenPGP ключ за да подпиÑвате ÑъобщениÑ
userSel.problemNoKey=ÐÑма валиден ключ
userSel.problemMultipleKeys=МножеÑтво ключове
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=ЗÐБЕЛЕЖКÐ: PGP/MIME Ñе поддържа от ограничен брой имейл програми! За Windows Ñамо програмите Mozilla/Thunderbird, Sylpheed, Pegasus and Mulberry поддържат този Ñтандарт.\nЗа Linux/UNIX и Mac OS X Ñтандарта Ñе поддържа от повечето популÑрни имейл клиенти. Ðко не Ñте Ñигурни, изберете %S опциÑ.
first=първата
second=втората
# Strings used in am-enigprefs.js
encryptKeyHeader=Изберете OpenPGP ключ за криптиране
identityName=СамоличноÑÑ‚: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Имате активирано криптиране, но вÑе ощч не Ñте избрали ключ. За да криптирате ÑъобщениÑта изпращани на %S, трÑбва да изберете един или нÑколко ключа от Ð²Ð°ÑˆÐ¸Ñ Ð»Ð¸ÑÑ‚. Желаете ли да деактивирате криптирането за %S?
noKeyToUse=(Без - без криптиране)
noEmptyRule=Правилото не може да е празно! ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ имейл Ð°Ð´Ñ€ÐµÑ Ð¸ попълнете полето на правилото.
invalidAddress=Имейл адреÑа(ите), който Ñте въвели не Ñа валидни. Ðе трÑбва да въвеждате имената на потребителите, а Ñамо техните имейл адреÑи. Пример:\nÐеправилно: Some Name \nПравилно: some.name@address.net
noCurlyBrackets=Фигурните Ñкоби имат {} Ñпециално предназначение и не трÑбва да Ñе използват за имейл адреÑи. Ðко желаете да промените това правило, използвайте наÑтройките 'Запомнете правилото ако Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ ...'.\nПовече Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¼Ð¾Ð¶Ðµ да получите от бутона помощ.
# Strings used in enigmailRulesEditor.js
never=Ðикога
always=Винаги
possible=Възможно
deleteRule=ÐаиÑтина ли желаете да изтриете избраното правило?
nextRcpt=(Следващ получател)
negateRule=Ðе
# Strings used in enigmailSearchKey.js
needOnline=ФункциÑта коÑто Ñте избрали не работи в Офлайн режим. ÐœÐ¾Ð»Ñ Ð¿Ñ€ÐµÐ¼Ð¸Ð½ÐµÑ‚Ðµ в Онлайн режим.
protocolNotSupported=Протокола '%S://' който Ñте избрали не Ñе поддържа за ÑвалÑне на OpenPGP ключове.
gpgkeysDisabled=Включването на опциÑта може да помогне 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Свързването ÑÑŠÑ Ñървъра за ключове %S е невъзможно.
keyDownloadFailed=СвалÑнето на ключа от Ñървъра за ключове е неуÑпешно. СтатуÑа е:\n%S
internalError=Възникна вътршна грешка. Ключовете не могата да бъдат Ñвалени или внеÑени.
noKeyFound=СъжалÑваме, не бÑха намерени ключове който да Ñъвпадат Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÐ½Ð¸Ñ‚Ðµ критерии за търÑене.\nÐœÐ¾Ð»Ñ Ð·Ð°Ð±ÐµÐ»ÐµÐ¶ÐµÑ‚Ðµ че идентификациÑта на ключа трÑбва да започва Ñ \\"0x\\" (e.g. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=ТърÑенето или ÑвалÑнето на кл=чове от Ñървъра за ключове е неуÑпешно: gpgkeys_%S не може да бъде изпълнен.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Задаването на доверие на ÑобÑтвеника на ключа е неуÑпешно
# Strings in enigmailSignKeyDlg.js
signKeyFailed=ПодпиÑването на ключа Ñе провали
alreadySigned.label=Забележка: ключа %S е винаги подпиÑан Ñ Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ñекретен ключ.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Зареждане на ключовете, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ ...
keyValid.unknown=непознат
keyValid.invalid=невалиден
keyValid.disabled=деактивиран
keyValid.revoked=анулиран
keyValid.expired=изтекъл
keyValid.noSubkey=нÑма валиден подключ
keyTrust.untrusted=недоверен
keyTrust.marginal=малко доверен
keyTrust.full=доверен
keyTrust.ultimate=безкрайно доверен
keyTrust.group=(група)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Ðктивиране на ключ
keyMan.disableKey=Деактивиране на ключ
userAtt.photo=Ðтрибут на Ð¿Ð¾Ñ‚Ñ€ÐµÐ±Ð¸Ñ‚ÐµÐ»Ñ (JPEG image)
asciiArmorFile=ASCII Защитени файлове (*.asc)
importKeyFile=ВнеÑи файл за OpenPGP ключ
gnupgFile=GnuPG Файлове
saveRevokeCertAs=Създаване и Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° Ðнулиращ Ñертификат
revokeCertOK=ÐÐ½ÑƒÐ»Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñертификат беше Ñъздаден упешно. Може да го използвате за да анулирате Ñвой публичен ключ, пример: в Ñлучай че Ñте Ñи изгубили ÑÐµÐºÑ€ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡.\n\nÐœÐ¾Ð»Ñ Ð¿Ñ€ÐµÑ…Ð²ÑŠÑ€Ð»ÐµÑ‚Ðµ го на ноÑител, на който може да Ñе ÑъхранÑва безопаÑно, като CD или диÑкета. Ðко нÑкой има доÑтъп до този Ñертификат, може да го използва, за да направи ключа неизползваем
revokeCertFailed=ÐÐ½Ð¸Ð»Ð¸Ñ€Ð°Ñ‰Ð¸Ñ Ñертифика не може да бъде Ñъздаден.
addUidOK=ПотребителÑката Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ðµ добавена уÑпешно
addUidFailed=ДобавÑнето на потребителÑката Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ðµ неуÑпешно
noKeySelected=ТрÑбва да изберете поне един ключ за да оÑъщеÑтвите избраната операциÑ
exportToFile=Ð—Ð°Ð¿Ð¸Ñ Ð½Ð° Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ във файл
exportSecretKey=Желаете ли да включите ÑÐµÐºÑ€ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ в OpenPGP файла, който ще бъде запиÑан?
saveKeysOK=Ключовете бÑха уÑпешно запиÑани
saveKeysFailed=ЗапиÑването на ключовете Ñе провали
importKeysFailed=ВнаÑÑнето на ключовете Ñе провали
enableKeyFailed=Ðктивирането/деактивирането на ключовете не е уÑпешно
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=ИзнеÑени-публични ключове
defaultPubSecKeyFilename=ИзнеÑени-публични-и-Ñекретни-ключове
noSecretKeys=Ðе Ñа намерени Ñекретни ключове.\n\nЖелаете ли да генерирате ÑобÑтвен ключ Ñега?
sendKeysOk=Ключа(овете) Ñа изпратени уÑпешно
sendKeysFailed=Изпращането на ключовете е неуÑпешно
receiveKeysOk=Ключа(овете) Ñа обновени уÑпешно
receiveKeysFailed=СвалÑнето на ключовете пропадна
importFromClip=ИÑкате ли да внеÑете ключ(ове) от клипборда?
copyToClipbrdFailed=Ðе може да копирате избраниÑÑ‚ ключо(ове) в клипборда.
copyToClipbrdOK=Ключа(овете) Ñа копирани в клипборда
deleteSecretKey=Предупреждение: Ðа път Ñте да изтриете ÑÐµÐºÑ€ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡!\nÐко изтриете Ð²Ð°ÑˆÐ¸Ñ Ñекретен ключ, повече нÑма да можете да декриптирате ÑъобщениÑта криптирани за този ключ, и нÑма да може да анулирате този ключ.\n\nÐаиÑтина ли желаете да изтриете и двата ключа, ÑÐµÐºÑ€ÐµÑ‚Ð½Ð¸Ñ Ð¸ Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡\n'%S'?
deleteMix=Предупреждение: Ðа път Ñте да изтриете ÑÐµÐºÑ€ÐµÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡!\nÐко изтриете Ð²Ð°ÑˆÐ¸Ñ Ñекретен ключ, повече нÑма да можете Ð´Ñ Ð´ÐµÐºÑ€Ð¸Ð¿Ñ‚Ð¸Ñ€Ð°Ñ‚Ðµ ÑъобщениÑта криптирани за този ключ.\n\nÐаиÑтина ли желаете да изтриете и двата, Ð¸Ð·Ð±Ñ€Ð°Ð½Ð¸Ñ Ñекретен и публичен ключ?
deletePubKey=Желаете ли да изтриете Ð¿ÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡\n'%S'?
deleteSelectedPubKey=Желаете ли да изтриете публичните ключове?
deleteKeyFailed=Ключа не може да бъде изтрит.
revokeKeyOk=Ключа ще бъде анулиран. Ðко ключа ви е качен на Ñървъра за ключове, е препоръчително да го качите отново, за да виждат вÑички че е анулиран.
revokeKeyFailed=Ключа не може да бъде анулиран.
refreshAllQuestion=Ðе Ñте избрали ключ. ИÑкате ли да обновите вÑички ключове?
refreshKey.warn=Предупреждение: в завиÑимоÑÑ‚ от Ð±Ñ€Ð¾Ñ Ð½Ð° ключовете и ÑкороÑтта на връзката, обновÑването на вÑички ключове може да отнеме много време!
keyMan.button.exportSecKey=ЕкÑпортиране на &Секретните ключове
keyMan.button.exportPubKey=ЕкÑпортиране &Ñамо на Публичните ключове
keyMan.button.import=&ВнаÑÑне
keyMan.button.refreshAll=&ОбновÑване на вÑички ключове
keyMan.button.revokeKey=&Ðулиране на ключа
keylist.noOtherUids=ÐÑма други идентификации
keylist.hasOtherUids=Така извеÑтни както
keylist.noPhotos=ÐÑма фотографиÑ
keylist.hasPhotos=ФотографиÑ
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=ПромÑната на оÑновната ПотребителÑка Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±ÐµÑˆÐµ неуÑпешна
changePrimUidOK=ПромÑната на оÑновната ПотребителÑка Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð±ÐµÑˆÐµ уÑпешна
deleteUidFailed=Изтриването на ПотрeбителÑката Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %S беше неуÑпешн
deleteUidOK=ПотрeбителÑката Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %S беше изтрита уÑпешно
revokeUidFailed=Ðнулирането на ПотрeбителÑката Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %S беше неуÑпешно
revokeUidOK=ПотрeбителÑката Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ %S беше анулирана уÑпешно. Aко Ñте качили вашиÑÑ‚ ключ на Ñървър за ключове, е препоръчително да го качите отново, така оÑтаналите потребители ще виждат че е анулиран.
revokeUidQuestion=ÐаиÑтина ли желаете да анулирате ПотребителÑката идентификациÑ: \n%S
deleteUidQuestion=ÐаиÑтина ли желаете да изтриете тази ПотребителÑка идентификациÑ: \n%S?\n\nÐœÐ¾Ð»Ñ Ð·Ð°Ð±ÐµÐ»ÐµÐ¶ÐµÑ‚Ðµ: ако Ñте качили вашиÑÑ‚ публичен ключ на Ñървър за ключове, изтриването на потребителÑката региÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ñма да изтрии ключа от Ñървъра. Ð’ този Ñлучай за да изтриете ключа от Ñървъра трÑбва да използвате 'Ðнулиране на потребителÑка идентификациÑ'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=Публичен ключ
keyTypePrimary=ОÑновен ключ
keyTypeSubkey=Подключ
keyTypePair=двойка ключове
keyExpiryNever=безÑрочен
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Криптиране
keyUsageSign=ПодпиÑване
keyUsageCertify=Потвърждавам
keyUsageAuthentication=УдоÑтоверÑване
# Strings in enigmailGenCardKey.xul
keygen.started=ÐœÐ¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ, докато ключа Ñе генерира ....
keygen.completed=Генериране на ключ. Ðовата Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð½Ð° ключа е: 0x%S
keygen.keyBackup=Създадено беше резервно копие като %S
keygen.passRequired=ÐœÐ¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ парола за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ ако желаете да Ñъздадете резервно копие на Ð²Ð°ÑˆÐ¸Ñ ÐºÐ»ÑŽÑ‡ извън вашата Смарткарта.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Въведените Пинове не Ñъвпадат; Ð¼Ð¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ ги отново
cardPin.minLength=Пинът трÑбва да Ñъдържа най-малко %S Ñимвола или цифри
cardPin.processFailed=СмÑната на PIN-а беше неуÑпешна
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=ОбновÑване на ключовете, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ ...
keyserverProgress.uploading=Качване на ключовете, Ð¼Ð¾Ð»Ñ Ð¸Ð·Ñ‡Ð°ÐºÐ°Ð¹Ñ‚Ðµ ...
keyserverTitle.refreshing=ОбновÑване на ключовете
keyserverTitle.uploading=Качване на ключ
# Strings in enigmailSetupWizard
passphrase.min8keys=Вашата парола за защита на чаÑÑ‚Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡ трÑбва да Ñе ÑÑŠÑтой най-малко от 8 Ñимвола!
setupWizard.reallyCancel=ÐаиÑтина ли желаете да затворите Enigmail Ñъветника за наÑтройка?
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=ТрÑбва да попълните Име и Имейл адреÑ
addUidDlg.nameMinLengthError=Името ви трÑбва да Ñъдържа най-малко 5 Ñимвола
addUidDlg.invalidEmailError=ТрÑбва да въведете валиден имейл адреÑ
addUidDlg.commentError=Скобите не Ñа позволени в коментарите
errorType.SecurityProtocol=Протоколът за ÑигурноÑÑ‚, използван от уеб уÑлугата е неизвеÑтен.
filter.decryptCopy.label=Създайте декриптирано копие (Enigmail)
enigmail/lang/bg/help/ 0000775 0000000 0000000 00000000000 12667016244 0015114 5 ustar 00root root 0000000 0000000 enigmail/lang/bg/help/compose.html 0000664 0000000 0000000 00000007765 12667016244 0017466 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/bg/help/editRcptRule.html 0000664 0000000 0000000 00000011451 12667016244 0020412 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/bg/help/initError.html 0000664 0000000 0000000 00000004525 12667016244 0017765 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/bg/help/messenger.html 0000664 0000000 0000000 00000010012 12667016244 0017764 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/bg/help/rulesEditor.html 0000664 0000000 0000000 00000005722 12667016244 0020311 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/bg/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020450 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/ca/ 0000775 0000000 0000000 00000000000 12667016244 0014157 5 ustar 00root root 0000000 0000000 enigmail/lang/ca/am-enigprefs.properties 0000664 0000000 0000000 00000000122 12667016244 0020645 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Seguretat OpenPGP
enigmail/lang/ca/enigmail.dtd 0000664 0000000 0000000 00000070512 12667016244 0016446 0 ustar 00root root 0000000 0000000
NOTA: La generació de la clau pot trigar uns quants minuts en acabar. No sortiu del navegador mentre s'està generant la clau. La navegació activa o les operacions d'ús intensiu del disc dur durant la generació de la clau renovaran el 'pou d'atzar' i acceleraran el procés. Rebreu un avÃs quan acabi el procés de generació de la clau.">
' no és và lid">
NOTA: La generació de la clau pot trigar uns minuts en acabar. No sortiu de l'aplicació mentre estigui en curs la generació de la clau. Us avisaré quan acabi la generació de la clau.">
Nota: L'Enigmail sempre verificarà les signatures dels correus per cada compte o identitat, sense fer cas a si està habilitat o no.">
Grà cies per emprar l'Enigmail.">
enigmail/lang/ca/enigmail.properties 0000664 0000000 0000000 00000055146 12667016244 0020075 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Alerta de l'Enigmail
enigConfirm=Confirmació de l'Enigmail
enigError=Error de l'Enigmail
enigPrompt=Pregunta de l'Enigmail
dlgYes=&SÃ
dlgNo=&No
dlgKeepSetting=Recorda la meva resposta i no tornis a preguntar-ho
dlgNoPrompt=No tornis a mostrar aquest dià leg
dlg.button.delete=&Esborra
dlg.button.cancel=&Cancel·la
dlg.button.close=Tan&ca
dlg.button.continue=Con&tinua
dlg.button.skip=&Omet
dlg.button.view=&Visualitza
repeatPrefix=\n\nAquesta alerta es repetirà %S
repeatSuffixSingular=altra vegada.
repeatSuffixPlural=vegades més.
noRepeat=\n\nAquesta alerta no es repetirà fins que actualitzeu l'Enigmail.
pgpNotSupported=Sembla que s'està emprant l'Enigmail amb el PGP 6.x \n\nDesafortunadament, el PGP 6.x té una sèrie de problemes que impedeixen que l'Enigmail treballi correctament. Per tant, l'Enigmail no permet utilitzar el PGP 6.x; cal que canvieu a GnuPG (GPG) en el seu lloc.\n\nSi us cal ajuda per canviar al GnuPG, reviseu la secció d'ajuda de la pà gina web de l'Enigmail.
passphraseCleared=S'ha netejat la contrasenya.
noPhotoAvailable=No hi ha foto disponible
usingVersion=S'està executant la versió %S de l'Enigmail
usingAgent=S'està emprant el %S i l'executable %S per xifrar i desxifrar
agentError=ERROR: Ha fallat l'accés al servei Enigmime!
accessError=Error al accedir al servei Enigmail
onlyGPG=La generació de la clau només funciona amb el GnuPG (no amb el PGP)!
keygenComplete=Ha acabat la generació de la clau! S'emprarà la identitat <%S> per signar.
revokeCertRecommended=Us recomano fermament que genereu un certificat de revocació de la vostra clau. Aquest certificat es pot emprar per invalidar la clau, quan, per exemple, la clau secreta es perd o queda compromesa. Voleu generar ara el certificat de revocació?
keyMan.button.generateCert=&Genera el certificat
genCompleteNoSign=Ha acabat la generació de la clau!
genGoing=Ja s'està generant la clau!
passNoMatch=La contrasenya introduïda no és correcta; torneu-la a introduir
passCheckBox=Marqueu la caixa si no especifiqueu cap contrasenya per la clau
passUserName=Indiqueu el nom d'usuari per aquesta identitat
changePassFailed=Ha fallat el canvi de contrasenya.
keyConfirm=Genero les claus pública i privada per '%S'?
keyMan.button.generateKey=&Genera la clau
keyAbort=Cancel·lo la generació de la clau?
keyMan.button.generateKeyAbort=&Interromp la generació de la clau
keyMan.button.generateKeyContinue=&Continua la generació de la clau
expiryTooLong=No podeu crear cap clau que caduqui més enllà dels 100 anys.
expiryTooShort=La vostra clau ha de ser và lida com a mÃnim durant un dia.
keyGenFailed=La generació de la clau ha fallat. Comproveu els detalls a la consola de l'Enigmail (menú Enigmail > Depuració de l'Enigmail).
# Strings in enigmailMessengerOverlay.js
securityInfo=Informació de seguretat Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Els fitxers adjunts a aquest missatge no s'han signat o xifrat*\n\n
possiblyPgpMime=El missatge segurament s'ha xifrat o signat amb PGP/MIME; cliqueu el botó Desxifra per verificar-ho
noDecrypted=No hi ha cap missatge desxifrat per desar!\nEmpreu l'ordre Desa del menú Fitxer
noMessage=No hi ha cap missatge per desar!
useButton=Cliqueu el botó Desxifra per desxifrar el missatge
saveHeader=Enigmail: Desa el missatge desxifrat
saveAttachmentHeader=Enigmail: Desa l'adjunt desxifrat
noTempDir=No s'ha pogut trobar un directori temporal per escriure-hi. \nEstabliu la variable d'entorn TEMP
attachmentPgpKey=L'adjunt '%S' que esteu obrint sembla ser un fitxer de clau OpenPGP. \n\nCliqueu «Importa» per a importar les claus que conté o «Visualitza» per a mostrar el contingut del fitxer a una finestra del navegador
beginPgpPart=********* *INICI DE PART XIFRADA o SIGNADA* ********
endPgpPart=********** *FI DE PART XIFRADA o SIGNADA* **********
notePartEncrypted=Enigmail: *NO s'ha signat o xifrat parts del missatge*
noteCutMessage=Enigmail: *S'han trobat múltiples blocs de missatge -- s'ha cancel·lat el desxifratge/verificació*
decryptOkNoSig=AvÃs\n\nEl desxifratge ha reeixit, però la signatura no s'ha pogut verificar correctament
msgOvl.button.contAnyway=&Continua igualment
keysToExport=Seleccioneu les claus OpenPGP a inserir
keysToUse=Seleccioneu les claus OpenPGP per emprar a %S
pubKey=Clau pública per a %S\n
windowLocked=La finestra del redactor està blocada; s'ha cancel·lat l'enviament
sendUnencrypted=Ha fallat la inicialització de l'Enigmail.\nEnvio el missatge sense xifrar?
composeSpecifyEmail=Indiqueu la vostra adreça de correu principal, que s'emprarà per triar la clau de signatura per als missatges de sortida.\n Si la deixeu en blanc, l'adreça DES DE (FROM) del missatge s'emprarà per triar la clau de signatura.
sendingHiddenRcpt=Aquest missatge té destinataris Cco (còpia oculta). Si aquest missatge està xifrat, ès possible ocultar els destinataris però els usuaris d'alguns productes (p.ex. PGP Corp.) no podran desxifrar el missatge. Tenint en compte això, es recomana evitar els correus electrònics amb Cco amb missatges xifrats.
sendWithHiddenBcc=Oculta els destinataris Cco
sendWithShownBcc=Xifra normalment
sendingNews=S'ha cancel·lat l'operació d'enviament xifrat.\n\nAquest missatge no es pot xifrar perquè hi ha destinataris de grups de notÃcies. Reenvieu aquest missatge sense xifrar.
sendToNewsWarning=AvÃs: esteu a punt d'enviar un correu xifrat a un grup de notÃcies.\n\nAixò es desaprova perqué nomès tè sentit si tots els membres del grup poden desxifrar el missatge, ès a dir, cal xifrar el missatge amb les claus de tots els participants del grup. Envieu aquest missatge nomès si sabeu perfectament el qué esteu fent.\n\nContinuo?
hasHTML=AvÃs de correu HTML:\nAquest missatge pot contenir HTML, que podria causar errades al signar/xifrar. Per a evitar això en el futur, heu de prémer la tecla MAJ (SHIFT) quan feu un clic al botó Redacta/Respon al enviar correu signat.\nSi signeu el correu per defecte, haurÃeu de desmarcar la caixa de preferència 'Redacta missatges en HTML' per desactivar permanentment el correu HTML en aquest compte de correu.
strippingHTML=El missatge té informació de format HTML que es perdrà quan es converteixi a text al signar/xifrar. Desitgeu continuar?
msgCompose.button.sendAnyway=&Envia el missatge igualment
attachWarning=Els adjunts d'aquest missatge no són locals, no es poden xifrar. Per a xifrar els adjunts, primer els heu de desar com a fitxers locals i adjuntar aquests fitxers. Voleu continuar igualment?
quotedPrintableWarn=Heu activat la codificació «quoted-printable» per enviar els missatges. Això pot provocar un desxifratge o verificació incorrectes dels vostres missatges.\nVoleu desactivar ara l'enviament «quoted-printable» dels missatges?
minimalLineWrapping=Heu establert l'ajustament de lÃnia a %S carà cters. Per a un xifratge i/o signatura correctes, aquest valor ha de ser almenys 68.\nVoleu canviar ara l'ajust de lÃnia a 68 carà cters?
warning=AvÃs
signIconClicked=Heu modificat manualment la signatura. Per tant, mentre redacteu el missatge, la (des)activació de la signatura no dependrà de la (des)activació del xifratge.
pgpMime_sMime.dlg.pgpMime.button=Utilitza &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Utilitza &S/MIME
# note: should end with double newline:
sendAborted=S'ha cancel·lat l'operació d'enviament.\n\n
statPGPMIME=PGP/MIME
statSigned=SIGNAT
statEncrypted=XIFRAT
statPlain=SENSE SIGNAR i SENSE XIFRAR
offlineSave=Deso el missatge %S a %S a la carpeta de Missatges per enviar?
onlineSend=Envio el missatge %S a %S?
encryptKeysNote=Nota: el missatge està xifrat amb la següent identificació d'usuari / clau: %S
signFailed=Error a l'Enigmail; ha fallat la xifra/signatura; envio el missatge sense xifrar?
msgCompose.button.sendUnencrypted=&Envia el missatge sense xifrar
recipientsSelectionHdr=Seleccioneu els destinataris per xifrar
configureNow=Encara no heu configurat la seguretat Enigmail per la identitat seleccionada. Voleu fer-ho ara?
# should not be used anymore:
encryptYes=El missatge es xifrarÃ
encryptNo=El missatge no es xifrarÃ
# should not be used anymore:
signYes=El missatge es signarÃ
signNo=El missatge no es signarÃ
rulesConflict=S'ha detectat un conflicte a les regles per destinatari\n%S\n\nEnvio el missatge amb aquests parà metres?
msgCompose.button.configure=&Configura
msgCompose.button.send=&Envia el missatge
msgCompose.button.save=&Desa el missatge
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Cal la clau pública %S per verificar la signatura
clickDecrypt=; feu un clic al botó Desxifra
clickDecryptRetry=; feu un clic al botó Desxifra per reintentar
msgPart=Part del missatge %S
msgSigned=signat
msgEncrypted=xifrat
msgSignedAndEnc=signat i xifrat
unverifiedSig=Signatura no verificada
incompleteDecrypt=Desxifratge incomplet
needKey=Error - cal la clau secreta per desxifrar el missatge
failedDecrypt=Error - ha fallat el desxifratge
badPhrase=Error - contrasenya incorrecta
failedDecryptVerify=Error - ha fallat el desxifratge/verificació
viewInfo=; Visualitza > Informació de seguretat del missatge per als detalls
decryptedMsg=Missatge desxifrat
locateGpg=Localitza el programa GnuPG
invalidGpgPath=El GnuPG no es pot executar amb el camà indicat. Per tant, l'Enigmail queda desactivat fins que torneu a canviar el camà al GnuPG o fins que reinicieu l'aplicació.
warningsAreReset=S'han reiniciat tots els avisos.
prefs.gpgFound=S'ha trobat el GnuPG a %S
prefs.gpgNotFound=No s'ha pogut trobar el GnuPG
prefs.warnAskNever=AvÃs: l'activació d'aquesta opció provocarà , sense mès informació, que els correus no es xifrin si no hi ha la clau per algun dels destinataris -- Si això passa, l'Enigmail no us informarà !
prefEnigmail.oneKeyserverOnly=Error - nomès podeu indicar un servidor de claus per a la baixada automà tica de claus OpenPGP que manquin.
enterAdminPin=Introduïu el PIN d'administració de la targeta intel·ligent
enterCardPin=Introduïu el PIN de la targeta intel·ligent
notInit=Error - el servei Enigmail encara no s'ha iniciat
badCommand=Error - ha fallat l'ordre de xifrar
cmdLine=lÃnia d'ordres i sortida:
notRequired=Error - no s'ha demanat xifrar
notComplete=Error - la generació de la clau encara no ha acabat
invalidEmail=Error - adreça de correu no và lida
noPassphrase=Error - no s'ha facilitat la contrasenya
noPGPblock=Error - no s'ha trobat cap bloc cuirassat amb dades OpenPGP
unverifiedReply=La part indentada del missatge (resposta) ha estat probablement modificada
sigMismatch=Error - la signatura no coincideix
cantImport=Error en importar la clau pública\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=La targeta intel·ligent %S trobada al lector no es pot utilitzar per a processar el missatge.\nSi us plau, inseriu la vostra targeta intel·ligent %S i repetiu l'operació.
sc.insertCard=L'operació requereix la vostra targeta intel·ligent %S.\nSi us plau, inseriu la targeta intel·ligent requerida i repetiu l'operació.
sc.removeCard=L'operació requereix que no hi hagi cap targeta intel·ligent en el lector.\nSi us plau, retireu la targeta intel·ligent i repetiu l'operació.
sc.noCardAvailable=No hi ha cap targeta intel·ligent al lector\nInseriu la vostra targeta intel·ligent i repetiu l'operació.
sc.noReaderAvailable=No s'ha pogut accedir a la targeta intel·ligent\nConnecteu el lector de targetes intel·ligents, inseriu la vostra targeta, i repetiu l'operació.
gpgNotFound=No s'ha pogut trobar el programa GnuPG '%S'.\nComproveu que s'ha indicat el camà correcte a l'executable GnuPG a les Preferències de l'Enigmail.
gpgNotInPath=No s'ha pogut trobar l'executable GnuPG en el PATH.\nComproveu que s'ha especificat correctament el camà a l'executable GnuPG a les Preferències de l'Enigmail.
gpgAgentNotStarted=Could not start the gpg-agent program which is needed for your GnuPG version %S.
prefUntrusted=NO CONFIABLE
prefRevoked=CLAU REVOCADA
prefExpiredKey=CLAU CADUCADA
prefExpired=CADUCADA
prefGood=Signatura correcta de %S
prefBad=Signatura INCORRECTA de %S
failCancel=Error - L'usuari ha cancel·lat la recepció de la clau
failNoServer=Error - No s'ha especificat cap servidor de claus per rebre la clau
failNoID=Error - No s'ha especificat cap identificador de clau per rebre-la
failKeyExtract=Error - ha fallat l'ordre d'extracció de la clau
notFirstBlock=Error - El primer bloc OpenPGP no és un bloc de clau pública
importKeyConfirm=Importo la clau/s pública incrustada al missatge?
failKeyImport=Error - ha fallat la importació de la clau
fileWriteFailed=Ha fallat l'escriptura al fitxer %S
importKey=Importo la clau pública %S del servidor de claus:
uploadKey=Envia la clau pública %S al servidor de claus:
keyId=Identificador de clau
keyAndSigDate=Identificació de clau: 0x%S / Signada el: %S
keyFpr=Empremta digital de la clau: %S
noEmailProvided=No heu indicat cap adreça de correu!
keyAlreadySigned=La clau ja està signada, no la podeu signar dues vegades.
selKeyExpired=%S caducada
createdHeader=Creada
atLeastOneKey=No s'ha seleccionat cap clau! Heu de triar una clau com a mÃnim per acceptar aquest dià leg
fewerKeysThanRecipients=Heu seleccionat un nombre mès petit de de claus que de destinataris. Esteu segur que la llista de clau a xifrar ès completa?
userSel.button.goBack=Seleccioneu mès claus
userSel.secretKeySel.title=Selecció d'una clau OpenPGP secreta per a signar els vostres missatges
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOTA: només és permet el PGP/MIME a un nombre limitat de clients de correu! A Windows només els Mozilla/Thunderbird, Sylpheed, Pegasus i Mulberry se sap que permeten aquest està ndard; a Linux/UNIX i Mac OS X la majoria dels clients de correu més populars el permeten. Si no esteu segurs, seleccioneu la %S opció.
first=primera
second=segona
# Strings used in am-enigprefs.js
encryptKeyHeader=Seleccioneu una clau OpenPGP per xifrar
identityName=Identitat: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Heu activat l'opció de xifrar, però no heu seleccionat cap clau. Per a enviar correus xifrats a %S us cal indicar una o més claus và lides de la vostra llista de claus. Voleu desactivar el xifratge per a %S?
noKeyToUse=(cap - sense xifrar)
noEmptyRule=La regla no pot estar buida! Indiqueu una adreça de correu al camp regla.
invalidAddress=L'adreça de correu que heu indicat no és và lida. No heu d'indicar els noms dels destinataris, només les adreces de correu. Per exemple: \nNo và lid: Un nom \nVà lid: un.nom@adreça.net
noCurlyBrackets=Les clau {} tenen un significat especial i no es poden emprar a les adreces de correu. Si voleu modificar el comportament de recerca per aquesta regla, empreu l'opció 'Aplica la regla si el destinatari ...'.\nTrobareu més informació al botó d'ajuda.
# Strings used in enigmailRulesEditor.js
never=Mai
always=Sempre
possible=Possible
deleteRule=Voleu suprimir la regla seleccionada?
nextRcpt=(destinatari següent)
negateRule=No
# Strings used in enigmailSearchKey.js
needOnline=La funció que heu seleccionat no és disponible en mode fora de lÃnia. Connecteu-vos i torneu a provar.
protocolNotSupported=El protocol '%S://' que heu seleccionat no és permés per a descarregar claus OpenPGP.
gpgkeysDisabled=Us pot ajudar l'activació de l'opció 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=No es pot connectar al servidor de claus %S.
keyDownloadFailed=Ha fallat la descà rrega de la clau del servidor de claus. El missatge d'estat és:\n%S
internalError=Hi ha hagut un error intern. Les claus no s'han pogut descarregar o importar.
noKeyFound=Ho sento, no s'ha trobat cap clau que coincideixi amb el criteri de recerca indicat.\nTingueu en compte que els identificadors de clau han d'estar prefixats amb \\"0x\\" (p.ex. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Ha fallat la recerca o la descà rrega de la clau del servidor de claus: no s'ha pogut executar gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Ha fallat l'assignació de la confiança del propietari
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Ha fallat la signatura de la clau
alreadySigned.label=Nota: la clau %S ja està signada amb la clau secreta seleccionada.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Loading keys, please wait ...
keyValid.unknown=desconeguda
keyValid.invalid=invà lida
keyValid.disabled=deshabilitada
keyValid.revoked=revocada
keyValid.expired=caducada
keyValid.noSubkey=no hi ha una subclau và lida
keyTrust.untrusted=no confiable
keyTrust.marginal=marginal
keyTrust.full=confiable
keyTrust.ultimate=definitiva
keyTrust.group=(grup)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Activa la clau
keyMan.disableKey=Desactiva la clau
userAtt.photo=Atribut d'usuari (imatge JPEG)
asciiArmorFile=Fitxers cuirassats ASCII (*.asc)
importKeyFile=Importa un fitxer de claus OpenPGP
gnupgFile=Fitxers GnuPG
saveRevokeCertAs=Crea i desa el certificat de revocació
revokeCertOK=El certificat de revocació s'ha creat amb èxit. Podeu emprar-lo per invalidar la vostra clau pública, p.ex. si perdeu la vostra clau secreta.\n\nTransferiu-lo a un mitjà que es pugui emmagatzemar amb seguretat, com un CD o un disquet. Si algú accedeix a aquest certificat el pot utilitzar per a inutilitzar la vostra clau.
revokeCertFailed=No s'ha pogut crear el certificat de revocació.
addUidOK=L'identificador d'usuari s'ha afegit amb èxit
addUidFailed=Ha fallat al afegir l'identificador d'usuari
noKeySelected=Heu de seleccionar com a mÃnim una clau per tal de realitzar l'operació indicada
exportToFile=Exporta la clau pública a un fitxer
exportSecretKey=Voleu incloure la clau secreta en el fitxer de clau OpenPGP desat?
saveKeysOK=Les claus s'han desat amb èxit
saveKeysFailed=Ha estat impossible desar les claus
importKeysFailed=Ha fallat la importació de les claus
enableKeyFailed=Ha fallat l'habilitació/deshabilitació de les claus
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Claus-públiques-exportades
defaultPubSecKeyFilename=Claus-públiques-i-secretes-exportades
noSecretKeys=No s'ha trobat cap clau secreta.\n\nVoleu generar ara la vostra propia clau?
sendKeysOk=La clau/s s'ha enviat amb èxit
sendKeysFailed=Ha fallat l'enviament de les claus
receiveKeysOk=La clau/s s'ha actualitzat amb èxit
receiveKeysFailed=Ha fallat la baixada de les claus
importFromClip=Voleu importar alguna clau/s del porta-retalls?
copyToClipbrdFailed=No s'han pogut copiar la clau/s seleccionada al porta-retalls.
copyToClipbrdOK=La clau/s s'ha copiat al porta-retalls
deleteSecretKey=AVÃS: Esteu a punt de suprimir una clau secreta!\nSi esborreu la vostra clau secreta, ja no podreu desxifrar els missatges xifrats amb aquesta clau. \n\nSegur que voleu suprimir les dues, la clau secreta i la clau pública \n'%S'?
deleteMix=AVÃS: Esteu a punt de suprimir claus secretes!\nSi esborreu la vostra clau secreta, mai més podreu desxifrar cap missatge xifrat amb aquest clau. \n\nSegur que voleu suprimir ambdues claus seleccionades, la secreta i la pública?
deletePubKey=Voleu suprimir la clau pública\n'%S'?
deleteSelectedPubKey=Voleu suprimir les claus públiques?
deleteKeyFailed=La clau no s'ha pogut suprimir.
revokeKeyOk=S'ha revocat la clau. Si la vostra clau estava en un servidor de claus, es recomena que la torneu a pujar, de manera que els altres puguin veure la revocació.
revokeKeyFailed=No s'ha pogut revocar la clau.
refreshAllQuestion=No heu seleccionat cap clau. Voleu refrescar TOTES les claus?
refreshKey.warn=AvÃs: segons el nombre de claus i la velocitat de connexió, el refresc de totes les claus pot ser un procés bastant llarg!
keyMan.button.exportSecKey=&Exporta les claus secretes
keyMan.button.exportPubKey=Exporta només les claus &públiques
keyMan.button.import=&Importa
keyMan.button.refreshAll=&Refresca totes les claus
keyMan.button.revokeKey=&Revoca una clau
keylist.noOtherUids=No tè altres identitats
keylist.hasOtherUids=Tambè conegut com a
keylist.noPhotos=Sense fotografies disponibles
keylist.hasPhotos=Fotografies
keyMan.addphoto.filepicker.title=Seleccione una foto per afegir
keyMan.addphoto.failed=No s'afegit la foto.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Ha fallat en canviar l'identificador primari d'usuari
changePrimUidOK=S'ha canviat l'identificador primari d'usuari amb èxit
deleteUidFailed=Ha fallat en suprimir l'identificador d'usuari %S
deleteUidOK=L'identificador d'usuari %S s'ha suprimit amb èxit
revokeUidFailed=Ha fallat la revocació de l'identificador d'usuari %S
revokeUidOK=L'identificador d'usuari %S s'ha revocat amb èxit. Si la vostra clau estava en un servidor de claus, es recomena que la torneu a pujar, de manera que els altres puguin veure la revocació.
revokeUidQuestion=Segur que voleu revocar l'identificador d'usuari %S?
deleteUidQuestion=Segur que voleu suprimir l'identificador d'usuari %S?\n\nTingueu en compte que si heu enviat la vostra clau pública a un servidor de claus, la supressió de l'identificador d'usuari no canviarà res. En aquest cas haurÃeu d'emprar 'Revoca l'identificador d'usuari'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=clau pública
keyTypePrimary=clau primà ria
keyTypeSubkey=subclau
keyTypePair=parella de claus
keyExpiryNever=mai
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Xifra
keyUsageSign=Signa
keyUsageCertify=Certifica
keyUsageAuthentication=Autentifica
# Strings in enigmailGenCardKey.xul
keygen.started=Espereu mentre s'està generant la clau ...
keygen.completed=S'ha generat la clau. El nou identificador de clau és: 0x%S
keygen.keyBackup=S'ha fet una còpia de seguretat de la clau a %S
keygen.passRequired=Indiqueu una contrasenya si voleu crear una còpia de seguretat de la vostra clau fora de la targeta intel·ligent.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=El PIN que heu introduït no coincideix; torneu-lo a introduir
cardPin.minLength=El PIN ha de tenir un mÃnim de %S carà cters o xifres
cardPin.processFailed=El canvi de PIN ha fallat
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=S'està refrescant les claus, espereu si us plau ...
keyserverProgress.uploading=S'està penjant les claus, espereu, si us plau ...
keyserverTitle.refreshing=Refresca les claus
keyserverTitle.uploading=Penja les claus
# Strings in enigmailSetupWizard
passphrase.min8keys=La vostra contrasenya hauria de tenir 8 carà cters com a mÃnim!
setupWizard.reallyCancel=Esteu segur que voleu tancar l'auxiliar de configuració de l'Enigmail?
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Heu d'omplir amb un nom i una adreça de correu
addUidDlg.nameMinLengthError=El nom ha de tenir 5 carà cters com a mÃnim
addUidDlg.invalidEmailError=Heu d'indicar una adreça de correu và lida
addUidDlg.commentError=No es permeten claudà tors en els comentaris
enigmail/lang/ca/help/ 0000775 0000000 0000000 00000000000 12667016244 0015107 5 ustar 00root root 0000000 0000000 enigmail/lang/ca/help/compose.html 0000664 0000000 0000000 00000010237 12667016244 0017445 0 ustar 00root root 0000000 0000000
Ajuda Enigmail: Redacció de missatge
Ajuda Enigmail
Emprant l'Enigmail per redactar missatges
- El menú Enigmail a la finestra de Redacció
- Signa missatge: Activa/desactiva l'enviament de correu signat. S'avisa a l'usuari si falla
la signatura.
- Xifra missatge: Activa/desactiva el xifratge a tots els destinataris abans d'enviar.
S'avisa a l'usuari si falla el xifratge.
Si s'ha activat Mostra la selecció només quan es necessiti a Preferències
-> Pestanya de selecció de claus, s'obrirà una llista de claus si hi ha adreces a la llista de
destinataris del missatge pels que no teniu una clau pública.
Si s'ha activat No mostris mai el diàleg de selecció de claus OpenPGP a Preferències
-> Pestanya de selecció de claus, i hi ha adreces a la llista de destinataris del missatge pels
que no teniu una clau pública, el missatge s'enviarà sense xifrar.
- Empra PGP/MIME en aquest missatge: Activa/desactiva l'ús del
PGP/MIME
en aquest missatge.
Si teniu coneixement que el(s) destinatari(s) pot llegir el correu codificat amb el format PGP/MIME,
hauríeu d'activar-lo.
Aquesta funcionalitat depèn de si estan actius els paràmetres Permet l'ús de PGP/MIME o
Empra sempre PGP/MIME a Preferències -> Pestanya PGP/MIME.
- Opcions de redacció predeterminades: Submenú.
- Opcions de signatura/xifratge...: drecera a Paràmetres del compte ->
Opcions OpenPGP.
- Opcions d'enviament...: drecera a la pestanya Preferències ->
Enviament.
- Opcions de selecció de clau...: drecera a la pestanya Preferències ->
Selecció de clau.
- Opcions PGP/MIME...: drecera a la pestanya Preferències ->
PGP/MIME.
- Desfés el xifratge: Si hi ha una errada quan s'enviï el corrreu,
p.ex. que el servidor POP no accepta la petició, l'Enigmail no se n'assabentarà,
i el missatge xifrat continuarà mostrant-se a la finestra de redacció.
Seleccionant aquesta opció del menú es desfarà el xifratge/signatura, i es revertirà
la finestra de redacció al text original.
Com a solució provisional, aquesta opció es pot emprar per a desxifrar el text
citat en respondre a missatges xifrats. L'Enigmail hauria de desxifrar automàticament
el missatge citat, però si això falla per alguna raó, podeu emprar aquesta opció del menú
per a forçar-ho.
- Insereix la clau pública: insereix el bloc ASCII-cuirassat amb la clau pública a
la posició actual del cursor de la finestra de redacció. Es sol·licitarà l'adreça de correu
de la clau(s) a inserir. Les claus inserides d'aquesta manera es reconeixeran automàticament
a la recepció per l'Enigmail. Després de l'inserció de la clau, encara podeu
signar/xifrar el correu si us cal. No inseriu més d'un bloc de clau a un missatge; només indiqueu
vàries adreces de correu, separades per comes o espais quan es sol·liciti.
- Neteja la contrasenya desada: Neteja la contrasenya memoritzada. És útil
si teniu vàries contrasenyes.
- Ajuda: Mostra la informació d'ajuda del lloc web (aquesta pàgina).
Teniu més ajuda a la vostra disposició a la
pàgina web de l'Enigmail
enigmail/lang/ca/help/editRcptRule.html 0000664 0000000 0000000 00000013537 12667016244 0020414 0 ustar 00root root 0000000 0000000
Ajuda Enigmail: Editar regla OpenPGP
Ajuda Enigmail
Emprant l'editor de regles de l'Enigmail: Edició d'una regla OpenPGP
A l'editor de regles, podeu indicar, per cada destinatari, el xifratge, la signatura i PGP/MIME i quines claus OpenPGP emprar de manera predeterminada. En aquest diàleg, podeu indicar les regles per un destinatari individual i per un grup de destinataris amb atributs força similars.
- Estableix les regles OpenPGP per a: Conté l'adreça de
correu dels destinataris (sense noms, p.ex. només una adreça com
algu@correu.domini). Podeu indicar algunes adreces de correu, separades per espais.
L'adreça indicada aquí pot consistir de només la secció del domini, així el correu a qualsevol adreça del domini coincidirà (p.ex.
@correu.domini coincideix amb algu@correu.domini,
algualtre@correu.domini, qualsevol@correu.domini, etc.)
- Aplica la regla si el destinatari ...:
Això modifica la coincidència de les adreces de correu.
Si s'ha introduït múltiples adreces de correu, el paràmetre s'aplicarà a totes.
Els exemples següents estan basats en les Regles OpenPGP introduïdes més amunt algu@correu.domini.
- És exacta: amb aquest paràmetre, la regla només s'activarà amb adreces de correus
a algu@correu.domini (exacta, coincidència sense distinció de majúscules).
- Conté: amb aquest paràmetre, qualsevol adreça de correu que contingui la cadena
coincidirà (p.ex. tambealgu@correu.domini o algu@correu.domini.net)
- Comença amb: amb aquest paràmetre, qualsevol adreça de correu que comenci amb la
cadena coincidirà (p.ex. algu@correu.domini.net, algu@correu.domini-nom.com)
- Acaba amb: amb aquest paràmetre, qualsevol adreça de correu que acabi amb la cadena coincidirà (p.ex. algu@correu.domini,
algualtre@correu.domini).
- Continua amb la següent regla per l'adreça coincident
L'activació d'aquesta funció us permet definir una regla sense
haver d'indicar una identificació de clau en el camp Empra les
claus OpenPGP següents:, així que l'adreça de correu s'usa per
comprovar la clau en el moment d'enviar. També es processaran les
regles posteriors per a la mateixa adreça(es).
- No comprovis més regles per l'adreça coincident
L'activació d'aquesta funció atura el procés d'altres regles per a
l'adreça(es) coincident amb aquesta regla. El procés de regles
continua amb el següent destinatari.
- Empra les següents claus OpenPGP:
Empreu el botó Selecciona clau(s).. per seleccionar les claus
dels destinataris que s'usaran per a xifrar. De la mateixa manera que
amb l'acció anterior, no es processen més regles amb l'adreça coincident.
- Signatura per omissió: activa o desactiva
la signatura del missatge, en funció del que s'ha indicat a la finestra de redacció
del missatge. El valors són:
- Mai: desactiva la signatura, inclòs si s'ha activat a la finestra
de redacció del missatge (preval sobre els altres valors)
- Sí, si s'ha seleccionat a la redacció del missatge: deixa la signatura
tal com s'ha indicat a la finestra de redacció del missatge
- Sempre: activa la signatura, inclòs si no s'ha activat a la finestra de redacció del
missatge
Aquests paràmtres de signatura s'apliquen a totes les
regles que coincideixen. Si una de les regles desactiva la signatura, el missatge
no es signarà, a menys que altres regles indiquin Sempre.
- Xifratge: activa o desactiva
el xifratge del missatge. Els paràmetres admesos i el seu significat són
els mateixos que per la signatura de missatge.
- PGP/MIME: activa o desactiva
l'ús de la codificació PGP/MIME (RFC 3156) del missatge.
Si el PGP/MIME està desactivat, els missatges es codifiquen usant el "PGP inserit".
Els paràmetres admesos i el seu significat són
els mateixos que per la signatura de missatge.
Les regles es processen segons l'ordre mostrat a la llista de
l'editor de regles OpenPGP. Quan una regla coincideix amb un destinatari i
conté una identificació de clau OpenPGP, a més d'usar la identificació de clau
indicada, el destinatari ja no es té en compte al processar més regles.
Teniu més ajuda a la vostra disposició a la
pàgina de paràmetres per destinatari de l'Enigmail
enigmail/lang/ca/help/initError.html 0000664 0000000 0000000 00000005403 12667016244 0017754 0 ustar 00root root 0000000 0000000
Ajuda de l'Enigmail: Com resoldre els problemes en inicialitzar l'OpenPGP
Ajuda de l'Enigmail
Com resoldre els problemes en inicialitzar l'OpenPGP
Hi ha diversos motius pels que la inicialització de l'OpenPGP no funciona. Els més normals es descriuen tot seguit. Per a més informació visiteu la pàgina d'ajuda de l'Enigmail.
- No s'ha trobat el GnuPG
-
Per a que funcioni l'OpenPGP, cal instal·lar l'eina GnuPG.
Si no es pot trobar el GnuPG, primer assegureu-vos que l'executable gpg.exe (a Windows, gpg en altres platformes) està instal·lat a l'ordinador.
Si el GnuPG està instal·lat, i l'OpenPGP no pot trobar-lo, aleshores necessitareu definir manualment el camí al GnuPG en les preferències de l'OpenPGP (menú OpenPGP > Preferències)
- L'Enigmime falla en iniciar-se
-
L'OpenPGP funciona només si està construït utilitzant el mateix entorn de construcció amb el que s'ha construït el Thunderbird o el SeaMonkey. Aixó vol dir que només podeu utilitzar la versió oficial de l'Enigmail si utilitzeu les versions oficials del Thunderbird o el SeaMonkey proporcionats per mozilla.org.
Si utilitzeu una versió del Thunderbird o del SeaMonkey provinent d'alguna altra font (p.ex. el proveïdor de la vostra distribució de Linux), o si vós mateix heu construït l'aplicació, heu d'utilitzar una versió de l'Enigmail construïda per la mateixa font, o heu de construir l'Enigmail vós mateix. Per a construir l'Enigmail, dirigiu-vos a la secció de codi font de la pàgina inicial de l'Enigmail. Si us plau, no presenteu cap informe d'error respecte a aquest problema, no es pot solucionar.
Hi ha més ajuda disponible en el lloc web d'ajuda de l'Enigmail.
enigmail/lang/ca/help/messenger.html 0000664 0000000 0000000 00000010532 12667016244 0017766 0 ustar 00root root 0000000 0000000
Ajuda Enigmail: Lectura de missatges
Ajuda Enigmail
Emprant l'Enigmail per llegir missatges
- Botó Desxifra a la finestra principal de la Missatgeria
Aquest botó es pot emprar per a varies funcions: desxifrar, verificar o importar claus públiques.
Normalment, el desxiframent/verificació és automàtic, encara que es pot desactivar amb una opció.
Tanmateix, si això falla, es mostrarà un missatge curt d'error a la línia d'estat de l'Enigmail.
Si feu un clic al botó Desxifra, podreu veure un missatge d'error més detallat, inclòsa la sortida de l'ordre GPG.
- Icones del llapis i la clau al visualitzador de capçaleres del missatge
Les icones del llapis i la clau al visualitzador de capçaleres del missatge indiquen
si el missatge que esteu llegint ha estat signat i/o xifrat. Si el missatge ha estat modificat, la icona del
llapis canviarà a un llapis trencat per a indicar que la signatura és dolenta.
Fent un clic amb el botó dret a la icona del llapis o de la clau mostrarà un menú amb les següents opcions:
- Informació de seguretat OpenPGP: us permet veure l'estat de la sortida GPG del missatge.
- Copia la informació de seguretat OpenPGP: copia l'estat de la sortida GPG al porta-retalls;
enganxar-lo a un missatge de resposta, etc.
- Mostra l'identificador de foto OpenPGP: us permet veure l'identificador de foto de la
persona que envia el missatge, si ha incrustat una foto a la seva clau pública.
(Aquesta opció només s'activarà si existeix l'identificador de foto a la seva clau.)
- Informació de seguretat S/MIME: us permet veure la informació de seguretat S/MIME del missatge.
Si no heu establert l'opció keyserver-options auto-key-retrieve al vostre fitxer
gpg.conf i llegiu un missatge que està signat o xifrat,
veureu la icona d'un llapis a l'àrea de visualització de les capçaleres amb un interrogant,
i la línia d'estat de l'Enigmail a l'àrea de capçaleres indicarà Part
del missatge signat; feu un clic a la icona del llapis pels detalls i el missatge de la subfinestra
de la Missatgeria mostrarà tots els indicadors del bloc PGP del missatge i el bloc de signatura.
També podreu veure això si teniu establerta l'opció keyserver-options auto-key-retrieve
al vostre fitxer gpg.conf i la clau PGP no es troba en el servidor de claus predeterminat.
En fer un clic a la icona del llapis amb interrogant s'obrirà una finestra avisant que
la clau no està al vostre anell de claus. Si feu un clic a D'acord s'obrirà una altra finestra amb una
llista dels servidors de claus que podeu seleccionar per a baixar la clau pública del remitent.
Per a configurar la llista dels servidors de claus que voleu usar, aneu a la pestanya Enigmail ->
Preferències -> Bàsic i introduïu les adreces dels servidors de claus a la caixa
Servidor(s) de claus:, separats per comes. El primer servidor de claus serà el
predeterminat.
- Obrint fitxers adjunts xifrats / important claus PGP adjuntes
Els fitxers adjunts anomenats *.pgp, *.asc i *.gpg es reconeixen com adjunts que l'Enigmail pot gestionar de manera
especial. Fent un clic amb el botó dret en aquests adjunts s'activen dos elements especials del menú contextual:
Desxifra i obre i Desxifra i desa. Empreu aquests dos elements del menú si voleu que l'Enigmail
desxifri un adjunt abans d'obrir-lo o desar-lo. Si un adjunt es reconeix com un fitxer de clau PGP,
se us oferirà la possibilitat d'importar la clau al vostre anell de claus.
Teniu més ajuda a la vostra disposició a la
pàgina web de l'Enigmail
enigmail/lang/ca/help/rulesEditor.html 0000664 0000000 0000000 00000006604 12667016244 0020304 0 ustar 00root root 0000000 0000000
Ajuda Enigmail: Editor de regles
Ajuda Enigmail
Emprant l'editor de regles de l'Enigmail
En el editor de regles podeu indicar que, en funció del destinatari, s'activi el xifratge,
la signatura i el PGP/MIME, i definir quina clau OpenPGP emprar. Cada regla consisteix
en 5 camps que es representen en una línia individual:
- Correu electrònic: l'adreça(es) dels camps
A: (To), Còpia: (Cc) i Còpia invisible: (Bcc) a comprovar. La coincidència es basa en subcadenes (es poden trobar més detalls al diàleg
d'edició de regles)
- Clau(s) OpenPGP: una llista de les identificacions
de claus OpenPGP per a usar amb el destinatari
- Signatura: activa o desactiva
la signatura del missatge. Això preval sobre el que s'ha indicat a la
finestra de redacció del missatge. El valors són:
- Mai: desactiva la signatura, inclòs si s'ha activat a la finestra
de redacció del missatge (preval sobre els altres valors)
- Possible: deixa la signatura
tal com s'ha indicat a la finestra de redacció del missatge
- Sempre: activa la signatura, inclòs si no s'ha activat a la finestra de redacció del
missatge
Aquests paràmetres de signatura s'aplicaran a totes les
regles que coincideixin. Si una de les regles desactiva la signatura, el missatge no es
signarà, a menys que altres regles indiquin Sempre.
- Xifratge: activa o desactiva
el xifratge del missatge. Els paràmetres permesos i els seu significat són
els mateixos que per la signatura de missatge.
- PGP/MIME: activa o desactiva
l'ús de la codificació PGP/MIME (RFC 3156) del missatge.
Si el el PGP/MIME està desactivat, els missatges es codifiquen amb el
"PGP inserit". Els paràmetres permesos i els seu significat són
els mateixos que per la signatura de missatge.
Les regles es processen segons l'ordre mostrat a la llista. Quan una regla
coincideix amb un destinatari i conté un identificador de clau OpenPGP, a més d'emprar
l'dentificador de clau indicat, el destinatari no es tornarà a considerar en processar les
regles seguents.
Nota: L'editor de regles encara no està acabat. És posible escriure les regles
més avançades editant directament el fitxer de regles (aquestes regles no hauríen
de tornar-se a editar en el editor de regles).
Més informació
per editar directament el fitxer a la pàgina web de l'Enigmail
Teniu més ajuda a la vostra disposició a la
pàgina web d'ajuda de l'Enigmail
enigmail/lang/ca/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020443 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/cs/ 0000775 0000000 0000000 00000000000 12667016244 0014201 5 ustar 00root root 0000000 0000000 enigmail/lang/cs/am-enigprefs.properties 0000664 0000000 0000000 00000000121 12667016244 0020666 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP/Enigmail
enigmail/lang/cs/enigmail.dtd 0000664 0000000 0000000 00000076006 12667016244 0016474 0 ustar 00root root 0000000 0000000
UpozornÄ›nÃ: tvorba klÃÄe klÃÄe může nÄ›kolik minut trvat. NeukonÄujte aplikaci, dokud probÃhá vytvářenà klÃÄe. Proces se urychlà a zlepÅ¡Ã, když budete aktivnÄ› pracovat s prohlÞeÄem a Äasto pÅ™istupovat k harddisku. Na to, že je klÃÄ vytvoÅ™en, budete upozornÄ›n/a.">
' je nesprávně">
UpozornÄ›nÃ: Vytvářenà klÃÄe může trvat nÄ›kolik minut. NeukonÄujte aplikaci, dokud probÃhá vytvářenà klÃÄe. Na to, že je klÃÄ vytvoÅ™en, budete upozornÄ›n/a.">
UpozornÄ›nÃ: Enigmail bude vždy ověřovat podpisy v e-mailech vÅ¡ech identit a úÄtů bez ohledu na to, zda je to v nich povoleno">
DÄ›kujeme, že použÃváte Enigmail.">
enigmail/lang/cs/enigmail.properties 0000664 0000000 0000000 00000063205 12667016244 0020112 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Upozorněnà Enigmail
enigConfirm=Potvrzenà Enigmail
enigError=Chyba Enigmail
enigPrompt=Připomenutà Enigmail
dlgYes=&Ano
dlgNo=&Ne
dlgKeepSetting=Pamatovat si odpovÄ›Ä a neptat se znovu
dlgNoPrompt=Nezobrazovat znovu tento dialog
dlg.button.delete=&Odstranit/Smazat
dlg.button.cancel=&Zpět
dlg.button.close=&ZavÅ™Ãt
dlg.button.continue=Pok&raÄovat
dlg.button.skip=&PÅ™eskoÄit
dlg.button.view=&Zobrazit
repeatPrefix=\n\nToto upozorněnà se zopakuje %S
repeatSuffixSingular=krát.
repeatSuffixPlural=krát.
noRepeat=\n\nToto upozorněnà se již nezopakuje, dokud nebudete upgradovat Enigamil.
pgpNotSupported=Zdá se, že použÃváte Enigmail spoleÄnÄ› s PGP 6.x\n\nPGP 6.x má bohužel nÄ›kolik nedostatků, kvůli kterým nelze zajistit správný chod rozÅ¡ÃÅ™enà Enigmail. Proto také Enigmail nepodporuje vÃce PGP 6.x; radÄ›ji prosÃm použÃvejte GnuPG (GPG).\n\nJestliže potÅ™ebujete pomoc s pÅ™echodem na GnuPG, pÅ™eÄtÄ›te si sekci Help na domovské stránce Enigmailu.
passphraseCleared=Heslo bylo smazáno.
noPhotoAvailable=Foto nenà k dispozici
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Foto cesta s nenà Äitelný
usingVersion=SpuÅ¡tÄ›no rozÅ¡ÃÅ™enà Enigmail verze %S
usingAgent=K Å¡ifrovánà a deÅ¡ifrovánà je použito GnuPG, které je umÃstÄ›né v cestÄ› %S %S
agentError=CHYBA: selhal pÅ™Ãstup ke službÄ› Enigmime!
accessError=Chyba v pÅ™Ãstupu k službám rozÅ¡ÃÅ™enà Enigmail
onlyGPG=Generovánà klÃÄe je možné jedinÄ› s GnuPG (ne s PGP)!
keygenComplete=Generovánà klÃÄe je dokonÄeno! Identita <%S> bude použita k podepisovánÃ.
revokeCertRecommended=Velice Vám doporuÄujeme vytvoÅ™it revokaÄnà certifikát pro Vás klÃÄ. Tento certifikát můžete být použÃt pro zneplatnÄ›nà klÃÄe, napÅ™. když soukromý klÃÄ ztratÃte nebo bude klÃÄ kompromitován. PÅ™ejete si nynà vytvoÅ™it revokaÄnà certifikát?
keyMan.button.generateCert=&Generovánà certifikátu
genCompleteNoSign=Generovánà klÃÄe je dokonÄeno!
genGoing=Generovánà klÃÄe již probÃhá!
passNoMatch=Heslo nesouhlasÃ, zadejte jej prosÃm znovu
passCheckBox=PÅ™ekontrolujte prosÃm okénko, zda nastavujete klÃÄi volbu \\"bez hesla\\"
passUserName=ProsÃm specifikujte jméno uživatele pro tuto identitu
passSpaceProblem=Z technických důvodů může být vaÅ¡e pÅ™Ãstupové heslo nenà zaÄÃnat nebo konÄit mezerou
changePassFailed=Změna hesla selhala.
keyConfirm=VytvoÅ™it veÅ™ejný a soukromý klÃÄ pro '%S'?
keyMan.button.generateKey=&VytvoÅ™it klÃÄ
keyAbort=PÅ™eruÅ¡it vytvářenà klÃÄe?
keyMan.button.generateKeyAbort=&PÅ™eruÅ¡it vytvářenà klÃÄe
keyMan.button.generateKeyContinue=&PokraÄovat ve vytvářenà klÃÄe
expiryTooLong=Nemůžete vytvoÅ™it klÃÄ, který expiruje vÃce než za 100 let.
expiryTooLongShorter=You cannot create a key that expires in more than 90 years.
expiryTooShort=Váš klÃÄ musà být platný minimálnÄ› jeden den.
dsaSizeLimit=DSA podepisovacà klÃÄe jsou omezeny na 3072 bitů.PoÄet kláves se odpovÃdajÃcÃm způsobem snÞÃ.
keyGenFailed=Vytvářenà klÃÄe selhalo. Podrobnosti zjistÃte v konzoli Enigmail (nabÃdka Enigmail > LadÄ›nà Enigmail).
# Strings in enigmailMessengerOverlay.js
securityInfo=Informace zabezpeÄenà Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *PÅ™Ãlohy k této zprávÄ› nebyly podepsány nebo zaÅ¡ifrovány*\n\n
possiblyPgpMime=Tato zpráva je možná zaÅ¡ifrovaná nebo podepsaná PGP/MIME; ověřÃte si to po kliknutà na tlaÄÃtko \\"DeÅ¡ifrovat\\"
noDecrypted=Žádná deÅ¡ifrovaná zpráva k uloženÃ!\nPoužijte pÅ™Ãkaz \\"Uložit\\" z menu Soubor
noMessage=Žádná zpráva k uloženÃ
useButton=K rozÅ¡ifrovánà zprávy prosÃm kliknÄ›te na tlaÄÃtko \\"DeÅ¡ifrovat\\"
saveHeader=Enigmail: Uložit dešifrovanou zprávu
saveAttachmentHeader=Enigmail: Uložit deÅ¡ifrovanou pÅ™Ãlohu
noTempDir=Nemohu najÃt doÄasný adresář k zápisu\nNastavte promÄ›nnou prostÅ™edà systému TEMP prosÃm
attachmentPgpKey=Zdá se, že pÅ™Ãloha '%S', kterou otevÃráte, je soubor s klÃÄem OpenPGP.\n\nKlinÄ›te na \\"Import\\" pro uloženà klÃÄe nebo na \\"Zobrazit\\", abyste si prohlédli obsah souboru v oknÄ› prohlÞeÄe.
beginPgpPart=********* *ZACATEK SIFROVANE nebo PODEPSANE CASTI* *********
endPgpPart=********** *KONEC SIFROVANE nebo PODEPSANE CASTI* **********
notePartEncrypted=Enigmail: *Cast zpravy nebyla podepsana nebo desifrovana*
noteCutMessage=Enigmail: *Nalezen mnohonásobný blok zpráv -- deÅ¡ifrovánÃ/ověřenà zruÅ¡eno*
decryptOkNoSig=UpozornÄ›nÃ\n\nDeÅ¡ifrovánà bylo úspěšné, ale podpis nemohl být správnÄ› ověřen
msgOvl.button.contAnyway=&PÅ™ejete si pÅ™esto pokraÄovat?
signature.verifiedOK=ÚspěšnÄ› byl ověřen podpis pÅ™Ãlohy %S
signature.verifyFailed=Nelze ověřit podpis pÅ™Ãlohy %S
attachment.noMatchToSignature=PÅ™Ãlohu '%S' nelze porovnat se souborem podpisu
attachment.noMatchFromSignature=Soubor podpisu '%S' nelze s pÅ™Ãlohou porovnat
keysToExport=Vybrat klÃÄe OpenPGP ke vloženÃ
keysToUse=Vybrat klÃÄ/e OpenPGP pro použità s %S
pubKey=VeÅ™ejný klÃÄ pro %S\n
windowLocked=Okno vytvářenà zprávy je uzamÄeno; odesÃlánà zruÅ¡eno
sendUnencrypted=Chyba inicializace Enigmailu.\nOdeslat zprávu nezašifrovanou?
composeSpecifyEmail=UrÄete prosÃm svou hlavnà e-mailovou adresu, která bude vybrána k podepisovánà odchozÃch zpráv.\n Jestliže ji nevyplnÃte, bude pro výbÄ›r klÃÄe k podpisu použita adresa odesÃlatele.
sendingHiddenRcpt=Tato zpráva obsahuje pÅ™Ãjemce BCC (skrytá kopie). Jestliže je taková zpráva zaÅ¡ifrována, je možné skrýt BCC pÅ™Ãjemce, ale uživatelé nÄ›kterých produktů (napÅ™. PGP Corp.) nebudou moci zprávu deÅ¡ifrovat. Proto nedoporuÄujeme použÃvat BCC u Å¡ifrovaných zpráv.
sendWithHiddenBcc=Skrýt pÅ™Ãjemce BCC
sendWithShownBcc=Šifrovat normálně
sendingNews=Odeslánà šifrované zprávy selhalo.\n\nTato zpráva nemůže být Å¡ifrována, protože obsahuje adresáta z diskuznà skupiny. PoÅ¡lete prosÃm zprávu bez Å¡ifrovánÃ.
sendToNewsWarning=Pozor: SnažÃte se poslat zaÅ¡ifrovaný email do diskuznà skupiny.\n\nOd toho odrazujeme, protože to má smysl pouze v pÅ™ÃpadÄ›, že vÅ¡ichni Älenové skupiny jsou schopni email rozÅ¡ifrovat. Zpráva musà být Å¡ifrována pomocà klÃÄů vÅ¡ech skupin úÄastnÃků. ProsÃm, poÅ¡lete tuto zprávu, jen pokud pÅ™esnÄ› vÃte, co dÄ›láte.\n\nPokraÄovat?
hasHTML=HTML e-mail - varovánÃ\nZpráva zÅ™ejmÄ› obsahuje kód HTML, který může způsobit chybu pÅ™i podepisovánà nebo Å¡ifrovánÃ. Této chybÄ› u podepsaného mailu se vyhnete, když stlaÄÃte klávesu SHIFT pÅ™i kliknutà na tlaÄÃtko 'VytvoÅ™it zprávu' nebo 'OdpovÄ›dÄ›t'.\nJestliže vždy zprávy podepisujete, mÄ›li byste radÄ›ji trvale zruÅ¡it 'Vytvářenà zpráv v HTML' u tohoto úÄtu. (Pozn. pÅ™ekl.: anebo odesÃlejte zprávy s využitÃm PGP/MIME, jestliže je to možné, tj. jestliže pÅ™Ãjemce použÃvá poÅ¡tovnÃho klienta, který PGP/MIME podporuje.)
strippingHTML=Zpráva obsahuje kód HTML, který bude při konverzi do prostého textu při podepisovánà nebo šifrovánà ztracen. Přejete si provést konverzi?
msgCompose.button.sendAnyway=&Odeslat přesto zprávu
attachWarning=PÅ™Ãlohy k této zprávÄ› nejsou mÃstnà a nemohou být tedy Å¡ifrovány. PÅ™Ãlohu je tÅ™eba k zaÅ¡ifrovánà nejdÅ™Ãve uložit jako mÃstnà soubor. PÅ™ejete si pÅ™esto pokraÄovat dále?
quotedPrintableWarn=Pro odesÃlánà zpráv je povoleno kódovánà 'quoted-printable', to může způsobit nesprávné deÅ¡ifrovánà a/nebo ověřenà vašà zprávy.\n PÅ™ejete si vypnout odesÃlánà zpráv v 'quoted-printable'?
minimalLineWrapping=Máte nastaveno zalamovánà řádků na %S znaků. Pro správné šifrovánà a/nebo podepisovánà musà být tato hodnota nejméně 68.\nPřejete si nynà změnit zalamovánà řádků na 68 znaků?
warning=Pozor
signIconClicked=RuÄnÄ› jste zmÄ›nil/a podepisovánÃ. PÅ™i vytvářenà této zprávy proto (de)aktivace podpisu nezávisà na (de)aktivaci Å¡ifrovánÃ.
pgpMime_sMime.dlg.text=Máte spoleÄnÄ› povoleno použità PGP/MIME a S/MIME. Bohužel vÅ¡ak nenà možná podpora obou protokolů najednou. Vyberte prosÃm, zda chcete použÃt PGP/MIME nebo S/MIME.
pgpMime_sMime.dlg.pgpMime.button=PoužÃt &PGP/MIME
pgpMime_sMime.dlg.sMime.button=PoužÃt &S/MIME
errorKeyUnusable=Emailovou adresu nebo ID '%S' nelze pÅ™iÅ™adit k platnému neexpirovanému klÃÄi OpenPGP key.\nUjistÄ›te se prosÃm, že máte platný klÃÄ OpenPGP a máte jej správnÄ› nastavený v nastavenà úÄtu.
# note: should end with double newline:
sendAborted=Odeslánà zprávy se nezdařilo.\n\n
statPGPMIME=PGP/MIME
statSigned=PODEPSANOU
statEncrypted=Å IFROVANOU
statPlain=NEPODEPSANÃ a NEZAÅ IFROVANÃ
offlineSave=Uložit %S zprávu do %S do složky konceptů?
onlineSend=Odeslat zprávu %S na %S?
encryptKeysNote=UpozornÄ›nÃ: zpráva je Å¡ifrována s následujÃcÃm uživatelským ID / klÃÄem: %S
signFailed=Chyba Enigmail; Šifrovánà nebo podepisovánà selhalo; odeslat zprávu nezašifrovanou?
msgCompose.button.sendUnencrypted=&Odeslat nezašifrovanou zprávu
recipientsSelectionHdr=UrÄit adresáty pro Å¡ifrovánÃ
configureNow=Nemáte jeÅ¡tÄ› nastaveno zabezpeÄenà Enigmail pro zvolenou identitu. PÅ™ejete si to nynà provést?
# should not be used anymore:
encryptYes=Zpráva bude šifrována
encryptNo=Zpráva nebude šifrována
# should not be used anymore:
signYes=Zpráva bude podepsána
signNo=Zpráva nebude podepsána
rulesConflict=Nalezena rozporná pravidla pro adresáty\n%S\n\nPoslat zprávu s tÄ›mito nastavenÃmi?
msgCompose.button.configure=&NastavenÃ
msgCompose.button.send=&Odeslat zprávu
msgCompose.button.save=&Uložit zprávu
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=K ověřenà podpisu je nutný veÅ™ejný klÃÄ %S
clickDecrypt=; stisknÄ›te tlaÄÃtko DeÅ¡ifrovat
clickDecryptRetry=; stisknÄ›te tlaÄÃtko DeÅ¡ifrovat znovu
msgPart=Část zprávy %S
msgSigned=podepsána
msgEncrypted=šifrována
msgSignedAndEnc=podepsána a šifrována
unverifiedSig=Neověřený podpis
incompleteDecrypt=Nekompletnà deÅ¡ifrovánÃ
needKey=Chyba - pro deÅ¡ifrovánà je potÅ™eba soukromý klÃÄ
failedDecrypt=Chyba - dešifrovánà selhalo
badPhrase=Chyba - špatné heslo
failedDecryptVerify=Chyba - deÅ¡ifrovánÃ/ověřenà selhalo
viewInfo=; Zobrazit > BezpeÄnostnà informace zprávy pro podrobnosti
decryptedMsg=Dešifrovaná zpráva
locateGpg=Nalézt program GnuPG
invalidGpgPath=GnuPG nelze na uvedené cestÄ› spustit. Enigmail bude tedy proto vypnuto dokud nezmÄ›nÃte cestu ke GnuPG nebo dokud nerestartujete aplikaci.
warningsAreReset=Všechna varovánà byla resetována.
prefs.gpgFound=GnuPG bylo nalezeno v %S
prefs.gpgNotFound=Nelze nalézt GnuPG
prefs.warnAskNever=VarovánÃ: aktivacà této volby docÃlÃte toho, že zprávy budou odesÃlány nezaÅ¡ifrované bez ohlášenÃ, jestliže nemáte klÃÄ pro nÄ›kterého z pÅ™Ãjemců -- Enigmail Vás o tomto nebude nadále informovat!
prefs.warnIdleTimeForUnknownAgent=Your system uses a specialized tool for passphrase handling such as gnome-keyring or seahorse-agent. Unfortunately Enigmail cannot control the passphrase timeout for the tool you are using. Therefore the respective timeout settings in Enigmail are disregarded.
prefEnigmail.oneKeyserverOnly=Chyba - je možné urÄit pouze jeden keyserver pro automatické stahovánà chybÄ›jÃcÃch klÃÄů OpenPGP.
enterAdminPin=NapiÅ¡te prosÃm PIN správce pro SmartCard
enterCardPin=NapiÅ¡te prosÃm svůj PIN pro SmartCard
notInit=Chyba! Služba Enigmail dosud nebyla inicializována
badCommand=Chyba - Å¡ifrovacà pÅ™Ãkaz selhal
cmdLine=pÅ™Ãkazová řádka a výstup:
notRequired=Chyba - šifrovánà nenà nutné
notComplete=Chyba - generovánà klÃÄe nenà jeÅ¡tÄ› dokonÄeno
invalidEmail=Chyba - chybná e-mailová adresa/y
noPassphrase=Chyba - nebylo vyplněno heslo
noPGPblock=Chyba - nenalezen platný datový blok OpenPGP
unverifiedReply=Odsazená Äást zprávy (odpovÄ›Ä) byla pravdÄ›podobnÄ› zmÄ›nÄ›na
sigMismatch=Chyba - podpis nesouhlasÃ
cantImport=Chyba pÅ™i importovánà veÅ™ejného klÃÄe\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=SmartCard %S nalezená ve vašà ÄteÄky nemůže být použita pro zpracovánà zprávy.\nVložte prosÃm SmartCard %S a opakujte operaci.
sc.insertCard=Operace vyžaduje VaÅ¡i SmartCard %s.\nVložte prosÃm požadovanou SmartCard a opakujte operaci.
sc.removeCard=Operace vyžaduje, aby ve ÄteÄce nebyla žádná SmartCard.\nVyjmÄ›te prosÃm SmartCard a zopakujte operaci.
sc.noCardAvailable=SmartCard ve ÄteÄce nebyla nalezena\nVložte prosÃm SmartCard a zopakujte operaci.
sc.noReaderAvailable=Váše ÄteÄka SmartCard nenà pÅ™Ãstupná\nPÅ™ipojte prosÃm ÄteÄku SmartCard, vložte kartu a operaci zopakujte.
gpgNotFound=Nelze nalézt program GnuPG '%S'.\nUjistěte se, zda máte správně zadanou cestu ke spustitelnému souboru GnuPG v nastavenà Enigmail.
gpgNotInPath=Nelze nalézt spustitelný soubor GnuPG v cestě PATH.\nUjistěte se, zda máte správně zadanou cestu ke spustitelnému souboru GnuPG v nastavenà Enigmail.
gpgAgentNotStarted=Nelze spustit program gpg-agent, který potřebujete pro GnuPG vašà verze %S.
prefUntrusted=NEDŮVĚRYHODNŸ
prefRevoked=REVOKOVANà KLÃÄŒ
prefExpiredKey=EXPIROVANà KLÃÄŒ
prefExpired=EXPIROVANÃ
prefGood=SPRÃVNÃ podpis od %S
prefBad=CHYBNÃ podpis od %S
failCancel=Chyba - pÅ™Ãjem klÃÄe zruÅ¡en uživatelem
failNoServer=Chyba - nenà urÄen keyserver pro pÅ™ijetà klÃÄe
failNoID=Chyba - nenà urÄeno ID, pro které pÅ™ijmout klÃÄ
failKeyExtract=Chyba - extrakce klÃÄe selhala
notFirstBlock=Chyba - prvnà blok OpenPGP nenà blok veÅ™ejného klÃÄe
importKeyConfirm=Importovat veÅ™ejný/é kliÄ(e) obsažený ve zprávÄ›?
failKeyImport=Chyba - import klÃÄe selhal
fileWriteFailed=Selhal zápis do souboru %S
importKey=Importovat veÅ™ejný klÃÄ %S z keyserveru:
uploadKey=Poslat veÅ™ejný klÃÄ %S na keyserver:
keyId=ID klÃÄe
keyAndSigDate=ID klÃÄe: 0x%S / Podepsán: %S
keyFpr=Otisk prstu klÃÄe: %S
noEmailProvided=Nezadal/a jste e-mailovou adresu!
keyAlreadySigned=KlÃÄ je již podepsán, nemůžete jej ppodepsat dvakrát.
gnupg.invalidKey.desc=KlÃÄ %S nebyl nalezen nebo nenà platný. (Pod-)klÃÄ může být expirován.
selKeyExpired=expirovaný %S
createdHeader=Vytvořen
atLeastOneKey=Nebyl zvolen žádný klÃÄ! Pro pÅ™ijetà tohoto dialogu vyberte alespoň jeden klÃÄ
fewerKeysThanRecipients=Vybrali jste menšà poÄet klÃÄů než pÅ™Ãjemců. Je jistÄ› seznam klÃÄů k Å¡ifrovánà kompletnÃ?
userSel.button.goBack=Vybrat vÃce klÃÄů
userSel.secretKeySel.title=Vyberte soukromý klÃÄ OpenPGP k podpisu svých zpráv
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=UpozornÄ›nÃ: PGP/MIME je podporováno pouze v omezeném poÄtu e-mailových klientů! Podpora tohoto standardu je ve Windows známa pouze pro Mozilla/Thunderbird, Sylpheed, Pegasus a Mulberry; v Linux/UNIXu a Mac OS X jej podporuje vÄ›tÅ¡ina známých e-mailových klientů. Jestliže si nejste jisti, zvolte možnost %S.
first=prvnÃ
second=druhý
# Strings used in am-enigprefs.js
encryptKeyHeader=UrÄit klÃÄ OpenPGP pro Å¡ifrovánÃ
identityName=Identita: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Máte aktivováno Å¡ifrovánÃ, ale nevybral/a jste žádný klÃÄ. K Å¡ifrovánà zprávy pro %S je tÅ™eba vybrat jeden nebo nÄ›kolik platných klÃÄů ze seznamu. Chcete zakázat Å¡ifrovánà pro %S?
noKeyToUse=(nic - žádné Å¡ifrovánÃ)
noEmptyRule=Pravidlo nesmà být prázdné! ProsÃm nastavte e-mailovou adresu v poli pravidla.
invalidAddress=Vložená/é e-mailová adresa/y je/jsou neplatná/é. Nelze vkládat jména pÅ™Ãjemců, ale pouze e-mailové adresy. NapÅ™.:\nNeplatné: jmeno \nPlatné: jmeno@adresa.cz
noCurlyBrackets=Složené závorky {} majà speciálnà význam a nemohou být použity v e-mailové adrese. Jetliže chcete zmÄ›nit chovánà pro toto pravidlo, použijte možnost 'Aplikuj pravidlo, jestliže adresát ...'.\nVÃce informacà je dostupných pÅ™es tlaÄÃtko NápovÄ›da.
# Strings used in enigmailRulesEditor.js
never=Nikdy
always=Vždy
possible=Možný
deleteRule=Opravdu smazat vybrané pravidlo?
nextRcpt=(Dalšà adresát)
negateRule=Ne
addKeyToRule=PÅ™idat klÃÄ %S (%S) k pravidlu podle pÅ™Ãjemce
# Strings used in enigmailSearchKey.js
needOnline=Funkce, kterou jste zvolil/a, nenà dostupná v offline módu. PÅ™ejdÄ›te prosÃm do online módu a zkuste to znovu.
protocolNotSupported=Protokol '%S://', který jste zvolil/a, nenà podporován pro staženà klÃÄů OpenPGP.
gpgkeysDisabled=Může vám pomoci povolit volbu 'extensions.enigmail.useGpgKeysTool'
noKeyserverConn=Nelze se připojit na keyserver %S.
keyDownloadFailed=Selhalo staženà klÃÄe z keyserveru. Stavová zpráva:\n%S
internalError=Vyskytla se vnitÅ™nà chyba. KlÃÄe nelze stáhnout nebo importovat.
noKeyFound=Je mi lÃto, ale nemohu nalézt žádný klÃÄ, který by odpovÃdal zadaným kritériÃm pro vyhledávánÃ.\nVÅ¡imnÄ›te si prosÃm, že ID klÃÄe by mÄ›lo zaÄÃnat na \\"0x\\" (napÅ™. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Selhalo hledánà nebo stahovánà klÃÄe z keyserveru: gpgkeys_%S nelze spustit.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nastavenà důvěryhodnosti selhalo
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Podepsánà klÃÄe selhalo
alreadySigned.label=UpozornÄ›nÃ: klÃÄ %S je již podepsán oznaÄeným soukromým klÃÄem.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=NaÄÃtánà klÃÄů, Äekejte prosÃm ...
keyValid.unknown=neznámý
keyValid.invalid=neplatný
keyValid.disabled=zakázaný
keyValid.revoked=revokovaný
keyValid.expired=expirovaný
keyValid.noSubkey=žádný platný podklÃÄ
keyTrust.untrusted=nedůvěryhodný
keyTrust.marginal=okrajovÄ›
keyTrust.full=plně důvěryhodný
keyTrust.ultimate=absolutně důvěryhodný
keyTrust.group=(skupina)
keyType.public=veřejný
keyType.publicAndSec=veřejný/soukromý
keyMan.enableKey=Povolit klÃÄ
keyMan.disableKey=Zakázat klÃÄ
userAtt.photo=Znak uživatele (JPEG obrázek)
asciiArmorFile=Soubory kódované ASCII (*.asc)
importKeyFile=Importovat klÃÄ OpenPGP ze souboru
gnupgFile=Soubory GnuPG
saveRevokeCertAs=VytvoÅ™it a uložit revokaÄnà certifikát
revokeCertOK=RevokaÄnà certifikát byl úspěšnÄ› vytvoÅ™en. Můžete jej použÃt ke zneplatnÄ›nà svého veÅ™ejného klÃÄe, napÅ™. pokud svůj soukromý klÃÄ ztratÃte.\n\nPÅ™eneste jej prosÃm na médium (CD, disketa), které může být uloženo nÄ›kde stranou na bezpeÄném mÃstÄ›. Jestliže nÄ›kdo zÃská pÅ™Ãstup k tomuto certifikátu, může způsobit, že Váš klÃÄ bude nepoužitelný.
revokeCertFailed=RevokaÄnà certifikát nemohl být vytvoÅ™en.
addUidOK=ÚspěšnÄ› pÅ™Ãdáno ID uživatele
addUidFailed=Selhalo přidánà ID uživatele
noKeySelected=K provedenà operace byste mÄ›l/a vybrat aspoň jeden klÃÄ
exportToFile=Exportovat veÅ™ejný klÃÄ do souboru
exportSecretKey=PÅ™ejete si do uloženého souboru s klÃÄem OpenPGP zahrnout i soukromý klÃÄ?
saveKeysOK=KlÃÄe byly úspěšnÄ› uloženy
saveKeysFailed=Uloženà klÃÄů selhalo
importKeysFailed=Importovánà klÃÄů selhalo
enableKeyFailed=PovolenÃ/zakázánà klÃÄů selhalo
specificPubKeyFilename=%S (0x%S)_verejny
specificPubSecKeyFilename=%S (0x%S)_verejny-soukromy
defaultPubKeyFilename=Exportovane-verejne-klice
defaultPubSecKeyFilename=Exportovany-verejny-a-soukromy-klic
noSecretKeys=Nebyly nalezeny žádné soukromé klÃÄe.\n\nPÅ™ejete si nynà vytvoÅ™it svůj vlastnà klÃÄ?
sendKeysOk=KlÃÄ/e byly úspěšnÄ› odeslány
sendKeysFailed=Odeslánà klÃÄů selhalo
receiveKeysOk=KlÃÄ/e úspěšnÄ› aktualizovány
receiveKeysFailed=Staženà klÃÄů selhalo
importFromClip=PÅ™ejete si importovat nÄ›který/é klÃÄ/e ze schránky?
copyToClipbrdFailed=Zvolený/é klÃÄ/e nelze kopÃrovat do schránky.
copyToClipbrdOK=KlÃÄe byly zkopÃrovány do schránky
deleteSecretKey=VarovánÃ: SnažÃte se smazat soukromý klÃÄ!\nJestliže smažete svůj soukromý klÃÄ, nebudete moci dále deÅ¡ifrovat zprávy zaÅ¡ifrované pro tento klÃÄ ani klÃÄ revokovat.\n\nPÅ™ejete si opravdu smazat oba klÃÄe (veÅ™ejný i soukromý)\n'%S'?
deleteMix=POZOR: PokouÅ¡Ãte se smazat soukromé klÃÄe!\nJestliže smažete svůj soukromý klÃÄ, nebudete moci dále deÅ¡ifrovat zprávy zaÅ¡ifrované pro tento klÃÄ.\n\nOpravdu si pÅ™ejte smazat Vámi zvolený veÅ™ejný a soukromý klÃÄ?
deletePubKey=PÅ™ejete si smazat tento veÅ™ejný klÃÄ\n'%S'?
deleteSelectedPubKey=PÅ™ejete si smazat tyto veÅ™ejné klÃÄe?
deleteKeyFailed=KlÃÄ nelze smazat
revokeKeyOk=KlÃÄ byl revokován. Jestliže je tento klÃÄ dostupný také na keyserveru, je doporuÄeno odeslat jej tam znovu, abyste dal/a i ostatnÃm uživatelům vÄ›det o revokaci.
revokeKeyFailed=KlÃÄ nelze revokovat
refreshAllQuestion=Nevybral/a jste žádný klÃÄ. PÅ™ejete si obnovit seznam vÅ¡ech klÃÄů?
refreshKey.warn=POZOR: v závislosti na poÄtu klÃÄů a rychlosti pÅ™ipojenà k internetu může trvat obnovenà seznamu vÅ¡ech klÃÄů delšà dobu!
downloadContactsKeys.warn=Warning: depending on the number of contacts and the connection speed, downloading all keys could be quite a lengthy process!
keyMan.button.exportSecKey=Exportovat &soukrom̩ kl̀e
keyMan.button.exportPubKey=Exportovat &pouze veÅ™ejné klÃÄe
keyMan.button.import=&Importovat
keyMan.button.refreshAll=&Znovu naÄÃst vÅ¡echny klÃÄe
keyMan.button.revokeKey=&Revokovat klÃÄ
keylist.noOtherUids=Nemá jiné identity
keylist.hasOtherUids=Dalšà identita
keylist.noPhotos=Fotografie nenà dostupná
keylist.hasPhotos=Foto
keyMan.addphoto.filepicker.title=Vyberte fotografii pro vloženÃ
keyMan.addphoto.warnLargeFile=Vybrali jste soubor vÄ›tšà než 25kB.\nNenà doporuÄeno pÅ™ipojovat pÅ™ÃliÅ¡ velké soubory, protože se tÃm klÃÄe stávajà velmi objemné.
keyMan.addphoto.noJpegFile=Vybraný soubor zřejmě nenà JPEG. Vyberte jiný soubor.
keyMan.addphoto.failed=Soubor nelze vlořit.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=ZmÄ›na výchozÃho ID uživatele selhala
changePrimUidOK=ZmÄ›na výchozÃho ID uživatele probÄ›hla úspěšnÄ›
deleteUidFailed=Mazánà ID uživatele %S selhalo
deleteUidOK=ID uživatele %S bylo úspěšně smazáno
revokeUidFailed=Revokace ID uživatele %S selhalo
revokeUidOK=ID uživatele %S bylo úspěšnÄ› revokováno. Jestliže je tento klÃÄ dostupný také na keyserveru, je doporuÄeno odeslat jej tam znovu, aby se i ostatnà o revokaci dozvÄ›dÄ›li.
revokeUidQuestion=Jistě si přejete revokovat ID uživatele %S?
deleteUidQuestion=JistÄ› si pÅ™ejete si smazat uživatelské ID %S?\n\nVÅ¡imnÄ›te si prosÃm: jestliže je váš veÅ™ejný klÃÄ na keyserveru, smazánà ID uživatele nic nezmÄ›nÃ. V tomto pÅ™ÃpadÄ› zvolte 'Revokovat ID uživatele'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=veÅ™ejný klÃÄ
keyTypePrimary=hlavnà kÃÄ
keyTypeSubkey=podklÃÄ
keyTypePair=pár klÃÄů
keyExpiryNever=nikdy
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Å ifrovánÃ
keyUsageSign=PodepisovánÃ
keyUsageCertify=Potvrdit
keyUsageAuthentication=OvěřovánÃ
# Strings in enigmailGenCardKey.xul
keygen.started=ProsÃm poÄkejte, klÃÄ se zaÄal vytvářet ....
keygen.completed=KlÃÄ vytvoÅ™en. Nový klÃÄ má ID: 0x%S
keygen.keyBackup=KlÃÄ byl zazálohován jako %S
keygen.passRequired=Jestliže chcete vytvoÅ™it záložnà kopii VaÅ¡eho klÃÄe mimo SmartCard, napiÅ¡te prosÃm heslo.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN, které jste zadal/a, nesouhlasÃ; napiÅ¡te jej prosÃm znovu
cardPin.minLength=PIN musà obsahovat nejménÄ› %S znaků nebo ÄÃslic
cardPin.processFailed=Změna PIN selhala
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Obnovujà se klÃÄe, prosÃm Äekejte ...
keyserverProgress.uploading=OdesÃlánà klÃÄů, prosÃm Äekejte ...
keyserverTitle.refreshing=Obnovit klÃÄe
keyserverTitle.uploading=OdesÃlánà klÃÄe
# Strings in enigmailSetupWizard
passphrase.min8keys=Vaše heslo je kratšà než 8 znaků!
setupWizard.reallyCancel=Opravdu si pÅ™ejete ukonÄit průvodce nastavenÃm Enigmail?
setupWizard.invalidGpg=Soubor, který jste zadali, nenà spustitelný GnuPG. Zadejte prosÃm jiný soubor.
setupWizard.specifyFile=Abyste mohli pokraÄovat, potÅ™ebujete urÄit alespoň soubor s veÅ™ejným klÃÄem.
setupWizard.installFailed=Zdá se, že instalace nebyla úspěšná. ProsÃm, buÄ opakovat instalaci nebo nainstalovat GnuPG ruÄnÄ› a lokalizovat pomocà tlaÄÃtka Procházet.
setupWizard.downloadForbidden=Pro vaÅ¡i vlastnà bezpeÄnost, nebudeme stáhnout GnuPG. NavÅ¡tivte http://www.gnupg.org/, aby se stáhnout GnuPG.
setupWizard.downloadImpossible=Nemůžeme stáhnout GnuPG v souÄasné dobÄ›. Zkuste to prosÃm pozdÄ›ji nebo navÅ¡tivte http://www.gnupg.org/, aby se stáhnout GnuPG.
setupWizard.hashSumError=Průvodce nemohl ověřit integritu staženého souboru.Soubor může být poÅ¡kozen nebo maniuplated. Chcete pokraÄovat pÅ™esto v instalaci ?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Chyba ocurred pÅ™i pokusu o staženà GnuPG. Zkontrolujte prosÃm konzoly protokol pro dalšà podrobnosti.
installGnuPG.installFailed=Chyba při instalaci GnuPG ocurred. Zkontrolujte konzole protokol pro dalšà podrobnosti.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=MusÃte vyplnit jméno a e-mailovou adresu
addUidDlg.nameMinLengthError=Jméno musà mÃt alespoň 5 znaků
addUidDlg.invalidEmailError=MusÃte zadat platnou e-mailovou adresu
addUidDlg.commentError=Závorky nejsou v poznámkách povoleny
# network error types
errorType.SecurityCertificate=Certifikát zabezpeÄenà pÅ™edložený webové službÄ› nenà platný.
errorType.SecurityProtocol=BezpeÄnostnà protokol použÃvaný webovou službou nenà znám.
errorType.Network=DoÅ¡lo k chybÄ› sÃtÄ›.
enigmail/lang/cs/help/ 0000775 0000000 0000000 00000000000 12667016244 0015131 5 ustar 00root root 0000000 0000000 enigmail/lang/cs/help/compose.html 0000664 0000000 0000000 00000011530 12667016244 0017464 0 ustar 00root root 0000000 0000000
Nápověda pro Enigmail - psanà zpráv
Nápověda pro Enigmail
Použità Enigmailu při psanà zprávy
- menu OpenPGP v okně Zpráva/Nová zpráva
-
- Podepsat zprávu
- Povolit / zakázat podepsat odesÃlanou zprávu. Pokud digitálnà podpis selže, je o tom uživatel informován.
- Šifrovat zprávu
-
Povolit / zakázat Å¡ifrovánà zprávy pro vÅ¡echny pÅ™Ãjemce pÅ™ed zaslánÃm. Pokud Å¡ifrovánà selže, je uživatel o této zkuteÄnosti informován.
PÅ™i nastavené volbÄ› Zobraz výbÄ›r, když je tÅ™eba v menu PÅ™edvolby-> záložka VýbÄ›r klÃÄe se pÅ™i odesÃlánà poÅ¡ty zobrazà seznam klÃÄů pro Å¡ifrovánà zprávy, pokud jsou v seznamu pÅ™Ãjemců poÅ¡ty adresáti, jejichž veÅ™ejný klÃÄ nemáte.
PÅ™i nastavené volbÄ› Nikdy nezobrazovat výbÄ›r OpenPGP klÃÄe v menu PÅ™edvolby -> záložka VýbÄ›r klÃÄe se odeÅ¡le zpráva nezaÅ¡ifrovaná, pokud jsou v seznamu pÅ™Ãjemců poÅ¡ty adresáti, jejichž veÅ™ejný klÃÄ nemáte.
- PoužÃt PGP/MIME pro tuto zprávu
-
Povolit / zakázat použità PGP/MIME pro tuto zprávu..
Pokud vÃte, že pÅ™Ãjemce dokáže pÅ™eÄÃst poÅ¡tu, která použÃvá PGP/MIME formát, můžete tento formát použÃt.
Tato volba je povolena, pokud na záložce PÅ™edvolby -> PGP/MIME tab je nastaveno Povolit použità PGP/MIME nebo Vždy použÃt PGP/MIME.
- Výchozà nastavenà tvorby zpráv
-
- Nastavenà podepisovánÃ/Å¡ifrovánÃ...: menu Nástroje -> Nastavenà úÄtu -> OpenPGP/Enigmail
- Nastavenà odesÃlánÃ...:-> záložky PÅ™edvolby -> OdesÃlánÃ
- Nastavenà výbÄ›ru klÃÄe...:-> záložky PÅ™edvolby -> VýbÄ›r klÃÄe
- PGP/MIME nastavenÃ...:-> záložky PÅ™edvolby -> PGP/MIME
- ZpÄ›t Å¡ifrovánÃ
-
Pokud pÅ™i zasÃlánà poÅ¡ty dojde k chybÄ›, napÅ™Ãklad když POP server nepÅ™ijme požadavek, Enigmail o tom nebude vÄ›dÄ›t, a zaÅ¡ifrovaná zpráva zůstane zobrazena v oknÄ› Psanà zprávy. ZvolenÃm této položky menu dojde ke zruÅ¡enà šifrovánà a podepsánÃ, což se projevà zobrazenÃm původnÃho (nezaÅ¡ifrovaného) textu v oknÄ› psanà zprávy.
Tato volba může být použita takÄ› jako nouzová oprava, pokud odpovÃdáte na zaÅ¡ifrovanou zprávu. Enigmail deÅ¡ifruje citovanou zprávu automaticky, ale pokud z nÄ›jakého důvodu deÅ¡ifrovánà neprobÄ›hne, může být tato volba použita k vynucenému deÅ¡ifrovánà zprávy.
- PÅ™ipojit veÅ™ejný klÃÄ
- Zobrazà se seznam veÅ™ejných klÃÄů, které můžete pÅ™ipojit k vytvářené zprávÄ›. Pokud zvolÃte jediný klÃÄ, pÅ™ipojà se ke zprávÄ› soubor s názvem 0xkey_id.asc (kde key_id je ÄÃselný identifikátor zvoleného klÃÄe ), který obsahuje ASCII-armoredy text zvolného klÃÄe. Pokud vyberete vÃce klÃÄů, pÅ™ipojà se soubor s názvem pgpkeys.asc, který obsahuje ASCII-armored text se vÅ¡emi klÃÄi.
- Smazat uložené heslo
- Dojde k odstranÄ›nà doÄasnÄ› uloženého hesla k soukromému klÃÄi. To je užiteÄné zejména pokud máte vÃce hesel.
- Nápověda
- Zobrazà nápovědu jako webovou stránku (tato stránka).
Dalšà nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).
enigmail/lang/cs/help/editRcptRule.html 0000664 0000000 0000000 00000012161 12667016244 0020426 0 ustar 00root root 0000000 0000000
Nápověda pro Enigmail - úprava pravidel OpenPGP
Nápověda pro Enigmail
PoužÃvánà editoru pravidel v Enigmailu: úprava pravidel OpenPGP
V editoru pravidel můžete pro každého pÅ™Ãjemce nastavit výchozà chovánà Enigmailu tak, že povolÃte Å¡ifrovánÃ, podpis, PGP/MIME a urÄÃte klÃÄ(e) OpenPGP, který se bude pro daného pÅ™Ãjemce použÃvat. Zde můžete urÄit pravidla pro jednotlivé pÅ™Ãjemce a pro skupiny pÅ™Ãjemců s podobnými charfakteristikami.
- Nastavit OpenPGP pravidla pro
- Pole obsahuje emailové adresy pÅ™Ãjemců (bez jmen, t.j. pouze adresu ve tvaru jmeno@domena.cz). Můžete uvést nÄ›kolik emailových adres oddÄ›lených mezerami. Adresy mohou obsahovat pouze doménovou Äást, takže pravidlo odpovÃdá vÅ¡em adresátům dané domény, napÅ™.@domena.cz zahrnuje adresy jmeno@domena.cz, jine_jmeno@domena.cz, atd.
- Použij pravidlo jestliže adresát ...
-
Upravuje hledánà emailových adres, na které se budou v pravidlech použÃvat. Pokud zapÃÅ¡ete vÃce adres, nastavenà se aplikuje na vÅ¡echny. NásledujÃcà pÅ™Ãklady vycházejà z pÅ™Ãkladu adresy jmeno@domena.cz.
- Je pÅ™esnÄ›: s tÃmto nastavenÃm bude pravidlo použito, pokud email adresáta je pÅ™esnÄ› jmeno@domena.cz (nezávisà na použità velkých a malých pÃsmen v emailové adrese).
- Obsahuje: s tÃmto nastavenÃm bude pravidlo použito pro každou emailovou adresu, která obsahuje zadaný text, t.j. moje-jmeno@domena.cz nebo jmeno@domena.cz.com.
- ZaÄÃná s: s tÃmto nastavenÃm bude pravidlo použito pro každou emailovou adresu, která zaÄÃná zadaným textem t.j. jmeno@domena.cz, jmeno@domena.cz.com.
- KonÄà s: s tÃmto nastavenÃm bude pravidlo použito pro každou emailovou adresu, která konÄà zadaným textem t.j. moje-jmeno@domena.cz , jmeno@domena.cz.
- PokraÄovat s dalÅ¡Ãm pravidlem k daným adresám
- Tato akce umožnà definovat pravidlo a nezadat ID klÃÄe ve vstupnÃm poli PoužÃt následujÃcà klÃÄe OpenPGP:. OdpovÃdajÃcà klÃÄ bude podle emailové adresy urÄen pÅ™i odesÃlánà zprávy. Pro urÄenou(é) adresu(y) se také zpracujà dalšà pravidla.
- Nekontrolovat dále pravidla k dané adrese
- UkonÄà zpracovánà dalÅ¡Ãch pravidel pro zvolenou adresu, zaÄne se zpracovávat dalšà adresa pÅ™Ãjemce.
- PoužÃt následujÃcà OpenPGP klÃÄe:
- Pomocà tlaÄÃtka Vybrat klÃÄ(e)... vyberte klÃÄe, které budou použity k Å¡ifrovánÃ. StejnÄ› jako v pÅ™edchozÃm pÅ™ÃpadÄ› se již nepoužijà pro odpovÃdajÃcà adresu dalšà pravidla.
- Výchozà pro podepisovánÃ
-
Povolit / zakázat
podepsánà zprávy. To, zda dojde k podepsánà zprávy, závisà na nastavenà podepisovámà v oknÄ› Psánà zprávy a na vybrané hodnotÄ› z tÄ›chto možnostÃ:
- Nikdy: zakáže podepsánà zprávy bez ohledu na to, jaká volba je v oknÄ› psanà zprávy. Tato volba potlaÄuje ostatnÃ.
- Ano, jestliže je to povoleno při vytvářenà zprávy: podepisovánà zprávy je povoleno a závisà na dalšà volbě, která bude nastavena v okně psanà zprávy.
- Vždy: zpráva bude podepsána bez ohledu na to, jaká je volba v okně psanà zprávy
Toto nastavenà podpisu bude použito pro vÅ¡echna odpovÃdajÃcà pravidla. Jestliže jedno z pravidel zakáže podepsánÃ, zpráva nebude podepsána bez ohledu na to, zda v ostatnÃch pravidlech je nastavena volba Vždy.
- Å ifrovánÃ
- Povolit / zakázat Å¡ifrovánà zprávy. Nastavenà šifrovánà a jeho význam jsou podobné jako nastavenà podepisovánÃ.
- PGP/MIME
- Povolit / zakázat kódovánà zprávy pomocà PGP/MIME (RFC 3156). Pokud je PGP/MIME zakázáno, zpráva je kódována použitÃm "vkládaného PGP" ("inline PGP"). Nastavenà a jeho význam jsou podobné jako nastavenà podepisovánÃ.
Pravidla jsou zpracována v poÅ™adà podle uvedeného seznamu. Vždy, když pravidlo odpovÃdá pÅ™Ãjemci a obsahuje ID klÃÄe OpenPGP, pÅ™Ãjemce se již kromÄ› použità urÄeného klÃÄe v dalÅ¡Ãch pravidlech nezpracovává.
Dalšà nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).
enigmail/lang/cs/help/messenger.html 0000664 0000000 0000000 00000010203 12667016244 0020003 0 ustar 00root root 0000000 0000000
NápovÄ›da pro Enigmail - Ätenà zpráv
Nápověda pro Enigmail
PoužÃvánà Enigmailu pÅ™i Ätenà zpráv
- TlaÄÃtko "DeÅ¡ifrovat" v hlavnÃm oknÄ›
- Toto tlaÄÃtko má nÄ›kolik funkcÃ: deÅ¡ifrovánÃ, ověřovánà nebo import veÅ™ejných klÃÄů. NormálnÄ› probÃhá deÅ¡ifrovánÃ/ověřovánà automaticky, ovÅ¡em tato funkce může být v pÅ™edvolbách zakázána. Pokud nastane chyba, zobrazà se krátká zpráva ve stavovém řádku Enigmailu. Pokud klepnete na tlaÄÃtko "DeÅ¡ifrovat", zobrazà se podrobnÄ›jšà výpis chyb vÄetnÄ› GnuPG pÅ™Ãkazů.
- Ikony pera a klÃÄe zobrazené v hlaviÄce zprávy
-
Ikony Pera a KlÃÄe ikony pera a klÃÄe v hlaviÄce zprávy indikujà zda zpráva, kterou Ätete, je podepsána a/nebo Å¡ifrována a zda je podpis platný, tj., že zpráva nebyla od okamžiku podpisu zmÄ›nÄ›na. Ikona zlomného pera indikuje, že zpráva má neplatný podpis nebo byla zmÄ›nÄ›na. Pokud klepnete pravým tlaÄÃtkem na ikonu pera nebo klÃÄe zobrazà se menu s následujÃcÃmi možnostmi:
- BezpeÄnostnà informace: zobrazà výstup GnuPG pro tuto zprávu.
- KopÃrovat bezpeÄnostnà informace OpenPGP: zkopÃruje výstup z GnuPG do schránky; umožnà napÅ™Ãklad vloženà do odpovÄ›di na zprávu.
- Zobrazit Foto ID: zobrazà Photo ID osoby, která zprávu poslala, jestliže jej veÅ™ejný klÃÄ obsahuje. (Tato volba je dostupná pouze pokud je fotografie ve veÅ™ejném klÃÄi uložena.)
- BezpeÄnostnà informace S/MIME: zobrazà bezpeÄnostnà informace S/MIME.
Jestliže v souboru gpg.conf nemáte nastaveno automatické naÄÃtánà klÃÄů z keyserveru a Ätete elektronicky podepsáné nebo Å¡ifrováné zprávy, uvidÃte panelu zprávy ikonku pera s otaznÃkem a v hornà Äásti se zobrazÃ: Část zprávy byla podepsána; klepnÄ›te na ikonku pera nebo klÃÄe pro vÃce informacÃ. Ve zprávÄ› se zobrazà znaÄky úseku textu OpenPGP a blok podpisu.
Může se to stát i v pÅ™ÃpadÄ›, že máte nastaveno automatické naÄÃtánà klÃÄů z keyserveru, ale klÃÄ nenà na serveru k dispozici.
KlepnutÃm na ikonku pera a otaznÃku se Vám zobrazà hlášenà že klÃÄ, kterým byla zpráva podepsána, nenà dostupný. KlepnutÃm na tlaÄÃtko OK se dostanete k dalÅ¡Ãmu oknu, kde si můžete ze seznamu keyserverů vybrat odkud veÅ™ejný klÃÄ odesÃlatele stáhnout.
Seznam keyserverů, které chcete použÃvat, nastavÃte v menu OpenPGP -> PÅ™edvolby... -> UrÄete Váš/VaÅ¡e keyservery, adresy napiÅ¡te do řádku Keyserver(y):. VÃce adres oddÄ›lte Äárkou. Jako výchozà bude použit prvnà keyserver.
- OtevÅ™enà šifrovaných pÅ™Ãloh / import pÅ™iložených klÃÄů OpenPGP
- PÅ™Ãlohy pojmenované *.pgp, *,asc a *.gpg je OpenPGP schopno rozeznat a zpracovat. KliknutÃm pravým tlaÄÃtkem myÅ¡i na pÅ™Ãlohu dostanete dvÄ› specifické položky kontextového menu: DeÅ¡ifrovat a otevÅ™Ãt a DeÅ¡ifrovat a uložit jako .... Tyto možnosti využijete, když budete chtÃt, aby Enigmail pÅ™Ãlohy pÅ™ed otevÅ™enÃm nebo uloženÃm deÅ¡ifroval. Jestliže je pÅ™Ãloha zprávy rozpoznána jako soubor obsahujÃcà s klÃÄem OpenPGP, bude Vám nabÃdnuta možnost importovat klÃÄ do VaÅ¡eho úložiÅ¡tÄ›.
Dalšà nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).
enigmail/lang/cs/help/rulesEditor.html 0000664 0000000 0000000 00000006427 12667016244 0020331 0 ustar 00root root 0000000 0000000
Nápověda pro Enigmail: editor pravidel
Nápověda pro Enigmail
Použità editoru pravidel v Enigmailu
V editoru pravidel můžete pro každého pÅ™Ãjemce nastavit výchozà chovánà Enigmailu tak, že povolÃte
Å¡ifrovánÃ, podpis, PGP/MIME a urÄÃte klÃÄ(e) OpenPGP, který se bude pro daného pÅ™Ãjemce použÃvat.
Každé pravidlo se skládá z 5 položek a je reprezentováno jednÃm řádkem:
- Email
- UrÄenà emailové(ých) adresy (adres) z polà Komu:, Kopie: a Skrytá kopie:, pro kterou(é) se pravidlo použije. UrÄenà probÃhá podle podÅ™etÄ›zců (vÃce podrobnostà najdete v dialogu pÅ™i vytvářenà pravidla).
- KlÃÄ(e) OpenPGP
- Seznam ID klÃÄů OpenPGP k použità pro zvoleného pÅ™Ãjemce
- Podpis
- Povolit / zakázat podepsánà zprávy. Použije se zadaná hodnota anebo bude přepsána hodnota nastavená v okně vytvářenà zprávy. Možnosti jsou:
- Nikdy: zakáže podepsánà zprávy bez ohledu na to, jaká volba je v oknÄ› psanà zprávy. Tato volba potlaÄuje ostatnÃ.
- Možný: ponechá podepisovánà zprávy na nastavenà v okně psanà zprávy.
- Vždy: zprávy bude podepsána, i kdyby to v okně psanà zprávy povoleno nebylo.
Nastavenà pro podepisovánà se použije pro vÅ¡echna odpovÃdajÃcà pravidla. Jestliže jedno pravidlo podepsánà zakazuje, zpráva nebude podepsána bez ohledu na to, zda ostatnà pravidla majà nastavenou volbu Vždy.
- Å ifrovánÃ
- Povolit / zakázat Å¡ifrovánà zprávy. Nastavenà šifrovánà a jeho význam jsou podobné jako nastavenà podepisovánÃ.
- PGP/MIME
- Povolit / zakázat kódovánà zprávy pomocà PGP/MIME (RFC 3156). Pokud je PGP/MIME zakázáno, zpráva je kódována použitÃm "vkládaného PGP" ("inline PGP"). Nastavenà a jeho význam jsou podobné jako nastavenà podepisovánÃ.
Pravidla jsou zpracována v poÅ™adà podle uvedeného seznamu. Vždy, když pravidlo odpovÃdá pÅ™Ãjemci a obsahuje ID klÃÄe OpenPGP, pÅ™Ãjemce se již kromÄ› použità urÄeného klÃÄe v dalÅ¡Ãch pravidlech nezpracovává.
Poznámka: Editor pravidel jeÅ¡tÄ› nenà kompletnÃ. Je možno napsat složitÄ›jšà pravidla pÅ™Ãmou úpravou souboru pravidel, avÅ¡ak tyto pravidla již pak nesmÃte upravovat pomocà editoru
pravidel. Dalšà informace o pÅ™Ãmé úpravÄ› souboru s pravidly si můžete pÅ™eÄÃst na stránkách Enigmailu (anglicky).
Dalšà nápověda je dostupná na stránkách dokumentace Enigmailu (anglicky).
enigmail/lang/cs/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020465 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/current-languages.txt 0000664 0000000 0000000 00000000162 12667016244 0017762 0 ustar 00root root 0000000 0000000 ar
bg
ca
cs
de
el
es-ES
fi
fr
gd
gl
hr
hu
it
ja
ko
lt
nb-NO
nl
pl
pt-BR
pt-PT
ru
sk
sl
sq
sv-SE
tr
vi
zh-CN
zh-TW
enigmail/lang/de/ 0000775 0000000 0000000 00000000000 12667016244 0014164 5 ustar 00root root 0000000 0000000 enigmail/lang/de/am-enigprefs.properties 0000664 0000000 0000000 00000000123 12667016244 0020653 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP-Sicherheit
enigmail/lang/de/enigmail.dtd 0000664 0000000 0000000 00000145516 12667016244 0016462 0 ustar 00root root 0000000 0000000
ACHTUNG: Das Erzeugen eines Schlüssels kann mehrere Minuten dauern. Beenden Sie die Anwendung während dieser Zeit nicht. Da der Zufallsgenerator von Aktivität auf dem Rechner abhängt, wird empfohlen, z. B. im Webbrowser aktiv zu surfen, um das Erzeugen des Schlüssels zu beschleunigen. Sie werden informiert, sobald der Schlüssel fertiggestellt ist.">
" ist ungültig.">
ACHTUNG: Das Erzeugen eines Schlüssels kann mehrere Minuten dauern. Beenden Sie die Anwendung während dieser Zeit nicht. Sie werden informiert, sobald der Schlüssel fertiggestellt ist.">
Dieser Assistent führt Sie durch die Einrichtung.">
Hinweis: Enigmail wird Unterschriften immer
für alle Konten bzw. Identitäten überprüfen, unabhängig davon, was
hier ausgewählt wird.">
öffentlichen Schlüssel können Andere Mails an Sie verschlüsseln (und von Ihnen unterschriebene Nachrichten prüfen). Sie dürfen ihn jedem geben.">
geheimer, privater Schlüssel ist nur für Sie, um damit Mails an Sie zu entschlüsseln und um Mails, die Sie schicken, zu unterschreiben.
Diesen Schlüssel halten Sie geheim, Sie geben ihn niemandem.">
geheimer, privater Schlüssel ist nur für Sie, um damit Mails an Sie zu entschlüsseln und um Mails, die Sie schicken, zu unterschreiben.
Diesen Schlüssel halten Sie geheim, Sie geben ihn niemandem.
Um Ihren privaten Schlüssel zu schützen, fragen die folgenden zwei Dialoge Sie nach einer Passphrase.">
Passphrase ist ein Passwort, mit dem GnuPG Ihren privaten Schlüssel schützt. Es soll Missbrauch Ihres privaten Schlüssels verhindern.">
nicht empfehlenswert (weil nicht jedes Programm damit richtig umgeht).">
Zu diesem Zweck können Sie jetzt ein Widerrufszertifikat erzeugen, mit dem Sie im Fall der Fälle den Schlüssel widerrufen können. Dazu müssen Sie gleich Ihr Passwort eingeben.">
Exportieren Sie die Einstellungen vom alten Rechner. Das geht mit dem Sicherungs-Assistenten aus den Enigmail-Einstellungen.
Importieren Sie die Einstellungen auf den neuen Rechner. Das geht mit diesem Assistenten.
">
Danke, dass Sie Enigmail verwenden.">
Exportieren Sie die Einstellungen vom alten Rechner. Das geht mit diesem Assistenten.
Importieren Sie die Einstellungen auf den neuen Rechner. Das geht mit dem Einrichtungs-Assistenten.
">
enigmail/lang/de/enigmail.properties 0000664 0000000 0000000 00000125703 12667016244 0020077 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail-Meldung
enigConfirm=Enigmail-Bestätigung
enigError=Enigmail-Fehler
enigPrompt=Enigmail-Eingabe
dlgYes=&Ja
dlgNo=&Nein
dlgKeepSetting=Antwort merken und in Zukunft nicht mehr fragen
dlgNoPrompt=Diesen Dialog nicht mehr anzeigen.
dlg.button.delete=&Löschen
dlg.button.cancel=&Abbrechen
dlg.button.close=&Schließen
dlg.button.continue=&Fortsetzen
dlg.button.skip=&Überspringen
dlg.button.overwrite=&Überschreiben
dlg.button.view=&Anzeigen
dlg.button.retry=&Erneut versuchen
dlg.button.ignore=&Ignorieren
repeatPrefix=\n\nDiese Nachricht wird noch %S
repeatSuffixSingular=mal wiederholt.
repeatSuffixPlural=mal wiederholt.
noRepeat=\n\nDiese Meldung wird bis zu einem Upgrade von Enigmail nicht wiederholt.
pgpNotSupported=Sie scheinen Enigmail-Enigmail zusammen mit PGP 6.x zu verwenden. \n\nLeider weist PGP 6.x einige Probleme auf, die verhindern, dass Enigmail korrekt funktioniert. Darum unterstützt Enigmail PGP 6.x nicht mehr. Bitte verwenden Sie deshalb in Zukunft GnuPG (GPG). \n\nFalls Sie für den Wechsel auf GnuPG Unterstützung brauchen, besuchen Sie die Seite „Help“ auf der Enigmail-Homepage.
initErr.howToFixIt=Um Enigmail verwenden zu können, ist GnuPG erforderlich. Wenn GnuPG noch nicht installiert ist, können Sie dies mit der Schaltfläche „Installations-Assistent“ erledigen.
initErr.setupWizard.button=&Installations-Assistent
passphraseCleared=Die Passphrase wurde gelöscht.
cannotClearPassphrase=Sie benutzen ein individuelles Programm (beispielsweise gnome-keyring) für die Passwortverwaltung. Das Vergessen der Passphrase ist daher aus Enigmail heraus nicht möglich.
noPhotoAvailable=Kein Foto verfügbar
debugLog.title=Enigmail-Debug-Log
error.photoPathNotReadable=Fotopfad „%S“ kann nicht geöffnet werden.
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Diese neue Version von Enigmail enthält signifikante Änderungen in der Anwendung der Voreinstellungen und Optionen. Wir haben versucht, die alten Einstellungen in diese neue Version zu übernehmen. Leider können wir nicht alle Fälle automatisch abdecken. Wir empfehlen deshalb, die neuen Optionen in den Enigmail Einstellungen zu überprüfen.
enigmailCommon.checkPreferences=&Einstellungen überprüfen …
preferences.defaultToPgpMime=Die Vorgabe für die Nachrichten-Codierung wurde von Inline-PGP auf PGP/MIME geändert. Diese Einstellung sollten Sie, soweit möglich, beibehalten.\n\nWenn Sie doch Inline-PGP nutzen wollen, können Sie das in den Konto-Einstellungen unter OpenPGP-Security einstellen.
usingVersion=Sie verwenden Enigmail Version %S
usingAgent=Das %1$S-Programm %2$S wird zur Ver- und Entschlüsselung benutzt
agentError=FEHLER: Zugriff auf Enigmime-Dienste fehlgeschlagen!
accessError=Fehler beim Zugriff auf Enigmail-Dienste
onlyGPG=Erzeugen eines Schlüssels funktioniert nur mit GnuPG (nicht mit PGP)!
keygenComplete=Erzeugen des Schlüssels abgeschlossen. Benutzer-ID <%S> wird zum Unterschreiben verwendet.
revokeCertRecommended=Es wird dringend empfohlen, dass Sie nun ein Widerrufszertifikat für Ihren Schlüssel erzeugen. Dieses Zertifikat benötigen Sie, um Ihren Schlüssel bei Bedarf für ungültig zu erklären (z.B. wenn der Schlüssel missbraucht, verloren oder gestohlen wird).\n\nMöchten Sie nun das zugehörige Widerrufszertifikat erzeugen?
keyMan.button.generateCert=&Zertifikat erzeugen
genCompleteNoSign=Erzeugen des Schlüssels abgeschlossen!
genGoing=Erzeugen eines Schlüssels läuft!
passNoMatch=Passphrase wurde nicht korrekt wiederholt; bitte geben Sie diese erneut ein
passCheckBox=Setzen Sie bitte die entsprechende Option, wenn Sie keine Passphrase für den Schlüssel verwenden.
passUserName=Geben Sie bitte den Benutzernamen für diese Identität an.
keygen.missingUserName=Für das angegebene Konto ist kein Name angegeben. Bitte geben Sie in den Konto-Einstellungen im Feld „Ihr Name“ einen Wert ein.
keygen.passCharProblem=Sie verwenden in Ihrer Passphrase Sonderzeichen. Dies kann zu Schwierigkeiten mit anderen Anwendungen führen, die den Schlüsselring verwenden wollen. Wir empfehlen, in der Passphrase nur die folgenden Zeichen zu verwenden: a-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Aus technischen Gründen darf die Passphrase nicht mit einem Leerzeichen beginnen oder aufhören.
changePassFailed=Ändern der Passphrase fehlgeschlagen
keyConfirm=Öffentlichen und privaten Schlüssel für „%S“ erzeugen?
keyMan.button.generateKey=&Schlüssel erzeugen
keyAbort=Erzeugen des Schlüssels abbrechen?
keyMan.button.generateKeyAbort=Schlüsselerzeugung &abbrechen
keyMan.button.generateKeyContinue=Schlüsselerzeugung &fortsetzen
expiryTooLong=Sie können keinen Schlüssel erzeugen, der erst in mehr als 100 Jahren abläuft.
expiryTooLongShorter=Sie können keinen Schlüssel erzeugen, der erst in mehr als 90 Jahren abläuft.
expiryTooShort=Ihr Schlüssel muss mindestens einen Tag lang gültig sein.
dsaSizeLimit=DSA-Schlüssel zum Unterschreiben sind auf 3072 Bit limitiert. Die Schlüssellänge wird entsprechend reduziert.
keyGenFailed=Das Erzeugen des Schlüssels ist fehlgeschlagen. Weitere Details finden Sie in der Enigmail-Konsole (Menü Enigmail > Fehlersuche > Konsole anzeigen).
setKeyExpirationDateFailed=Das Ablaufdatum konnte nicht geändert werden
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail-Sicherheitsinfo:\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Anhänge an diese Nachricht wurden nicht unterschrieben oder verschlüsselt*
possiblyPgpMime=Eventuell PGP/MIME verschlüsselte oder unterschriebene Nachricht; klicken Sie zum Überprüfen auf die Schaltfläche „Entschlüsseln“
noDecrypted=Keine entschlüsselte Nachricht zum Speichern gefunden! \nVerwenden Sie "Speichern unter" im Menü „Datei“
noMessage=Keine Nachricht zum Speichern vorhanden!
useButton=Klicken Sie auf Entschlüsseln, um die Nachricht zu entschlüsseln
saveHeader=Enigmail: Entschlüsselte Nachricht wird gespeichert
saveAttachmentHeader=Enigmail: Entschlüsselte Anhänge speichern
noTempDir=Konnte kein temporäres Verzeichnis zum Schreiben finden. Bitte setzen Sie die Umgebungsvariable TEMP.
attachmentPgpKey=Der Anhang „%S“ scheint einen OpenPGP-Schlüssel zu enthalten.\n\nKlicken Sie auf „Importieren“, um die Schlüssel zu importieren, oder auf „Anzeigen“, um die Datei in einem Browser-Fenster zu öffnen.
beginPgpPart=********* *ANFANG des verschlüsselten oder unterschriebenen Bereichs* *********
endPgpPart=********* *ENDE des verschlüsselten oder unterschriebenen Bereichs* *********
notePartEncrypted=Enigmail: *Teile der Nachricht sind NICHT unterschrieben oder verschlüsselt*
noteCutMessage=Enigmail: *MehrereTextblöcke gefunden – Entschlüsselung/Überprüfung abgebrochen*
decryptOkNoSig=Achtung:\n\nDie Entschlüsselung war erfolgreich, aber die Unterschrift konnte nicht überprüft werden.
msgOvl.button.contAnyway=&Trotzdem fortfahren
signature.verifiedOK=Die Unterschrift für den Anhang „%S“ wurde erfolgreich überprüft
signature.verifyFailed=Die Unterschrift für den Anhang „%S“ konnte nicht überprüft werden
attachment.noMatchToSignature=Der Anhang „%S“ konnte keiner Signaturdatei zugeordnet werden
attachment.noMatchFromSignature=Die Signaturdatei „%S“ konnte keinem Anhang zugeordnet werden
fixBrokenExchangeMsg.failed=Reparatur der Nachricht ist fehlgeschlagen.
keysToExport=Benutzer-ID (E-Mail-Adressen) von zu exportierenden Schlüsseln
keysToUse=Zu verwendende OpenPGP-Schlüssel für %S
pubKey=Öffentlicher Schlüssel für %S\n
windowLocked=Das Editorfenster ist blockiert; Das Senden wurde abgebrochen
sendUnencrypted=Initialisierung von Enigmail fehlgeschlagen. \n\nNachricht unverschlüsselt senden?
composeSpecifyEmail=Geben Sie bitte eine Haupt-E-Mail-Adresse an, die verwendet wird, um den Unterschrift-Schlüssel für ausgehende Nachrichten auszuwählen. Wenn Sie keine Adresse angeben, wird die Emailadresse im FROM-Feld der Nachricht zur Auswahl des Schlüssels verwendet.
sendingHiddenRcpt=Diese Nachricht hat Empfänger im BCC-Feld (blind copy, versteckt). Wenn diese Nachricht verschlüsselt wird, ist es zwar möglich die BCC-Empfänger zu verstecken, aber Benutzer mancher PGP-Anwendungen (z.B. PGP Corp.) können die Nachricht dann nicht mehr entschlüsseln.
sendWithHiddenBcc=BCC-Empfänger verstecken
sendWithShownBcc=Normal verschlüsseln
sendingNews=Das Senden der verschlüsselten Nachricht wurde abgebrochen.\n\nDiese Nachricht kann nicht verschlüsselt werden, da unter den Empfängern Newsgruppen-Adressen sind. Senden Sie bitte diese Nachricht ohne Verschlüsselung.
sendToNewsWarning=Warnung: Sie möchten eine verschlüsselte Nachricht an eine Newsgruppe senden.\n\nDies ist nicht zu empfehlen, da es nur Sinn machen würde, wenn alle Leser der Newsgruppe die Nachricht entschlüsseln könnten. Dazu müsste die Nachricht beispielsweise für alle Leser der Newsgruppe verschlüsselt werden. Bitte senden Sie die Nachricht nur, wenn Sie genau wissen, was Sie machen.\n\nFortfahren?
hasHTML=Warnung vor HTML-Nachricht: \nDiese Nachricht kann HTML enthalten. Das kann das korrekte Unterschreiben bzw. Verschlüsseln dieser Nachricht verhindern. Um dies zukünftig beim Senden unterschriebener Nachrichten zu vermeiden, drücken Sie bitte die Umschalt-Taste gleichzeitig mit der „Verfassen“- bzw. „Antworten“-Schaltfläche. Wenn Sie Nachrichten standardmäßig unterschreiben, entfernen Sie in den Konten-Einstellungen den Haken bei „Nachrichten im HTML-Format verfassen“, um das Senden von HTML-Nachrichten dauerhaft zu verhindern.
strippingHTML=Die Nachricht enthält HTML-Formatierungen, die verloren gehen, wenn die Nachricht für die Unterschrift bzw. Verschlüsselung in ein Nur-Text-Format umgewandelt wird. Möchten Sie fortfahren?
msgCompose.button.sendAnyway=Nachricht &trotzdem senden
attachWarning=Anhänge zu dieser Nachicht sind nicht lokal vorhanden, sie können daher nicht verschlüsselt werden. Um die Anhänge zu verschlüsseln, speichern Sie diese zuerst lokal und fügen sie anschließend bei. Möchten Sie trotzdem fortfahren?
quotedPrintableWarn=Sie haben „quoted-printable“ als Kodierung für Nachrichten eingestellt. Dies kann zu inkorrekter Entschlüsselung und/oder Überprüfung Ihrer Nachricht führen. \nMöchten Sie die Einstellung „quoted printable“ deaktivieren?
minimalLineWrapping=Sie haben den Textumbruch auf %S Zeichen eingestellt. Für korrekte Verschlüsselung und Unterschrift muss dieser Wert auf mindestens 68 hochgesetzt werden. \nMöchten Sie den Wert jetzt auf 68 hochsetzen?
warning=Warnung
signIconClicked=Sie haben Einstellungen für das Unterschreiben verändert. Deshalb hängt für diese Nachricht das (De-)Aktivieren des Unterschreibens nicht mehr mit dem (De-)Aktivieren für Verschlüsselung zusammen.
pgpMime_sMime.dlg.text=Sie haben PGP/MIME und S/MIME gleichzeitig aktiviert. Leider ist es nicht möglich, beide Protokolle gemeinsam zu verwenden. Bitte entscheiden Sie sich zwischen S/MIME oder PGP/MIME.
pgpMime_sMime.dlg.pgpMime.button=&PGP/MIME verwenden
pgpMime_sMime.dlg.sMime.button=&S/MIME verwenden
errorKeyUnusable=Die E-Mail-Adresse oder Schlüssel-ID „%S“ kann keinem gültigen, nicht abgelaufenen OpenPGP-Schlüssel zugeordnet werden.\nBitte stellen Sie sicher, dass Sie einen gültigen OpenPGP-Schlüssel besitzen, und dass in den Konten-Einstellungen dieser Schlüssel ausgewählt ist.
errorOwnKeyUnusable=Die Schlüssel-ID „%S“ für die aktuelle Identität entspricht keinem gültigen OpenPGP-Schlüssel.\n\nBitte stellen Sie sicher, dass Sie einen gültigen, nicht abgelaufenen OpenPGP-Schlüssel haben und dass die Einstellungen des E-Mail-Kontos auf diesen Schlüssel verweisen.\nWenn Ihr Schlüssel nicht abgelaufen ist, prüfen Sie bitte, ob das Vertrauen des Schlüssels auf „vertraut“ oder „absolut“ eingestellt ist.
msgCompose.cannotSaveDraft=Fehler beim Speichern des Entwurfs
msgCompose.internalEncryptionError=Interner Fehler: Versprochene Verschlüsselung ist deaktiviert.
msgCompose.internalError=Ein interner Fehler ist aufgetreten.
msgCompose.toolbarTxt.signAndEncrypt=Nachricht wird unterschrieben und verschlüsselt.
msgCompose.toolbarTxt.signOnly=Nachricht wird unterschrieben.
msgCompose.toolbarTxt.encryptOnly=Nachricht wird verschlüsselt.
msgCompose.toolbarTxt.noEncryption=Nachricht wird weder unterschrieben noch verschlüsselt.
msgCompose.toolbarTxt.disabled=Enigmail ist für die ausgewählte Identität deaktiviert.
msgCompose.toolbarTxt.smime=S/MIME ist aktiv – möglicherweise schließt es sich mit Enigmail aus.
msgCompose.toolbarTxt.smimeOff=- S/MIME wird daher nicht benutzt
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME ist aktiviert – Enigmail wird daher nicht benutzt
msgCompose.toolbarTxt.smimeNoDraftEncryption=- Entwürfe werden nicht verschlüsselt
msgCompose.toolbarTxt.smimeConflict=Enigmail wird nicht benutzt, da S/MIME gerade aktiviert ist. Bitte deaktivieren Sie S/MIME für das Signieren und/oder Verschlüsseln und aktivieren Sie anschließend die Enigmail-Verschlüsselung
msgCompose.encryptedSubjectStub=Verschlüsselte Nachricht
msgCompose.detailsButton.label=Details…
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Das Senden wurde abgebrochen.\n\n
# details:
keyNotTrusted=Schlüssel '%S' wird nicht genug vertraut.
keyNotFound=Schlüssel '%S' wurde nicht gefunden.
keyRevoked=Schlüssel '%S' wurde widerrufen.
keyExpired=Schlüssel '%S' ist abgelaufen.
statPGPMIME=PGP/MIME
statSigned=UNTERSCHRIEBEN
statEncrypted=VERSCHLÜSSELT
statPlain=UNSIGNIERT und UNVERSCHLÜSSELT
offlineSave=Nachricht %1$S an folgende Empfänger im Ordner „Postausgang“ speichern: \n\n%2$S\n
onlineSend=Nachricht %S an folgende Empfänger senden: \n\n%S\n
encryptKeysNote=Hinweis: Die Nachricht wurde mit folgenden Benutzer-IDs / Schlüsseln verschlüsselt: %S
hiddenKey=
signFailed=Fehler in Enigmail; Verschlüsselung bzw. Unterschreiben fehlgeschlagen; Nachricht unverschlüsselt senden?
msgCompose.button.sendUnencrypted=Nachricht &unverschlüsselt senden
recipientsSelectionHdr=Empfänger für Verschlüsselung wählen
configureNow=Sie haben Enigmail-Sicherheit für die ausgewählte Identität noch nicht konfiguriert. Möchten Sie dies jetzt machen?
# encryption/signing status and associated reasons:
encryptMessageAuto=Nachricht verschlüsseln (automatisch)
encryptMessageNorm=Nachricht verschlüsseln
signMessageAuto=Nachricht unterschreiben (automatisch)
signMessageNorm=Nachricht unterschreiben
encryptOff=Verschlüsselung: AUS
encryptOnWithReason=Verschlüsselung: EIN (%S)
encryptOffWithReason=Verschlüsselung: AUS (%S)
encryptOn=Verschlüsselung: EIN
signOn=Unterschreiben: EIN
signOff=Unterschreiben: AUS
signOnWithReason=Unterschreiben: EIN (%S)
signOffWithReason=Unterschreiben: AUS (%S)
reasonEnabledByDefault=Voreinstellung ist EIN
reasonManuallyForced=von Hand eingeschaltet
reasonByRecipientRules=aufgrund von Empfänger-Regeln
reasonByAutoEncryption=aufgrund von automatischer Verschlüsselung
reasonByConflict=wegen Konflikt in Empfänger-Regeln
reasonByEncryptionMode=wegen Verschlüsselungs-Modus
reasonSmimeConflict=da S/MIME stattdessen aktiviert ist
# should not be used anymore:
encryptYes=Nachricht wird verschlüsselt
encryptNo=Nachricht wird nicht verschlüsselt
# should not be used anymore:
signYes=Nachricht wird unterschrieben
signNo=Nachricht wird nicht unterschrieben
# PGP/MIME status:
pgpmimeNormal=Protokoll: PGP/MIME
inlinePGPNormal=Protokoll: Inline-PGP
pgpmimeAuto=Protokoll: PGP/MIME (automatisch)
inlinePGPAuto=Protokoll: Inline-PGP (automatisch)
# should not be used anymore
pgpmimeYes=PGP/MIME wird verwendet
pgpmimeNo=Inline-PGP wird verwendet
# Attach own key status (tooltip strings):
attachOwnKeyNo=Ihr eigener Schlüssel wird nicht angehängt
attachOwnKeyYes=Ihr eigener Schlüssel wird angehängt
attachOwnKeyDisabled=Sie können Ihren eigenen Schlüssel nicht anhängen. Um dieses Feature zu aktivieren, müssen Sie einen bestimmten Schlüssel in den Konto-Einstellungen im Abschnitt OpenPGP auswählen.
rulesConflict=Konflikt in Empfängerregeln entdeckt\n%S\n\nNachrichten trotzdem mit diesen Einstellungen senden?
msgCompose.button.configure=&Konfigurieren
msgCompose.button.send=Nachricht &senden
msgCompose.button.save=Nachricht &speichern
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Öffentlicher Schlüssel %S zur Überprüfung der Unterschrift benötigt
keyUsed=Unterschrift wurde mit Schlüssel %S überprüft
clickDecrypt=; klicken Sie bitte auf die Entschlüsselungs-Schaltfläche
clickDecryptRetry=; klicken Sie bitte auf die Entschlüsselungs-Schaltfläche für einen erneuten Versuch
clickDetailsButton=; Für weitere Informationen klicken Sie auf die Schaltfläche „Details“.
clickImportButton=; Drücken Sie die Schaltfläche „Schlüssel importieren“, um den Schlüssel herunterzuladen.
keyTypeUnsupported=; Der Schlüsseltyp wird von Ihrer Version von GnuPG nicht unterstützt.
msgPart=Teil der Nachricht %S
msgSigned=unterschrieben
msgSignedUnkownKey=unterschrieben mit unbekanntem Schlüssel
msgEncrypted=verschlüsselt
msgSignedAndEnc=unterschrieben und verschlüsselt
unverifiedSig=Unterschrift NICHT überprüft
incompleteDecrypt=Entschlüsselung unvollständig
needKey=Fehler – geheimer Schlüssel wird zur Entschlüsselung benötigt
failedDecrypt=Fehler – Entschlüsselung fehlgeschlagen
badPhrase=Fehler – falsche Passphrase
failedDecryptVerify=Fehler – Entschlüsselung/Überprüfung fehlgeschlagen
viewInfo=; Ansicht > Nachrichtensicherheitsinformation für Details
decryptedMsg=Entschlüsselte Nachricht
decryptedMsgWithFormatError=Nachricht entschlüsselt (wiederhergestelltes ungültiges PGP Email Format - vermutlich durch alte Exchange Server Version entstanden. Das Resultat könnte nicht ideal zu lesen sein)
usedAlgorithms=Verwendete Algorithmen: %S und %S
# strings in pref-enigmail.js
oldGpgVersion14=Fehler beim Initialisieren von Enigmail.\n\nSie benutzen GnuPG Version %S, die nicht mehr unterstützt wird. Enigmail braucht GnuPG 2.0.7 oder neuer. Bitte aktualisieren Sie Ihre GnuPG-Installation, sonst funktioniert Enigmail nicht.
locateGpg=GnuPG-Anwendung finden
invalidGpgPath=GnuPG kann im angegebenen Pfad nicht gefunden werden. Enigmail wird deshalb deaktiviert, bis Sie den Pfad zu GnuPG korrigieren oder die Anwendung neu starten.
warningsAreReset=Alle Warnungen wurden zurückgesetzt.
prefs.gpgFound=GnuPG wurde gefunden in %S
prefs.gpgNotFound=GnuPG wurde nicht gefunden
prefs.warnAskNever=Warnung: Das Aktivieren dieser Option führt dazu, dass Nachrichten UNVERSCHLÜSSELT gesendet werden, sobald bei Nachrichten an mehrere Empfänger auch nur ein einziger Schlüssel für die Liste der Empfänger fehlt. Enigmail wird Sie in diesen Situationen NICHT nochmals informieren!
prefs.warnIdleTimeForUnknownAgent=Ihr System verwendet ein spezialisiertes Tool für die Passphrasen-Verwaltung wie z.B. gnome-keyring oder seahorse-agent. Leider kann Enigmail die Ablaufzeit für diese Tools nicht kontrollieren. Daher werden Änderungen an der Ablaufzeit in GnuPG ignoriert.
prefEnigmail.oneKeyserverOnly=Fehler – Es kann nur ein Schlüsselserver für das automatische Herunterladen fehlender OpenPGP-Schlüssel angegeben werden.
enterAdminPin=Bitte geben Sie die ADMIN-PIN Ihrer SmartCard ein
enterCardPin=Bitte geben Sie Ihre SmartCard-PIN ein
notInit=Fehler – Enigmail-Dienste noch nicht eingerichtet
badCommand=Fehler – Verschlüsselung fehlgeschlagen
cmdLine=Kommandozeile und Ausgabe:
notRequired=Fehler – keine Verschlüsselung notwendig
notComplete=Fehler – Erzeugen des Schlüssels noch nicht abgeschlossen
invalidEmail=Fehler – ungültige E-Mail-Adresse(n)
noPassphrase=Fehler – keine Passphrase angegeben
noPGPblock=Fehler – keinen gültigen OpenPGP-Block gefunden
unverifiedReply=Der eingerückte Teil der Nachricht (Antwort) wurde wahrscheinlich verändert
keyInMessageBody=Schlüssel im Text der Nachricht gefunden. Klicken Sie auf „Schlüssel importieren“, um den Schlüssel zu importieren.
sigMismatch=Fehler – Unterschrift nicht korrekt
cantImport=Fehler beim Importieren eines öffentlichen Schlüssels
doImportOne=%1$S (%2$S) importieren?
doImportMultiple=Die folgenden Schlüssel importieren?\n\n%S
previewFailed=Öffentlicher Schlüssel kann nicht gelesen werden.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Die SmartCard %1$S im Lesegerät kann zum Verarbeiten der Nachricht nicht verwendet werden.\nBitte legen Sie Ihre SmartCard %2$S ein und wiederholen den Vorgang.
sc.insertCard=Der Vorgang erfordert Ihre SmartCard %S.\nBitte legen Sie die erforderliche SmartCard ein und wiederholen den Vorgang.
sc.removeCard=Der Vorgang erfordert, dass keine SmartCard im Lesegerät ist.\nBitte entfernen Sie die SmartCard und wiederholen den Vorgang.
sc.noCardAvailable=Es wurde keine SmartCard im Lesegerät gefunden.\nBitte legen Sie die SmartCard ein und wiederholen den Vorgang.
sc.noReaderAvailable=Ihr SmartCard-Lesegerät wurde nicht gefunden.\nBitte installieren Sie das Lesegerät, legen die Karte ein und wiederholen den Vorgang.
keyError.keySpecNotFound=Die E-Mail-Adresse „%S“ passt zu keinem der Schlüssel in Ihrem Schlüsselbund.
keyError.keyIdNotFound=Die konfigurierte Schlüssel-ID „%S“ wurde nicht in Ihrem Schlüsselbund gefunden.
keyError.resolutionAction=Bitte wählen Sie in den Konto-Einstellungen im Abschnitt OpenPGP einen gültigen Schlüssel aus.
missingPassphrase=Fehlende Passphrase
errorHandling.gpgAgentInvalid=Auf Ihrem System läuft eine Version von gpg-agent, die nicht für die installierte GnuPG-Version geeignet ist.
errorHandling.gpgAgentError=In der Kommunikation zwischen GnuPG und gpg-agent (einem Teil von GnuPG) ist ein Fehler aufgetreten.
errorHandling.dirmngrError=In der Kommunikation zwischen GnuPG und dirmngr (einem Teil von GnuPG) ist ein Fehler aufgetreten.
errorHandling.pinentryError=GnuPG kann Ihre Passphrase nicht mit Hilfe des Programms pinentry abfragen.
errorHandling.readFaq=Dies ist ein Problem mit der Systeminstallation oder ein Konfigurationsfehler und führt dazu, dass Enigmail nicht funktioniert. Das Problem kann nicht automatisch behoben werden.\n\nBitte sehen Sie auf der Support-Webseite https://enigmail.net/faq (auf Englisch) nach, welche Möglichkeiten Sie haben.
gpgNotFound=Die GnuPG-Anwendung „%S“ konnte nicht gefunden werden.\nStellen Sie sicher, dass der Pfad zur GnuPG-Anwendung in den Enigmail-Einstellungen korrekt angegeben ist.
gpgNotInPath=Die GnuPG-Anwendung konnte im Systempfad nicht gefunden werden.\nStellen Sie sicher, dass der Pfad zur GnuPG-Anwendung in den Enigmail-Einstellungen korrekt angegeben ist.
enigmailNotAvailable=Enigmail-Kerndienst nicht verfügbar
gpgAgentNotStarted=Die für Ihre GnuPG-Version %S notwendige GPG-Agent-Anwendung konnte nicht gestartet werden.
prefUntrusted=NICHT VERTRAUENSWÜRDIGE
prefRevoked=WIDERRUFENER SCHLÜSSEL
prefExpiredKey=ABGELAUFENER SCHLÜSSEL
prefExpired=ABGELAUFEN
prefGood=Korrekte Unterschrift von %S
prefBad=FALSCHE Unterschrift von %S
failCancel=Fehler - Schlüssel-Empfang durch Benutzer abgebrochen
failNoServer=Fehler – Es wurde kein Schlüssel-Server angegeben
failNoID=Fehler – Es wurde keine Schlüssel-ID angegeben
failKeyExtract=Fehler – Schlüssel-Extraktion fehlgeschlagen
notFirstBlock=Fehler - Der erste OpenPGP-Block ist kein öffentlicher Schlüssel-Block
importKeyConfirm=In der Nachricht enthaltene(n) öffentliche(n) Schlüssel importieren?
failKeyImport=Fehler – Schlüssel konnte nicht importiert werden
fileWriteFailed=Fehler beim Schreiben in Datei %S.
importKey=Importiere folgende öffentliche Schlüssel von einem Schlüssel-Server: %S
uploadKey=Sende folgende öffentliche Schlüssel an einen Schlüssel-Server: %S
keyId=Schlüssel-ID
keyAndSigDate=Schlüssel-ID: 0x%S / Unterschrieben am: %S
keyFpr=Schlüssel-Fingerabdruck: %S
noEmailProvided=Sie haben keine E-Mail-Adresse angegeben!
keyAlreadySigned=Der Schlüssel wurde bereits unterschrieben; dies kann nicht mehrfach geschehen
gnupg.invalidKey.desc=Der Schlüssel %S wurde nicht gefunden oder ist ungültig. Der (Unter-)Schlüssel könnte abgelaufen sein.
selKeyExpired=abgelaufen am %S
createdHeader=Erzeugt
atLeastOneKey=Kein Schlüssel ausgewählt! Sie müssen mindestens einen Schlüssel auswählen.
fewerKeysThanRecipients=Sie haben weniger Schlüssel als Empfänger ausgewählt. Sind Sie sicher, dass alle notwendigen Schlüssel ausgewählt wurden?
userSel.button.goBack=Weitere Schlüssel auswählen
userSel.secretKeySel.title=Wählen Sie einen geheimen OpenPGP-Schlüssel, um Ihre Nachrichten zu unterschreiben
userSel.problemNoKey=Kein gültiger Schlüssel
userSel.problemMultipleKeys=Mehrere Schlüssel
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Später absenden
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=HINWEIS: PGP/MIME wird nur von einer beschränkten Zahl von E-Mail-Anwendungen unterstützt! Unter Windows sind nur Mozilla Thunderbird, Mozilla Suite, Seamonkey, Sylpheed, Pegasus und Mulberry dafür bekannt, diesen Standard zu unterstützen; auf Linux/UNIX und Mac OS X wird PGP/MIME von den meisten populären E-Mail-Anwendungen unterstützt. \n\nWenn Sie nicht sicher sind, was zu tun ist, wählen Sie die Option %S.
first=erste
second=zweite
# Strings used in am-enigprefs.js
encryptKeyHeader=OpenPGP-Schlüssel für Verschlüsselung wählen
identityName=Identität: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Sie haben die Verschlüsselung aktiviert, aber keinen Schlüssel gewählt. Um Nachrichten an %S verschlüsselt zu senden, müssen Sie einen oder mehrere gültige Schlüssel auswählen. Möchten Sie die Verschlüsselung für %S deaktivieren?
noKeyToUse=(keiner – nicht verschlüsseln)
noEmptyRule=Regeln dürfen nicht leer sein. Bitte geben Sie eine E-Mail-Adresse an.
invalidAddress=Die eingegebenen E-Mail-Adressen sind nicht gültig. Sie sollten nicht die Namen der Empfänger eingeben, sondern nur die Adressen. \n\nBeispiel: \nUngültig: Max Mustermann \nGültig: max.mustermann@domain.de
noCurlyBrackets=Die geschweiften {} Klammern haben eine spezielle Bedeutung und sollten nicht in E-Mail-Adressen genutzt werden. Wenn Sie das Verhalten der Empfängerregel ändern möchten, dann wählen Sie die Option „Anwenden, wenn Empfänger … eine(r) der obigen Adressen“.
# Strings used in enigmailRulesEditor.js
never=Nie
always=Immer
possible=Wenn ausgewählt
deleteRule=Ausgewählte Regel wirklich löschen?
nextRcpt=(Nächster Empfänger)
negateRule=Nicht
addKeyToRule=Den Schlüssel %S (%S) zur Empfängerregel hinzufügen
# Strings used in enigmailSearchKey.js
needOnline=Im Offline-Modus ist die gewählte Funktion nicht verfügbar. Bitte gehen Sie online und versuchen es erneut.
protocolNotSupported=Das ausgewählte Protokoll „%S://“ wird nicht unterstützt, um OpenPGP-Schlüssel herunterzuladen.
gpgkeysDisabled=Es könnte helfen folgende Funktion zu aktivieren: „extensions.enigmail.useGpgKeysTool“
noKeyserverConn=Verbindung zum Schlüssel-Server %S konnte nicht hergestellt werden.
keyDownloadFailed=Schlüssel konnte nicht vom Server heruntergeladen werden. Status-Meldung:\n%S
internalError=Ein interner Fehler ist aufgetreten. Schlüssel konnten nicht heruntergeladen oder importiert werden.
noKeyFound=Leider konnte kein passender Schlüssel zu den angegebenen Suchkriterien gefunden werden.\nBeachten Sie, dass Schlüssel-IDs mit „0x“ beginnen müssen (z.B. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Schlüssel konnte nicht gesucht oder heruntergeladen werden: gpgkeys_%S konnte nicht ausgeführt werden.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Festlegen des Besitzervertrauens fehlgeschlagen
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Unterschreiben des Schlüssels fehlgeschlagen
alreadySigned.label=Hinweis: Der Schlüssel %S wurde bereits mit diesem geheimen Schlüssel unterschrieben!
alreadySignedexportable.label=Hinweis: Der Schlüssel %S ist bereits mit dem angegebenen privaten Schlüssel als exportierbar unterschrieben. Eine lokale Unterschrift ist daher nicht sinnvoll.
partlySigned.label=Hinweis: einige User IDs des Schlüssels %S sind bereits mit dem ausgewählten Schlüssel unterschrieben.
noTrustedOwnKeys=Kein geeigneter Schlüssel zum Verschlüsseln gefunden! Sie brauchen mindestens einen vollständig vertrauten privaten Schlüssel in Ihrem Schlüsselbund.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Schlüssel werden geladen, bitte warten…
keyValid.unknown=unbekannt
keyValid.invalid=ungültig
keyValid.disabled=deaktiviert
keyValid.revoked=widerrufen
keyValid.expired=abgelaufen
keyValid.noSubkey=Kein gültiger Unterschlüssel
keyTrust.untrusted=nicht vertrauenswürdig
keyTrust.marginal=marginal
keyTrust.full=vertraut
keyTrust.ultimate=absolut
keyTrust.group=(Gruppe)
keyType.public=öffentlich
keyType.publicAndSec=öffentlich + privat
keyMan.enableKey=Aktivieren
keyMan.disableKey=Deaktivieren
userAtt.photo=Benutzerattribut (JPEG-Bild)
asciiArmorFile=ASCII-Armored-Dateien (*.asc)
importKeyFile=OpenPGP-Schlüsseldatei importieren
gnupgFile=GnuPG-Dateien
saveRevokeCertAs=Widerrufszertifikat erzeugen & speichern
revokeCertOK=Das Widerrufszertifikat wurde erfolgreich erzeugt. Sie können es verwenden, um Ihren öffentlichen Schlüssel für ungültig zu erklären (z. B.: im Fall, dass Sie Ihren privaten Schlüssel verloren haben).\n\nBitte bewahren Sie das Widerrufszertifikat nur an einem sicheren Ort (wie Diskette oder CD) auf. Wenn andere Personen Zugriff darauf erhalten, könnten diese Ihren Schlüssel unbrauchbar machen.
revokeCertFailed=Das Widerrufszertifikat konnte nicht erzeugt werden.
addUidOK=Benutzer-ID erfolgreich hinzugefügt
addUidFailed=Hinzufügen der Benutzer-ID fehlgeschlagen
noKeySelected=Sie müssen mindestens einen Schlüssel auswählen, um diese Funktion auszuführen.
exportToFile=Öffentlichen Schlüssel in Datei exportieren
exportKeypairToFile=Geheime und öffentliche Schlüssel in eine Datei exportieren
exportSecretKey=Möchten Sie auch private (geheime) Schlüssel in die Datei speichern?
saveKeysOK=Die Schlüssel wurden erfolgreich gespeichert.
saveKeysFailed=Speichern der Schlüssel fehlgeschlagen
importKeysFailed=Speichern der Schlüssel fehlgeschlagen
enableKeyFailed=Aktivieren / Deaktivieren der Schlüssel fehlgeschlagen
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Exportierte_public_keys
defaultPubSecKeyFilename=Exportierte_public_und_private_keys
noSecretKeys=Keinen privaten Schlüssel gefunden.\n\nMöchten Sie jetzt Ihren eigenen Schlüssel erzeugen?
sendKeysOk=Schlüssel erfolgreich gesendet
sendKeysFailed=Senden der Schlüssel fehlgeschlagen
receiveKeysOk=Schlüssel erfolgreich aktualisiert
receiveKeysFailed=Herunterladen der Schlüssel ist fehlgeschlagen
importFromClip=Möchten Sie Schlüssel aus der Zwischenablage importieren?
importFromUrl=Öffentlichen Schlüssel von dieser URL herunterladen:
copyToClipbrdFailed=Exportieren der Schlüssel in die Zwischenablage fehlgeschlagen
copyToClipbrdOK=Schlüssel erfolgreich in Zwischenablage exportiert
deleteSecretKey=WARNUNG: Sie sind dabei einen privaten Schlüssel zu löschen!\n\nWenn Sie Ihren privaten Schlüssel löschen, können Sie keine Nachrichten mehr entschlüsseln, die dafür verschlüsselt wurden. Außerdem können Sie anschließend den zugehörigen öffentlichen Schlüssel nicht mehr widerrufen.\n\nMöchten Sie wirklich den öffentlichen UND den PRIVATEN Schlüssel „%S“ löschen?
deleteMix=WARNUNG: Sie sind dabei private Schlüssel zu löschen!\n\nWenn Sie Ihren privaten Schlüssel löschen, können Sie keine Nachrichten mehr entschlüsseln, die dafür verschlüsselt wurden.\n\nWollen Sie wirklich beides, die gewählten öffentlichen UND PRIVATEN Schlüssel löschen?
deletePubKey=Möchten Sie den öffentlichen Schlüssel „%S“ löschen?
deleteSelectedPubKey=Möchten Sie die öffentlichen Schlüssel löschen?
deleteKeyFailed=Löschen des Schlüssels fehlgeschlagen
revokeKeyQuestion=Sie sind dabei, den Schlüssel '%S' zu widerrufen.\n\nSie werden mit diesem Schlüssel nicht mehr unterschreiben können, und sobald der Widerruf verteilt ist, werden andere nicht mehr mit diesem Schlüssel verschlüsseln können. Sie können mit dem Schlüssel aber weiterhin alte Nachrichten entschlüsseln.\n\nWollen Sie fortfahren?
revokeKeyOk=Der Schlüssel wurde widerrufen. Wenn Ihr Schlüssel auf einem Schlüssel-Server verfügbar ist, sollten Sie Ihn jetzt erneut hochladen. Erst dann können andere Anwender sehen, dass er widerrufen wurde.
revokeKeyFailed=Der Schlüssel konnte nicht widerrufen werden.
refreshAllQuestion=Sie haben keinen Schlüssel ausgewählt. Möchten Sie ALLE Schlüssel aktualisieren?
refreshKey.warn=Warnung: In Abhängigkeit von der Anzahl der Schlüssel und der Verbindungsgeschwindigkeit, kann das Aktualisieren aller Schlüssel sehr lange dauern!
downloadContactsKeys.warn=Warnung: In Abhängigkeit von der Anzahl der Kontakte und der Übertragungsgeschwindigkeit kann dieser Vorgang recht lange dauern!
downloadContactsKeys.importFrom=Kontakte aus Adressbuch '%S' importieren?
keyMan.button.exportSecKey=&Geheime Schlüssel exportieren
keyMan.button.exportPubKey=&Nur öffentliche Schlüssel exportieren
keyMan.button.import=&Importieren
keyMan.button.refreshAll=Alle Schlüssel &aktualisieren
keyMan.button.revokeKey=Schlüssel &widerrufen
keyMan.button.skip=Schlüssel über&springen
keylist.noOtherUids=Hat keine weiteren Identitäten
keylist.hasOtherUids=Auch bekannt als
keylist.noPhotos=Kein Foto verfügbar
keylist.hasPhotos=Fotos
keyMan.addphoto.filepicker.title=Foto auswählen
keyMan.addphoto.warnLargeFile=Die ausgewählte Datei ist größer als 25 kB.\nEs ist nicht empfehlenswert große Dateien hinzuzufügen, da die Schlüssel dadurch sehr groß werden.
keyMan.addphoto.noJpegFile=Das ausgewählte Foto scheint nicht im JPEG-Format zu sein. Bitte wählen Sie eine andere Datei.
keyMan.addphoto.failed=Das Foto konnte nicht hinzugefügt werden.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Änderung der primären Benutzer-ID fehlgeschlagen
changePrimUidOK=Primäre Benutzer-ID erfolgreich geändert
deleteUidFailed=Löschen der Benutzer-ID %S fehlgeschlagen
deleteUidOK=Benutzer-ID „%S“ wurde erfolgreich gelöscht
revokeUidFailed=Widerrufen der Benutzer-ID %S fehlgeschlagen
revokeUidOK=Benutzer-ID „%S“ erfolgreich widerrufen. Wenn Ihr Schlüssel auf einem Schlüssel-Server verfügbar ist, sollten Sie Ihn jetzt erneut hochladen. Erst dann können andere Anwender sehen, dass er widerrufen wurde.
revokeUidQuestion=Möchten Sie die Benutzer-ID „%S“ wirklich widerrufen?
deleteUidQuestion=Möchten Sie wirklich die Benutzer-ID „%S“ löschen?\n\nHinweis: Wenn Sie Ihren öffentlichen Schlüssel auf einen Schlüssel-Server hochgeladen haben, dann bewirkt das Löschen einer Benutzer-ID nichts. In diesem Fall sollten Sie die Benutzer-ID „Widerrufen“.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=Das hat geklappt! Schlüssel wurden importiert
importInfoSuccess=✅
importInfoBits=Bit
importInfoCreated=Erstellt
importInfoFpr=Fingerabdruck
importInfoDetails=(Details)
importInfoNoKeys=Keine Schlüssel importiert
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=öffentlich
keyTypePrimary=Primärer Schlüssel
keyTypeSubkey=Unterschlüssel
keyTypePair=Schlüsselpaar
keyExpiryNever=nie
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Verschlüsseln
keyUsageSign=Unterschreiben
keyUsageCertify=Beglaubigen
keyUsageAuthentication=Authentifizieren
keyDoesNotExpire=Schlüssel läuft nicht ab
# Strings in enigmailGenCardKey.xul
keygen.started=Bitte warten Sie, während der Schlüssel erzeugt wird…
keygen.completed=Schlüssel erzeugt. Die neue Schlüssel-ID ist: 0x%S
keygen.keyBackup=Die Sicherungskopie des Schlüssel wurde gespeichert als %S
keygen.passRequired=Bitte vergeben Sie eine Passphrase, wenn Sie eine Sicherungskopie des Schlüssels außerhalb der SmartCard anlegen möchten.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Die eingegebene PIN ist nicht korrekt – bitte erneut eingeben
cardPin.minLength=Die PIN muss mindestens %S Buchstaben oder Ziffern enthalten
cardPin.processFailed=Ändern der PIN fehlgeschlagen
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Schlüssel werden aktualisiert. Bitte warten…
keyserverProgress.uploading=Schlüssel werden hochgeladen. Bitte warten…
keyserverTitle.refreshing=Schlüssel aktualisieren
keyserverTitle.uploading=Schlüssel hochladen
# Strings in enigmailSetupWizard
passphrase.min8keys=Ihre Passphrase sollte mindestens 8 Zeichen lang sein!
setupWizard.reallyCancel=Möchten Sie den Einrichtungs-Assistenten wirklich schließen?
setupWizard.invalidGpg=Bei der angegebenen Datei handelt es sich nicht um das GnuPG-Programm. Bitte wählen Sie eine andere Datei aus.
setupWizard.specifyFile=Sie müssen zumindest eine öffentliche Schlüsseldatei auswählen, um fortzufahren.
setupWizard.installFailed=Die Installation scheint nicht erfolgreich abgeschlossen worden zu sein. Bitte versuchen Sie GnuPG erneut zu installieren, oder installieren Sie GnuPG manuell und weisen Sie den Pfad über die Schaltfläche „Durchsuchen“ zu.
setupWizard.downloadForbidden=Zu Ihrer eigenen Sicherheit wird der Download von GnuPG nicht fortgesetzt. Bitte besuchen Sie die Webseite https://www.gnupg.org/, um GnuPG herunterzuladen.
setupWizard.downloadImpossible=GnuPG kann momentan nicht heruntergeladen werden. Bitte versuchen Sie es später erneut oder besuchen Sie die Webseite https://www.gnupg.org/, um GnuPG herunterzuladen.
setupWizard.hashSumError=Der Assistent konnte die Integrität der heruntergeladenen Datei nicht verifizieren. Die Datei könnte defekt oder manipuliert sein. Möchten Sie die Installation trotzdem fortsetzen?
setupWizard.importSettingsFile=Geben Sie die zu ladende Sicherungsdatei an
setupWizard.invalidSettingsFile=Die angegebene Datei ist keine Enigmail-Einstellungen-Datei.
setupWizard.gpgConfExists=Es existiert bereits eine GnuPG-Konfigurationsdatei. Soll sie durch die GnuPG-Konfigurationsdatei aus der Sicherung ersetzt werden?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Beim Download von GnuPG ist ein Fehler aufgetreten. Bitte prüfen Sie die Fehlerkonsole für weitere Details.
installGnuPG.installFailed=Bei der Installation von GnuPG ist ein Fehler aufgetreten. Bitte prüfen Sie die Fehlerkonsole für weitere Details.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Sie müssen einen Namen und eine E-Mail-Adresse angeben
addUidDlg.nameMinLengthError=Der Name muss mindestens 5 Zeichen enthalten
addUidDlg.invalidEmailError=Sie müssen eine gültige E-Mail-Adresse angeben
addUidDlg.commentError=Klammern sind in Kommentaren nicht erlaubt
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP-Smartcards unterstützen nur ASCII-Zeichen in Vor- und Nachname (also beispielsweise keine Umlaute)
# network error types
errorType.SecurityCertificate=Das Zertifikat des Web-Services ist nicht gültig.
errorType.SecurityProtocol=Das vom Web-Service verwendete Sicherheitsprotokoll ist unbekannt.
errorType.Network=Ein Netzwerkfehler ist aufgetreten.
# filter stuff
filter.folderRequired=Sie müssen einen Zielordner auswählen
filter.decryptMove.label=Dauerhaft entschlüsseln (Enigmail)
filter.decryptCopy.label=Entschlüsselte Kopie anlegen (Enigmail)
filter.decryptMove.warnExperimental=Warnung – Die Filter-Aktion „Dauerhaft entschlüsseln“ kann Nachrichten zerstören.\n\nWir empfehlen eindringlich, dass Sie zunächst den Filter „Entschlüsselte Kopie anlegen“ ausprobieren und das Ergebnis sorgfältig prüfen. Nur wenn Sie mit dessen Ergebnis zufrieden sind, sollten Sie diesen Filter hier verwenden.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Konnte Nachricht mit folgendem Betreff nicht entschlüsseln:\n„%S“\nWollen Sie es mit einer anderen Passphrase erneut versuchen, oder wollen Sie die Nachricht überspringen?
converter.decryptAtt.failed=Konnte Anhang „%1$S“ \nnicht entschlüsseln in Nachricht mit Betreff \n„%2$S“. \nWollen Sie es mit einer anderen Passphrase erneut versuchen, oder wollen Sie die Nachricht überspringen?
saveLogFile.title=Log-Datei speichern
# strings in gpg.jsm
unknownSigningAlg=Unbekannter Unterschrift-Algorithmus (ID: %S)
unknownHashAlg=Unbekannter kryptographischer Hash (ID: %S)
# strings in keyRing.jsm
keyring.photo=Foto
keyRing.pubKeyRevoked=Der Schlüssel %1$S (Schlüssel-ID %2$S) wurde widerrufen.
keyRing.pubKeyExpired=Der Schlüssel %1$S (Schlüsselkennung %2$S) ist abgelaufen.
keyRing.pubKeyNotForSigning=Der Schlüssel %1$S (Schlüssel-ID %2$S) kann nicht zum Unterschreiben verwendet werden.
keyRing.pubKeyNotForEncryption=Der Schlüssel %1$S (Schlüssel-ID %2$S) kann nicht zum Verschlüsseln verwendet werden.
keyRing.keyDisabled=Der Schlüssel %1$S (Schlüsselkennung %2$S) ist deaktiviert; er kann nicht verwendet werden.
keyRing.keyNotTrusted=Der Schlüssel %1$S (Schlüssel-ID %2$S) hat nicht genug Vertrauen. Bitte ändern Sie die Vertrauensstufe des Schlüssels auf „absolut“, um ihn zum Unterschreiben zu verwenden.
keyRing.keyInvalid=Der Schlüssel %1$S (Schlüssel-ID %2$S) ist ungültig (er könnte beispielsweise nicht von sich selbst unterschrieben sein).
keyRing.signSubKeysRevoked=Alle Unterschrift-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) wurden widerrufen.
keyRing.signSubKeysExpired=Alle Unterschrift-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) sind abgelaufen.
keyRing.signSubKeysUnusable=Alle Unterschrift-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) sind widerrufen, abgelaufen oder aus anderem Grund unbenutzbar.
keyRing.encSubKeysRevoked=Alle Verschlüsselungs-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) wurden widerrufen.
keyRing.encSubKeysExpired=Alle Verschlüsselungs-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) sind abgelaufen.
keyRing.noSecretKey=Der private Schlüssel für %1$S (Schlüssel-ID %2$S) scheint in Ihrem Schlüsselbund zu fehlen; dieser Schlüssel kann daher nicht zum Unterschreiben verwendet werden.
keyRing.encSubKeysUnusable=Alle Verschlüsselungs-Unterschlüssel des Schlüssels %1$S (Schlüssel-ID %2$S) sind widerrufen, abgelaufen oder aus anderem Grund unbenutzbar.
#strings in exportSettingsWizard.js
cannotWriteToFile=Datei „%S“ kann nicht gespeichert werden. Bitte wählen Sie eine andere Datei aus.
dataExportError=Beim Exportieren der Daten ist ein Fehler aufgetreten.
enigmailSettings=Enigmail-Einstellungen
defaultBackupFileName=Enigmail-Sicherung
specifyExportFile=Geben Sie den Dateinamen für die Sicherung an
homedirParamNotSUpported=Zusätzliche Parameter zum Ändern von Pfaden, zum Beispiel --homedir und --keyring, sind beim Exportieren/Wiederherstellen der Einstellungen nicht möglich. Bitte nutzen Sie alternative Möglichkeiten, zum Beispiel die Umgebungsvariable GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=Ihr Schlüssel %1$S läuft in weniger als %2$S Tagen ab.\n\nEs wird empfohlen, dass Sie ein neues Schlüsselpaar erzeugen und die entsprechenden E-Mail-Konten so einstellen, dass die neuen Schlüssel benutzt werden.
expiry.keysExpireSoon=Die folgenden Ihrer Schlüssel laufen in weniger als %1$S Tagen ab: %2$S.\n\nEs wird empfohlen, dass Sie neue Schlüssel erzeugen und die entsprechenden E-Mail-Konten so einstellen, dass die neuen Schlüssel benutzt werden.
enigmail/lang/de/help/ 0000775 0000000 0000000 00000000000 12667016244 0015114 5 ustar 00root root 0000000 0000000 enigmail/lang/de/help/compose.html 0000664 0000000 0000000 00000011146 12667016244 0017452 0 ustar 00root root 0000000 0000000
Enigmail-Hilfe: Verfassen von Nachrichten
Enigmail-Hilfe
Verwenden von Enigmail beim Verfassen von Nachrichten
- Menü "Enigmail" im Fenster "Verfassen"
-
- Nachricht unterschreiben
- Unterschreiben von Nachrichten aktivieren / deaktivieren. Der Benutzer wird benachrichtigt, falls das Unterschreiben fehlschlägt.
- Nachricht verschlüsseln
-
Verschlüsselung an alle Adressaten aktivieren / deaktivieren. Der Benutzer wird benachrichtigt, falls die Verschlüsselung fehlschlägt.
Falls Auswahl anzeigen, wenn notwendig im Menü Enigmail -> Einstellungen -> Schlüsselauswahl... eingestellt ist, dann wird eine Liste mit Schlüsseln erscheinen, wenn Sie keinen öffentlichen Schlüssel für einen oder mehrere Empfänger der Nachrichten besitzen.
Falls Auswahlfenster nie anzeigen im Menü Enigmail -> Einstellungen -> Schlüsselauswahl... eingestellt ist, dann wird die Nachricht an die Empfänger unverschlüsselt gesendet, von denen Sie keinen öffentlichen Schlüssel besitzen.
- PGP/MIME verwenden
-
Verwenden von PGP/MIME für diese Nachricht ermöglichen / nicht ermöglichen.
Wenn Sie wissen, dass die Empfänger das PGP/MIME-Format verwenden können, dann sollten Sie dies benutzen.
Diese Möglichkeit hängt von den Einstellungen unter Enigmail -> Einstellungen -> PGP/MIME... ab. Hier muss PGP/MIME verwenden, wenn möglich oder Immer PGP/MIME verwenden aktiviert sein.
- Einstellungen (Untermenü)
-
- Unterschrift/Verschlüsselung...: Abkürzung zu den Konten-Einstellungen -> OpenPGP-Sicherheit.
- Senden...: Abkürzung zu Einstellungen -> Senden.
- Schlüsselwauswahl...: Abkürzung zu Einstellungen -> Schlüsselauswahl.
- Empfängerregeln
- Öffnet den Dialog mit den Empfängerregeln.
- Verschlüsselung rückgängig machen
-
Wenn es einen Fehler beim Senden der Nachricht gibt, also z.B. der POP-Server nicht erreichbar ist, dann wird Enigmail dies nicht wissen und die verschlüsselte Nachricht wird auch weiterhin im Fenster "Verfassen" angezeigt. Dieser Menüpunkt nimmt die Verschlüsselung / das Unterschreiben zurück und das Fenster "Verfassen" kehrt zum Originaltext zurück.
Als vorläufige Maßnahme kann über diesen Menüpunkt auch eine verschlüsselte Nachricht, die man zitiert und auf die man antwortet, entschlüsselt angezeigt werden. Enigmail sollte zitierte Nachrichten automatisch entschlüsseln, was bisher jedoch fehlschlägt. Über diesen Menüeintrag kann Enigmail zur Entschlüsselung gezwungen werden.
- Meinen öffentlichen Schlüssel anhängen
- Hägt an die Nachricht Ihren öffentlichen Schlüssel im ASCII-Format an.
- Öffentlichen Schlüssel anhängen
- Hägt an die Nachricht öffentliche Schlüssel im ASCII-Format an. Sie können die gewünschten Schlüssel dazu auswählen.
- Passphrase aus Zwischenspeicher löschen
- Löscht die gespeicherte Passphrase. Nützlich, falls Sie mehrere Passphrasen verwenden.
- Hilfe
- Zeigt die Hilfe an (diese Seite).
Weitere Hilfe ist verfügbar auf der Enigmail-Hilfeseite
enigmail/lang/de/help/editRcptRule.html 0000664 0000000 0000000 00000013130 12667016244 0020406 0 ustar 00root root 0000000 0000000
Enigmail-Hilfe: Enigmail-Empfägerregel bearbeiten
Enigmail-Hilfe
Enigmail-Empfängerregeln bearbeiten
Es können Standards für einen Empfänger bezüglich Verschlüsselung, Unterschreiben und PGP/MIME sowie die Verwendung von OpenPGP-Schlüsseln festgelegt werden. In diesem Dialog können Sie Regeln für einen einzelnen Empfänger sowie Gruppen von Empfängern mit ähnlichen Eigenschaften festlegen.
- Regel für
- Beinhaltet die E-Mail-Adressen der Empfänger (ohne Namen, also z.B. einfach somebody@email.domain). Sie können mehrere E-Mail-Adressen festlegen; die Adressen müssen mit Leerzeichen voneinander getrennt sein. Die eingegebenen Adressen können auch nur aus dem Domain-Namen bestehen, so dass die Regel auf alle Mails dieser Domain angewendet wird, also z.B. @email.domain bezieht ein body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Anwenden, wenn Empfänger...
-
Dies modifiziert die Übereinstimmung der E-Mail-Adressen. Wenn mehrere E-Mail-Adressen eingegeben werden, dann wird diese Einstellung auf alle angewendet. Die folgenden Beispiele beziehen sich auf die Adresse body@email.domain, die im oberen Feld Enigmail-Empfängerregel eingegeben wurde.
- ist exakt: Mit dieser Einstellung wird die Regel nur angewendet, wenn die E-Mail-Adresse body@email.domain lautet (exakt, Gross-/Kleinschreibung wird nicht beachtet).
- enthält: Regel wird angewendet, wenn die Zeichenfolge in der E-Mail-Adresse auftaucht, also z.B. anybody@email.domain oder body@email.domain.net
- beginnt mit: Regel wird angewendet, wenn die Zeichenfolge am Beginn der E-Mail-Adresse steht, also z.B. body@email.domain.net, body@email.domain-name.com.
- endet mit: Regel wird angewendet, wenn die Zeichenfolge am Ende der E-Mail-Adresse steht, also z.B. anybody@email.domain, somebody@email.domain.
- Weitere Regeln auf passende Adresse prüfen
- Diese Einstellung erlaubt Ihnen, eine Regel zu erstellen ohne eine spezielle Schlüssel-ID in Verwende folgende OpenPGP-Schlüssel angeben zu müssen. Die E-Mail-Adresse wird für die Auswahl des passenden Schlüssels beim Senden genutzt. Weitere Regeln für die gleiche E-Mail-Adresse werden auch ausgeführt.
- Weitere Regeln nicht auf passende Adresse prüfen
- Bei dieser Einstellung werden weitere Regeln nicht mehr ausgeführt, sobald eine passende Regel gefunden wurde.
- Verwende folgende OpenPGP-Schlüssel:
- Nutzen Sie die Schaltfläche Auswählen..., um die gewünschten Schlüssel auszuwählen. Auch hier werden keine weiteren Regeln ausgeführt.
- Unterschreiben
-
Unterschreiben von Nachrichten ermöglichen / nicht ermöglichen. Diese Einstellung verwendet oder übergeht, was Sie im Fenster "Verfassen" angegeben haben. Die möglichen Einstellungen lauten:
- Nie: Unterschreiben nicht ermöglichen, auch wenn es im Fenster "Verfassen" möglich war (andere Einstellungen werden übergangen).
- Ja, wenn beim Verfassen ausgewählt: Übernimmt die Einstellung, die beim Verfassen gewählt wurde.
- Immer: Unterschreiben ermöglichen, selbst wenn es nicht im Fenster "Verfassen" ermöglicht war.
Diese Unterschriftseinstellungen werden bei allen übereinstimmenden Regeln angewendet. Wenn eine der Regeln das Unterschreiben nicht ermöglicht, dann wird die Nachricht ungeachtet anderer Regeln, die Immer vorschreiben, nicht unterschrieben.
- Verschlüsselung
- Verschlüsselung ermöglichen / nicht ermöglichen. Die möglichen Einstellungen und Bedeutungen stimmen mit den oben genannten überein.
- PGP/MIME
- Verschlüsselung mit PGP/MIME (RFC 3156) ermöglichen / nicht ermöglichen. Wenn nicht PGP/MIME abgestellt (nicht möglich) ist, dann wird die Nachricht per "Inline PGP" verschlüsselt. Die möglichen Einstellungen und Bedeutungen stimmen mit den oben genannten überein.
Die Regeln werden in der Reihenfolge, wie sie in der Liste im Dialog "Enigmail-Empfängerregeln" erscheinen, angewendet. Wann immer eine Regel auf einen Empfänger zutrifft und eine OpenPGP-Schlüssel-ID enthält, dann wird der Empfänger nach Verwendung der angegeben Schlüssel-ID bei den nachfolgenden Regeln nicht mehr beachtet.
Weitere Hilfe ist verfügbar auf der Enigmail Per-Recipient Settings Seite
enigmail/lang/de/help/initError.html 0000664 0000000 0000000 00000005352 12667016244 0017764 0 ustar 00root root 0000000 0000000
Enigmail-Hilfe: Beheben von Problemen bei der Enigmail-Initialisierung
Enigmail-Hilfe
Beheben von Problemen bei der Enigmail-Initialisierung
Es gibt verschiedene Ursachen für ein Fehlschlagen der Enigmail-Initialisierung. Die bekanntesten werden unten beschrieben&
für weitere Informationen besuchen Sie bitte die Enigmail-Hilfe-Webseite.
- GnuPG konnte nicht gefunden werden
-
Damit Enigmail funktionieren kann, muss die Anwendung GnuPG installiert sein.
Wenn GnuPG nicht gefunden werden kann, stellen Sie als erstes sicher, dass die Anwendung gpg.exe (für Windows& gpg für andere Plattformen) auf Ihrem PC tatsächlich vorhanden ist.
Wenn GnuPG (gpg.exe bzw. gpg) tatsächlich installiert ist, aber Enigmail kann es trotzdem nicht finden, müssen Sie den Pfad zu GnuPG manuell in den Enigmail-Einstellungen angeben (Menü Enigmail > Einstellungen...).
- Initialisierung von EnigMIME ist fehlgeschlagen
-
Enigmail funktioniert nur, wenn es in der gleichen Entwicklungsumgebung wie Thunderbird bzw. Seamonkey erstellt (kompiliert) wurde. Sie können das offizielle Enigmail zusammen mit offiziellen Veröffentlichungen von Thunderbird bzw. Seamonkey von mozilla.org verwenden.
Wenn Sie Thunderbird oder Seamonkey in einer Version/Variante von einer anderen Quelle verwenden (z.B. vom Anbieter einer Linux-Distribution), oder wenn Sie die Anwendung selbst kompiliert haben, müssen Sie auch Enigmail in einer Version verwenden, die in der gleichen Entwicklungsumgebung kompiliert wurde. Um Enigmail selbst zu kompilieren, beachten Sie bitte die Angaben auf der Enigmail-Webseite im Bereich Source-Code. Bitte erstellen Sie keine Fehlerhinweise (Bugs) zu diesem Problem, da es dazu keine andere Lösung gibt.
Weitere Hilfe ist verfügbar unter Enigmail-Hilfeseite
enigmail/lang/de/help/messenger.html 0000664 0000000 0000000 00000013142 12667016244 0017773 0 ustar 00root root 0000000 0000000
Enigmail-Hilfe: Lesen von Nachrichten
Enigmail-Hilfe
Verwenden von Enigmail beim Lesen von Nachrichten
- Schaltfläche "Entschlüsseln" im Hauptfenster
- Diese Schaltfläche kann für mehrere Zwecke verwendet werden: zum Entschlüsseln, Überprüfen, oder Importieren von öffentlichen Schlüsseln. Im Normalfall werden Nachrichten automatisch entschlüsselt und überprüft. Dies kann jedoch in den Einstellungen deaktiviert werden. Sollte das Entschlüsseln fehlschlagen, dann erscheint im Regelfall eine kurze Fehlermeldung in der Statuszeile von Enigmail. Sie werden dann, wenn Sie die Schaltfläche "Entschlüsseln" anklicken, eine detaillierte Fehlermeldung (inklusive der Meldung von der OpenPGP-Kommandozeile) erhalten.
- Schlüssel- und/oder Stift-Symbol in der Statusleiste einer Nachricht
-
Das Stift- und das Schlüssel-Symbol in der Statusleiste geben an, ob die Nachricht unterschrieben und/oder verschlüsselt ist und ob die Unterschrift gültig ist, d.h. dass die Nachricht seit ihrem Senden nicht geändert wurde. Falls die Nachricht geändert wurde, wird der Stift rot dargestellt, um auf die Ungültigkeit der Unterschrift hinzuweisen. Nach einem Klick auf "Details" in der Enigmail-Zeile im Nachrichtenkopf wird ein Menü mit den folgenden Optionen angezeigt:
- Schlüssel importieren: importiert eventuell angehängte öffentliche Schlüssel in Ihren Schlüsselring in der Schlüsselverwaltung.
- Enigmail-Sichheitsinfo...: ermöglicht Ihnen, die Statusmeldungen der Enigmail-Kommandozeile für die Nachricht anzusehen.
- Enigmail-Sicherheitsinfo kopieren: kopiert die Statusmeldungen von Enigmail in die Zwischenablage, damit man sie z.B. in eine Antwortnachricht etc. einfügen kann.
- Foto-ID anzeigen: ermöglicht Ihnen, die Foto-ID der Person, die die Nachricht gesendet hat, anzusehen, falls diese ein Foto in dem öffentlichen Schlüssel eingebettet hat. (Diese Option is nur verfügbar wenn ein Foto in dem öffentlichen Schlüssel eingebettet ist.)
- Schlüssel unterschreiben: lässt Sie den Schlüssel des Absenders unterschreiben.
- Besitzervertrauen des Absenders festlegen...: lässt Sie das Besitzervertrauen des Absenders festlegen, falls dessen Schlüssel in Ihrem Schlüsselring vorhanden ist.
Falls Sie keyserver-options auto-key-retrieve nicht in der Datei gpg.conf eingestellt haben, und Sie lesen eine Nachricht, die signiert oder verschlüsselt ist, dann erscheint ein Stift-Symbol mit einem Fragezeichen. Die Enigmail-Statuszeile im Kopfzeilenbereich der Nachricht wird melden: Ein Teil der Nachricht ist signiert; klicken Sie auf das Stift-Symbol für Details, und im Nachrichtentext werden alle PGP-Nachrichtenblockanzeiger und Signaturblöcke angezeigt.
Dies kann außerdem angezeigt werden, wenn Sie keyserver-options auto-key-retrieve in der Datei gpg.conf eingestellt haben aber der OpenPGP-Schlüssel nicht auf dem voreingestellten Schlüssel-Server verfügbar ist.
Wenn Sie auf das Schlüssel mit Fragezeichen-Symbol klicken, dann erhalten Sie die Meldung, dass der Schlüssel nicht in Ihrem Schlüsselring verfügbar ist. Wenn Sie OK klicken, dann öffnet sich ein Fenster mit einer Liste von Schlüssel-Servern, aus der Sie einen auswählen können, um den öffentlichen Schlüssel des Absenders herunterzuladen.
Um die Liste der Schlüssel-Server, die Sie verwenden möchten, zu konfigurieren, gehen Sie zu Enigmail -> Einstellungen... -> Allgemein und geben die Adressen der Schlüssel-Server im Feld Schlüssel-Server ein (jeweils getrennt durch ein Komma). Der erste Schlüssel-Server wird als voreingestellter Server verwendet.
- Öffnen von verschlüsselten Dateianhängen / Importieren von angehängten OpenPGP-Schlüsseln
- Dateianhänge mit den Endungen *.pgp, *.asc und *.gpg werden von Enigmail als Anhänge erkannt, die speziell mit Enigmail bearbeitet werden können. Durch einen Rechtsklick auf solch einen Dateianhang werden zwei spezielle Menüeinträge im Kontextmenü angezeigt: Entschlüsseln und Öffnen und Entschlüsseln und Speichern. Verwenden Sie diese Menüeinträge, falls Enigmail einen Dateianhang entschlüsseln soll, bevor Sie ihn öffnen oder speichern. Wenn ein Anhang als PGP-Schlüsseldatei erkannt wird, dann werden Sie gefragt, ob sie diese(n) Schlüssel in ihren Schlüsselring importieren möchten.
Weitere Hilfe ist verfügbar unter Enigmail Hilfeseite
enigmail/lang/de/help/rulesEditor.html 0000664 0000000 0000000 00000007322 12667016244 0020307 0 ustar 00root root 0000000 0000000
Enigmail-Hilfe: Enigmail-Empfägerregeln
Enigmail-Hilfe
Enigmail-Empfängerregeln
Mit dem Regel-Editor kann man Standards in Bezug auf Verschlüsselung, Unterschreiben und PGP/MIME für bestimmte Empfänger und die Benutzung von Schlüsseln einstellen. Jede Regel besteht aus 5 Feldern und ist in einer einzelnen Zeile zu finden:
- E-Mail-Adresse
- Die E-Mail-Adressen der Felder "An:", "CC:" und "BCC:", die übereinstimmen sollen. Die Übereinstimmung arbeitet mit substrings (Weitere Details im Dialog "Enigmail-Empfängerregel bearbeiten").
- OpenPGP-Schlüssel
- Eine Liste der OpenPGP-Schlüssel-IDs, die für den Empfänger verwendet werden sollen.
- Unterschreiben
-
Unterschreiben von Nachrichten ermöglichen / nicht ermöglichen. Dies verwendet die Einstellungen, die im Fenster "Verfassen" angegeben sind oder setzt sich darüber hinweg. Es gibt folgende Optionen:
- Nie: Unterschreiben unmöglich, selbst wenn im Fenster "Verfassen" angegeben (setzt sich über andere Einstellungen hinweg).
- Ja, wenn beim Verfassen ausgewählt: Einstellung aus dem Fenster "Verfassen" wird übernommen.
- Immer: Unterschreiben, selbst wenn nicht im Fenster "Verfassen" angegeben.
Diese Unterschriftseinstellungen werden auf alle Regeln angewendet, die übereinstimmen. Wenn eine der Regeln das Unterschreiben unmöglich macht, dann wird die Nachricht nicht unterschrieben - auch wenn bei anderen Regeln Immer angegeben ist.
- Verschlüsseln
- Verschlüsselung ermöglichen / nicht ermöglichen. Die möglichen Einstellungen und ihre Bedeutungen stimmen mit den oben genannten überein.
- PGP/MIME
- Verwenden von PGP/MIME (RFC 3156) ermöglichen / nicht ermöglichen. Falls PGP/MIME nicht möglich ist, dann werden die Nachrichten per "Inline PGP" verschlüsselt. Die möglichen Einstellungen und ihre Bedeutungen stimmen mit den oben genannten überein.
Die Regeln werden in der Reihenfolge, wie sie in der Liste erscheinen, angewendet. Wann immer eine Regel auf einen Empfänger zutrifft und eine OpenPGP-Schlüssel-ID enthält, dann wird der Empfänger nach Verwendung der angegeben Schlüssel-ID bei den nachfolgenden Regeln nicht mehr beachtet.
Hinweis: Der Regel-Editor ist noch nicht komplett. Es ist möglich, weiter fortgeschrittene Regeln zu schreiben, indem man direkt die Regel-Datei bearbeitet (diese Regeln sollten danach nicht mehr mit dem Regel-Editor bearbeitet werden). Weitere Informationen, wie die Datei bearbeitet werden muss, gibt es auf der Enigmail-Homepage
Weitere Hilfe ist verfügbar auf der Enigmail-Hilfeseite
enigmail/lang/de/help/sendingPrefs.html 0000664 0000000 0000000 00000006427 12667016244 0020442 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit Enigmail Rule
Enigmail-Hilfe
Optionen zum Verschlüsselten Senden
In den Senden Einstellungen kann man prinzipiell das Modell und die prinzipiellen Einstellungen zum Verschlüsseln einstellen.
- Bequeme Verschlüsselung
- Mit diesen Einstellungen wird möglichst immer ohne Rückfragen verschlüsselt.
Diese Einstellungen sind vor allem dann angemessen, wenn man einfach nur seine Privatsphäre erhöhen will, indem man Emails möglichst verschlüsselt statt unverschlüsselt verschickt.
Der Effekt ist wie wenn man Emails statt als Postkarten als Briefe versendet. Im Gegensatz zu Postkarten kann damit unterwegs nicht mehr jeder den Inhalt der Email einfach so mitlesen.
Wie bei Briefen bietet das aber keine absolute Garantie, dass die Emails unterwegs nicht von anderen gelesen werden können (auch wenn dazu ein gewisser technischer Aufwand notwendig ist).
Ein ganz konkretes Risiko besteht darin, aus Versehen "gefälschte Schlüssel" zu verwenden, die man von irgendjemanden oder irgendwo bekommen hat und nur behauptet wurde, dass der Schlüssel zur angegebenen Email-Adresse gehört. Um dieses Risiko zu vermeiden, sollte man nur Schlüssel akzeptieren, denen man vertrauen kann (siehe unten), oder immer selbst einen Schlüssel anhand des Fingerabdrucks mit dem Eigentümer abgleichen (und unterschreiben).
- Manuelle Verschlüsselung
- Mit dieser Option kann man die verschiedenen Einstellungen zur Verschlüsselung nach den eigenen Vorstellungen anpassen. Man kann festlegen
- ob auf verschlüsselte/signierte Emails automatisch verschlüsselt/signiert geantwortet werden soll.
- ob man nur Schlüssel akzeptieren will, denen man auch vertrauen kann (dies aktiviert das OpenPGP Vertrauensmodell, durch das man nur Schlüsseln vertraut, die von einem selbst oder Personen, denen man trauen kann, unterschrieben wurden).
- ob man möglichst immer automatisch verschlüsseln will.
- ob und unter welchen Umständen eine ausgehende Email (und deren Verschlüsselung) final bestätigt werden muss.
Falls es wichtig ist, dass der Inhalt von verschlüsselten Emails nicht von anderen Personen oder Organisationen gelesen werden können, sollte man zumindest bei den manuellen Einstellungen die Option einschalten, mit der nur vertrauenswürdige Schlüssel akzeptiert werden. Während dies das Risiko der Verwendung von "gefälschten Schlüsseln" reduziert, muss man dazu aber in der Schlüsselverwaltung Schlüssel aktiv unterschreiben und/oder aktiv bestätigen, welchen Email-Adressen (Personen/Organisationen) man trauen kann, wenn diese die Gültigkeit von Schlüssel bestätigen.
Weitere Hilfe ist verfügbar auf der Enigmail-Hilfeseite
enigmail/lang/el/ 0000775 0000000 0000000 00000000000 12667016244 0014174 5 ustar 00root root 0000000 0000000 enigmail/lang/el/am-enigprefs.properties 0000664 0000000 0000000 00000000131 12667016244 0020662 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Ασφάλεια OpenPGP
enigmail/lang/el/enigmail.dtd 0000664 0000000 0000000 00000123026 12667016244 0016462 0 ustar 00root root 0000000 0000000
ΣΗΜΕΙΩΣΗ: Η δημιουÏγία του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¼Ï€Î¿Ïεί να διαÏκÎσει αÏκετά λεπτά. Μην τεÏματίσετε την εφαÏμογή κατά τη διάÏκεια της δημιουÏγίας του κλειδιοÏ. Κατά τη διάÏκεια της δημιουÏγίας του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¸Î± ήταν καλό να κάνετε κάποιες εÏγασίες που χÏησιμοποιοÏν τους πόÏους του συστήματος (επεξεÏγαστή, μνήμη, δίσκο) για να αυξηθεί η εντÏοπία και να επισπευσθεί η δημιουÏγία του κλειδιοÏ. Θα ειδοποιηθείτε όταν ολοκληÏωθεί η δημιουÏγία του κλειδιοÏ.">
' δεν είναι ÎγκυÏο">
ΣΗΜΕΙΩΣΗ: Η δημιουÏγία του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¼Ï€Î¿Ïεί να διαÏκÎσει αÏκετά λεπτά. Μην τεÏματίσετε την εφαÏμογή κατά τη διάÏκεια της δημιουÏγίας του κλειδιοÏ. Θα ειδοποιηθείτε όταν ολοκληÏωθεί η δημιουÏγία του κλειδιοÏ.">
Σημείωση: Το Enigmail θα επαληθεÏει πάντα τις υπογÏαφÎÏ‚ των μηνυμάτων όλων των λογαÏιασμών και ταυτοτήτων, ανεξάÏτητα αν είναι ενεÏγοποιημÎνο για αυτÎÏ‚ ή όχι">
ΕυχαÏιστοÏμε που χÏησιμοποιείτε το Enigmail.">
enigmail/lang/el/enigmail.properties 0000664 0000000 0000000 00000126362 12667016244 0020111 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Ειδοποίηση του Enigmail
enigConfirm=Επιβεβαίωση του Enigmail
enigError=Σφάλμα του Enigmail
enigPrompt=ΕÏώτηση του Enigmail
dlgYes=&Îαι
dlgNo=Ό&χι
dlgKeepSetting=Απομνημόνευση της απάντησής μου ώστε να μην εÏωτηθώ ξανά
dlgNoPrompt=Îα μην εμφανιστεί ξανά αυτός ο διάλογος
dlg.button.delete=&ΔιαγÏαφή
dlg.button.cancel=&ΑκÏÏωση
dlg.button.close=&Κλείσιμο
dlg.button.continue=ΣυνÎ&χεια
dlg.button.skip=Πα&Ïάλειψη
dlg.button.view=&Î Ïοβολή
repeatPrefix=\n\nΑυτή η ειδοποίηση θα επαναληφθεί %S
repeatSuffixSingular=φοÏά ακόμα.
repeatSuffixPlural=φοÏÎÏ‚ ακόμα.
noRepeat=\n\nΑυτή η ειδοποίηση δε θα ξαναεμφανιστεί μÎχÏι να αναβαθμίσετε το Enigmail.
pgpNotSupported=Απ' ότι φαίνεται χÏησιμοποιείτε το Enigmail μαζί με το PGP 6.x\n\nΔυστυχώς, το PGP 6.x Îχει οÏισμÎνες ατÎλειες που εμποδίζουν το Enigmail να λειτουÏγήσει σωστά. Για αυτό το λόγο, το Enigmail δεν υποστηÏίζει πια το PGP 6.x ΠαÏακαλώ χÏησιμοποιήστε το GnuPG (GPG).\n\nΑν χÏειάζεστε πεÏισσότεÏη βοήθεια για τη χÏήση του GnuPG, ανατÏÎξτε στο τμήμα Βοήθειας στο δικτυακό τόπο του Enigmail.
passphraseCleared=Η φÏάση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î¼Î·Î´ÎµÎ½Î¯ÏƒÏ„Î·ÎºÎµ.
noPhotoAvailable=Δεν υπάÏχει διαθÎσιμη φωτογÏαφία
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Η διαδÏομή εικόνων '%S' δεν είναι Ï€Ïοσβάσιμη
usingVersion=ΧÏησιμοποιείται το Enigmail Îκδοση %S
usingAgent=ΧÏησιμοποιείται το %S (εκτελÎσιμο: %S) για υπογÏαφή και κÏυπτογÏάφηση
agentError=ΣΦΑΛΜΑ: ΑδÏνατη η Ï€Ïόσβαση στην υπηÏεσία Enigmime!
accessError=Σφάλμα Ï€Ïόσβασης στην υπηÏεσία Enigmail
onlyGPG=Η δημιουÏγία κλειδιών λειτουÏγεί μόνο με το GnuPG (όχι με το PGP)!
keygenComplete=Η δημιουÏγία του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¿Î»Î¿ÎºÎ»Î·Ïώθηκε! Η ταυτότητα <%S> θα χÏησιμοποιηθεί για υπογÏαφή.
revokeCertRecommended=Σας συστήνεται να δημιουÏγήσετε Îνα Ï€Î¹ÏƒÏ„Î¿Ï€Î¿Î¹Î·Ï„Î¹ÎºÎ¿Ï Î±Î½Î¬ÎºÎ»Î·ÏƒÎ·Ï‚ για το κλειδί σας. Αυτό το πιστοποιητικό μποÏεί να χÏησιμοποιηθεί για να ακυÏώσει το κλειδί σας, αν για παÏάδειγμα το ιδιωτικό κλειδί σας χαθεί ή γίνει γνωστό σε κάποιον άλλον. ΘÎλετε να δημιουÏγηθεί Îνα Ï„Îτοιο πιστοποιητικό ανάκλησης τώÏα;
keyMan.button.generateCert=&ΔημιουÏγία πιστοποιητικοÏ
genCompleteNoSign=Η δημιουÏγία του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î¿Î»Î¿ÎºÎ»Î·Ïώθηκε!
genGoing=Η δημιουÏγία του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÎµÎ¯Î½Î±Î¹ ήδη σε εξÎλιξη!
passNoMatch=Οι φÏάσεις ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î´ÎµÎ½ ταιÏιάζουν· παÏακαλώ ξαναδοκιμάσετε
passCheckBox=ΕνεÏγοποιήστε αυτό το πλαίσιο αν δε θÎλετε να οÏίσετε φÏάση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î³Î¹Î± το κλειδί
passUserName=ΠαÏακαλώ καθοÏίστε το όνομα χÏήστη για αυτήν την ταυτότητα
passSpaceProblem=Για τεχνικοÏÏ‚ λόγους, ο κωδικός δεν Ï€ÏÎπει να αÏχίζει ή να τελειώνει με κενό.
changePassFailed=Η αλλαγή της φÏάσης ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î±Ï€Îτυχε.
keyConfirm=Îα δημιουÏγηθεί δημόσιο και ιδιωτικό κλειδί για το '%S';
keyMan.button.generateKey=&ΔημιουÏγία κλειδιοÏ
keyAbort=ΑκÏÏωση της δημιουÏγίας του κλειδιοÏ;
keyMan.button.generateKeyAbort=&Εγκατάλειψη δημιουÏγίας κλειδιοÏ
keyMan.button.generateKeyContinue=&ΣυνÎχεια δημιουÏγίας κλειδιοÏ
expiryTooLong=Δεν μποÏείτε να δημιουÏγήσετε κλειδί που να λήγει σε πεÏισσότεÏο από 100 χÏόνια.
expiryTooLongShorter=Δεν μποÏείτε να δημιουÏγήσετε κλειδί που λήγει σε πεÏισσότεÏα από 90 Îτη.
expiryTooShort=Το κλειδί θα Ï€ÏÎπει να είναι ÎγκυÏο για μία ημÎÏα τουλάχιστον.
dsaSizeLimit=Τα κλειδιά υπογÏαφής DSA Îχουν μÎγιστο μÎγεθος 3072 bits. Το μÎγεθος θα μειωθεί ανάλογα.
keyGenFailed=Η δημιουÏγία του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ï€Îτυχε. ΑνατÏÎξτε στην κονσόλα του Enigmail (ÎœÎµÎ½Î¿Ï Enigmail > Αποσφαλμάτωση του Enigmail) για λεπτομÎÏειες.
# Strings in enigmailMessengerOverlay.js
securityInfo=ΠληÏοφοÏίες ασφαλείας του Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Οι επισυνάψεις Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μηνÏματος δεν υπογÏάφηκαν ή κÏυπτογÏαφήθηκαν*\n\n
possiblyPgpMime=Πιθανό κÏυπτογÏαφημÎνο ή υπογεγÏαμμÎνο μήνυμα με PGP/MIME. Κάντε κλικ στο κουμπί ΑποκÏυπτογÏάφηση για να το επαληθεÏσετε
noDecrypted=Δεν υπάÏχει αποκÏυπτογÏαφημÎνο μήνυμα για αποθήκευση!\nΧÏησιμοποιήστε την εντολή Αποθήκευση από το Î¼ÎµÎ½Î¿Ï Î‘Ïχείο
noMessage=Δεν υπάÏχει μήνυμα για αποθήκευση!
useButton=ΠαÏακαλώ κάντε κλικ στο κουμπί ΑποκÏυπτογÏάφηση για να αποκÏυπτογÏαφήσετε το μήνυμα
saveHeader=Enigmail: Αποθήκευση αποκÏυπτογÏαφημÎνου μηνÏματος
saveAttachmentHeader=Enigmail: Αποθήκευση αποκÏυπτογÏαφημÎνων επισυνάψεων
noTempDir=Δε βÏÎθηκε Ï€ÏοσωÏινός κατάλογος για εγγÏαφή\nΠαÏακαλώ οÏίστε τη μεταβλητή πεÏιβάλλοντος TEMP
attachmentPgpKey=Η επισÏναψη '%S' που ανοίξατε φαίνεται να είναι Îνα αÏχείο ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP.\n\nΚάντε κλικ στο 'Εισαγωγή' για να εισάγετε τα κλειδιά που πεÏιÎχονται σε αυτό, ή στο 'Î Ïοβολή' για να εμφανίσετε τα πεÏιεχόμενά του στον πεÏιηγητή
beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* *********
endPgpPart=********** *END ENCRYPTED or SIGNED PART* **********
notePartEncrypted=Enigmail: *Κάποια τμήματα του μηνÏματος ΔΕΠυπογÏάφηκαν ή κÏυπτογÏαφήθηκαν*
noteCutMessage=Enigmail: *Î’ÏÎθηκε μήνυμα πολλαπλών τμημάτων -- η αποκÏυπτογÏάφηση/επαλήθευση διακόπηκε*
decryptOkNoSig=Î Ïοειδοποίηση\n\nΗ αποκÏυπτογÏάφηση ήταν επιτυχής, αλλά ή επαλήθευση της υπογÏαφής δεν Îγινε σωστά
msgOvl.button.contAnyway=&ΣυνÎχεια όπως και να 'χει
signature.verifiedOK=Η υπογÏαφή της επισÏναψης %S επαληθεÏτηκε επιτυχώς
signature.verifyFailed=Η υπογÏαφή της επισÏναψης %S δεν μπόÏεσε να επαληθευτεί
attachment.noMatchToSignature=Δεν μπόÏεσε να αντιστοιχισθεί η επισÏναψη '%S' σε αÏχείο υπογÏαφής
attachment.noMatchFromSignature=Δεν μπόÏεσε να αντιστοιχισθεί το αÏχείο υπογÏαφής '%S' σε επισÏναψη
keysToExport=ΕπιλÎξτε τα κλειδιά OpenPGP που θα εισαχθοÏν
keysToUse=ΕπιλÎξτε κλειδί(ά) OpenPGP που θα χÏησιμοποιηθοÏν για το %S
pubKey=Δημόσιο κλειδί για το %S\n
windowLocked=Το παÏάθυÏο σÏνταξης είναι κλειδωμÎνο· η αποστολή ακυÏώθηκε
sendUnencrypted=Η αÏχικοποίηση του Enigmail απÎτυχε.\nΑποστολή του μηνÏματος χωÏίς κÏυπτογÏάφηση;
composeSpecifyEmail=ΠαÏακαλώ καθοÏίστε την κÏÏια διεÏθυνση αλληλογÏαφίας σας, η οποία θα χÏησιμοποιηθεί για την επιλογή του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï…Ï€Î¿Î³Ïαφής των εξεÏχόμενων μηνυμάτων.\n Αν το αφήσετε κενό, θα χÏησιμοποιηθεί η διεÏθυνση αποστολÎα για την επιλογή του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï…Ï€Î¿Î³Ïαφής.
sendingHiddenRcpt=Το μήνυμα Îχει κÏυφοÏÏ‚ (BCC) παÏαλήπτες. Αν κÏυπτογÏαφηθεί, είναι δυνατή η απόκÏυψη των κÏυφών παÏαληπτών, αλλά οι χÏήστες κάποιων Ï€ÏογÏαμμάτων (Ï€.χ. PGP Corp.) δε θα μποÏοÏν να αποκÏυπτογÏαφήσουν το μήνυμα. Κατόπιν αυτοÏ, σας συνιστοÏμε να μη χÏησιμοποιείτε κÏυφοÏÏ‚ παÏαλήπτες (BCC) σε κÏυπτογÏαφημÎνα μηνÏματα.
sendWithHiddenBcc=ΑπόκÏυψη παÏαληπτών BCC
sendWithShownBcc=Κανονική κÏυπτογÏάφηση
sendingNews=Η αποστολή κÏυπτογÏαφημÎνου μηνÏματος ακυÏώθηκε.\n\nΤο μήνυμα δεν μποÏεί να κÏυπτογÏαφηθεί γιατί κάποιοι παÏαλήπτες είναι λίστες αλληλογÏαφίας. ΠαÏακαλώ στείλτε το μήνυμα χωÏίς κÏυπτογÏάφηση.
sendToNewsWarning=Î Ïοειδοποίηση: Ï€Ïόκειται να στείλετε Îνα κÏυπτογÏαφημÎνο μήνυμα σε μία ομάδα συζήτησης.\n\nΑυτό Îχει νόημα μόνο αν όλοι οι συμμετÎχοντες στην ομάδα συζήτησης μποÏοÏν να αποκÏυπτογÏαφήσουν το μήνυμα, δηλ. το μήνυμα θα Ï€ÏÎπει να κÏυπτογÏαφηθεί με το κλειδί του κάθε μÎλους της ομάδας. ΚÏυπτογÏαφήστε το μήνυμα μόνο αν ξÎÏετε ακÏιβώς τι κάνετε..\n\nΣυνÎχεια;
hasHTML=Î Ïοειδοποίηση μηνÏματος HTML:\nΑυτό το μήνυμα πεÏιÎχει HTML, που θα μποÏοÏσε να κάνει την υπογÏαφή/κÏυπτογÏάφησή του να αποτÏχει. Για να το αποφÏγετε στο μÎλλον, θα Ï€ÏÎπει να κÏατάτε πατημÎνο το πλήκτÏο SHIFT όταν κάνετε κλικ στο κουμπί ΣÏνταξη/Απάντηση για να αποστείλετε υπογεγÏαμμÎνα μηνÏματα.\nΑν το μήνυμα υπογÏάφεται εξ οÏισμοÏ, θα Ï€ÏÎπει να απενεÏγοποιήσετε την επιλογή 'ΣÏνταξη μηνυμάτων σε μοÏφή HTML' για να μη χÏησιμοποιείται HTML για τα μηνÏματα Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… λογαÏιασμοÏ.
strippingHTML=Το μήνυμα πεÏιÎχει πληÏοφοÏίες μοÏφοποίησης HTML οι οποίες θα χαθοÏν κατά τη μετατÏοπή του σε απλό κείμενο για υπογÏαφή/κÏυπτογÏάφηση. ΘÎλετε να συνεχίσετε;
msgCompose.button.sendAnyway=&Αποστολή του μηνÏματος όπως και να 'χει
attachWarning=Οι επισυνάψεις Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μηνÏματος δεν είναι τοπικÎÏ‚, και για αυτό δεν μποÏοÏν να κÏυπτογÏαφηθοÏν. Για να τις κÏυπτογÏαφήσετε, αποθηκεÏστε τις ως τοπικά αÏχεία και επισυνάψτε αυτά τα αÏχεία. ΘÎλετε να συνεχίσετε;
quotedPrintableWarn=Έχετε ενεÏγοποιήσει την κωδικοποίηση 'quoted-printable' για την αποστολή μηνυμάτων. Αυτό μποÏεί να οδηγήσει σε εσφαλμÎνη αποκÏυπτογÏάφηση και/ή επαλήθευση της υπογÏαφής του μηνÏματός σας.\n ΘÎλετε να απενεÏγοποιήσετε τη χÏήση της κωδικοποίησης 'quoted-printable';
minimalLineWrapping=Έχετε οÏίσει να γίνεται αναδίπλωση κειμÎνου στους %S χαÏακτήÏες. Για σωστή κÏυπτογÏάφηση και/ή υπογÏαφή, αυτή η τιμή θα Ï€ÏÎπει να είναι τουλάχιστον 68.\nΘÎλετε να αλλάξει η αναδίπλωση κειμÎνου στους 68 χαÏακτήÏες τώÏα;
warning=Î Ïοειδοποίηση
signIconClicked=Έχετε Ï„Ïοποποιήσει χειÏωνακτικά τις Ïυθμίσεις υπογÏαφής μηνυμάτων. Για αυτό το λόγο, κατά τη σÏνταξη Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μηνÏματος, η (απ)ενεÏγοποίηση της υπογÏαφής δεν εξαÏτάται πια από την (απ)ενεÏγοποίηση της κÏυπτογÏάφησης.
pgpMime_sMime.dlg.text=Έχετε ενεÏγοποιήσει τα PGP/MIME και S/MIME ταυτόχÏονα. Δυστυχώς δεν είναι δυνατό να υποστηÏιχθοÏν ταυτόχÏονα και τα δÏο. ΠαÏακαλώ επιλÎξτε Îνα από τα δÏο
pgpMime_sMime.dlg.pgpMime.button=ΧÏήςη &PGP/MIME
pgpMime_sMime.dlg.sMime.button=ΧÏήση &S/MIME
errorKeyUnusable=Η διεÏθυνση email ή το κλειδί '%S' δεν μπόÏεσαν να αντιστοιχισθοÏν σε Îνα ÎγκυÏο κλειδί OpenPGP.\nΠαÏακαλώ επιβεβαιώστε ότι Îχετε Îνα ÎγκυÏο κλειδί OpenPGP, και ότι οι Ïυθμίσεις λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÎ±Ï‚ δείχνουν σε αυτό.
# note: should end with double newline:
sendAborted=Η αποστολή ακυÏώθηκε.\n\n
statPGPMIME=PGP/MIME
statSigned=ΥΠΟΓΕΓΡΑΜΜΕÎΟ
statEncrypted=ΚΡΥΠΤΟΓΡΑΦΗΜΕÎΟ
statPlain=ΜΗ ΥΠΟΓΕΓΡΑΜΜΕÎΟ και ΜΗ ΚΡΥΠΤΟΓΡΑΦΗΜΕÎΟ
offlineSave=Αποθήκευση του μηνÏματος %S ως %S στο φάκελο Μη απεσταλμÎνης αλληλογÏαφίας;
onlineSend=Αποστολή του μηνÏματος %S στον %S;
encryptKeysNote=Σημείωση: το μήνυμα κÏυπτογÏαφήθηκε με τα ακόλουθα ID χÏήστη / κλειδιά: %S
signFailed=Σφάλμα του Enigmail. Η κÏυπτογÏάφηση/υπογÏαφή απÎτυχε. Îα αποσταλεί χωÏίς κÏυπτογÏάφηση;
msgCompose.button.sendUnencrypted=&Αποστολή μη κÏυπτογÏαφημÎνου μηνÏματος
recipientsSelectionHdr=ΕπιλÎξτε παÏαλήπτες για κÏυπτογÏάφηση
configureNow=Δεν Îχετε Ïυθμίσει ακόμα το Enigmail για αυτήν την ταυτότητα. ΘÎλετε να το κάνετε τώÏα;
# should not be used anymore:
encryptYes=Το μήνυμα θα κÏυπτογÏαφηθεί
encryptNo=Το μήνυμα δε θα κÏυπτογÏαφηθεί
# should not be used anymore:
signYes=Το μήνυμα θα υπογÏαφεί
signNo=Το μήνυμα δε θα υπογÏαφεί
rulesConflict=Εντοπίστηκαν αλληλοσυγκÏουόμενοι κανόνες παÏαληπτών\n%S\n\nÎα σταλθεί το μήνυμα με αυτÎÏ‚ τις παÏαμÎÏ„Ïους;
msgCompose.button.configure=&ΡÏθμιση
msgCompose.button.send=&Αποστολή μηνÏματος
msgCompose.button.save=Α&ποθήκευση μηνÏματος
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Απαιτείται το δημόσιο κλειδί %S για την επαλήθευση της υπογÏαφής
clickDecrypt=· κάντε κλικ στο κουμπί ΑποκÏ/φηση
clickDecryptRetry=· κάντε κλικ στο κουμπί ΑποκÏ/φηση για να ξαναδοκιμάσετε
msgPart=Τμήμα του μηνÏματος %S
msgSigned=υπογεγÏαμμÎνο
msgEncrypted=κÏυπτογÏαφημÎνο
msgSignedAndEnc=υπογεγÏαμμÎνο και κÏυπτογÏαφημÎνο
unverifiedSig=Μη επαληθεÏσιμη υπογÏαφή
incompleteDecrypt=Η αποκÏυπτογÏάφηση είναι ημιτελής
needKey=Σφάλμα - απαιτείται ιδιωτικό κλειδί για την αποκÏυπτογÏάφηση του μηνÏματος
failedDecrypt=Σφάλμα - η αποκÏυπτογÏάφηση απÎτυχε
badPhrase=Σφάλμα - κακή δÏάση κωδικοÏ
failedDecryptVerify=Σφάλμα - η αποκÏυπτογÏάφηση/επαλήθευση απÎτυχε
viewInfo=· Î Ïοβολή > ΠληÏοφοÏίες ασφαλείας μηνÏματος
decryptedMsg=ΑποκÏυπτογÏαφημÎνο μήνυμα
locateGpg=Εντοπισμός του Ï€ÏογÏάμματος GnuPG
invalidGpgPath=Το GnuPG δεν μποÏεί να εκτελεστεί με τη διαδÏομή που δόθηκε. Για αυτό το λόγο το Enigmail θα είναι απενεÏγοποιημÎνο μÎχÏι να δώσετε τη σωστή διαδÏομή ή να επανεκκινήσετε την εφαÏμογή.
warningsAreReset=Όλες οι Ï€Ïοειδοποιήσεις επανήλθαν στην Ï€ÏοκαθοÏισμÎνη τους κατάσταση.
prefs.gpgFound=Το GnuPG βÏÎθηκε στο %S
prefs.gpgNotFound=Το GnuPG δε βÏÎθηκε
prefs.warnAskNever=Î Ïοειδοποίηση: η ενεÏγοποίηση αυτής της επιλογής θα οδηγήσει σε αποστολή μη κÏυπτογÏαφημÎνων μηνυμάτων χωÏίς να εμφανίζεται καμία απολÏτως πληÏοφοÏία, όταν δεν υπάÏχει το κλειδί κάποιου από τους παÏαλήπτες -- το Enigmail δε θα σας πληÏοφοÏεί όταν συμβαίνει αυτό!
prefs.warnIdleTimeForUnknownAgent=Το σÏστημά σας χÏησιμοποιεί Îνα εξειδικευμÎνο εÏγαλείο για διαχείÏιση κωδικών, όπως το gnome-keyring ή το seahorse-agent. Δυστυχώς το Enigmail δεν μποÏεί να ελÎγξει το χÏονικό ÏŒÏιο λήξης ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î³Î¹Î± αυτό το εÏγαλείο. Συνεπώς, οι αντίστοιχες Ïυθμίσεις χÏονικών οÏίων στο Enigmail αγνοÏνται.
prefEnigmail.oneKeyserverOnly=Σφάλμα - μποÏείτε να οÏίσετε μόνο Îνα εξυπηÏετητή κλειδιών για την αυτόματη λήψη των OpenPGP κλειδιών που λείπουν.
enterAdminPin=ΠαÏακαλώ πληκτÏολογήστε το PIN ΔΙΑΧΕΙΡΙΣΤΗ της SmartCard σας
enterCardPin=ΠαÏακαλώ πληκτÏολογήστε το PIN της SmartCard σας
notInit=Σφάλμα - Η υπηÏεσία Enigmail δεν Îχει αÏχικοποιηθεί ακόμα
badCommand=Σφάλμα - η εντολή κÏυπτογÏάφησης απÎτυχε
cmdLine=γÏαμμή εντολών και Îξοδος:
notRequired=Σφάλμα - δε χÏειάζεται κÏυπτογÏάφηση
notComplete=Σφάλμα - η δημιουÏγία κλειδιών δεν Îχει ολοκληÏωθεί ακόμα
invalidEmail=Σφάλμα - μη ÎγκυÏη διεÏθυνση(εις) αλληλογÏαφίας
noPassphrase=Σφάλμα - δε δόθηκε φÏάση κωδικοÏ
noPGPblock=Σφάλμα - Δε βÏÎθηκε ÎγκυÏο μπλοκ δεδομÎνων armored OpenPGP
unverifiedReply=Η απάντηση δεν επαληθεÏθηκε
sigMismatch=Σφάλμα - Η υπογÏαφή δεν ταιÏιάζει
cantImport=Σφάλμα εισαγωγής δημόσιου κλειδιοÏ\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Η SmartCard %S που βÏÎθηκε στη συσκευή ανάγνωσης δε μποÏεί να χÏησιμοποιηθεί για την επεξεÏγασία του μηνÏματος.\nΠαÏακαλώ εισάγετε την SmartCard %S και ξαναδοκιμάστε.
sc.insertCard=Για τη λειτουÏγία απαιτείται η SmartCard %S.\nΠαÏακαλώ εισάγετε την απαιτοÏμενη SmartCard και ξαναδοκιμάστε.
sc.removeCard=Για τη λειτουÏγία δε χÏειάζεται να υπάÏχει κάποια SmartCard στη συσκευή ανάγνωσης.\nΠαÏακαλώ αφαιÏÎστε τη SmartCard και ξαναδοκιμάστε.
sc.noCardAvailable=Δε βÏÎθηκε SmartCard στη συσκευή ανάγνωσης της\nΠαÏακαλώ εισάγετε την SmartCard σας και ξαναδοκιμάστε.
sc.noReaderAvailable=Η συσκευή ανάγνωσης SmartCard δεν μπόÏεσε να Ï€Ïοσπελασθεί.\nΠαÏακαλώ συνδÎστε τη συσκευή, εισάγετε την κάÏτα σας, και ξαναδοκιμάστε.
gpgNotFound=ΑδÏνατος ο εντοπισμός του Ï€ÏογÏάμματος GnuPG '%S'.\nΣιγουÏευτείτε ότι Îχετε οÏίσει σωστά τη διαδÏομή του εκτελÎσιμου του GnuPG στις Ï€Ïοτιμήσεις του Enigmail.
gpgNotInPath=ΑδÏνατος ο εντοπισμός του εκτελÎσιμου του GnuPG στο PATH.\nΣιγουÏευτείτε ότι Îχετε οÏίσει σωστά τη διαδÏομή του εκτελÎσιμου του GnuPG στις Ï€Ïοτιμήσεις του Enigmail.
gpgAgentNotStarted=ΑδÏνατη η εκκίνηση του Ï€ÏογÏάμματος gpg-agent, το οποίο χÏειάζεται για την Îκδοση %S του GnuPG.
prefUntrusted=ΜΗ ΕΜΠΙΣΤΟ
prefRevoked=ΑÎΑΚΛΗΘΗΚΕ
prefExpiredKey=ΛΗΓΜΕÎΟ ΚΛΕΙΔΙ
prefExpired=ΕΛΗΞΕ
prefGood=ΈγκυÏη υπογÏαφή από %S
prefBad=ΜΗ ÎγκυÏη υπογÏαφή από %S
failCancel=Σφάλμα - Η λήψη του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±ÎºÏ…Ïώθηκε από το χÏήση
failNoServer=Σφάλμα - Δεν καθοÏίστηκε εξυπηÏετητής κλειδιών για χÏήση
failNoID=Σφάλμα - Δεν καθοÏίστηκε ID για τη λήψη του κλειδιοÏ
failKeyExtract=Σφάλμα - η εντολή εξαγωγής του κλειδιών απÎτυχε
notFirstBlock=Σφάλμα - Το Ï€Ïώτο μπλοκ OpenPGP δεν είναι μπλοκ δημόσιου κλειδιοÏ
importKeyConfirm=Îα εισαχθοÏν τα δημόσια κλειδιά που υπάÏχουν στο μήνυμα;
failKeyImport=Σφάλμα - η εισαγωγή κλειδιών απÎτυχε
fileWriteFailed=ΑπÎτυχε η ÎγγÏαφη στο αÏχείο %S
importKey=Εισαγωγή του δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %S από τον εξυπηÏετητή κλειδιών:
uploadKey=Αποστολή του δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %S στον εξυπηÏετητή κλειδιών:
keyId=ID κλειδιοÏ
keyAndSigDate=ID κλειδιοÏ: 0x%S / ΥπογεγÏαμμÎνο την: %S
keyFpr=ΑποτÏπωμα κλειδιοÏ: %S
noEmailProvided=Δε δώσατε διεÏθυνση αλληλογÏαφίας!
keyAlreadySigned=Το κλειδί Îχει ήδη υπογÏαφεί, δεν μποÏείτε να το υπογÏάψετε ξανά.
gnupg.invalidKey.desc=Το κλειδί %S δεν βÏÎθηκε ή είναι άκυÏο. Το (υπο-)κλειδί μποÏεί να Îχει λήξει.
selKeyExpired=Îληξε %S
createdHeader=ΔημιουÏγήθηκε
atLeastOneKey=Δεν επιλÎχθηκε κλειδί! Î ÏÎπει να επιλÎξετε τουλάχιστον Îνα κλειδί για να συνεχίσετε
fewerKeysThanRecipients=Έχετε επιλÎξει λιγότεÏα κλειδιά από τους παÏαλήπτες. Είστε σίγουÏοι ότι η λίστα με τα κλειδιά κÏυπτογÏάφησης είναι πλήÏης;
userSel.button.goBack=Επιλογή πεÏισσότεÏων κλειδιών
userSel.secretKeySel.title=Επιλογή ενός Î¹Î´Î¹Ï‰Ï„Î¹ÎºÎ¿Ï ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP για κÏυπτογÏάφηση των μηνυμάτων σας
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=Σημείωση: Το PGP/MIME υποστηÏίζεται από πεÏιοÏισμÎνο αÏιθμό πελατών ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου! Στα Windows μόνο οι Mozilla/Thunderbird, Sylpheed, Pegasus και Mulberry υποστηÏίζουν αυτό το Ï€Ïότυπο· στο Linux/UNIX και στο Mac OS X το υποστηÏίζουν οι πεÏισσότεÏοι δημοφιλείς πελάτες ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου. Αν δεν είστε σίγουÏοι, ενεÏγοποιήστε την επιλογή %S.
first=Ï€Ïώτο
second=δεÏτεÏο
# Strings used in am-enigprefs.js
encryptKeyHeader=ΕπιλÎξτε κλειδί OpenPGP για την κÏυπτογÏάφηση
identityName=Ταυτότητα: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=ΕνεÏγοποιήσατε την κÏυπτογÏάφηση, αλλά δεν επιλÎξατε κλειδί. Για να αποστÎλλονται κÏυπτογÏαφημÎνα μηνÏματα στον παÏαλήπτη(ες) %S, Ï€ÏÎπει να οÏίσετε Îνα ή πεÏισσότεÏα ÎγκυÏα κλειδιά για χÏήση από τη λίστα των κλειδιών σας. ΘÎλετε να απενεÏγοποιήσετε την κÏυπτογÏάφηση για τον παÏαλήπτη(ες) %S;
noKeyToUse=(κανÎνα - χωÏίς κÏυπτογÏάφηση)
noEmptyRule=Ο κανόνας δεν μποÏεί να είναι κενός! ΠαÏακαλώ οÏίστε μία διεÏθυνση αλληλογÏαφίας στο πεδίο του κανόνα.
invalidAddress=Η διεÏθυνση(εις) αλληλογÏαφίας που δώσατε δεν είναι ÎγκυÏη. Δεν Ï€ÏÎπει να χÏησιμοποιήσετε τα ονόματα των παÏαληπτών, αλλά τις διευθÏνσεις αλληλογÏαφίας τους. Î .χ.:\nΜη ÎγκυÏη: Κάποιο Όνομα \nΈγκυÏη: some.name@address.net
noCurlyBrackets=Οι αγκÏλες {} Îχουν ειδικό νόημα και δε θα Ï€ÏÎπει να χÏησιμοποιοÏνται σε διευθÏνσεις αλληλογÏαφίας. Αν θÎλετε να Ï„Ïοποποιήσετε τη συμπεÏιφοÏά ταιÏιάσματος Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… κανόνα, χÏησιμοποιήστε την επιλογή 'ΕφαÏμογή κανόνα αν ο παÏαλήπτης...'.\nΠεÏισσότεÏες πληÏοφοÏίες είναι διαθÎσιμες από το κουμπί Βοήθεια.
# Strings used in enigmailRulesEditor.js
never=ΠοτÎ
always=Πάντα
possible=Πιθανή
deleteRule=Îα διαγÏαφεί ο επιλεγμÎνος κανόνας;
nextRcpt=(Επόμενος παÏαλήπτης)
negateRule=Δεν
addKeyToRule=Î Ïοσθήκη ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï %S (%S) σε κανόνα παÏαληπτών
# Strings used in enigmailSearchKey.js
needOnline=Η λειτουÏγία που επιλÎξατε δεν είναι διαθÎσιμη όταν είστε χωÏίς σÏνδεση. ΠαÏακαλώ συνδεθείτε και ξαναδοκιμάστε.
protocolNotSupported=Το Ï€Ïωτόκολλο '%S://' που Îχετε επιλÎξει δεν υποστηÏίζεται για τη λήψη κλειδιών OpenPGP.
gpgkeysDisabled=Ίσως βοηθήσει αν ενεÏγοποιήσετε την επιλογή 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=ΑδÏνατη η σÏνδεση στον εξυπηÏετητή κλειδιών %S.
keyDownloadFailed=Η λήψη του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ï€ÏŒ τον εξυπηÏετητή κλειδιών απÎτυχε. Μήνυμα κατάστασης:\n%S
internalError=ΠαÏουσιάστηκε Îνα εσωτεÏικό σφάλμα. Η λήψη ή εισαγωγή των κλειδιών είναι αδÏνατη.
noKeyFound=Δε βÏÎθηκε κανÎνα κλειδί που να ταιÏιάζει στα κÏιτήÏια αναζήτησης.\nΠαÏακαλώ σημειώστε ότι το ID των κλειδιών Ï€ÏÎπει να αÏχίζει με \\"0x\\" (Ï€.χ. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Η αναζήτηση ή λήψη ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ï€ÏŒ τον εξυπηÏετητή κλειδιών απÎτυχε: αδÏνατη η εκτÎλεση της εντολής gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Ο οÏισμός της εμπιστοσÏνης απÎτυχε
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Η υπογÏαφή του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ï€Îτυχε
alreadySigned.label=Σημείωση: το κλειδί %S Îχει ήδη υπογÏαφεί με το επιλεγμÎνο ιδιωτικό κλειδί.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=ΦόÏτωση κλειδιών, παÏακαλώ πεÏιμÎνετε...
keyValid.unknown=άγνωστο
keyValid.invalid=μη ÎγκυÏο
keyValid.disabled=απενεÏγοποιήθηκε
keyValid.revoked=ανακλήθηκε
keyValid.expired=Îληξε
keyValid.noSubkey=χωÏίς ÎγκυÏο υποκλειδί
keyTrust.untrusted=μη Îμπιστο
keyTrust.marginal=οÏιακά
keyTrust.full=Îμπιστο
keyTrust.ultimate=απόλυτα
keyTrust.group=(ομάδα)
keyType.public=δημ
keyType.publicAndSec=δημ/ιδ
keyMan.enableKey=ΕνεÏγοποίηση κλειδιοÏ
keyMan.disableKey=ΑπενεÏγοποίηση κλειδιοÏ
userAtt.photo=Εικόνα χÏήστη (αÏχείο JPEG)
asciiArmorFile=ΑÏχεία ASCII Armored (*.asc)
importKeyFile=Εισαγωγή ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP
gnupgFile=ΑÏχεία GnuPG
saveRevokeCertAs=ΔημιουÏγία & αποθήκευση Ï€Î¹ÏƒÏ„Î¿Ï€Î¿Î¹Î·Ï„Î¹ÎºÎ¿Ï Î±Î½Î¬ÎºÎ»Î·ÏƒÎ·Ï‚
revokeCertOK=Το πιστοποιητικό ανάκλησης δημιουÏγήθηκε με επιτυχία. Αυτό το πιστοποιητικό μποÏεί να χÏησιμοποιηθεί για να ακυÏώσει το κλειδί σας, αν για παÏάδειγμα το ιδιωτικό κλειδί σας χαθεί ή γίνει γνωστό σε κάποιον άλλον. \n\nΜεταφÎÏετΠτο σε Îνα αποθηκευτικό μÎσο Ï€.χ. CD ή δισκÎτα, και φυλάξτε το σε ασφαλÎÏ‚ μÎÏος. Αν κάποιος αποκτήσει Ï€Ïόσβαση σε αυτό το πιστοποιητικό μποÏεί να αχÏηστεÏσει το κλειδί σας.
revokeCertFailed=Δεν είναι δυνατή η δημιουÏγία του Ï€Î¹ÏƒÏ„Î¿Ï€Î¿Î¹Î·Ï„Î¹ÎºÎ¿Ï Î±Î½Î¬ÎºÎ»Î·ÏƒÎ·Ï‚.
addUidOK=Το ID χÏήστη Ï€ÏοστÎθηκε με επιτυχία
addUidFailed=Η Ï€Ïοσθήκη του ID χÏήστη απÎτυχε
noKeySelected=Î ÏÎπει να επιλÎξετε Îνα τουλάχιστον κλειδί για να εκτελεστεί η επιλεγμÎνη λειτουÏγία
exportToFile=Εξαγωγή δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÎµ αÏχείο
exportSecretKey=ΘÎλετε να πεÏιληφθεί το ιδιωτικό κλειδί στο αποθηκευμÎνο αÏχείο ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP;
saveKeysOK=Τα κλειδιά αποθηκεÏτηκαν με επιτυχία
saveKeysFailed=Η αποθήκευση των κλειδιών απÎτυχε
importKeysFailed=Η εισαγωγή των κλειδιών απÎτυχε
enableKeyFailed=Η ενεÏγοποίηση/απενεÏγοποίηση των κλειδιών απÎτυχε
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=ΕξαγωγηθÎντα-δημόσια-κλειδιά
defaultPubSecKeyFilename=ΕξαγωγηθÎντα-δημόσια-και-ιδιωτικά-κλειδιά
noSecretKeys=Δε βÏÎθηκαν ιδιωτικά κλειδιά.\n\nΘÎλετε να δημιουÏγήσετε Îνα τώÏα;
sendKeysOk=Το κλειδί(ά) απεστάλη με επιτυχία
sendKeysFailed=Η αποστολή των κλειδιών απÎτυχε
receiveKeysOk=Τα κλειδιά ανανεώθηκαν με επιτυχία
receiveKeysFailed=Η λήψη των κλειδιών απÎτυχε
importFromClip=ΘÎλετε να εισάγετε κάποια κλειδιά από το Ï€ÏόχειÏο;
copyToClipbrdFailed=ΑδÏνατη η αντιγÏαφή των επιλεγμÎνων κλειδιών στο Ï€ÏόχειÏο.
copyToClipbrdOK=Τα κλειδιά αντιγÏάφηκαν στο Ï€ÏόχειÏο
deleteSecretKey=ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Î Ïόκειται να διαγÏάψετε Îνα ιδιωτικό κλειδί!\nΑν διαγÏάψετε το ιδιωτικό κλειδί σας, δε θα μποÏείτε πια να αποκÏυπτογÏαφήσετε κανÎνα μήνυμα που κÏυπτογÏαφήθηκε για αυτό το κλειδί.\n\nΘÎλετε Ï€Ïαγματικά να διαγÏάψετε αυτά τα ΔΥΟ κλειδιά (το ιδιωτικό και το δημόσιο)\n'%S';
deleteMix=WARNING: Î Ïόκειται να διαγÏάψετε ιδιωτικά κλειδιά!\nΑν διαγÏάψετε το ιδιωτικό κλειδί σας, δε θα μποÏείτε πια να αποκÏυπτογÏαφήσετε κανÎνα μήνυμα που κÏυπτογÏαφήθηκε για αυτό το κλειδί.\n\nΘÎλετε Ï€Ïαγματικά να διαγÏάψετε αυτά τα ΖΕΥΓΗ κλειδιών (τα ιδιωτικά και τα δημόσια);
deletePubKey=ΘÎλετε να διαγÏάψετε το δημόσιο κλειδί\n'%S';
deleteSelectedPubKey=ΘÎλετε να διαγÏάψετε τα δημόσια κλειδιά;
deleteKeyFailed=Το κλειδί δεν μπόÏεσε να διαγÏαφεί.
revokeKeyOk=Το κλειδί ανακλήθηκε. Αν το κλειδί σας υπάÏχει σε κάποιο εξυπηÏετητή κλειδιών, θα Ï€ÏÎπει να το αποστείλετε και πάλι, ώστε να γίνει γνωστή η ανάκληση.
revokeKeyFailed=Το κλειδί δεν μπόÏεσε να ανακληθεί.
refreshAllQuestion=Δεν επιλÎξατε κανÎνα κλειδί. ΘÎλετε να ανανεωθοÏν ΟΛΑ τα κλειδιά;
refreshKey.warn=Î Ïοειδοποίηση: ανάλογα με τον αÏιθμό των κλειδιών και την ταχÏτητα σÏνδεσης, η ανανÎωση όλων των κλειδιών μποÏεί να είμαι μια Ï€Î¿Î»Ï Ï‡ÏονοβόÏα διαδικασία!\n\nΣυνÎχεια;
downloadContactsKeys.warn=Î Ïοειδοποίηση: ανάλογα με τον αÏιθμώ των επαφών και την ταχÏτητα του δικτÏου, η λήψη όλων των κλειδιών μποÏεί να είναι χÏονοβόÏα!
keyMan.button.exportSecKey=Ε&ξαγωγή ιδιωτικών κλειδιών
keyMan.button.exportPubKey=Εξαγωγή μονάχα &Public κλειδιοÏ
keyMan.button.import=Ε&ισαγωγή
keyMan.button.refreshAll=&ΑνανÎωση όλων των κλειδιών
keyMan.button.revokeKey=Ανάκ&ληση κλειδιοÏ
keylist.noOtherUids=Δεν υπάÏχουν άλλες ταυτότητες
keylist.hasOtherUids=Γνωστός και ως
keylist.noPhotos=Δεν υπάÏχει διαθÎσιμη φωτογÏαφία
keylist.hasPhotos=ΦωτογÏαφίες
keyMan.addphoto.filepicker.title=ΕπιλÎξτε αÏχείο εικόνας
keyMan.addphoto.warnLargeFile=Το αÏχείο που επιλÎξατε είναι μεγαλÏτεÏο από 25 kB.\nΔεν Ï€Ïοτείνετε να επιλÎγετε Ï€Î¿Î»Ï Î¼ÎµÎ³Î¬Î»Î± αÏχεία καθώς το μÎγεθος των κλειδιών θα αυξηθεί δÏαματικά.
keyMan.addphoto.noJpegFile=Το επιλεγμÎνο αÏχείο δεν είναι σε μοÏφή JPEG. ΠαÏακαλώ επιλÎξτε Îνα άλλο αÏχείο.
keyMan.addphoto.failed=Δεν ήταν δυνατό να Ï€Ïοστεθεί η εικόνα.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Η αλλαγή του κÏÏιου ID χÏήστη απÎτυχε
changePrimUidOK=Το κÏÏιο ID χÏήστη άλλαξε με επιτυχία
deleteUidFailed=Η διαγÏαφή του ID χÏήστη %S απÎτυχε
deleteUidOK=Το ID χÏήστη %S διαγÏάφηκε με επιτυχία
revokeUidFailed=Η ανάκληση του ID χÏήστη %S απÎτυχε
revokeUidOK=Το ID χÏήστη %S ανακλήθηκε με επιτυχία. Αν το κλειδί σας υπάÏχει σε κάποιο εξυπηÏετητή κλειδιών, θα Ï€ÏÎπει να το αποστείλετε και πάλι, ώστε να γίνει γνωστή η ανάκληση.
revokeUidQuestion=ΘÎλετε Ï€Ïαγματικά να ανακαλÎσετε το ID χÏήστη %S;
deleteUidQuestion=ΘÎλετε Ï€Ïαγματικά να διαγÏάψετε το ID χÏήστη %S;\n\nΠαÏακαλώ σημειώστε: αν Îχετε αποστείλει το δημόσιο κλειδί σας σε Îναν εξυπηÏετητή κλειδιών, διαγÏάφοντας το ID χÏήστη δε θα αλλάξει τίποτα. Σε αυτήν την πεÏίπτωση θα Ï€ÏÎπει να χÏησιμοποιήσετε το 'Ανάκληση ID χÏήστη'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=δημόσιο κλειδί
keyTypePrimary=Ï€ÏωτεÏον κλειδί
keyTypeSubkey=υποκλειδί
keyTypePair=ζεÏγος κλειδιών
keyExpiryNever=ποτÎ
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=ΚÏυπτογÏάφηση
keyUsageSign=ΥπογÏαφή
keyUsageCertify=Πιστοποίηση
keyUsageAuthentication=Ταυτοποίηση
# Strings in enigmailGenCardKey.xul
keygen.started=ΠαÏακαλώ πεÏιμÎνετε να ολοκληÏωθεί ή δημιουÏγία του κλειδιοÏ....
keygen.completed=Το κλειδί δημιουÏγήθηκε. Το νÎο ID ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÎµÎ¯Î½Î±Î¹: 0x%S
keygen.keyBackup=Το αντίγÏαφο ασφαλείας του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Î±Ï€Î¿Î¸Î·ÎºÎµÏτηκε ως %S
keygen.passRequired=ΠαÏακαλώ δώστε μια φÏάση ÎºÏ‰Î´Î¹ÎºÎ¿Ï Î±Î½ θÎλετε να αποθηκευτεί Îνα αντίγÏαφο ασφαλείας του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÎ±Ï‚ εκτός της SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Τα PIN που δώσατε δεν ταιÏιάζουν. ΠαÏακαλώ ξαναδοκιμάστε
cardPin.minLength=Το PIN Ï€ÏÎπει να Îχει τουλάχιστον %S χαÏακτήÏες ή αÏιθμοÏÏ‚
cardPin.processFailed=Η αλλαγή του PIN απÎτυχε
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=ΑνανÎωση κλειδιών, παÏακαλώ πεÏιμÎνετε...
keyserverProgress.uploading=Αποστολή κλειδιών, παÏακαλώ πεÏιμÎνετε...
keyserverTitle.refreshing=ΑνανÎωση κλειδιών
keyserverTitle.uploading=Αποστολή κλειδιοÏ
# Strings in enigmailSetupWizard
passphrase.min8keys=Η φÏάση ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÏƒÎ±Ï‚ θα Ï€ÏÎπει να αποτελείται από τουλάχιστον 8 χαÏακτήÏες!
setupWizard.reallyCancel=ΘÎλετε Ï€Ïαγματικά να τεÏματίσετε το Μάγο του Enigmail;
setupWizard.invalidGpg=Το αÏχείο που επιλÎξατε δεν είναι εκτελÎσιμο του GnuPG. ΠαÏακαλώ επιλÎξτε διαφοÏετικό αÏχείο.
setupWizard.specifyFile=Î ÏÎπει να οÏίσετε τουλάχιστον Îνα δημόσιο κλειδί για να συνεχίσετε.
setupWizard.installFailed=Η εγκατάσταση δεν ήταν επιτυχής. ΠαÏακαλώ ξαναπÏοσπαθήστε ή εγκαταστήστε το GnuPG χειÏοκίνητα και εντοπίστε το από το Browse button.
setupWizard.downloadForbidden=Για δική σας ασφάλεια, δεν θα γίνει λήψη του GnuPG. ΠαÏακαλώ επισκευθείτε το http://www.gnupg.org/ για να λάβετε το GnuPG.
setupWizard.downloadImpossible=Δεν ήταν δυνατή η λήψη του GnuPG. ΠαÏακαλώ Ï€Ïοσπαθήστε αÏγότεÏα ή επισκευθείτε το http://www.gnupg.org/ για να λάβετε το GnuPG.
setupWizard.hashSumError=Δεν ήταν δυνατή η επαλήθευση της ακεÏαιότητας του αÏχείου. Το αÏχείο μποÏεί να είναι εσφαλμÎνο ή επεξεÏγασμÎνο. ΘÎλετε να συνεχίσετε την εγκατάσταση παÏ'ολ'αυτά;
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Î ÏοÎκυψε Ï€Ïόβλημα στην λήψη του GnuPG. ΠαÏακαλώ ελÎγξτε τη καταγÏαφή κονσόλας για πεÏισσότεÏες πληÏοφοÏίες.
installGnuPG.installFailed=Î ÏοÎκυψε Ï€Ïόβλημα στην εγκατάσταση του GnuPG. ΠαÏακαλώ ελÎγξτε τη καταγÏαφή κονσόλας για πεÏισσότεÏες πληÏοφοÏίες.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Î ÏÎπει να συμπληÏώσετε το όνομα και τη διεÏθυνση email
addUidDlg.nameMinLengthError=Το όνομα Ï€ÏÎπει να Îχει τουλάχιστον 5 χαÏακτήÏες
addUidDlg.invalidEmailError=Î ÏÎπει να εισάγετε μια ÎγκυÏη διεÏθυνση email
addUidDlg.commentError=Η χÏήση αγκυλών δεν επιτÏÎπεται στα σχόλια
# network error types
errorType.SecurityCertificate=Το πιστοποιητικό ασφαλείας της υπηÏεσίας web είναι άκυÏο.
errorType.SecurityProtocol=Το Ï€Ïωτόκολλο ασφάλειας που χÏησιμοποιείται από την υπηÏεσία web είναι άγνωστο.
errorType.Network=Î ÏοÎκυψε Ï€Ïόβλημα δικτÏου.
enigmail/lang/el/help/ 0000775 0000000 0000000 00000000000 12667016244 0015124 5 ustar 00root root 0000000 0000000 enigmail/lang/el/help/compose.html 0000664 0000000 0000000 00000015454 12667016244 0017470 0 ustar 00root root 0000000 0000000
Βοήθεια του Enigmail: ΣÏνταξη μηνυμάτων
Βοήθεια του Enigmail
ΧÏήση του Enigmail στη σÏνταξη μηνυμάτων
- ÎœÎµÎ½Î¿Ï Ï„Î¿Ï… Enigmail στο παÏάθυÏο ΣÏνταξης μηνÏματος
- ΥπογÏαφή μηνÏματος: ΕνεÏγοποίηση/ΑπενεÏγοποίηση της αποστολής υπογεγÏαμμÎνων μηνυμάτων. Ο χÏήστης θα ειδοποιηθεί αν η υπογÏαφή αποτÏχει.
- ΚÏυπτογÏάφηση μηνÏματος: ΕνεÏγοποίηση/ΑπενεÏγοποίηση της κÏυπτογÏάφησης για όλους τους παÏαλήπτες Ï€Ïιν την αποστολή. Ο χÏήστης θα ειδοποιηθεί αν η κÏυπτογÏάφηση αποτÏχει.
Αν Îχει ενεÏγοποιηθεί η επιλογή Εμφάνιση επιλογών όταν είναι απαÏαίτητο στην καÏÏ„Îλα Î Ïοτιμήσεις
-> Επιλογή κλειδιοÏ, και υπάÏχουν διευθÏνσεις στη λίστα παÏαληπτών για τις οποίες δεν υπάÏχει δημόσιο κλειδί, θα εμφανιστεί η λίστα κλειδιών για να επιλÎξετε αυτό που θα χÏησιμοποιηθεί.
Αν Îχει ενεÏγοποιηθεί η επιλογή Îα μην εμφανίζεται ποτΠο διάλογος επιλογής κλειδί OpenPGP στην καÏÏ„Îλα Î Ïοτιμήσεις
-> Επιλογή κλειδιοÏ, και υπάÏχουν διευθÏνσεις στη λίστα παÏαληπτών για τις οποίες δεν υπάÏχει δημόσιο κλειδί, το μήνυμα θα αποσταλεί χωÏίς κÏυπτογÏάφηση.
- ΧÏήση PGP/MIME για αυτό το μήνυμα: ΕνεÏγοποίηση/ΑπενεÏγοποίηση της χÏήσης PGP/MIME
για αυτό το μήνυμα.
Αν γνωÏίζετε ότι οι παÏαλήπτες του μηνÏματός σας μποÏοÏν να διαβάσουν μηνÏματα που χÏησιμοποιοÏν PGP/MIME,
καλό είναι να το ενεÏγοποιήσετε.
Αυτό το χαÏακτηÏιστικό εξαÏτάται από το αν Îχετε ενεÏγοποιήσει μία από τις επιλογÎÏ‚ ΕπιτÏÎπεται η χÏήση PGP/MIME ή Îα χÏησιμοποιείται πάντα PGP/MIME, στην καÏÏ„Îλα Î Ïοτιμήσεις -> PGP/MIME.
- Î ÏοκαθοÏισμÎνες επιλογÎÏ‚ σÏνταξης: ΥπομενοÏ.
- ΕπιλογÎÏ‚ υπογÏαφής/κÏυπτογÏάφησης...: συντόμευση Ï€Ïος το Ρυθμίσεις λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ->
ΕπιλογÎÏ‚ OpenPGP.
- ΕπιλογÎÏ‚ αποστολής...: συντόμευση Ï€Ïος την καÏÏ„Îλα Î Ïοτιμήσεις ->
ΒασικÎÏ‚ Ïυθμίσεις.
- Ρυθμίσεις επιλογής κλειδιοÏ...: συντόμευση Ï€Ïος την καÏÏ„Îλα Î Ïοτιμήσεις ->
Επιλογή κλειδιοÏ.
- ΕπιλογÎÏ‚ PGP/MIME...: συντόμευση Ï€Ïος την καÏÏ„Îλα Î Ïοτιμήσεις ->
PGP/MIME.
- ΑφαίÏεση κÏυπτογÏάφησης: Αν παÏουσιαστεί κάποιο σφάλμα κατά την αποστολή του μηνÏματος, Ï€.χ. ο διακομιστής POP δεν αποδεχτεί την αίτηση, το Enigmail δεν Îχει Ï„Ïόπο να το ανιχνεÏσει, και το κÏυπτογÏαφημÎνο μήνυμα θα εξακολουθήσει να εμφανίζεται στο παÏάθυÏο ΣÏνταξης. Σε αυτήν την πεÏίπτωση μποÏείτε να ανακτήσετε το αÏχικό σας κείμενο (χωÏίς την υπογÏαφή/κÏυπτογÏάφηση) με τη χÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μενοÏ.
Ως λÏση ανάγκης, αυτή η επιλογή μποÏεί να χÏησιμοποιηθεί για την αποκÏυπτογÏάφηση του κειμÎνου σε παÏάθεση, όταν απαντάτε σε κÏυπτογÏαφημÎνα μηνÏματα. Το Enigmail θα Ï€ÏÎπει να αποκÏυπτογÏαφήσει αυτόματα το αÏχικό μήνυμα, αλλά αν για κάποιο λόγο αυτό δε συμβεί, μποÏείτε να το κάνετε εσείς με τη χÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… μενοÏ.
- ΕπισÏναψη δημόσιου κλειδιοÏ: εισάγει το μπλοκ του δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÎµ μοÏφή ASCII-armored στην Ï„ÏÎχουσα θÎση του δÏομÎα στο παÏάθυÏο ΣÏνταξης. Θα σας ζητηθοÏν οι διευθÏνσεις αλληλογÏαφίας του κλειδιοÏ/ών που θα εισαχθεί. Κλειδιά που εισήχθησαν με αυτόν τον Ï„Ïόπο θα αναγνωÏιστοÏν αυτόματα από το Enigmail του παÏαλήπτη. Μετά την εισαγωγή, μποÏείτε να υπογÏάψετε/κÏυπτογÏαφήσετε το μήνυμα ανάλογα με τις ανάγκες σας. Επίσης, δε θα Ï€ÏÎπει να εισάγετε πολλαπλά μπλοκ κλειδιών σε Îνα μήνυμα· απλώς καθοÏίστε πολλαπλÎÏ‚ διευθÏνσεις αλληλογÏαφίας, χωÏισμÎνες με κόμμα, όταν σας ζητηθεί.
- ΕκκαθάÏιση αποθηκευμÎνης φÏάσης Ï€Ïόσβασης: ΧÏήσιμο αν Îχετε πολλαπλÎÏ‚ φÏάσης Ï€Ïόσβασης.
- Βοήθεια: Εμφανίζει τη Βοήθεια από το δικτυακό τόπο (αυτή η σελίδα).
ΠεÏισσότεÏη βοήθεια είναι διαθÎσιμη στο δικτυακό τόπο του
Enigmail
enigmail/lang/el/help/editRcptRule.html 0000664 0000000 0000000 00000021074 12667016244 0020424 0 ustar 00root root 0000000 0000000
Βοήθεια του Enigmail: ΕπεξεÏγασία κανόνων OpenPGP
Βοήθεια του Enigmail
ΧÏήση του ΕπεξεÏγαστή κανόνων του Enigmail: ΕπεξεÏγασία κανόνων OpenPGP
Στον ΕπεξεÏγαστή κανόνων, μποÏείτε να καθοÏίσετε τις Ï€ÏοκαθοÏισμÎνες επιλογÎÏ‚ για κάθε παÏαλήπτη για την ενεÏγοποίηση της κÏυπτογÏάφησης, υπογÏαφής και χÏήση PGP/MIME, και να επιλÎξετε τα κλειδιά OpenPGP που θα χÏησιμοποιηθοÏν. Σε αυτόν το διάλογο μποÏείτε να καθοÏίσετε τους κανόνες για Îνα συγκεκÏιμÎνο παÏαλήπτη, ή για μια ομάδα παÏαληπτών με παÏόμοιες ιδιότητες.
- ΟÏισμός κανόνων OpenPGP για: ΠεÏιÎχει τις διευθÏνσεις αλληλογÏαφίας των παÏαληπτών (χωÏίς ονόματα, δηλ. απλώς τη διεÏθυνση, όπως η somebody@email.domain). ΜποÏείτε να εισάγετε παÏαπάνω από μία διεÏθυνση, χωÏίζοντάς τες με κενά. Οι διευθÏνσεις μποÏοÏν να πεÏιÎχουν μόνο τον τομÎα ώστε ο κανόνας να εφαÏμόζεται σε όλες τις διευθÏνσεις από αυτόν τον τομÎα. ΠαÏάδειγμα: εισάγοντας το @email.domain, ο κανόνας να εφαÏμοστεί στα body@email.domain,
somebody@email.domain, anybody@email.domain, κλπ.
- ΕφαÏμογή κανόνα αν ο παÏαλήπτης ...:
Αυτό καθοÏίζει τον Ï„Ïόπο ταιÏιάσματος της διεÏθυνσης αλληλογÏαφίας.
Αν Îχουν εισαχθεί πολλαπλÎÏ‚ διευθÏνσεις, η ÏÏθμιση θα εφαÏμοστεί σε όλες.
Τα παÏακάτω παÏάδειγμα βασίζονται στο ότι το body@email.domain
Îχει εισαχθεί στο παÏαπάνω πεδίο ΟÏισμός κανόνων OpenPGP για.
- είναι ακÏιβώς: με αυτήν την επιλογή, ο κανόνας θα εφαÏμοστεί μόνο σε μηνÏματα Ï€Ïος το body@email.domain (ακÏιβÎÏ‚ ταίÏιασμα, χωÏίς διάκÏιση πεζών/κεφαλαίων).
- πεÏιÎχει: με αυτήν την επιλογή, ο κανόνας θα εφαÏμοστεί σε οποιαδήποτε διεÏθυνση πεÏιÎχει τη συμβολοσειÏά,
δηλ. anybody@email.domain ή body@email.domain.net
- αÏχίζει με: με αυτήν την επιλογή, ο κανόνας θα εφαÏμοστεί σε οποιαδήποτε διεÏθυνση αÏχίζει με τη συμβολοσειÏά, δηλ. body@email.domain.net, body@email.domain-name.com κλπ.
- τελειώνει με : με αυτήν την επιλογή, ο κανόνας θα εφαÏμοστεί σε οποιαδήποτε διεÏθυνση τελειώνει με τη συμβολοσειÏά, δηλ. anybody@email.domain, somebody@email.domain κλπ.
- ΣυνÎχιση με τον επόμενο κανόνα για τη διεÏθυνση
ΕνεÏγοποιώντας αυτήν την επιλογή μποÏείτε να οÏίσετε Îναν κανόνα χωÏίς να χÏειαστεί να εισάγετε
Îνα ID ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î¿ πεδίο ΧÏήση των ακόλουθων κλειδιών OpenPGP:, ώστε η διεÏθυνση να χÏησιμοποιηθεί για τον Îλεγχο του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï„Î·Î½ ÏŽÏα της αποστολής. Επίσης, θα εφαÏμοστοÏν οι επόμενοι κανόνες για τη διεÏθυνση.
- Îα μη γίνει Îλεγχος άλλων κανόνων για τη διεÏθυνση
ΕνεÏγοποιώντας αυτήν την επιλογή μποÏείτε να σταματήσετε τον Îλεγχο της συγκεκÏιμÎνης διεÏθυνσης, δηλ. ο Îλεγχος κανόνων συνεχίζεται για την επόμενη διεÏθυνσή
- ΧÏήση των ακόλουθων κλειδιών OpenPGP:
ΧÏησιμοποιήστε το κουμπί Επιλογή κλειδιοÏ(ών)... για να επιλÎξετε τα κλειδιά του παÏαλήπτη που θα χÏησιμοποιηθοÏν για την κÏυπτογÏάφηση. Όπως και στην παÏαπάνω ενÎÏγεια, δε θα ελεγχθοÏν οι επόμενοι κανόνες για τη διεÏθυνση.
- Εξ οÏÎ¹ÏƒÎ¼Î¿Ï Î³Î¹Î± υπογÏαφή: ενεÏγοποίηση ή απενεÏγοποίηση της υπογÏαφής του μηνÏματος. Αυτό είτε χÏησιμοποιεί ή παÏακάμπτει την επιλογή που κάνατε στο παÏάθυÏο ΣÏνταξης του μηνÏματος. ΔιαθÎσιμες τιμÎÏ‚ είναι οι:
- ΠοτÎ: απενεÏγοποιεί την υπογÏαφή, ακόμα και αν Îχει ενεÏγοποιηθεί στο παÏάθυÏο ΣÏνταξης του μηνÏματος
- Îαι, αν επιλεγεί στη σÏνταξη μηνÏματος: θα χÏησιμοποιηθεί η επιλογή που Îγινε στο παÏάθυÏο ΣÏνταξης του μηνÏματος
- Πάντα: ενεÏγοποιεί την υπογÏαφή, ακόμα και αν δεν Îχει ενεÏγοποιηθεί στο παÏάθυÏο ΣÏνταξης του μηνÏματος
ΑυτÎÏ‚ οι επιλογÎÏ‚ εφαÏμόζονται σε όσους κανόνες ταιÏιάζουν. Αν κάποιος κανόνας απενεÏγοποιεί την υπογÏαφή, το μήνυμα δε θα υπογÏαφεί, ανεξάÏτητα από άλλους κανόνες που χÏησιμοποιοÏν το Πάντα.
- ΚÏυπτογÏάφηση: ενεÏγοποιεί ή απενεÏγοποιεί την κÏυπτογÏάφηση του μηνÏματος. Οι επιτÏεπόμενες τιμÎÏ‚ και το νόημά τους είναι ίδιες με αυτÎÏ‚ της υπογÏαφής.
- PGP/MIME: ενεÏγοποιεί ή απενεÏγοποιεί τη χÏήση της κωδικοποίησης PGP/MIME (RFC 3156) για το μήνυμα.
Αν απενεÏγοποιηθεί, τα μηνÏματα θα κωδικοποιοÏνται με "εμβόλιμο PGP". Οι επιτÏεπόμενες τιμÎÏ‚ και το νόημά τους είναι ίδιες με αυτÎÏ‚ της υπογÏαφής.
Οι κανόνες εφαÏμόζονται με τη σειÏά που βÏίσκονται στη λίστα του ΕπεξεÏγαστή κανόνων OpenPGP. Κάθε φοÏά που Îνας κανόνας ταιÏιάζει με Îναν παÏαλήπτη και πεÏιÎχει Îνα ID ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP, εκτός του ότι θα χÏησιμοποιηθεί το καθοÏισμÎνο ID κλειδιοÏ, ο παÏαλήπτης δε θα θεωÏείται διαθÎσιμος για τους υπόλοιπους κανόνες.
ΠεÏισσότεÏη βοήθεια είναι διαθÎσιμη στο δικτυακό τόπο του
Enigmail
enigmail/lang/el/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0017777 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/el/help/messenger.html 0000664 0000000 0000000 00000017324 12667016244 0020011 0 ustar 00root root 0000000 0000000
Βοήθεια του Enigmail
Βοήθεια του Enigmail
Ανάγνωση μηνυμάτων με το Enigmail
- Το κουμπί ΑποκÏυπτογÏάφησης στο κÏÏιο παÏάθυÏο
Αυτό το κουμπί εξυπηÏετεί πολλοÏÏ‚ σκοποÏÏ‚: αποκÏυπτογÏάφηση, επαλήθευση ή εισαγωγή δημόσιων κλειδιών. Κανονικά η αποκÏυπτογÏάφηση/επαλήθευση γίνεται αυτόματα, παÏότι αυτό μποÏεί να αλλαχτεί. Αν όμως παÏουσιαστεί Ï€Ïόβλημα, θα εμφανιστεί Îνα πεÏιληπτικό μήνυμα στη γÏαμμή κατάστασης του Enigmail. Αν κάνετε κλικ στο κουμπί ΑποκÏυπτογÏάφησης, θα μποÏÎσετε να δείτε Îνα πιο λεπτομεÏÎÏ‚ μήνυμα καθώς και την Îξοδο της εντολής GnuPG.
- Τα εικονίδια Î Îνας και ÎšÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î·Î½ Κεφαλίδα του μηνÏματος
Τα εικονίδια Î Îνας και ÎšÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î·Î½ Κεφαλίδα του μηνÏματος δηλώνουν αν το μήνυμα που διαβάζετε είναι υπογεγÏαμμÎνο και/ή κÏυπτογÏαφημÎνο και αν η υπογÏαφή είναι ÎγκυÏη, το μήνυμα δεν αλλάχτηκε μετά την υπογÏαφή του. Αν το μήνυμα Îχει αλλαχτεί, το εικονίδιο Î Îνας θα αντικατασταθεί από το εικονιδίου ΣπασμÎνου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï„Î¿ οποίο δηλώνει ότι η υπογÏαφή δεν είναι ÎγκυÏη. Κάνοντας δεξί κλικ σε Îνα από τα δÏο εικονίδια θα εμφανιστεί Îνα Î¼ÎµÎ½Î¿Ï Î¼Îµ τις ακόλουθες επιλογÎÏ‚:
- ΠληÏοφοÏίες ασφαλείας OpenPGP: σας εμφανίζει την κατάσταση εξόδου του GnuPG για το μήνυμα.
- ΑντιγÏαφή πληÏοφοÏιών ασφαλείας OpenPGP: αντιγÏάφει την κατάσταση εξόδου του GnuPG στο Ï€ÏόχειÏο· για να την επικολλήσετε σε κάποιο μήνυμα κλπ.
- Εμφάνιση ID φωτογÏαφίας OpenPGP: σας εμφανίζει το ID φωτογÏαφίας του ατόμου που σας Îστειλε το μήνυμα, αν βÎβαια αυτή υπάÏχει στο Δημόσιο Κλειδί του. (Αυτή η επιλογή είναι διαθÎσιμο μόνο αν το ID φωτογÏαφίας OpenPGP υπάÏχει στο κλειδί.)
- ΠληÏοφοÏίες ασφαλείας S/MIME: σας εμφανίζει τις πληÏοφοÏίες ασφαλείας S/MIME για το μήνυμα.
Αν δεν Îχετε ενεÏγοποιημÎνη την επιλογή keyserver-options auto-key-retrieve στο αÏχείο gpg.conf σας, και διαβάζετε Îνα μήνυμα που είναι υπογεγÏαμμÎνο ή κÏυπτογÏαφημÎνο, στην κεφαλίδα του μηνÏματος θα εμφανιστεί το εικονίδιο Î Îνας με Îνα ΕÏωτηματικό πάνω του, ενώ το μήνυμα στη γÏαμμή κατάστασης του Enigmail θα λÎει Τμήμα του μηνÏματος υπογεγÏαμμÎνο· κάντε κλικ στο εικονίδιο Î Îνας για πληÏοφοÏίες και στην πεÏιοχή κειμÎνου του μηνÏματος θα εμφανίζονται όλα τα OpenPGP μπλοκ και το μπλοκ της υπογÏαφής.
Αυτό μποÏεί επίσης να συμβεί όταν το κλειδί δεν υπάÏχει στον Ï€ÏοκαθοÏισμÎνο εξυπηÏετητή κλειδιών, ακόμα κι αν Îχετε ενεÏγοποιημÎνη την επιλογήkeyserver-options auto-key-retrieve στο gpg.conf σας.
Κάνοντας κλικ στο εικονίδιο Î Îνας και ΕÏÏ‰Ï„Î·Î¼Î±Ï„Î¹ÎºÎ¿Ï Î¸Î± εμφανιστεί Îνα παÏάθυÏο που θα σας πληÏοφοÏεί ότι το κλειδί δεν είναι διαθÎσιμο στη λίστα κλειδιών σας. Πατώντας OK θα εμφανιστεί Îνα άλλο παÏάθυÏο με μία λίστα εξυπηÏετητών κλειδιών για να επιλÎξετε από ποιον θα γίνει λήψη του δημόσιου ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï Ï„Î¿Ï… αποστολÎα.
Για να οÏίσετε τη λίστα των εξυπηÏετητών κλειδιών που θÎλετε να χÏησιμοποιείτε, πηγαίνετε στην καÏÏ„Îλα Enigmail -> Î Ïοτιμήσεις -> ΒασικÎÏ‚ και εισάγετε τις διευθÏνσεις στο πεδίο ΕξυπηÏετητής(ÎÏ‚) κλειδιών:, χωÏισμÎνες με κόμματα. Ο Ï€Ïώτος εξυπηÏετητής στη λίστα θα χÏησιμοποιηθεί ως ο Ï€ÏοκαθοÏισμÎνος.
- Άνοιγμα κÏυπτογÏαφημÎνων επισυνάψεων / εισαγωγή ενσωματωμÎνων κλειδιών OpenPGP
Επισυνάψεις με όνομα *.pgp, *.asc και *.gpg αναγνωÏίζονται ως επισυνάψεις που το Enigmail θα τις διαχειÏιστεί με ειδικό Ï„Ïόπο. Κάνοντας δεξί κλικ σε μία Ï„Îτοια επισÏναψη θα ενεÏγοποιήσει δÏο ειδικÎÏ‚ καταχωÏήσεις στο Î¼ÎµÎ½Î¿Ï Ï€Î¿Ï… θα εμφανιστεί: ΑποκÏυπτογÏάφηση και Άνοιγμα και ΑποκÏυπτογÏάφηση και Αποθήκευση. ΧÏησιμοποιήστε τις αν θÎλετε το Enigmail αποκÏυπτογÏαφήσει την επισυνάψεις Ï€Ïιν το άνοιγμα ή την αποθήκευσή της. Αν η επισÏναψη αναγνωÏιστεί ως αÏχείο ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP, θα εÏωτηθείτε αν θÎλετε να γίνει εισαγωγή του ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï ÏƒÏ„Î· λίστα κλειδιών σας.
ΠεÏισσότεÏη βοήθεια είναι διαθÎσιμη στο δικτυακό τόπο του Enigmail
Αν Îχετε εÏωτήσεις ή σχόλια σχετικά με το enigmail, παÏακαλώ στείλτε Îνα μήνυμα στη λίστα του Enigmail OpenPGP
Το Enigmail OpenPGP είναι λογισμικό Î±Î½Î¿Î¹ÎºÏ„Î¿Ï ÎºÏŽÎ´Î¹ÎºÎ± και κυκλοφοÏεί υπό την Mozilla Public License και την GNU General Public License
enigmail/lang/el/help/rulesEditor.html 0000664 0000000 0000000 00000012215 12667016244 0020314 0 ustar 00root root 0000000 0000000
Βοήθεια του Enigmail: ΕπεξεÏγασία κανόνων
Βοήθεια του Enigmail
ΧÏήση του ΕπεξεÏγαστή κανόνων του Enigmail
Στον ΕπεξεÏγαστή κανόνων, μποÏείτε να καθοÏίσετε τις Ï€ÏοκαθοÏισμÎνες επιλογÎÏ‚ για κάθε παÏαλήπτη για την ενεÏγοποίηση της κÏυπτογÏάφησης, υπογÏαφής και χÏήση PGP/MIME, και να επιλÎξετε τα κλειδιά OpenPGP που θα χÏησιμοποιηθοÏν. Κάθε κανόνας αποτελείται από Ï€Îντε πεδία:
- Email: οι διευθÏνσεις αλληλογÏαφίας που μποÏοÏν να χÏησιμοποιηθοÏν στα πεδία To:, Cc: και Bcc:. Ο Îλεγχός τους γίνεται με χÏήση υποσυμβολοσειÏών (ΠεÏισσότεÏες λεπτομÎÏειες υπάÏχουν στο διάλογο του ΕπεξεÏγαστή κανόνων)
- Κλειδί(ιά) OpenPGP: η λίστα ID κλειδιών OpenPGP
για χÏήση με τον αποστολÎα
- ΥπογÏαφή: ενεÏγοποίηση ή απενεÏγοποίηση της υπογÏαφής του μηνÏματος. Αυτό είτε χÏησιμοποιεί ή παÏακάμπτει την επιλογή που κάνατε στο παÏάθυÏο ΣÏνταξης του μηνÏματος. ΔιαθÎσιμες τιμÎÏ‚ είναι οι:
- ΠοτÎ: απενεÏγοποιεί την υπογÏαφή, ακόμα και αν Îχει ενεÏγοποιηθεί στο παÏάθυÏο ΣÏνταξης του μηνÏματος
- Πιθανή: θα χÏησιμοποιηθεί η επιλογή που Îγινε στο παÏάθυÏο ΣÏνταξης του μηνÏματος
- Πάντα: ενεÏγοποιεί την υπογÏαφή, ακόμα και αν δεν Îχει ενεÏγοποιηθεί στο παÏάθυÏο ΣÏνταξης του μηνÏματος
ΑυτÎÏ‚ οι επιλογÎÏ‚ εφαÏμόζονται σε όσους κανόνες ταιÏιάζουν. Αν κάποιος κανόνας απενεÏγοποιεί την υπογÏαφή, το μήνυμα δε θα υπογÏαφεί, ανεξάÏτητα από άλλους κανόνες που χÏησιμοποιοÏν το Πάντα.
- ΚÏυπτογÏάφηση: ενεÏγοποιεί ή απενεÏγοποιεί την κÏυπτογÏάφηση του μηνÏματος. Οι επιτÏεπόμενες τιμÎÏ‚ και το νόημά τους είναι ίδιες με αυτÎÏ‚ της υπογÏαφής.
- PGP/MIME: ενεÏγοποιεί ή απενεÏγοποιεί τη χÏήση της κωδικοποίησης PGP/MIME (RFC 3156) για το μήνυμα.
Αν απενεÏγοποιηθεί, τα μηνÏματα θα κωδικοποιοÏνται με "εμβόλιμο PGP". Οι επιτÏεπόμενες τιμÎÏ‚ και το νόημά τους είναι ίδιες με αυτÎÏ‚ της υπογÏαφής.
Οι κανόνες εφαÏμόζονται με τη σειÏά που βÏίσκονται στη λίστα. Κάθε φοÏά που Îνας κανόνας ταιÏιάζει με Îναν παÏαλήπτη και πεÏιÎχει Îνα ID ÎºÎ»ÎµÎ¹Î´Î¹Î¿Ï OpenPGP, εκτός του ότι θα χÏησιμοποιηθεί το καθοÏισμÎνο ID κλειδιοÏ, ο παÏαλήπτης δε θα θεωÏείται διαθÎσιμος για τους υπόλοιπους κανόνες.
Σημείωση: Ο ΕπεξεÏγαστής κανόνων δεν είναι ακόμα ολοκληÏωμÎνος. Είναι δυνατή η συγγÏαφή πιο Ï€ÏοχωÏημÎνων κανόνων με απευθείας επεξεÏγασία του αÏχείου κανόνων (δε θα Ï€ÏÎπει να γίνει πλÎον επεξεÏγασία αυτών των κανόνων με τον ΕπεξεÏγαστή). ΠεÏισσότεÏες πληÏοφοÏίες για την απευθείας επεξεÏγασία του αÏχείου κανόνων υπάÏχουν στο δικτυακό τόπο του Enigmail
ΠεÏισσότεÏη βοήθεια είναι διαθÎσιμη στο δικτυακό τόπο του
Enigmail
enigmail/lang/el/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020460 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/es-AR/ 0000775 0000000 0000000 00000000000 12667016244 0014503 5 ustar 00root root 0000000 0000000 enigmail/lang/es-AR/enigmail.dtd 0000664 0000000 0000000 00000107001 12667016244 0016764 0 ustar 00root root 0000000 0000000
NOTA: Generar la clave puede tardar varios minutos. No salga del programa mientras se est\u00E9 generando la clave. Navegue activamente o realice distintas operaciones que requieran un uso intensivo del disco durante el proceso, repercutir\u00E1n en la aleatoridad y velocidad del mismo. Cuando las claves se hayan generado, se le avisar\u00E1.">
' no es v\u00E1lido">
NOTA: La generaci\u00F3n de las claves puede tardar varios minutos. No salga del programa mientras se est\u00E1n generando. Se le avisar\u00E1 cuando las claves se hayan terminado de generar.">
Para hacerlo todo sencillo, asumimos ciertos valores sobre la configuraci\u00F3n. Estos valores intentar\u00E1n proporcionar un alto nivel de seguridad para el usuario medio sin crear confusi\u00F3n. Por supuesto, puede cambiar todas estas opciones despu\u00E9s de que termine el asistente. Puede averiguar m\u00E1s acerca de las caracter\u00EDsticas de Enigmail en el men\u00FA Ayuda o en el
">
NOTA: Enigmail siempre comprobar\u00E1 las firmas en los correos de cada cuenta o identidad, tanto si est\u00E1 activado como si no">
Para verificar su correo firmado, la gente necesita un programa de correo que interprete OpenPGP. Si no tienen un programa que entienda OpenPGP, podr\u00E1n leer su correo, pero la firma se ver\u00E1 como un adjunto o como texto alrededor del mensaje. Esto puede molestar a algunas personas. Necesita elegir si desea firmar todo el correo que env\u00EDe, o si desea evitar correo firmado a algunas personas.">
Gracias por usar Enigmail.">
Gracias por usar Enigmail.">
enigmail/lang/es-AR/enigmail.properties 0000664 0000000 0000000 00000062324 12667016244 0020415 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Alerta de Enigmail
enigConfirm=Confirmación de Enigmail
enigError=Error de Enigmail
enigPrompt=LÃnea de comandos Enigmail
dlgYes=Si
dlgNo=No
dlgKeepSetting=Recordar mi respuesta y no volver a preguntarme
dlgNoPrompt=No volver a mostrar este diálogo
dlg.button.delete=&Borrar
dlg.button.cancel=&Cancelar
dlg.button.close=&Cerrar
dlg.button.continue=Con&tinuar
dlg.button.skip=&Omitir
dlg.button.view=&Ver
repeatPrefix=\n\nEste alerta se repetirá %S
repeatSuffixSingular=vez más.
repeatSuffixPlural=veces más.
noRepeat=\n\nEste alerta no se repetirá hasta que actualice Enigmail.
noLogDir=Por favor, active la opción 'Directorio de registro' para crear el archivo de registro.
noLogFile=¡El archivo de registro todavÃa no ha sido creado!
restartForLog=Por favor, reinicie el programa para crear el archivo de registro
pgpNotSupported=Parece que está usando Enigmail junto con PGP 6.x\n\nDesafortunadamente, PGP 6.x tiene algunas caracterÃsticas que impiden que Enigmail funcione correctamente. Por lo tanto, Enigmail ya no soporta más PGP 6.x; por favor, utilice GnuPG (GPG) en su lugar.\n\nSi necesita ayuda para cambiar a GnuPG, visite la sección de Ayuda en el sitio Web de Enigmail.
avoidInitErr=Para evitar este alerta permanentemente, arregle el problema o desinstale Enigmail utilizando el menú Herramientas->Extensiones
passphraseCleared=La frase contraseña ha sido eliminada.
passphraseCannotBeCleared=Est\u00E1 utilizando gpg-agent para el manejo de la contrase\u00F1a. PorYou are using gpg-agent for passphrase handling. Por lo tanto no es posible eliminar la contrase\u00F1a desde Enigmail.
noPhotoAvailable=No hay foto disponible
usingVersion=Ejecutando Enigmail versión %S
usingAgent=Usando %S ejecutable %S para cifrar y descifrar.
agentError=ERROR: ¡No se pudo acceder al servicio Enigmime!
accessError=Error al acceder al servicio Enigmail.
onlyGPG=¡Generar la clave sólo funciona con GnuPG (no con PGP)!
keygenComplete=¡Se ha terminado de generar la clave! La Identidad <%S> se usará para firmar.
revokeCertRecommended=Recomendamos firmemente crear un certificado de revocación para su clave. Este certificado puede usarse para invalidar su clave, por ejemplo si su clave secreta se pierde o queda comprometida. ¿Desea crear ahora el certificado de revocación?
keyMan.button.generateCert=&Generate Certificate
genCompleteNoSign=¡La clave ha sido generada!
genGoing=¡Ya se está generando la clave!
passNoMatch=La frase contraseña ingresada no coincide; inténtelo de nuevo.
passCheckBox=Por favor, marque la casilla si no especifica una frase contraseña para la clave.
passUserName=Por favor, indique un nombre de usuario para esta identidad
passCharProblem=Ha utilizado caracteres especiales en la frase contraseña. Desafortunadamente, esto puede crear problemas en otros programas. Por favor, elija una frase contraseña con cualquiera de estos caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
changePassFailed=No se pudo cambiar la frase contraseña.
removePassphrase=¿Desea borrar la frase contraseña actual sin crear una nueva?
keyMan.button.removePass=&Remover Contrase\u00F1a
keyConfirm=¿Generar la clave pública y privada para '%S'?
keyMan.button.generateKey=&Generar Clave
keyAbort=¿Cancelar generar la clave?
keyMan.button.generateKeyAbort=&Abortar Generacion de Clave
keyMan.button.generateKeyContinue=&Continuar Generaci\u00F3n de Clave
expiryTooLong=No se puede crear una clave que expire dentro de más de 100 años.
expiryTooShort=Su clave debe ser válida al menos durante un dÃa.
keyGenFailed=No se pudo generar la clave. Por favor, compruebe la consola de Enigmail (Menú Enigmail > Depurar Enigmail) para detalles.
securityInfo=Información de seguridad Enigmail.\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Los adjuntos de este mensaje no han sido firmados ni cifrados*\n\n
possiblyPgpMime=El mensaje posiblemente esté firmado o cifrado con PGP/MIME; pulse el botón Descifrar para comprobarlo.
noDecrypted=¡No hay mensajes descifrados para guardar!\nUse el comando Guardar del menú Archivo
noMessage=¡No hay mensajes para guardar!
useButton=Por favor, pulse el botón Descifrar para descifrar el mensaje
saveHeader=Enigmail: Guardar mensaje descifrado
saveAttachmentHeader=Enigmail: Guardar adjunto descifrado
noTempDir=No se pudo encontrar un directorio temporal para escribir\nPor favor, compruebe el valor de la variable TEMP
attachmentPgpKey=El adjunto '%S' que está abriendo parece un archivo de claves OpenPGP.\n\nPulse Si para importar las claves que contenga o No para ver el contenido del archivo en una ventana del navegador
beginPgpPart=********* *PRINCIPIO DE LA PARTE CIFRADA o FIRMADA* *********
endPgpPart=********** *FIN DE LA PARTE CIFRADA o FIRMADA* **********
notePartEncrypted=Enigmail: *Partes del mensaje que NO se han firmado o cifrado*
noteCutMessage=Enigmail: *Multiple message blocks found -- decryption/verification aborted*
decryptOkNoSig=Aviso\n\nSe pudo descifrar correctamente, pero no se pudo comprobar la firma.
msgOvl.button.contAnyway=&Continuar De Todos Modos
keysToExport=Seleccionar claves OpenPGP a adjuntar
keysToUse=Seleccionar la(s) clave(s) OpenPGP a usar para %S
pubKey=Clave pública para %S\n
windowLocked=La ventana de redactar está bloqueada; envÃo cancelado
sendUnencrypted=No se pudo inicializar Enigmail.\n¿Enviar mensaje sin cifrar?
composeSpecifyEmail=Por favor, especifique su dirección de correo principal, que se usará para elegir la clave que firma los mensajes salientes.\nSi lo deja en blanco, se usará el campo DE de la dirección de correo para elegir la clave que firme el mensaje.
sendingHiddenRcpt=Este mensaje tiene destinatarios BCC (copia oculta). Si el mensaje es cifrado, es posible esconder los destinatarios BCC, pero usuarios de otros productos (por ej. PGP Corp) no podr\u00E1n descifrar el mensaje. Por eso, recomendamos evitar correos con copia oculta con mensajes cifrados.
sendWithHiddenBcc=Esconder destinatarios BCC
sendWithShownBcc=Cifrar normalmente
sendingNews=Se canceló la operación de envÃo cifrado.\n\nEste mensaje no se puede cifrar porque hay destinatarios de grupos de noticias. Por favor, vuelva a enviar el mensaje sin cifrado.
sendToNewsWarning=Advertencia: usted est\u00E1 por enviar un mensaje cifrado a un grupo de noticias.\n\nEsto se desaconseja porque s\u00F3lo tiene sentido si todos los miembros del grupo pueden descifrar el mensaje, por ej. el mensaje debe ser cifrado con las claves de todos los participantes del grupo. Por favor env\u00EDe este mensaje solamente si sabe exactamente lo que est\u00E1 haciendo.\n\nContinuar?
hasHTML=Aviso de correo HTML:\nEste es un mensaje en formato HTML, lo que podrÃa causar que falle la firma/cifrado. Para evitar esto en el futuro, debe pulsar la tecla MAYUSCULAS mientras pulsa el botón de Redactar/Responder para enviar correo cifrado.\nSi firma el correo de manera predeterminada, deberÃa desmarcar la opción 'Redactar mensajes en formato HTML' para desactivar permanentemente el correo en formato HTML para esta cuenta.
strippingHTML=El mensaje contiene información en formato HTML que se perderá al convertir a texto plano para firmar o cifrar. ¿Desea continuar?
msgCompose.button.sendAnyway=&Enviar Mensaje de Todos Modos
attachWarning=Los adjuntos a este mensaje no son locales, no se pueden cifrar. Para cifrar los adjuntos, primero guárdelos como archivos locales y luego adjunte los archivos. ¿Desea continuar?
quotedPrintableWarn=Ha activado la codificación 'quoted-printable' para enviar mensajes. Esto puede producir un cifrado y/o verificación incorrectos de su mensaje.\n¿Desea desactivar ahora el envÃo de mensajes en formato 'quoted-printable'?
minimalLineWrapping=Tiene que poner el ajuste de lÃnea a %S caracteres. Para un cifrado y/o firmado correctos, este valor necesita ser de al menos 68.\n¿Desea cambiar ahora el ajuste de lÃnea a 68 caracteres?
warning=Aviso
signIconClicked=Ha modificado el firmado manualmente. Por lo tanto, mientras esté redactando el mensaje, (des)activar el firmado ya no depende de la opción de (des)activar.
sendAborted=Operación de envÃo cancelada.\n\n
statPGPMIME=PGP/MIME
statSigned=FIRMADO
statEncrypted=CIFRADO
statPlain=TEXTO PLANO
offlineSave=¿Guardar el mensaje %S para %S en la carpeta de mensajes No enviados?
onlineSend=¿Enviar el mensaje %S a %S?
encryptKeysNote=NOTA: El mensaje está cifrado con los siguientes IDs de usuario / Clave: %S
signFailed=Error en Enigmail; no se pudo cifrar/firmar; ¿enviar el correo sin cifrar?
msgCompose.button.sendUnencrypted=&Enviar Mensaje Sin Cifrar
acctNotConfigured=No ha configurado esta identidad para usar seguridad Enigmail.\n¿Enviar el mensaje sin cifrar?
recipientsSelectionHdr=Seleccionar destinatarios para cifrar
configureNow=No ha configurado la seguridad Enigmail para la identidad seleccionada. ¿Desea hacerlo ahora?
signYes=El mensaje se firmará
signNo=El mensaje no se firmará
encryptYes=El mensaje se cifrará
encryptNo=El mensaje no se cifrará
rulesConflict=Se ha detectado un conflicto en reglas por destinatario\n%S\n\n¿Enviar el mensaje con esta configuración?
msgCompose.button.configure=&Configure
msgCompose.button.send=&Enviar Mensaje
msgCompose.button.save=&Guardar Mensaje
keyNeeded=Se necesita la clave pública %S para verificar la firma
clickDecrypt=; pulse el botón Descifrar
clickDecryptRetry=; pulse el botón Descifrar para volver a intentarlo
clickPen=; pulse el icono del Lápiz
clickPenDetails=; pulse el icono del Lápiz para detalles
clickQueryPenDetails=; pulse el icono del Lápiz para detalles
clickKey=; pulse el icono de la Llave
clickQueryKeyDetails=; pulse el icono de la Llave para detalles
clickKeyDetails=; pulse el icono de la Llave para detalles
clickPenKeyDetails=; pulse el icono del Lápiz o Llave para detalles
msgPart=Parte del mensaje %S
msgSigned=firmado
msgEncrypted=cifrado
msgSignedAndEnc=firmado y cifrado
unverifiedSig=Firma sin verificar
incompleteDecrypt=Descifrado incompleto
failedSig=Error - No se pudo comprobar la firma.
needKey=Error - Se necesita la clave secreta para descifrar el mensaje.
failedDecrypt=Error - No se pudo descifrar.
badPhrase=Error - Frase contraseña incorrecta.
failedDecryptVerify=Error - No se pudo descifrar/verificar.
viewInfo=; Ver > Información de seguridad del mensaje para detalles
decryptedMsg=Mensaje descifrado
testNoSvc=EnigTest: No se pudo acceder al servicio Enigmail
testNoEmail=EnigTest: Por favor, indique la dirección de correo para probar.
testSucceeded=Enigmail está funcionando correctamente. Para detalles, examine la consola disponible en el menú Enigmail.
oldGpgVersion=No se pudo iniciar Enigmail.\n\nEstá usando la versión %S de GnuPG, que ya no se actualiza. Enigmail requiere GnuPG versión 1.4 o superior; Por favor, actualice su instalación de GnuPG, o Enigmail no funcionará.
locateGpg=Localizar el agente GnuPG
invalidGpgPath=No se puede ejecutar GnuPG con la ruta proporcionada. Por lo tanto, se desactiva Enigmail hasta que se cambie la ruta a GnuPG otra vez o se reinicie el programa.
warningsAreReset=Todos los avisos serán restablecidos.
prefs.gpgFound=Se encontr\u00F3 GnuPG en %S
prefs.gpgNotFound=No se pudo encontrar GnuPG
prefs.warnAskNever=Aviso: activar esta opci\u00F3n tendr\u00E1 como resultado que los correos en donde no haya clave para uno de los destinatarios el correo ir\u00E1 sin cifrar, sin m\u00E1s informaci\u00F3n. \u00A1Enigmail no informar\u00E1 si esto ocurre!
prefEnigmail.oneKeyserverOnly=Error - s\u00F3lo se puede especificar un servidor de claves para la descarga autom\u00E1tica de claves OpenPGP faltantes.
enterPass=Por favor, escriba su frase contraseña OpenPGP.
enterPassOrPin=Por favor, escriba su frase contraseña OpenPGP o el PIN de su tarjeta inteligente.
repeatPass=Por favor, repita su frase contraseña OpenPGP
rememberPass=Recordar durante %S minutos de inactividad
enterAdminPin=Por favor, escriba el PIN administrativo de su tarjeta inteligente
enterCardPin=Por favor, escriba el PIN de su tarjeta inteligente
notInit=Error - No se ha iniciado todavÃa el servicio Enigmail.
badCommand=Error - Falló el comando de cifrado.
cmdLine=lÃnea de comandos y salida:
notRequired=Error - No se requiere cifrado.
notComplete=Error - No se ha terminado de generar la clave.
invalidEmail=Error - Dirección/direcciones de correo no válida(s).
noPassphrase=Error - No se suministró la frase contraseña.
noPGPblock=Error - No se encontró un bloque con armadura OpenPGP válido.
unverifiedReply=La parte indentada del mensaje (respuesta) probablemente ha sido modificada
decryptToImport=Pulse el botón Descifrar para importar el bloque de clave pública en el mensaje
sigMismatch=Error - La firma no coincide.
cantImport=Error al importar la clave pública.\n\n
sc.wrongCardAvailable=La tarjeta inteligente %S encontrada en su lector no puede ser usada para procesar el mensaje.\nPor favor inserte su tarjeta inteligente %S y repita la operaci\u00F3n.
sc.insertCard=La operaci\u00F3n requiere su tarjeta inteligente %S.\nPor favor inserte la tarjeta inteligente requerida y repita la operaci\u00F3n.
sc.removeCard=La operaci\u00F3n require que no haya tarjetas inteligentes en el lector.\nPor favor retire su tarjeta inteligente y repita la operaci\u00F3n.
sc.noCardAvailable=No se pudo encontrar ninguna tarjeta inteligente en su lectora\nPor favor, inserte su tarjeta inteligente y repita la operación
sc.noReaderAvailable=No se pudo acceder a su lectora de tarjetas inteligentes.\nPor favor, conecte su lectora de tarjetas inteligentes, inserte la tarjeta y repita la operación.
gpgNotFound=No se pudo encontrar el agente GnuPG '%S'.\nAsegúrese de haber puesto correctamente la ruta al ejecutable GnuPG en las preferencias de Enigmail.
gpgNotInPath=No se pudo encontrar el ejecutable GnuPG en el PATH.\nAsegúrese que haya puesto correctamente la ruta al ejecutable GnuPG en las preferencias de Enigmail.
enigmimeNotAvail=El servicio Enigmime no está disponible
gpgAgentNotStarted=No se pudo iniciar el programa del agente gpg necesario para su versi\u00F3n de GnuPG %S.
prefUntrusted=SIN CONFIANZA
prefRevoked=CLAVE REVOCADA
prefExpiredKey=CLAVE EXPIRADA
prefExpired=EXPIRADO
prefGood=La firma de %S es correcta.
prefBad=Firma INCORRECTA de %S
failCancel=Error - Recepción de clave cancelada por el usuario.
failNoServer=Error - No se especificó el servidor de claves para recibir la clave.
failNoID=Error - No se especificó el ID que va a recibir la clave.
failKeyExtract=Error - Falló el comando de extracción de clave.
notFirstBlock=Error - El primer bloque OpenPGP no es un bloque de clave pública.
importKeyConfirm=¿Importar la(s) clave(s) pública(s) incluida(s) en el mensaje?
failKeyImport=Error - No se pudo importar la clave.
fileWriteFailed=No se pudo escribir en el archivo %S
successKeyImport=Clave(s) importada(s) exitosamente.
importKey=Importar la clave pública %S desde el servidor de claves:
uploadKey=Enviar la clave pública %S al servidor de claves:
keyId=ID de clave
keyAndSigDate=ID de clave: 0x%S / Firmado el: %S
keyFpr=Huella de clave: %S
noEmailProvided=¡No se proporcionó la dirección de correo!
keyAlreadySigned=La clave ya está firmada, no se puede firmar dos veces.
selKeyExpired=expiró %S
createdHeader=Creada
atLeastOneKey=¡No se seleccionó una clave! Tiene que seleccionar al menos una para aceptar este diálogo
fewerKeysThanRecipients=Usted ha seleccionado un n\u00FAmero menor de claves que de destinatarios. Est\u00E1 seguro de que la lista de claves para cifrar est\u00E1 completa?
userSel.button.goBack=Seleccione m\u00E1s Claves
userSel.secretKeySel.title=Seleccione una Clave Secreta OpenPGP para Firmar Sus Mensajes
pgpMimeNote=NOTA: PGP/MIME sólo está soportado en un número limitado de clientes de correo. En Windows sólo Mozilla/Thunderbird, Sylpheed, Pegasus y Mulberry se sabe que soportan este estándar; en Linux/UNIX y Mac OS X la mayorÃa de los clientes de correo lo soportan. Si no está seguro, seleccione la %S opción.
first=primera
second=segunda
encryptKeyHeader=Seleccione clave OpenPGP para cifrar
identityName=Identidad: %S
noEncryption=Tiene el cifrado activado, pero no seleccionó una clave. Para enviar correo cifrado a %S, necesita especificar una o varias claves válidas de la lista de claves. ¿Desea desactivar el cifrado para %S?
noKeyToUse=(ninguna - sin cifrado)
noEmptyRule=¡La regla no puede estar vacÃa! Por favor, ponga una dirección de correo electrónico en el campo Regla.
invalidAddress=La(s) dirección/direcciones de correo introducida(s) no es/son válida(s). No hay que poner los nombres de los destinatarios, sólo las direcciones. Ejemplo:\nNo válido: El nombre \nVálido: usuario@servidor.net
noCurlyBrackets=Los corchetes {} tienen un significado especial y no se deben usar en las direcciones de correo electrónico. Si desea modificar el comportamiento de esta regla, use la opción 'Aplicar regla si el destinatario...'\nPara más información pulse el botón Ayuda.
never=Nunca
always=Siempre
possible=Posible
deleteRule=¿Realmente quiere borrar la regla seleccionada?
nextRcpt=(Destinatario siguiente)
negateRule=No
needOnline=La función seleccionada no está disponible en modo sin conexión. Por favor, pase a modo con conexión y vuelva a intentarlo.
protocolNotSupported=El protocolo '%S://' que ha seleccionado no está soportado para descargar claves OpenPGP.
gpgkeysDisabled=PodrÃa ayudar si se activa la opción 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=No se pudo conectar con el servidor de claves %S
keyDownloadFailed=No se pudo descargar la clave del servidor de claves. El mensaje de estado es:\n%S
internalError=Ha ocurrido un error interno. No se pudieron descargar o importar las claves.
noKeyFound=Lo siento, no se pudo encontrar ninguna clave que coincidiera con el criterio de búsqueda especificado.\nPor favor, tenga en cuenta que el ID de clave debe tener el prefijo "0x" (ejemplo: 0xABCDEF12).
gpgKeysFailed=Fallo al buscar o descargar la clave del servidor de claves: no se pudo ejecutar gpgkeys_%S.
setKeyTrustFailed=Fallo al establecer la confianza de clave.
signKeyFailed=Fallo al firmar la clave.
undefinedError=Ocurrió un error no definido.
alreadySigned.label=Nota: la clave %S ya est\u00E1 firmada con la clave secreta seleccionada.
keyMan.loadingKeys=Cargando claves. Por favor, espere...
keyValid.unknown=desconocida
keyValid.invalid=no es válida
keyValid.disabled=desactivada
keyValid.revoked=revocada
keyValid.expired=expirada
keyValid.noSubkey=subclave no válida
keyValid.valid=v\u00E1lida
keyTrust.untrusted=sin confianza
keyTrust.marginal=poca confianza
keyTrust.full=confiable
keyTrust.ultimate=absoluta
keyTrust.group=(group)
keyType.public=pública
keyType.publicAndSec=pública/secreta
keyMan.enableKey=Activar clave
keyMan.disableKey=Desactivar clave
userAtt.photo=Aspecto de usuario (imagen JPEG)
asciiArmorFile=Archivos con armadura ASCII (*.asc)
gnupgFile=Archivos GnuPG
saveRevokeCertAs=Crear y guardar certificado de revocación
revokeCertOK=El certificado de revocación se ha creado correctamente. Puede usarlo para invalidar su clave pública, por ejemplo si pierde su clave secreta.\n\nPor favor, póngalo en un soporte que se pueda guardar de forma segura, como un CD o un disquete. Si alguien tiene acceso a este certificado, puede usarlo para inutilizar su clave.
revokeCertFailed=No se pudo crear el certificado de revocación.
addUidOK=ID del usuario agregado correctamente
addUidFailed=Fallo al agregar el ID del usuario
noKeySelected=Debe seleccionar al menos una clave para realizar la operación seleccionada.
exportToFile=Exportar clave pública a un archivo
exportSecretKey=¿Desea incluir la clave secreta en el archivo de claves OpenPGP a guardar?
saveKeysOK=Las claves se guardaron satisfactoriamente.
saveKeysFailed=Fallo al guardar las claves.
importKeysFailed=Fallo al importar las claves.
enableKeyFailed=Fallo al activar/desactivar las claves.
specificPubKeyFilename=%S (0x%S) púb
specificPubSecKeyFilename=%S (0x%S) púb-sec
defaultPubKeyFilename=Claves-públicas-exportadas
defaultPubSecKeyFilename=Claves-públicas-y-secretas-exportadas
noSecretKeys=No se encontraron claves secretas.\n\n¿Desea generar su propia clave secreta ahora?
sendKeysOk=Clave(s) enviada(s) exitosamente.
sendKeysFailed=Fallo al enviar las claves.
receiveKeysOk=Clave(s) actualizada(s) exitosamente.
receiveKeysFailed=Fallo al descargar las claves.
importFromClip=¿Desea importar alguna(s) clave(s) desde el portapapeles?
copyToClipbrdFailed=No se logró copiar la(s) clave(s) seleccionada(s) al portapapeles.
copyToClipbrdOK=Clave(s) copiada(s) al portapapeles.
deleteSecretKey=AVISO: ¡Está a punto de borrar una clave secreta!\nSi borra la clave secreta, ya no podrá descifrar ningún mensaje que vaya cifrado para esa clave.\n\n¿Realmente desea borrar AMBAS claves, la pública y la secreta\n'%S'?
deleteMix=AVISO: ¡Está a punto de borrar las claves secretas!\nSi borra las claves secretas, ya no será posible descifrar ningún mensaje que haya sido cifrado con esas claves.\n\n¿Realmente desea borrar AMBAS, las claves secretas y públicas seleccionadas?
deletePubKey=¿Desea borrar la clave pública\n'%S'?
deleteSelectedPubKey=¿Desea borrar las claves públicas?
deleteKeyFailed=No se pudo borrar la clave.
revokeKeyAsk=Esta función crea e importa un certificado de revocación. ¿Realmente desea revocar la clave %S?
revokeKeyOk=La clave ha sido revocada. Si la clave está disponible en un servidor de claves, se recomienda volver a subirla, de forma que otros puedan ver la revocación.
revokeKeyFailed=No se pudo revocar la clave.
refreshAllQuestion=No ha seleccionado ninguna clave. ¿Desea actualizar TODAS las claves?
refreshKey.warn=AVISO: Dependiendo del número de claves y la velocidad de la conexión, actualizar todas las claves puede ser un proceso bastante lento.\n\n¿Continuar?
keyMan.button.exportSecKey=&Exportar Claves Secretas
keyMan.button.exportPubKey=Export S\u00F3lo Claves &P\u00FAblicas
keyMan.button.import=&Importar
keyMan.button.refreshAll=&Refrescar Todas las Claves
keyMan.button.revokeKey=&Revocar Clave
keylist.noOtherUids=No tiene otras identidades
keylist.hasOtherUids=Tambi\u00E9n conocido como
keylist.noPhotos=No hay fotograf\u00ED disponible
keylist.hasPhotos=Fotograf\u00EDas
keySignatureLocal=Local
keySignatureExportable=Exportable
keySignatureNoKey=Sin clave
userIdNotFound=(No se encontró el ID del usuario)
signatureValid=S\u00ED
retrieveKeyConfirm=La clave no está disponible - ¿Desea descargarla de un servidor de claves?
changePrimUidFailed=Fallo al cambiar el ID del usuario primario
changePrimUidOK=El ID del usuario primario se cambió correctamente
deleteUidFailed=Fallo al borrar el ID del usuario %S
deleteUidOK=El ID del usuario %S se borró correctamente
revokeUidFailed=Fallo al revocar el ID del usuario %S
revokeUidOK=El ID del usuario %S se revocó correctamente. Si la clave está disponible en un servidor de claves, se recomienda volver a subirla, de forma que otros puedan ver la revocación.
revokeUidQuestion=¿Realmente desea revocar el ID del usuario %S?
deleteUidQuestion=¿Realmente desea borrar el ID del usuario %S?\n\nPor favor, tenga en cuenta que si la clave pública está en un servidor de claves, el borrar el ID del usuario no cambiará nada. En este caso hay que usar 'Revocar ID de usuario'.
keyTypePublic=clave pública
keyTypePrimary=clave primaria
keyTypeSubkey=subclave
keyTypePair=par de claves
keyExpiryNever=nunca
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keygen.started=Por favor, espere mientras se está generando la clave...
keygen.completed=Clave generada. El nuevo ID de clave es: 0x%S
keygen.keyBackup=Se ha respaldado la clave como %S
keygen.passRequired=Por favor, especifique una frase contraseña si desea crear una copia de respaldo de su clave fuera de su tarjeta inteligente.
cardPin.dontMatch=El PIN introducido no coincide; por favor, vuelva a intentarlo.
cardPin.minLength=El PIN debe tener al menos %S caracteres o números.
cardPin.processFailed=Se produjo un fallo al cambiar el PIN.
keyserverProgress.refreshing=Actualizando las claves. Por favor, espere...
keyserverProgress.uploading=Subiendo claves; por favor, espere...
keyserverTitle.refreshing=Actualizando claves
keyserverTitle.uploading=Subir claves
passphrase.min8keys=¡Su frase contraseña debe contener al menos 8 caracteres!
setupWizard.applyAllId=Activar Enigmail para todas las identidades
setupWizard.applySomeId=Activar Enigmail para las identidades: %S
setupWizard.applySingleId=Activar Enigmail para su cuenta de correo
setupWizard.setAllPrefs=Ajustar todas las opciones recomendadas del programa
setupWizard.setSomePrefs=Ajustar las opciones del programa recomendadas que ha seleccionado
setupWizard.setNoPrefs=No ajustar ninguna opción del programa
setupWizard.createKey=Crear una nueva clave OpenPGP de 2048 bits, válida durante 5 años
setupWizard.useKey=Usar la clave OpenPGP existente con ID %S para firmar
setupWizard.encryptAll=Por defecto, cifrar todos los correos
setupWizard.encryptNone=Por defecto, no cifrar todos los correos
setupWizard.signAll=Por defecto, firmar todos los correos
setupWizard.signNone=Por defecto, no firmar los correos
setupWizard.reallyCancel=¿Realmente desea cancelar el asistente de instalación de Enigmail?
addUidDlg.nameOrEmailError=Debe introducir un nombre y una direcci\u00F3n email
addUidDlg.nameMinLengthError=El nombre debe tener al menos 5 caracteres
addUidDlg.invalidEmailError=Debe especificar una direcci\u00F3n email v\u00E1lida
addUidDlg.commentError=No se permite par\u00E9ntesis en los comentarios
enigmail/lang/es-AR/help/ 0000775 0000000 0000000 00000000000 12667016244 0015433 5 ustar 00root root 0000000 0000000 enigmail/lang/es-AR/help/compose.html 0000664 0000000 0000000 00000010531 12667016244 0017766 0 ustar 00root root 0000000 0000000
Ayuda de Enigmail: Redacción de mensajes
Ayuda de Enigmail
Usando Enigmail para redactar mensajes
- Menú Enigmail en la ventana de redacción de mensajes
- Firmar mensaje: Activa/desactiva el envío de correo firmado. El usuario recibe una notificación si hay un fallo en la firma.
- Cifrar mensaje: Activa/desactiva el cifrado para todos los destinatarios antes de enviarlo. El usuario recibe una notificación si hay un fallo al cifrar.
Si está activada la opción Mostrar la selección si es necesario en Preferencias -> pestaña Selección de clave, se abrirá una ventana con una lista de claves si hay direcciones en la lista de destinatarios del mensaje de las que no se tiene la clave pública.
Si está activada la opción Nunca mostrar el diálogo de selección de clave OpenPGP en Preferencias -> pestaña Selección de clave, y hay direcciones en la lista de destinatarios del mensaje de las que no se tiene la clave pública, el mensaje se enviará sin cifrar.
- Usar PGP/MIME en este mensaje: Activa/desactiva el uso de PGP/MIME en este mensaje.
Si sabe con certeza que los destinatarios pueden leer el correo usando el formato PGP/MIME, entonces se debe usar.
Esta característica depende de la configuración en Preferencias -> pestaña PGP/MIME si está establecida en Usar PGP/MIME si es posible o Siempre usar PGP/MIME.
- Opciones predeterminadas de redacción: Submenú
- Opciones de firmado/cifrado...: acceder a Configuración de cuentas... -> Seguridad OpenPGP.
- Opciones de envío...: acceder a Preferencias -> pestaña Enviar.
- Opciones de selección de clave...: acceder a Preferencias -> pestaña Selección de clave.
- Opciones PGP/MIME...: acceder a Preferencias -> pestaña PGP/MIME.
- Deshacer cifrado: Si hay algún problema al enviar el correo, como un fallo en el servidor POP que no acepta la solicitud, Enigmail no lo sabrá, y el mensaje cifrado seguirá mostrándose en la ventana de redacción. Con esta opción de menú, se deshacerá el cifrado/firma, volviendo a la ventana de redacción con su texto original.
Como solución temporal, también se puede usar para descifrar el texto citado al contestar a mensajes cifrados. Enigmail debe descifrar automáticamente el mensaje citado, pero si se produce un fallo por cualquier motivo, se puede usar esta opción del menú para forzarlo.
- Adjuntar clave pública...: Adjunta el bloque de la clave pública al mensaje, en un archivo con armadura ASCII. Se le preguntará el ID de usuario de las claves que se van a adjuntar.
- Borrar frase contraseña guardada: Elimina de la caché las frases contraseñas introducidas manualmente. Esto es útil si se tienen varias frases contraseñas.
- Ayuda: Muestra información de ayuda (esta página).
Más ayuda disponible en la página Web de ayuda de Enigmail
enigmail/lang/es-AR/help/editRcptRule.html 0000664 0000000 0000000 00000013344 12667016244 0020734 0 ustar 00root root 0000000 0000000
Ayuda de Enigmail: Editar regla OpenPGP
Ayuda de Enigmail
Usando el editor de reglas de Enigmail: Editar regla OpenPGP
En el editor de reglas, se pueden especificar opciones predeterminadas para cada destinatario, activando el cifrado, la firma y PGP/MIME; y para definir qué clave(s) OpenPGP va a usar. En este diálogo, se pueden especificar las reglas para un único destinatario, y para un grupo de destinatarios con atributos muy similares.
- Definir reglas OpenPGP para: Contiene las direcciones de correo electrónico de los destinatarios (sin nombre, por ejemplo una dirección como alguien@correo.org). Se pueden especificar varias direcciones de correo, separadas por espacios. La dirección especificada aquí puede consistir de sólo la sección del dominio, para que se aplique al correo de cualquier dirección de ese dominio, como @correo.org se aplicará a alguien@correo.org, cualquiera@correo.org, otro@correo.org, etc.
- Aplicar regla si el destinatario: Esto modifica si coinciden las direcciones de correo electrónico. Si se introducen varias direcciones, la opción se aplicará a todas. Los ejemplos de abajo están basados en que se ha introducido alguien@correo.org en el campo Reglas openPGP de arriba.
- Es exactamente: Con esta opción, la regla sólo se activará en los correos a alguien@correo.org (exacto, no se tienen en cuenta las mayúsculas).
- Contiene: Con esta opción, cualquier dirección de correo que contenga la cadena, cumplirá la regla, como unnombre@correo.dominio o nombre@correo.dominio.org
- Comienza con: Con esta opción, cualquier dirección de correo que empiece por la cadena, cumplirá la regla, como alguien@correo.dominio.net, alguien@correo.nombre-dominio.com.
- Acaba en: Con esta opción, cualquier dirección de correo que acabe en la cadena, cumplirá la regla, como otronombre@correo.org, alguien@correo.org
- Continuar con la regla siguiente para la dirección coincidente
Activar esta función permitirá definir una regla pero no tener que especificar un ID de clave en el campo Usar las siguientes claves OpenPGP: para que se use la dirección de correo electrónico para comprobar una clave en el momento del envío. También se procesarán las reglas posteriores para la misma dirección.
- No comprobar las reglas siguientes para la dirección coincidente
Activar esta función detiene el procesamiento de cualquier otra regla para las direcciones que cumplan la regla. Es decir, las reglas se reanudan procesando el próximo destinatario.
- Usar las siguientes claves OpenPGP:
Use el botón Seleccionar clave(s)... para seleccionar las claves del destinatario que se usen para el cifrado. Al igual que la acción anterior, no se continúan procesando las reglas para las direcciones que cumplan la regla.
- Predeterminada para firmar: Activa o desactiva la firma del mensaje. Esta opción usa o ignora lo especificado en la ventana de redacción de mensajes. Los valores son:
- Nunca: Desactiva la firma, incluso si se activó en la ventana de redacción de mensajes (tiene preferencia sobre los otros valores).
- Sí, si está seleccionada en la redacción del mensaje: Deja la firma como se haya especificado en la ventana de redacción de mensajes.
- Siempre: Activa la firma, incluso si no estaba activada en la ventana de redacción de mensajes.
Estas opciones de firma se aplican a todas las reglas que coincidan con el criterio. Si una de las reglas desactiva la firma, el mensaje no se firmará, independientemente de que otras especifiquen Siempre.
- Cifrar: Activa o desactiva el cifrado del mensaje. Las opciones permitidas y su significado son las mismas que para la firma de mensajes.
- PGP/MIME: Activa o desactiva el uso de la codificación PGP/MIME (RFC 3156) en el mensaje. Si PGP/MIME está desactivado, los mensajes se codifican usando "PGP integrado". Los valores permitidos y su significado son los mismos que para la firma de mensajes.
Las reglas se procesan en el orden mostrado en la lista de OpenPGP - Editar reglas por destinatario. Cuando una regla coincida con un destinatario y contenga un ID de clave OpenPGP, además de usar el ID de clave especificado, el destinatario ya no se considera cuando se procesen más reglas.
Más ayuda disponible en la página de configuración por destinatario de Enigmail
enigmail/lang/es-AR/help/initError.html 0000664 0000000 0000000 00000005252 12667016244 0020302 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Ayuda de Enigmail
Cómo Resolver Problemas al Iniciar OpenPGP
Hay varias razones por las que no se tiene éxito al inicializar OpenPGP. Las más comunes son descritas más abajo &
para más información por favor visite la página de Soporte de Enigmail.
- No se pudo encontrar GnuPG
-
Para que funcione OpenPGP, la herramienta GnuPG debe ser instalada.
Si GnuPG no puede ser encontrado, entonces primero asegúrese de que el ejecutable gpg.exe (en Windows& gpg en otras plataformas) esté instalado en su computador.
Si GnuPG está instalado, y OpenPGP no puede encontrarlo, entonces usted necesitará configurar manualmente la ruta a GnuPG en las Preferencias de OpenPGP (menú OpenPGP > Preferencias)
- Enigmime falló al inicilizarse
-
OpenPGP solamente funciona si es compilado usando el mismo ambiente de compilación en que Thunderbird o SeaMonkey fue compilado. Esto significa que usted sólo puede usar la versión oficial de Enigmail si utiliza las versiones oficiales de Thunderbird o SeaMonkey provistas por mozilla.org.
Si usted utiliza una versión de Thunderbird o SeaMonkey provista por otra fuente (p.ej. el proveedor de su distribución de Linux), o si usted compiló la aplicación por si mismo, ustede debe, o bien usar una versión de Enigmail del mismo proveedor, o compilar Enigmail usted mismo. Para compilar Enigmail, refiérase a la sección de Código Fuente en la página de Enigmail. Por favor no envie reportes de bugs acerca de este problema, no puede ser solucionado.
Más ayuda está disponible en el Sitio Web de Soporte de Enigmail.
enigmail/lang/es-AR/help/messenger.html 0000664 0000000 0000000 00000011526 12667016244 0020316 0 ustar 00root root 0000000 0000000
Ayuda de Enigmail: Lectura de mensajes
Ayuda de Enigmail
Usando Enigmail para leer mensajes
- Botón Descifrar en la ventana principal de correo
Este botón se puede usar para varios propósitos: descifrar, verificar o importar claves públicas. Normalmente el descifrado/verificación se realiza automáticamente, aunque hay una opción para desactivar esto. Sin embargo, si esto falla, normalmente aparecerá un breve mensaje de error en la línea de estado de Enigmail. Si se pulsa el botón Descifrar, podrá ver un mensaje de error más detallado, incluyendo la salida del comando GnuPG.
- Los iconos Lápiz y Llave mostrados en la cabecera del mensaje
Los iconos Lápiz y Llave en la cabecera del mensaje indican si el mensaje que se está leyendo está firmado y/o cifrado y si la firma es buena, es decir; que el mensaje no se ha modificado desde el momento de su firma. Si el mensaje ha sido modificado, el icono del Lápiz cambiará a un Lápiz roto para indicar que la firma no es correcta. Al pulsar con el botón derecho del ratón en los iconos del Lápiz o Llave, se obtendrá un menú con las siguientes opciones:
- Información de seguridad OpenPGP: permite ver el estado de salida de GnuPG para el mensaje.
- Copiar información de seguridad OpenPGP: copia el estado de salida de GnuPG al portapapeles; para pegarlo en un mensaje de respuesta, etc.
- Ver ID fotográfico OpenPGP: permite ver la Foto ID de la persona que envió el mensaje, si tiene una foto incrustada en su clave pública (Esta opción sólo se activará si existe un ID fotográfico en su clave).
- Información de seguridad S/MIME: permite ver la información de seguridad S/MIME del mensaje.
Si no tiene puesta la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y lee un mensaje que está firmado o cifrado, verá un icono de un Lápiz en el área de visión de las cabeceras con un Signo de interrogación y, la línea de estado de Enigmail en el área de las cabeceras dirá: Parte del mensaje firmado; pulse el icono del lápiz para más detalles y el mensaje en el panel de mensajes mostrará todos los indicadores del bloque del mensaje OpenPGP y el bloque de la firma.
También se puede ver esto si tiene activada la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y la clave OpenPGP no está disponible en el servidor de claves predeterminado.
Al pulsar en el icono del Lápiz y Signo de interrogación abrirá una ventana avisando que la clave no está disponible en el anillo de claves. Al pulsar en Aceptar abrirá otra ventana con una lista de servidores de claves en los que puede seleccionar para descargar la clave pública del remitente.
Para configurar la lista de servidores de claves que desee usar, vaya a la pestaña Enigmail -> Preferencias -> Básicas e introduzca la dirección de los servidores de claves en el recuadro Servidor(es) de claves: separados por una coma. El primer servidor de claves de la lista se usará como predeterminado.
- Abrir adjuntos cifrados / importar claves OpenPGP adjuntas
Los adjuntos con el nombre *.pgp, *.asc y *.gpg se reconocen como adjuntos que se pueden manejar especialmente con Enigmail. Al pulsar con el botón derecho en un adjunto de este tipo se activan dos elementos especiales en el menú contextual: Descifrar y Abrir y Descifrar y Guardar. Use estos elementos si desea que Enigmail descifre un adjunto antes de abrirlo o guardarlo. Si se reconoce un adjunto como un archivo de clave OpenPGP, se le ofrece la posibilidad de importar las claves a sus anillos.
Más ayuda disponible en la página Web de ayuda de Enigmail
enigmail/lang/es-AR/help/rulesEditor.html 0000664 0000000 0000000 00000006675 12667016244 0020640 0 ustar 00root root 0000000 0000000
Ayuda de Enigmail: Editor de reglas
Ayuda de Enigmail
Usando el editor de reglas de Enigmail
En el editor de reglas, se pueden especificar opciones predeterminadas por destinatario para activar el cifrado, firma y PGP/MIME, así como definir qué clave(s) OpenPGP usar. Cada regla consiste de 5 campos y se representa en una sola línea:
- Correo electrónico: Las direcciones de correo en los campos Para:, Cc: y Cco: tienen que coincidir. La coincidencia funciona en subcadenas (Más detalles en el diálogo de Editar regla)
- Clave(s) OpenPGP: Una lista de IDs de claves OpenPGP para usar con el destinatario.
- Firmar: Activar o desactivar el firmado de mensajes. Esta opción usa o ignora lo que se haya especificado en la ventana de redacción de mensajes. Los valores son:
- Nunca: Desactiva la firma, incluso si estaba activada en la ventana de redacción del mensaje (tiene preferencia sobre los otros valores).
- Posible: Deja la firma como se haya especificado en la ventana de redacción de mensajes.
- Siempre: Activar la firma, incluso si no está activada en la ventana de redacción de mensajes.
Estas opciones de firma se aplican a todas las reglas que las cumplan. Si una de las reglas desactiva la firma, el mensaje no se firmará, independientemente de otras reglas que especifiquen Siempre.
- Cifrar: Activa o desactiva el cifrado del mensaje. Las opciones permitidas y su significado son las mismas que para la firma.
- PGP/MIME: Activa o desactiva el uso de la codificación del mensaje PGP/MIME (RFC 3156). Si PGP/MIME está desactivado, los mensajes se codifican usando "PGP integrado". Los valores permitidos y su significado son los mismos que para la firma de mensajes.
Las reglas se procesan en el orden mostrado en la lista. Cuando una regla coincida con un destinatario y contenga un ID de clave OpenPGP, además de usar el ID de clave especificado, el destinatario no se tendrá en consideración al procesar más reglas.
NOTA: El editor de reglas aún no está completo. Es posible escribir algunas reglas más avanzadas editando directamente el archivo de reglas (en cuyo caso, éstas no se deben volver a editar mediante el editor). Más información para editar el archivo directamente se encuentra disponible en la página Web de Enigmail.
Más ayuda disponible en la página Web de ayuda de Enigmail
enigmail/lang/es-AR/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020767 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/es-ES/ 0000775 0000000 0000000 00000000000 12667016244 0014510 5 ustar 00root root 0000000 0000000 enigmail/lang/es-ES/am-enigprefs.properties 0000664 0000000 0000000 00000000122 12667016244 0021176 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Seguridad OpenPGP
enigmail/lang/es-ES/enigmail.dtd 0000664 0000000 0000000 00000131355 12667016244 0017002 0 ustar 00root root 0000000 0000000
Seguridad OpenPGP)">
NOTA: Generar la clave puede llegar a tardar varios minutos. No salga de la aplicación mientras se esté generando la clave. Navegar por internet o realizar operaciones que hagan un uso intensivo del disco volverá a llenar la 'fuente de aleatoriedad' y acelerará el proceso. Se le avisará cuando se haya completado la generación de claves.">
' no es válido.">
NOTA: la generación de claves puede tardar varios minutos en completarse. No abandone la aplicación mientras se están generado. Se le avisará cuando las claves se hayan terminado de generar.">
Nota: Enigmail siempre comprobará las firmas en los correos de cada cuenta o identidad, tanto si está activada como si no">
clave pública es para que otros el envÃen correos cifrados. Puede distribuirla a todo el mundo.">
clave privada es para que usted mismo descifre estos correos y envÃa correos firmados.
No deberÃa dársela a nadie.">
clave privada es para que usted descrifre estos correos ye envÃe correos cifrados.
No deberÃa dársela a nadie.
Para asegurar su clave privada, se le pedirá una contraseña en los siguientes dos diálogos.">
contraseña es una palabra para proteger su clave privada. Evita el mal uso de su clave privada.">
Se le pedirá que escriba una contraseña para esto.">
Gracias por usar Enigmail.">
enigmail/lang/es-ES/enigmail.properties 0000664 0000000 0000000 00000076615 12667016244 0020432 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Alerta de Enigmail
enigConfirm=Confirmación de Enigmail
enigError=Error de Enigmail
enigPrompt=LÃnea de comandos de Enigmail
dlgYes=&SÃ
dlgNo=&No
dlgKeepSetting=Recordar mi respuesta y no volver a preguntarme
dlgNoPrompt=No volver a mostrarme este diálogo
dlg.button.delete=&Borrar
dlg.button.cancel=&Cancelar
dlg.button.close=&Cerrar
dlg.button.continue=Con&tinuar
dlg.button.skip=&Omitir
dlg.button.view=&Ver
dlg.button.retry=&Reintentar
dlg.button.ignore=&Ignorar
repeatPrefix=Esta alerta se repetirá %S
repeatSuffixSingular=vez más.
repeatSuffixPlural=veces más.
noRepeat=\n\nEsta alerta no se repetirá hasta que actualice Enigmail.
pgpNotSupported=Parace que está usando Enigmail junto con PGP 6.x\n\ndesafortunadamente, PGP 6.x tiene algunos problemas que impiden que Enigmail funcione correctamente. Por ello, Enigmail ya no soporta PGP 6.x. Por favor, use GnuPG (GPG) en su lugar.\n\nSi necesita ayuda para cambiar a GnuPG, compruebe la sección de Ayuda en la página web de Enigmail.
initErr.howToFixIt=Para poder usar Enigmail es necesario GnuPG. Si no lo ha instalado todavÃa, la forma más fácil de hacerlo es usar el botón «Asistente de Configuración» de abajo.
initErr.setupWizard.button=Asistente de &Configuración
passphraseCleared=Se ha eliminado la contraseña.
noPhotoAvailable=No hay foto disponible
debugLog.title=Registro de depuración de Enigmail
error.photoPathNotReadable=La ubicación de la foto '%S' no es accesible
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=La nueva versión de Enigmail contiene cambios significativos en la gestión de las preferencias y opciones. Se ha intentado transferir la configuración antigua a la nueva versión. Sin embargo, no podemos cubrir todos los casos automáticamente. Por favor, compruebe dos veces las preferencias y opciones resultante.
enigmailCommon.checkPreferences=Comprobar preferencias...
usingVersion=Ejecutando Enigmail versión %S
usingAgent=Usando el ejecutable %S %S para cifrar y descifrar
agentError=ERROR: ¡Fallo al acceder al servicio Enigmime!
accessError=Error al acceder al servicio Enigmail
onlyGPG=¡Generar la clave funciona sólo con GnuPG (no con PGP)!
keygenComplete=!Se ha terminado de generar la clave! Se usará la identidad <%S> para firmar.
revokeCertRecommended=Recomendamos firmemente crear un certificado de revocación para su clave. Este certificado puede usarse para invalidar su clave, p. ej. si su clave privada se pierde o resulta comprometida. ¿Desea crear ahora dicho certificado de revocación?
keyMan.button.generateCert=&Generar certificado
genCompleteNoSign=¡La clave ha sido generada!
genGoing=!Ya se está generando la clave!
passNoMatch=Las entradas de la contraseña no coinciden. Por favor, inténtelo de nuevo
passCheckBox=Por favor, marque la casilla si no quiere especificar una contraseña para la clave
passUserName=Por favor, indique un nombre de usuario para esta identidad
keygen.passCharProblem=Está usando caracteres especiales en su contraseña. Por desgracia, esto puede causar problemas en otras aplicaciones. Le recomendamos que use una contraseña que contenga solo estos caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Debido a razones técnicas, su contraseña no puede comenzar con un espacio.
changePassFailed=Fallo al cambiar la contraseña.
keyConfirm=¿Generar claves públicas y privadas para '%S'?
keyMan.button.generateKey=&Generar clave
keyAbort=¿Abortar la generación de la clave?
keyMan.button.generateKeyAbort=&Abortar la generación de la clave
keyMan.button.generateKeyContinue=&Continuar la generación de la clave
expiryTooLong=No se puede crear una clave que caduque dentro de más de 100 años.
expiryTooLongShorter=No se puede crear una clave que caduque dentro de más de 90 años.
expiryTooShort=Su clave debe ser válida al menos durante un dÃa.
dsaSizeLimit=Las claves de firmado DSA están limitadas a 3072 bits. El tamaño de la clave se reducirá en consecuencia.
keyGenFailed=Ha fallado la generación de la clave. Por favor, compruebe la consola de Enigmail (menú Enigmail > Depurar Enigmail) para ver los detalles.
setKeyExpirationDateFailed=No se pudo cambiar la fecha de caducidad
# Strings in enigmailMessengerOverlay.js
securityInfo=Información de seguridad Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Los adjuntos de este mensaje no han sido firmados ni cifrados*\n\n
possiblyPgpMime=El mensaje posiblemente está firmado o cifrado con PGP/MIME. Pulse el botón Descifrar para comprobarlo
noDecrypted=¡No hay mensajes descifrados para guardar!\nUse el comando Guardar del menú Archivo
noMessage=¡No hay mensajes para guardar!
useButton=Por favor, pulse el botón Descifrar para descifrar el mensaje
saveHeader=Enigmail: Guardar mensaje descifrado
saveAttachmentHeader=Enigmail: Guardar adjunto descifrado
noTempDir=No se pudo encontrar un directorio temporal para escribir\nPor favor, establezca la variable de entorno TEMP
attachmentPgpKey=El adjunto '%S' que está abriendo parece un fichero de clave OpenPGP.\n\nPulse 'Importar' para importar las claves que contenga o 'Ver' para ver el contenido del fichero en una ventana del navegador
beginPgpPart=********* *PRINCIPIO DE LA PARTE CIFRADA o FIRMADA* *********
endPgpPart=********** *FIN DE LA PARTE CIFRADA o FIRMADA* **********
notePartEncrypted=Enigmail: *Partes del mensaje NO han sido firmadas o cifradas*
noteCutMessage=Enigmail: *Se han encontrado múltiples bloques de mensajes. Se ha abortado el descifrado o verificación*
decryptOkNoSig=Aviso:\n\nSe pudo descifrar correctamente, pero no se pudo verificar la firma.
msgOvl.button.contAnyway=&Continuar de todos modos
signature.verifiedOK=La firma del adjunto %S ha sido verificada correctamente
signature.verifyFailed=La firma del adjunto %S no se ha podido verificar
attachment.noMatchToSignature=No se ha podido asociar el adjunto '%S' a un fichero de firma
attachment.noMatchFromSignature=No se ha podido asociar el fichero de firma '%S' a un adjunto
fixBrokenExchangeMsg.failed=No se pudo reparar el mensaje.
keysToExport=Seleccionar claves OpenPGP a insertar
keysToUse=Seleccione la(s) clave(s) OpenPGP a usar para %S
pubKey=Clave pública para %S\n
windowLocked=La ventana de Redactar está bloqueada. EnvÃo cancelado
sendUnencrypted=Fallo al inicializar Enigmail.\n¿Enviar mensaje sin cifrar?
composeSpecifyEmail=Por favor, especifique su dirección de correo principal, que se usará para elegir la clave para firmar los mensajes salientes.\nSi la deja en blanco, se usará la dirección que aparece en el campo DE del mensaje para elegir la clave de firmado.
sendingHiddenRcpt=Este mensaje tiene destinatarios BCC (copia oculta). Si se cifra este mensaje, es posible ocultar los destinatarios BCC, pero los usuarios de algunos productos (por ej. PGP Corp.) no podrán descifrar el mensaje. Por eso, recomendamos evitar correos con copia oculta con mensajes cifrados.
sendWithHiddenBcc=Ocultar destinatarios BCC
sendWithShownBcc=Cifrar normalmente
sendingNews=Se canceló la operación de envÃo cifrado.\n\nEste mensaje no se puede cifrar porque hay destinatarios que son grupos de noticias. Por favor, vuelva a enviar el mensaje sin cifrado.
sendToNewsWarning=Advertencia: usted está por enviar un mensaje cifrado a un grupo de noticias.\n\nEsto se desaconseja porque sólo tiene sentido si todos los miembros del grupo pueden descifrar el mensaje, por ej. el mensaje debe ser cifrado con las claves de todos los participantes del grupo. Por favor envÃe este mensaje solamente si sabe exactamente lo que está haciendo.\n\n¿Continuar?
hasHTML=Aviso de correo HTML:\nEste mensaje puede contener HTML, lo que podrÃa causar que falle la firma o el cifrado. Para evitar esto en el futuro, debe pulsar la tecla MAYÚSCULAS mientras pulsa el botón de Redactar o Responder para enviar correo cifrado.\nSi firma el correo de manera predeterminada, deberÃa desmarcar la opción 'Redactar mensajes en formato HTML' para desactivar permanentemente el correo en formato HTML para esta cuenta.
strippingHTML=El mensaje contiene información de formato HTML que se perderá al convertirlo a texto simple para firmar o cifrar. ¿Desea continuar?
msgCompose.button.sendAnyway=&Enviar el mensaje de todos modos
attachWarning=Los adjuntos de este mensaje no son locales, por lo que no se pueden cifrar. Para cifrar estos adjuntos, primero guárdelos como ficheros locales y adjúntelos. ¿Desea continuar?
quotedPrintableWarn=Ha activado la codificación 'quoted-printable' para enviar mensajes. Esto puede resultar en un cifrado o verificación incorrectos de su mensaje.\n¿Desea desactivar ahora el envÃo de mensajes en formato 'quoted-printable'?
minimalLineWrapping=Tiene que establecer el ajuste de lÃnea a %S caracteres. Para un cifrado y/o firmado correctos, este valor necesita ser al menos 68.\n¿Desea cambiar ahora el ajuste de lÃnea a 68 caracteres?
warning=Aviso
signIconClicked=Ha modificado el firmado manualmente. Por lo tanto, mientras esté redactando el mensaje (des)activar el firmado ya no depende de (des)activar el cifrado.
pgpMime_sMime.dlg.text=Ha activado PGP/MIME y S/MIME al mismo tiempo. Desafortunadamente no es posible soportar ambos protocolos al mismo tiempo. Por favor seleccione si desea usar PGP/MIME o S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Usar &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Usar &S/MIME
errorKeyUnusable=La dirección de correo electrónico o la clave con identificador '%S' no puede ser asociado a una clave OpenPGP válida y que no haya caducado.\nPor favor, asegúrese de que tiene una clave OpenPGP válida, y de que la configuración de su cuenta apunta a dicha clave.
msgCompose.internalEncryptionError=Error interno: desactivada el cifrado prometido
msgCompose.toolbarTxt.signAndEncrypt=Este mensaje se firmará y cifrará
msgCompose.toolbarTxt.signOnly=Este mensaje se firmará
msgCompose.toolbarTxt.encryptOnly=Este mensaje se cifrará
msgCompose.toolbarTxt.noEncryption=Este mensaje no será firmado ni cifrado
msgCompose.toolbarTxt.disabled=Enigmail está desactivado para la identidad seleccionada
msgCompose.toolbarTxt.smime=S/MIME está activo - conflicto potencial con Enigmail
# note: should end with double newline:
sendAborted=Operación de envÃo abortada.
# details:
keyNotTrusted=Confianza insuficiente para la clave «%S»
keyNotFound=Clave «%S» no encontrada
keyRevoked=Clave «%S» revocada
keyExpired=Clave «%S» expirada
statPGPMIME=PGP/MIME
statSigned=FIRMADO
statEncrypted=CIFRADO
statPlain=SIN CIFRAR y SIN FIRMAR
offlineSave=¿Guardar el mensaje %S para %S en la carpeta de mensajes no enviados?
onlineSend=¿Enviar el mensaje %S a %S?
encryptKeysNote=Nota: el mensaje está cifrado con los siguientes identificadores de usuario o claves: %S
hiddenKey=
signFailed=Error en Enigmail: Fallo al cifrar o firmar. ¿Enviar el mensaje sin cifrar?
msgCompose.button.sendUnencrypted=&Enviar mensaje sin cifrar
recipientsSelectionHdr=Seleccionar destinatarios para cifrado
configureNow=No ha configurado la seguridad Enigmail para la identidad seleccionada. ¿Desea hacerlo ahora?
encryptOff=Cifrado: desactivado
encryptOnWithReason=Cifrado: activado (%S)
encryptOffWithReason=Cifrado: desactivado (%S)
encryptOn=Cifrado: activado
signOn=Firmado: activado
signOff=Firmado: desactivado
signOnWithReason=Firmado: activado (%S)
signOffWithReason=Firmado: desactivado (%S)
reasonEnabledByDefault=activo por defecto
reasonManuallyForced=forzado manualmente
reasonByRecipientRules=forzado por reglas de destinatarios
reasonByAutoEncryption=fozado por auto-cifrado
reasonByConflict=debido a conflicto en reglas de destinatarios
reasonByEncryptionMode=debido al modo de cifrado
# should not be used anymore:
encryptYes=El mensaje se cifrará
encryptNo=El mensaje no se cifrará
# should not be used anymore:
signYes=El mensaje se firmará
signNo=El mensaje no se firmará
# should not be used anymore
pgpmimeYes=Se usará PGP/MIME
pgpmimeNo=Se usará PGP integrado.
rulesConflict=Se ha detectado un conflicto en las reglas por destinatario\n%S\n\n¿Enviar el mensaje con esta configuración?
msgCompose.button.configure=&Configurar
msgCompose.button.send=&Enviar mensaje
msgCompose.button.save=&Guardar mensaje
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Se necesita la clave pública %S para verificar la firma
keyUsed=Usada clave pública %S para verificar la firma
clickDecrypt=; pulse el botón Descifrar
clickDecryptRetry=; pulse el botón Descifrar para volver a intentarlo
clickDetailsButton=; pulse el botón «Detalles» para más información
clickImportButton=; pulse el botón «Importar clave» para descargar la clave
keyTypeUnsupported=; el tipo de clave no está soportado por su versión de GnuPG
msgPart=Parte del mensaje %S
msgSigned=firmado
msgSignedUnkownKey=firmado con clave desconocida
msgEncrypted=cifrado
msgSignedAndEnc=firmado y cifrado
unverifiedSig=Firma sin verificar
incompleteDecrypt=Descifrado incompleto
needKey=Error - se necesita la clave secreta para descifrar el mensaje
failedDecrypt=Error - fallo al descifrar
badPhrase=Error - contraseña incorrecta
failedDecryptVerify=Error - fallo al descifrar o verificar
viewInfo=; Ver -> Información de seguridad del mensaje para detalles
decryptedMsg=Mensaje descifrado
decryptedMsgWithFormatError=Mensaje descifrado (restaurado formato de correo PGP roto causado probablemente por un servidor Exchange antiguo, asà que el resultado puede no ser perfecto para leer)
locateGpg=Buscar programa GnuPG
invalidGpgPath=No se puede ejecutar GnuPG con la ruta proporcionada. Por lo tanto, se desactiva Enigmail hasta que vuelva a cambiar la ruta a GnuPG otra vez o se reinicie la aplicación.
warningsAreReset=Todos los avisos han sido restaurados.
prefs.gpgFound=Se encontró GnuPG en %S
prefs.gpgNotFound=No se pudo encontrar GnuPG
prefs.warnAskNever=Aviso: activar esta opción tendrá como resultado que los correos en donde no haya clave para uno de los destinatarios el correo irá sin cifrar, sin más información. ¡Enigmail no le informará si esto ocurre!
prefs.warnIdleTimeForUnknownAgent=No se puede conectar con el agente gpg. Quizá su sistema use una herramienta especializada para la gestión de contraseñas, tal como gnome-keyring o seahorse-agent. Desafortunadamente Enigmail no puede controlar el tiempo de espera de las contraseñas para la herramienta que está usando. Por lo tanto, se omiten los parámetros de los respectivos tiempos de espera en Enigmail.
prefEnigmail.oneKeyserverOnly=Error - sólo se puede especificar un servidor de claves para la descarga automática de claves OpenPGP faltantes.
enterAdminPin=Por favor, escriba el PIN ADMINISTRATIVO de su tarjeta inteligente
enterCardPin=Por favor, escriba el PIN de su tarjeta inteligente
notInit=Error - No se iniciado todavÃa el servicio Enigmail
badCommand=Error - falló el comando de cifrado
cmdLine=lÃnea de comandos y salida:
notRequired=Error - no es necesario cifrado
notComplete=Error - no se ha terminado de generar la clave
invalidEmail=Error - Las direcciones de correo no son válidas
noPassphrase=Error - no se suministró contraseña
noPGPblock=Error - No se encontró un bloque OpenPGP blindado válido
unverifiedReply=La parte indentada del mensaje (la respuesta) probablemente ha sido modificada
sigMismatch=Error - La firma no coincide
cantImport=Error al importar la clave pública\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=La tarjeta inteligente %S encontrada en su lector no puede ser usada para procesar el mensaje.\nPor favor, inserte su tarjeta inteligente %S y repita la operación.
sc.insertCard=La operación requiere su tarjeta inteligente %S.\nPor favor, inserte la tarjeta inteligente requerida y repita la operación.
sc.removeCard=La operación requiere que no haya tarjetas inteligentes en el lector.\nPor favor, retire su tarjeta inteligente y repita la operación.
sc.noCardAvailable=No se pudo encontrar ninguna tarjeta inteligente en su lector\nPor favor, inserte su tarjeta inteligente y repita la operación.
sc.noReaderAvailable=No se pudo acceder a su lectora de tarjetas inteligentes\nPor favor, conecte su lector de tarjetas inteligentes, inserte la tarjeta y repita la operación.
gpgNotFound=No se pudo encontrar el agente GnuPG '%S'.\nAsegúrese de que ha puesto correctamente la ruta al ejecutable GnuPG en las preferencias de Enigmail.
gpgNotInPath=No se pudo encontrar el ejecutable GnuPG en el PATH.\nAsegúrese de que ha puesto correctamente la ruta al ejecutable GnuPG en las preferencias de Enigmail.
gpgAgentNotStarted=No se pudo iniciar el programa gpg-agent necesario para su versión de GnuPG %S.
prefUntrusted=SIN CONFIANZA
prefRevoked=CLAVE REVOCADA
prefExpiredKey=CLAVE CADUCADA
prefExpired=CADUCADA
prefGood=La firma de %S es correcta
prefBad=Firma INCORRECTA de %S
failCancel=Error - Recepción de clave cancelada por el usuario
failNoServer=Error - No se especificó el servidor de claves para recibir la clave
failNoID=Error - No se especificó un identificador para recibir la clave
failKeyExtract=Error - falló el comando de extracción de clave
notFirstBlock=Error - El primer bloque OpenPGP no es un bloque de clave pública
importKeyConfirm=¿Importar la(s) clave(s) pública(s) incluida(s) en el mensaje?
failKeyImport=Error - fallo al importar la clave
fileWriteFailed=No se pudo escribir en el fichero %S
importKey=Importar clave pública %S del servidor de claves:
uploadKey=Enviar clave pública %S al servidor de claves:
keyId=Identificador de clave
keyAndSigDate=Identificador de clave: 0x%S / Firmada el: %S
keyFpr=Huella digital de la clave: %S
noEmailProvided=¡No se proporcionó una dirección de correo electrónico!
keyAlreadySigned=La clave ya está firmada, no se puede firmar dos veces.
gnupg.invalidKey.desc=La clave %S no se ha encontrado o no es válida. Es posible que la (sub)clave haya caducado.
selKeyExpired=caducada %S
createdHeader=Creada
atLeastOneKey=¡No se seleccionó una clave! Tiene que seleccionar al menos una clave para aceptar este diálogo
fewerKeysThanRecipients=Ha seleccionado un número menor de claves que de destinatarios. ¿Está seguro de que la lista de claves para cifrar está completa?
userSel.button.goBack=Seleccione más claves
userSel.secretKeySel.title=Seleccione una clave secreta OpenPGP para firmar sus mensajes
userSel.problemNoKey=Clave no válida
userSel.problemMultipleKeys=Claves múltiples
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Enviar más tarde
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOTA: ¡PGP/MIME sólo está soportado en un número reducido de clientes de correo! En Windows, sólo Mozilla/Thunderbird, Sylpheed, Pegasus y Mulberry son conocidos por soportar esta norma; en Linux/UNIX y Mac OS X la mayorÃa de los clientes de correo lo soportan. Si no está seguro, seleccione la opción %S.
first=primero
second=segundo
# Strings used in am-enigprefs.js
encryptKeyHeader=Seleccione clave OpenPGP para cifrar
identityName=Identidad: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Tiene el cifrado activado, pero no seleccionó una clave. Para cifrar correo para %S, necesita especificar una o varias claves válidas de la lista de claves. ¿Desea desactivar el cifrado para %S?
noKeyToUse=(ninguno - sin cifrado)
noEmptyRule=¡La regla no puede estar vacÃa! Por favor, establezca una dirección de correo electrónico en el campo Regla.
invalidAddress=Las direcciones de correo introducidas no son válidas. No deberÃa poner los nombres de los destinatarios, sólo las direcciones de correo electrónico. Ej:\nNo válido: Algún Nombre \nVálido: algun.nombre@direccion.net
noCurlyBrackets=Las llaves {} tienen un significado especial y no se deben usar en las direcciones de correo electrónico. Si desea modificar el comportamiento de esta regla, use la opción 'Aplicar regla si el destinatario ...'\nHay más información en el botón de Ayuda.
# Strings used in enigmailRulesEditor.js
never=Nunca
always=Siempre
possible=Posible
deleteRule=¿Realmente quiere borrar la regla seleccionada?
nextRcpt=(Siguiente destinatario)
negateRule=No
addKeyToRule=Añadir clave %S (%S) a la regla por destinatario
# Strings used in enigmailSearchKey.js
needOnline=La función seleccionada no está disponible en modo sin conexión. Por favor, pase a modo con conexión y vuelva a intentarlo.
protocolNotSupported=El protocolo '%S://' que ha seleccionado no está soportado para descargar claves OpenPGP.
gpgkeysDisabled=PodrÃa ser útil activar la opción 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=No se pudo conectar con el servidor de claves en %S.
keyDownloadFailed=Fallo al descargar la clave del servidor de claves. El mensaje de estado es:\n%S
internalError=Ha ocurrido un error interno. No se pudieron descargar o importar las claves.
noKeyFound=Lo siento, no se pudo encontrar ninguna clave que coincidiera con el criterio de búsqueda especificado. Por favor, tenga en cuenta que el identificador de la clave debe estar prefijado con "0x" (p. ej. 0XABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Fallo al buscar o descargar la clave del servidor de claves: no se pudo ejecutar gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Fallo al establecer confianza en el propietario
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Fallo al firmar la clave
alreadySigned.label=Nota: la clave %S ya está firmada con la clave secreta seleccionada.
partlySigned.label=Nota: algunos IDs de usuario de la clave %S ya están firmados con la clave secreta seleccionada.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Cargando claves. Por favor, espere ...
keyValid.unknown=desconocida
keyValid.invalid=inválida
keyValid.disabled=desactivada
keyValid.revoked=revocada
keyValid.expired=caducada
keyValid.noSubkey=subclave no váida
keyTrust.untrusted=sin confianza
keyTrust.marginal=poca
keyTrust.full=total
keyTrust.ultimate=absoluta
keyTrust.group=(grupo)
keyType.public=pública
keyType.publicAndSec=pública/secreta
keyMan.enableKey=Activar clave
keyMan.disableKey=Desactivar clave
userAtt.photo=Atributo de usuario (imagen JPEG)
asciiArmorFile=Ficheros ASCII armado (*.asc)
importKeyFile=Importar fichero de clave OpenPGP
gnupgFile=Ficheros GnuPG
saveRevokeCertAs=Crear y guardar certificado de revocación
revokeCertOK=El certificado de revocación se ha creado correctamente. Puede usarlo para invalidar su clave pública, p. ej, si pierde su clave secreta.\n\nPor favor, transfiéralo a un soporte que se pueda guardar de forma segura, como un CD o un disquete. Si alguien obtiene acceso a este certificado, puede usarlo para inutilizar su clave.
revokeCertFailed=No se pudo crear el certificado de revocación.
addUidOK=Identificador de usuario añadido correctamente
addUidFailed=Fallo al añadir el identificador de usuario
noKeySelected=Debe seleccionar al menos una clave para realizar la operación seleccionada
exportToFile=Exportar clave pública a un fichero
exportKeypairToFile=Exportar clave pública y secreta a un archivo
exportSecretKey=¿Desea incluir la clave privada en el fichero guardado de claves OpenPGP?
saveKeysOK=Las claves se guardaron correctamente
saveKeysFailed=Fallo al guardar las claves
importKeysFailed=Fallo al importar las claves
enableKeyFailed=Fallo al activar o desactivar las claves
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Claves públicas exportadas
defaultPubSecKeyFilename=Claves-públicas-y-secretas-exportadas
noSecretKeys=No se encontraron claves secretas.\n\n¿Desea generar su propia clave secreta ahora?
sendKeysOk=Clave(s) enviada(s) correctamente
sendKeysFailed=Fallo al enviar las claves
receiveKeysOk=Las claves se actualizaron correctamente
receiveKeysFailed=Fallo al descargar las claves
importFromClip=¿Desea importar alguna(s) clave(s) desde el portapapeles?
copyToClipbrdFailed=No se pudieron copiar las claves seleccionadas al portapapeles.
copyToClipbrdOK=Clave(s) copiada(s) al portapapeles
deleteSecretKey=AVISO: ¡Está a punto de borrar una clave privada!\nSi borra su clave privada, ya no será capaz de descifrar los mensajes cifrados para esa clave, y no podrá revocar su clave.\n\n¿Realmente desea borrar AMBAS, la clave privada y la pública\n'%S'?
deleteMix=AVISO: ¡Está a punto de borrar claves privadas!\nSi borra su clave privada, ya no será capaz de descifrar los mensajes cifrados para esa clave.\n\n¿Realmente desea borrar AMBAS, las claves privada y pública seleccionadas?
deletePubKey=¿Desea borrar la clave pública\n'%S'?
deleteSelectedPubKey=¿Desea borrar las claves públicas?
deleteKeyFailed=No se pudo borrar la clave.
revokeKeyQuestion=Está a punto de revocar la clave «%S».\n\nNo podrá volver a firmar con esta clave y cuando se distribuya los demás tampoco podran cifrar con esta clave. Aún podrá usar la clave para descifrar mensajes antiguos.\n\n¿Quiere continuar?
revokeKeyOk=La clave ha sido revocada. Si su clave está disponible en un servidor de claves, se recomienda volver a subirla, de forma que otros puedan ver la revocación.
revokeKeyFailed=No se pudo revocar la clave.
refreshAllQuestion=No ha seleccionado ninguna clave. ¿Desea refrescar TODAS las claves?
refreshKey.warn=Aviso: dependiendo del número de claves y la velocidad de la conexión, ¡refrescar todas las claves puede ser un proceso bastante lento!
downloadContactsKeys.warn=Advertencia: dependiendo del número de contactos y de la velocidad de conexión, descargar todas las claves puede que llevar bastante tiempo,
downloadContactsKeys.importFrom=¿Importar los contactos de la libreta de direcciones '%S'?
keyMan.button.exportSecKey=&Exportar claves secretas
keyMan.button.exportPubKey=Exportar sólo claves &públicas
keyMan.button.import=&Importar
keyMan.button.refreshAll=&Refrescar todas las claves
keyMan.button.revokeKey=&Revocar clave
keyMan.button.skip=&Omitir clave
keylist.noOtherUids=No tiene otras identidades
keylist.hasOtherUids=También conocido como
keylist.noPhotos=No hay fotografÃa disponible
keylist.hasPhotos=FotografÃas
keyMan.addphoto.filepicker.title=Seleccione una foto para añadir
keyMan.addphoto.warnLargeFile=El fichero que ha seleccionado parece mayor de 25 kB.\nNo se recomienda añadir ficheros demasiado grandes porque esto hace que las claves sean demasiado grandes.
keyMan.addphoto.noJpegFile=El fichero seleccionado no parece ser un fichero JPEG. Por favor, seleccione un fichero diferente.
keyMan.addphoto.failed=No se ha podido añadir la foto.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Fallo al cambiar el identificador del usuario primario
changePrimUidOK=El identificador de usuario primario se cambió correctamente
deleteUidFailed=Fallo al borrar el identificador de usuario %S
deleteUidOK=El identificador de usuario %S se borró correctamente
revokeUidFailed=Fallo al revocar el identificador de usuario %S
revokeUidOK=El identificador de usuario %S se revocó correctamente. Si su clave está disponible en un servidor de claves, se recomienda volver a subirla, de forma que otros puedan ver la revocación.
revokeUidQuestion=¿Realmente desea revocar el identificador de usuario %S?
deleteUidQuestion=¿Realmente desea borrar el identificador de usuario %S?\n\nPor favor, tenga en cuenta que si ha enviado la clave pública a un servidor de claves, el borrar el identificador de usuario no cambiará nada. En este caso, deberÃa usar 'Revocar identificador de usuario'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=clave pública
keyTypePrimary=clave primaria
keyTypeSubkey=subclave
keyTypePair=par de claves
keyExpiryNever=nunca
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyUsageEncrypt=Cifrar
keyUsageSign=Firmar
keyUsageCertify=Certificar
keyUsageAuthentication=Autenticación
# Strings in enigmailGenCardKey.xul
keygen.started=Por favor, espere mientras se está generando la clave ....
keygen.completed=Clave generada. El nuevo identificador de la clave es: 0x%S
keygen.keyBackup=Se ha respaldado la clave como %S
keygen.passRequired=Por favor, especifique una contraseña si desea crear una copia de seguridad de su clave fuera de su tarjeta inteligente.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=El PIN introducido no coincide; por favor, introdúzcalo de nuevo
cardPin.minLength=El PIN debe tener al menos %S caracteres o números
cardPin.processFailed=Se produjo un fallo al cambiar el PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Refrescando las claves. Por favor, espere ...
keyserverProgress.uploading=Subiendo claves. Por favor, espere ...
keyserverTitle.refreshing=Refrescar claves
keyserverTitle.uploading=Subir claves
# Strings in enigmailSetupWizard
passphrase.min8keys=¡Su contraseña deberÃa contener al menos 8 caracteres!
setupWizard.reallyCancel=¿Realmente desea cancelar el asistente de instalación de Enigmail?
setupWizard.invalidGpg=El fichero que ha especificado no es ejecutable GnuPG. Por favor, especifique un fichero diferente.
setupWizard.specifyFile=Necesita especificar al menos un fichero de clave pública para proceder.
setupWizard.installFailed=Parece que la instalación no ha tenido éxito. Intente de nuevo la instalación o instale GnuPG de forma manual y selecciónelo usando el botón Navegar.
setupWizard.downloadForbidden=Por su propia seguridad, no descargaremos GnuPG. Visite http://www.gnupg.org/ para hacerlo.
setupWizard.downloadImpossible=Actualmente no podemos descargar GnuPG. Inténtelo más tarde o visite http://www.gnupg.org/ para hacerlo.
setupWizard.hashSumError=El asistente no ha podido verificar la integridad del archivo descargado. El archivo puede estar roto o manipulado. ¿Quiere continuar la instalación de todas formas?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Se ha producido un error al intentar descargar GnuPG. Comprube el registro de la consola para más detalles.
installGnuPG.installFailed=Se ha producido un error al instalar GnuPG. Compruebe el registro de la consola para más detalles.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Debe introducir un nombre y una dirección de correo electrónico
addUidDlg.nameMinLengthError=El nombre debe tener al menos 5 caracteres
addUidDlg.invalidEmailError=Debe especificar una dirección de correo electrónico válida
addUidDlg.commentError=No se permiten corchetes en los comentarios
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Las tarjetas inteligentes de OpenGPG solo permiten caracteres ASCII en Nombre.
# network error types
errorType.SecurityCertificate=El certificado de seguridad presentado por el servicio web no es válido.
errorType.SecurityProtocol=El protocolo de seguridad usado por el servicio web es desconocido.
errorType.Network=Se ha producido un error de red.
# filter stuff
filter.folderRequired=Debe seleccionar una carpeta destino.
filter.decryptMove.label=Descifrar permanentemente (Enigmail)
filter.decryptCopy.label=Crear una copia no cifrada (Enigmail)
filter.decryptMove.warnExperimental=Advertencia - la acción de filtro «Descrifrar permanentemente» puede conducir a mensajes destruidos.\n\nLe recomendamos encarecidamente que primero intente el filtro «Crear una copia no cifrada», compruebe los resultados con cuidado y solo comience a usar este filtro una vez que esté satisfecho con el resultado.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=No se pudo descifrar el mensaje con asunto\n«%S».\n¿Quiere intentarlo de nuevo con una contraseña diferente o quiere omitir el mensaje?
converter.decryptAtt.failed=No se pudo descifrar el adjunto «%1$S»\ndel mensaje con asunto\n«%2$S».\n¿Quiere intentarlo de nuevo con una contraseña diferente o quiere omitir el mensaje?
saveLogFile.title=Guardar archivo de trazas
enigmail/lang/es-ES/help/ 0000775 0000000 0000000 00000000000 12667016244 0015440 5 ustar 00root root 0000000 0000000 enigmail/lang/es-ES/help/compose.html 0000664 0000000 0000000 00000010551 12667016244 0017775 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Ayuda de Enigmail
Uso de Enigmail al redactar mensajes
- Menú Enigmail en la ventana de Redacción de Correo
- Firmar mensaje: Activa/Desactiva el envío de mensajes firmados. El usuario es notificado si el firmado falla.
- Cifrar mensaje: Activa/Desactiva el cifrado para el(los) destinatario(s) antes del envío. El usuario es notificado si el cifrado falla.
Si Mostrar selección cuando sea necesario está seleccionado en Preferencias
-> pestaña Selección de Claves, una lista de claves aparecerá si hay direcciones en la lista de destinatarios para los que usted no tenga clave pública.
Si Nunca mostrar diálogo de selección de clave OpenPGP está seleccionado en Preferencias
-> pestaña Selección de Claves, y hay direcciones en la lista de destinatarios para los cuales usted no tiene clave pública, el mensaje será enviado sin cifrar.
- Usar PGP/MIME para este mensaje : Activa/Desactiva el uso de
PGP/MIME
para este mensaje.
Si usted sabe que el(los) destinatario(s) pueden leer correos usando el formato PGP/MIME,
usted debiera usarlo.
Esta característica depende de la configuración en Preferencias
-> pestaña PGP/MIME estando configurada para Permitir el uso de PGP/MIME o Siempre usar
PGP/MIME.
- Opciones por defecto para redacción: Submenú.
- Opciones de Firma/Cifrado...: atajo a Configuración de Cuentas ->
Opciones de OpenPGP.
- Opciones de Envío...: atajo a la pestaña Opciones ->
Enviando.
- Opciones de Selección de Clave...: atajo a la pestaña Preferencias ->
Selección de Clave.
- Opciones PGP/MIME...: atajo a la pestaña Preferencias ->
PGP/MIME.
- Deshacer cifrado: Si hay un fallo al momento del envío,
tal como el servidor POP no aceptando la petición, Enigmail no sabrá al respecto, y el mensaje cifrado continuará siendo mostrado en la ventana de Redacción. Elegir este ítem de menú deshará el cifrado/firmado, devolviendo la ventana de Redacción a su texto original.
Como una solución temporal, esta opción puede también ser usada para descifrar el texto citado cuando se responde a mensajes cifrados. Enigmail debiera descifrar automáticamente el texto citado, pero si eso falla por alguna razón, usted puede utilizar este ítem de menú para forzarlo.
- Insertar clave pública: inserta la clave pública como un bloque de texto ASCII-blindado en la posición actual del cursor en la ventana de Redacción. Se le preguntará por la dirección email de la(s) clave(s) a ser insertada(s). Las Claves insertadas de esta manera serán reconocidas automáticamente en el lado receptor por Enigmail. Luego de la inserción de clave, usted aún puede elegir firmar/cifrar el mensaje como sea necesario. Además, no inserte más de un bloque de claves en un mensaje; sólo especifique múltiples direcciones email, separadas por comas o espacios, cuando se le pregunte.
- Limpiar clave salvada: Limpia la contraseña retenida. útil si usted tiene múltiples contraseñas.
- Ayuda: Despliega la información de Ayuda del sitio web (esta página).
Más ayuda disponible en la
Página web de Ayuda de Enigmail
enigmail/lang/es-ES/help/editRcptRule.html 0000664 0000000 0000000 00000013233 12667016244 0020736 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Ayuda de Enigmail
Usando el Editor de Reglas de Enigmail: Editar Regla OpenPGP
En el Editor de Reglas, usted puede especificar valores por defecto por destinatarios para activar cifrado, firmado y PGP/MIME, y para definir qué clave(s) OpenPGP utilizar. En este diálogo, usted puede especificar reglas para un único destinatario, y para un grupo de destinatarios con atributos muy similares.
- Poner Regla OpenPGP para : Contiene la(s) dirección(es) email de el/los destinatario(s) (sin nombres, p.ej. sólo una dirección como alguien@email.dom). Usted puede especificar varias direcciones email, separadas por espacios. La dirección especificada aquí puede consistir sólo de la sección de dominio de modo que cualquier dirección en ese dominio concuerde, p.ej. @email.domain permitirá concordancia a body@email.comain, somebody@email.domain, anybody@email.domain, etc.
- Aplicar regla si el destinatario ...:
Esto modifica la concordancia de las direcciones email. Si se ingresa múltiples direcciones, la configuración se aplicará a todas. Los ejemplos abajo están basados en body@email.domain ingresado en el campo Poner Regla OpenPGP para más arriba.
- Es exactamente: con esta configuración, la regla sólo se disparará en emails para body@email.domain (comparación exacta, sin considerar mayúsculas/minúsculas).
- Contiene: con esta configuración, cualquier dirección email que contenga el patrón concuerda, p.ej. anybody@email.domain o body@email.domain.net
- Empieza por : con esta configuración, cualquier dirección email comenzando con el patrón concuerda, p.ej. body@email.domain.net, body@email.domain-name.com.
- Acaba en: con esta configuración, cualquier dirección email finalizando en el patrón concuerda, p.ej. anybody@email.domain, somebody@email.domain.
- Continuar con la siguiente regla para la dirección que coincida
Activar esta función le permitirá definir una regla pero no tener que especificar un KeyID en el campo Usar las siguientes claves OpenPGP:
, de modo que la dirección email es usada para buscar una clave al momento de enviar. Además, reglas adicionales para la(s) misma(s) dirección(es) también será(n) procesada(s).
- No comprobar más reglas para la dirección que coincida
Activar esta función detiene el procesamiento de cualquier otra regla para la(s) dirección(es) que coincide(n) si es que la regla coincide; p.ej. el procesamiento de reglas continúa con el siguiente destinatario.
- Usar las siguientes claves OpenPGP:
Use el botón Seleccionar Clave(s).. para seleccionar las claves receptoras a ser usadas para el cifrado. Como en la acción de arriba, no se sigue procesando más reglas para la(s) dirección(es) coincidentes.
- Por defecto para Firmado: activa o desactiva la firma de mensaje. Esto o bien usa o anula lo que usted ha especificado en la ventana de redacción de mensaje. Los valores son:
- Nunca: desactiva el firmado, incluso si está activado en la ventana de redacción de mensaje (anula los otros valores)
- Sí, si está seleccionado en la redacción del mensaje: deja el firmado tal como está especificado en la ventana de redacción del mensaje
- Siempre: activa el firmado, incluso si no estaba activado en la ventana de redacción del mensaje
Esas configuraciones para firmado son aplicadas para todas las reglas que coinciden. Si una de las reglas desactiva el firmado, el mensaje no será firmado, sin importar otras reglas que especifiquen Siempre.
- Cifrado: activa o desactiva el cifrado de mensaje. Las configuraciones permitidas y su significado son las mismas que para la firma de mensajes.
- PGP/MIME: activa o desactiva el uso de la codificación de mensaje PGP/MIME (RFC 3156).
Si PGP/MIME está desactivado, los mensajes son codificados utilizando "inline PGP". Los valores permitidos y sus significados son los mismos que para la firma de mensajes.
Las reglas son procesadas en el orden en que se muestran en la lista en el Editor de Reglas OpenPGP. Siempre que una regla coincide con un destinatario y contiene una KeyID OpenPGP, adicionalmente a usar la KeyID especificada, el destinatario deja de ser considerado al procesar otras reglas adicionales.
Ayuda adicional disponible en la página de Configuración Por-Destinatario de Enigmail
enigmail/lang/es-ES/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020313 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/es-ES/help/messenger.html 0000664 0000000 0000000 00000011526 12667016244 0020323 0 ustar 00root root 0000000 0000000
Ayuda de Enigmail: Lectura de mensajes
Ayuda de Enigmail
Usando Enigmail para leer mensajes
- Botón Descifrar en la ventana principal de correo
Este botón se puede usar para varios propósitos: descifrar, verificar o importar claves públicas. Normalmente el descifrado/verificación se realiza automáticamente, aunque hay una opción para desactivar esto. Sin embargo, si esto falla, normalmente aparecerá un breve mensaje de error en la línea de estado de Enigmail. Si se pulsa el botón Descifrar, podrá ver un mensaje de error más detallado, incluyendo la salida del comando GnuPG.
- Los iconos Lápiz y Llave mostrados en la cabecera del mensaje
Los iconos Lápiz y Llave en la cabecera del mensaje indican si el mensaje que se está leyendo está firmado y/o cifrado y si la firma es buena, es decir; que el mensaje no se ha modificado desde el momento de su firma. Si el mensaje ha sido modificado, el icono del Lápiz cambiará a un Lápiz roto para indicar que la firma no es correcta. Al pulsar con el botón derecho del ratón en los iconos del Lápiz o Llave, se obtendrá un menú con las siguientes opciones:
- Información de seguridad OpenPGP: permite ver el estado de salida de GnuPG para el mensaje.
- Copiar información de seguridad OpenPGP: copia el estado de salida de GnuPG al portapapeles; para pegarlo en un mensaje de respuesta, etc.
- Ver ID fotográfico OpenPGP: permite ver la Foto ID de la persona que envió el mensaje, si tiene una foto incrustada en su clave pública (Esta opción sólo se activará si existe un ID fotográfico en su clave).
- Información de seguridad S/MIME: permite ver la información de seguridad S/MIME del mensaje.
Si no tiene puesta la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y lee un mensaje que está firmado o cifrado, verá un icono de un Lápiz en el área de visión de las cabeceras con un Signo de interrogación y, la línea de estado de Enigmail en el área de las cabeceras dirá: Parte del mensaje firmado; pulse el icono del lápiz para más detalles y el mensaje en el panel de mensajes mostrará todos los indicadores del bloque del mensaje OpenPGP y el bloque de la firma.
También se puede ver esto si tiene activada la opción keyserver-options auto-key-retrieve en su archivo gpg.conf y la clave OpenPGP no está disponible en el servidor de claves predeterminado.
Al pulsar en el icono del Lápiz y Signo de interrogación abrirá una ventana avisando que la clave no está disponible en el anillo de claves. Al pulsar en Aceptar abrirá otra ventana con una lista de servidores de claves en los que puede seleccionar para descargar la clave pública del remitente.
Para configurar la lista de servidores de claves que desee usar, vaya a la pestaña Enigmail -> Preferencias -> Básicas e introduzca la dirección de los servidores de claves en el recuadro Servidor(es) de claves: separados por una coma. El primer servidor de claves de la lista se usará como predeterminado.
- Abrir adjuntos cifrados / importar claves OpenPGP adjuntas
Los adjuntos con el nombre *.pgp, *.asc y *.gpg se reconocen como adjuntos que se pueden manejar especialmente con Enigmail. Al pulsar con el botón derecho en un adjunto de este tipo se activan dos elementos especiales en el menú contextual: Descifrar y Abrir y Descifrar y Guardar. Use estos elementos si desea que Enigmail descifre un adjunto antes de abrirlo o guardarlo. Si se reconoce un adjunto como un archivo de clave OpenPGP, se le ofrece la posibilidad de importar las claves a sus anillos.
Más ayuda disponible en la página Web de ayuda de Enigmail
enigmail/lang/es-ES/help/rulesEditor.html 0000664 0000000 0000000 00000006665 12667016244 0020644 0 ustar 00root root 0000000 0000000
Ayuda de Enigmail: Editor de reglas
Ayuda de Enigmail
Usando el editor de reglas de Enigmail
En el editor de reglas, se pueden especificar opciones predeterminadas por destinatario para activar el cifrado, firma y PGP/MIME, así como definir qué clave(s) OpenPGP usar. Cada regla consiste de 5 campos y se representa en una sola línea:
- Correo electrónico: Las direcciones de correo en los campos Para:, Cc: y Cco: tienen que coincidir. La coincidencia funciona en subcadenas (Más detalles en el diálogo de Editar regla)
- Clave(s) OpenPGP: Una lista de IDs de claves OpenPGP para usar con el destinatario.
- Firmar: Activar o desactivar el firmado de mensajes. Esta opción usa o ignora lo que se haya especificado en la ventana de redacción de mensajes. Los valores son:
- Nunca: Desactiva la firma, incluso si estaba activada en la ventana de redacción del mensaje (tiene preferencia sobre los otros valores).
- Posible: Deja la firma como se haya especificado en la ventana de redacción de mensajes.
- Siempre: Activar la firma, incluso si no está activada en la ventana de redacción de mensajes.
Estas opciones de firma se aplican a todas las reglas que las cumplan. Si una de las reglas desactiva la firma, el mensaje no se firmará, independientemente de otras reglas que especifiquen Siempre.
- Cifrar: Activa o desactiva el cifrado del mensaje. Las opciones permitidas y su significado son las mismas que para la firma.
- PGP/MIME: Activa o desactiva el uso de la codificación del mensaje PGP/MIME (RFC 3156). Si PGP/MIME está desactivado, los mensajes se codifican usando "PGP integrado". Los valores permitidos y su significado son los mismos que para la firma de mensajes.
Las reglas se procesan en el orden mostrado en la lista. Cuando una regla coincida con un destinatario y contenga un ID de clave OpenPGP, además de usar el ID de clave especificado, el destinatario no se tendrá en consideración al procesar más reglas.
NOTA: El editor de reglas aún no está completo. Es posible escribir algunas reglas más avanzadas editando directamente el archivo de reglas (en cuyo caso, éstas no se deben volver a editar mediante el editor). Más información para editar el archivo directamente se encuentra disponible en la página Web de Enigmail.
Más ayuda disponible en la página Web de ayuda de Enigmail
enigmail/lang/es-ES/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020774 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/eu/ 0000775 0000000 0000000 00000000000 12667016244 0014205 5 ustar 00root root 0000000 0000000 enigmail/lang/eu/am-enigprefs.properties 0000664 0000000 0000000 00000000124 12667016244 0020675 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP Sekurtasuna
enigmail/lang/eu/contents.rdf 0000775 0000000 0000000 00000001156 12667016244 0016545 0 ustar 00root root 0000000 0000000
enigmail/lang/eu/enigmail.dtd 0000664 0000000 0000000 00000104703 12667016244 0016474 0 ustar 00root root 0000000 0000000
OHARRA: Gakoa sortzeko prozesua zenbait minutu iraun ditzake. Ez zaitez aplikaziotik atera gakoa sortzen ari den bitartean. Bitartean ordenagailua erabiltzea edo disko gogorran eragiketak egiten dituzten ekintzak egiten badituzu, ausazko datuen sorreran lagunduko du eta prozesua azkartuko du. Jakinarazi egingo zaizu gako sorrera prozesua bukatzerakoan.">
' ez du balio">
OHARRA: Gakoa sortzeko prozesua minutu batzuk iraun ditzake. Ez zaitez aplikaziotik atera gakoa sortzen ari den bitartean. Gakoa sortu eta gero abisu bat agertuko zaizu.">
Oharra: Enigmail-k sinadurak kontu
eta nortasun guztientzat egiaztatuko ditu, gaituta egon ez arren.">
Mila esker Enigmail erabiltzeagatik.">
Mila esker Enigmail erabiltzeagatik.">
enigmail/lang/eu/enigmail.properties 0000664 0000000 0000000 00000062553 12667016244 0020123 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
# Strings used within enigmailCommon.js
# Strings in enigmailAbout.js
# Strings in enigmailKeygen.js
enigAlert=Enigmail Abisua
enigConfirm=Enigmail Baieztapena
enigError=Enigmail Errorea
enigPrompt=Enigmail Mezua
dlgYes=&Bai
dlgNo=&Ez
dlgKeepSetting=Nire erantzuna gogoratu eta ez galdetu berriro
dlgNoPrompt=Ez erakutsi gehiago mezu hau
dlg.button.delete=&Ezabatu
dlg.button.cancel=&Utzi
dlg.button.close=&Itxi
dlg.button.continue=&Jarraitu
dlg.button.skip=&Saltatu
dlg.button.view=I&kusi
repeatPrefix=\n\nAbisu hau %S errepikatuko da.
repeatSuffixSingular=behin gehiago
repeatSuffixPlural=gehiagotan
noRepeat=\n\nAbisua hau ez da errepikatuko Enigmail eguneratzen duzun arte.
noLogDir=Mesedez, 'Log karpeta' arazketa ezaugarria ezarri ezazu log fitxategia sortzeko
noLogFile=Log fitxategia ez da oraindik sortu!
restartForLog=Mesedez, aplikazioa berrabiatu log fitxategia sortzeko
pgpNotSupported=Dirudienez Enigmail PGP 6.x-rekin batera erabiltzen ari zara.\n\nZoritxarrez, PGP 6.x zenbait arazo ditu eta horrek Enigmail gaizki ibiltzea dakar. Hortaz, Enigmail-ek ez du PGP 6.x onartzen; mesedez, horren ordez GnuPG (GPG) erabili ezazu.\n\nGnuPG-ra aldatzeko laguntzarik behar baldin baduzu, Enigmail weborriaren Laguntza atala begiratu ezazu.
avoidInitErr=Mezu hau betirako kentzeko, arazoa konpondu ezazu edo Enigmail desinstalatu ezazu. Laguntza botoian sakatu ezazu xehetasun gehiago behar badituzu.
passphraseCleared=Pasahitza ezabatu egin da.
passphraseCannotBeCleared=Pasahitzak kudeatzeko gpg-agent erabiltzen ari zara. Horregatik, Enigmail-etik ezin da pasahitza ezabatu.
noPhotoAvailable=Ez Dago Argazkirik
# Strings in enigmailMessengerOverlay.js
# Strings in enigmailMsgComposeOverlay.js
# Strings in enigmailMsgHdrViewOverlay.js
usingVersion=Enigmail %S bertsioa martxan dago
usingAgent=%S exekutagarria %s erabiltzen zifratu eta argitzeko
agentError=ERROREA: Ezin izan da Enigmime serbitzuarekin konexioa egin
# Strings in enigmailNavigatorOverlay.js
# Strings in pref-enigmail.js
# Strings used in components/enigmail.js
accessError=Enigmail serbitzura sartzean errore bat gertatu da
onlyGPG=Gako sorrera GnuPG-rekin bakarrik (ez PGP-rekin) dabil!
keygenComplete=Gakoaren sorrera bukatu da! Sinatzeko <%S> nortasuna erabiliko da.
revokeCertRecommended=Gogor gomendatzen dugu zure gakoarentzat ezeztapen ziurtagiri bat sortzea. Ziurtagiri hau zure gakoa ezgaitzeko erabili daiteke, adibidez, zure gako sekretua galdu edo arriskuan badago. Ezeztapen ziurtagiri hau orain sortu nahi al duzu?
keyMan.button.generateCert=&Ziurtagiria Sortu
genCompleteNoSign=Gakoaren sorrera bukatu da!
genGoing=Gakoaren sorrera prozesua dagoeneko martxan dago!
passNoMatch=Pasahitzak ez datoz bat, mesedez, berriz sartu itzazu
passCheckBox=Mesedez, laukitxoa sakatu ezazu gakoarentzak pasahitzik ez badago
passUserName=Mesdez, nortasun honentzako erabiltzailearen izena sartu ezazu
passCharProblem=Zure pasahitzan karaktere bereziak erabiltzen ari zara. Zoritxarrez, honek beste zenbait aplikazioetan arazoak sortu ditzake. Horregatik karaktere hauek bakarik dituen pasahitza aukeratu ezazu:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
changePassFailed=Pasahitzaren aldaketak huts egin du.
removePassphrase=Orain dagoen pasahitza ezabatu nahi al duzu pasahitz berririk sartu gabe?
keyMan.button.removePass=&Pasahitza Ezabatu
keyConfirm='%S'-rentzat gako publiko eta pribatuak sortu nahi al duzu?
keyMan.button.generateKey=Gakoa &Sortu
keyAbort=Gako sorrera geldiarazi nahi al duzu?
keyMan.button.generateKeyAbort=Gako Sorrera &Geldiarazi
keyMan.button.generateKeyContinue=Gako Sorrera &Jarraitu
expiryTooLong=Ezin da 100 urte baino gehiagoko iraungipena duen gakoa sortu.
expiryTooShort=Zure gakoa gutxienez egun baterako balio behar du.
keyGenFailed=Gako sorrerak huts egin du. Xehetasunak ikusteko, mesedez, Enigmail konsola begiratu ezazu (Enigmail Menua > Enigmail Araztu).
# (said file also re-uses some strings from above)
securityInfo=Enigmail Sekurtasun Informazioa\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Mezu honen eranskinak ez dira sinatu edo zifratu*\n\n
possiblyPgpMime=Ziurenik PGP/MIME-k mezua sinatu edo zifratu egin du; Argitu botoia klikatu ezazu egiatzatzeko
noDecrypted=Ez dago argituko mezurik gordetzeko!\nFitxategia menuan dagoen Gorde komandoa erabili ezazu
noMessage=Ez dago mezurik gordetzeko!
useButton=Mesedez Argitu botoia sakatu ezazu mezua argitzeko
saveHeader=Enigmail: Argitutako mezua gorde
saveAttachmentHeader=Enigmail: Argitutako eranskina gorde
noTempDir=Ez da idatzi daitekeen aldi baterako karpetarik aurkitu.\nMesedez, TEMP ingurune aldagaia ezarri ezazu
attachmentPgpKey=Irekitzen ari zaren '%S' eranskina OpenPGP gako fitxategi bat dirudi.\n\n'Inportatu' sakatu ezazu gakoa inportatzeko edo 'Ikusi' sakatu ezazu haren edukia azpian dagoen arakatzailean ikusteko.
beginPgpPart=********* *ZIFRATU edo SINATUTAKO GUNEAREN HASIERA* *********
endPgpPart=********** *ZIFRATU edo SINATUTAKO GUNEAREN BUKAERA* **********
notePartEncrypted=Enigmail: *Mezu honen zati batzuk EZ dira sinatu edo zifratu*
noteCutMessage=Enigmail: *Mezu bloke anitz aurkitu dira -- argitze/egiaztatze prozesua bertan behera utzi da*
decryptOkNoSig=Kontuz\n\nArgitze prozesua ondo bukatu da, baina sinadura ezin izan da ondo egiaztatu.
msgOvl.button.contAnyway=Edonola Ere &Jarraitu
# Strings used in enigmailUserSelection.js
keysToExport=Txertatko Diren OpenPGP Gakoak Aukeratu
keysToUse=%S-rentzat erabiliko den(diren) OpenPGP Gako(ak) aukeratu
pubKey=%S-rentzat gako publikoa\n
windowLocked=Idazteko lehioa blokeatuta dago; bidaltzea ezeztatu da
sendUnencrypted=Enigmail-ek hasieratzerakoan huts egin du.\nMezua zifratu gabe bidali?
composeSpecifyEmail=Mesedez zure lehendabiziko helbide elektronikoa jarri ezazu. Hau bidaliko diren mezuak sinatzeko gakoa aukeratzeko erabiliko da.\nBete gabe uzten baduzu, NORK halbidea erabiliko da sinatzeko gakoa aukeratzeko.
sendingHiddenRcpt=Mezu hau BCC (ezkutuko kopia) hartzaileak ditu. Mezu hau zifratuta bidaltzen bada, BCC hartzaileak ezkutatu ahal daitezke baina produktu batzuen erabiltzaileak (adib. PGP Corp.) ezin izango dute mezua argitu. Hau hartuta, BCC emailak zifratutako mezuekin ez bidaltzea gomendatzen dugu.
sendWithHiddenBcc=BCC hartzaileak ezkutatu
sendWithShownBcc=Normaltasunez zifratu
sendingNews=Zifratutako mezua bidaltzeko operazioa bertan behera utzi da.\n\nMezu hau ezin da zifratu hartzaileen artean berri-taldeak daudelako. Mesedez, mezua zifratu gabe bidali ezazu.
sendToNewsWarning=Kontuz: zifratutako email bat berri-talde batera bidaltzera zoaz.\n\nHau ez dago comendatua, honek bakarrik zentzuzkoa izango da baldin eta hartzaile guztiak mezua argitu dezakete, hau da, mezua hartzaile guztien gakoekin zifratuta badago. Mesedez, mezu hau bidali ezazu bakarrik egiten hari zarenaz ziur bazaude.\n\nJarraitu?
hasHTML=HTML email-aren abisua:\nMezu honek HTML izan dezake, honek sinadura/zifraketa-ren hutsegitea ekar dezake. Etorkizunean hau eragozteko, sinatutako email bat bidaltzeko SHIFT tekla sakatu ezazu Idatzi/Erantzun botoia sakatzerakoan.\nZure aukera lehenetsita email-a sinatzea bada, 'Mezuak HTML-n Idatzi' laukitxoa ezgaitu beharko zenuke HTML posta kontu honetan betirako ezgaitzeko.
strippingHTML=Mezuak HTML formatu informazioa dauka eta hau galuko da sinatu/zifratzeko testu arruntan bilakatzerakoan. Jarraitu nahi al duzu?
msgCompose.button.sendAnyway=&Mezua Bidali Edonola
attachWarning=Mezu honen eranskinak ez dira lokalak eta ezin dira zifratu. Eranskinak zifratu ahal izateko, fitxategi lokal bezala gorde itzazu eta gero erantsi itzazu. Mezua edonola bidali nahi al duzu?
quotedPrintableWarn=Mezuak bidaltzeko 'quoted-printable' kodifikazioa gaitu duzu. Hau zure mezuaren argitze edo/eta egiaztatze okerra ekar dezake.\nMezuak 'quoted-printable' kodifikazioa erabiliz bidaltzeko aukera ezgaitu nahi al duzu?
minimalLineWrapping=Lerroek %S karaktertara iristerakoan salto egitea konfiguratu duzu. Zifraketa eta/edo sinatze on batentzako, balio hau gutxienez 68 izan behar du.\nLerroen gehienezko luzeera 68 karakteretara orain aldatu nahi al duzu?
warning=Kontuz
signIconClicked=Sinadura eskuz aldatu duzu. Hortaz, mezua idazten ari zaren bitartean, sinadura (des)aktibatzea ez dator bat zifraketa (des)aktibatzearekin.
sendAborted=Bidaltze eragiketa bertan bera utzi da\n\n
statPGPMIME=PGP/MIME
statSigned=SINATUTA
statEncrypted=ZIFRATUTA
statPlain=SINATU eta ZIFRATU GABE
offlineSave=%S mezua Bidali Gabeko Mezuen karpetako %S-n gorde nahi al duzu?
onlineSend=%S mezua %S-ri bidali nahi al diozu?
encryptKeysNote=Oharra: mezu hau ondorengo erabiltzaile ID-ak/gakoak erabiliz zifratu da:
signFailed=Enigmail-n errore bat egon da eta zifraketak/sinadurak huts egin du; mezua zifratu gabe bidali nahi al duzu?
msgCompose.button.sendUnencrypted=Mezua Zifratu Gabe &Bidali
acctNotConfigured=Ez duzu nortasun hau Enigmail sekurtasuna erabiltzeko konfiguratu.\nMezua zifratu gabe bidali nahi al duzu?
recipientsSelectionHdr=Zifraketarako Hartzaileak Aukeratu
configureNow=Aukeratutako nortasunarentzat oraindik ez duzu Enigmail sekurtasuna konfiguratu. Orain egin nahi al duzu?
signYes=Mezua sinatuko da
signNo=Mezua ez da sinatuko
# Strings used in enigmailAttachmentDialog.js
# Strings used in am-enigprefs.js
encryptYes=Mezua zifratuko da
encryptNo=Mezua ez da zifratuko
rulesConflict=Hartzaileen arauen artean gatazka dago\n%S\n\nEzarpen hauekin mezua bidali nahi al duzu?
msgCompose.button.configure=&Konfiguratu
msgCompose.button.send=Mezua &Bidali
msgCompose.button.save=Mezua &Gorde
# Strings used in enigmailSingleRcptSettings.js
keyNeeded=%S gako publikoa sinadura egiaztatzeko behar da
clickDecrypt=; Argitu botoia sakatu
clickDecryptRetry=; Argitu botoia sakatu berriz saiatzeko
clickPen=; 'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
clickPenDetails=; 'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
clickQueryPenDetails=; 'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
clickKey=; 'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
clickQueryKeyDetails=;'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
clickKeyDetails=; 'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
clickPenKeyDetails=; 'Xehetasunak' botoian klik egin ezazu informazio gehiago eskuratzeko
msgPart=%S mezuaren zatia
msgSigned=Sinatutako
msgEncrypted=Zifratutako
msgSignedAndEnc=Sinatu eta zifratutako
unverifiedSig=Egiaztatu gabeko sinadura
incompleteDecrypt=Bukatu gabeko argitzea
failedSig=Errorea - sinaduraren egiaztapenak huts egin du
needKey=Errorea - mezua argitzeko gako sekretua behar da
failedDecrypt=Errorea - argitzeak huts egin du
badPhrase=Errorea - pasahitz okerra
failedDecryptVerify=Errorea - argitzeak/egiaztapenak huts egin du
viewInfo=; Xehetasunentzako Ikusi > Mezuaren Sekurtasun Informazioa
decryptedMsg=Argitutako mezua
# Strings used in enigmailRulesEditor.js
testNoSvc=EnigTest: Ezin izan da Enigmail serbitzura konektatu
testNoEmail=EnigTest: Frogarako e-posta helbidea jarri ezazu
testSucceeded=Enigmail ondo funtzionatzen ari da. Xehetasunak nahi badituzu, Enigmail menutik ireki daitekeen kontsola begiratu ezazu
oldGpgVersion=Enigmail-ren hasieraketak huts egin du.\n\nGnuPG %S bertsioa erabiltzen ari zara eta ez dago eguneratua. Enigmailek GnuPG 1.4 bertsioa edo berriago bat behar du. Mesedez, zure GnuPG instalazioa eguneratu ezazu edo Enigmail-k ez du funtzionatuko.
locateGpg=GnuPG programa bilatu
invalidGpgPath=Emandako helbidearekin ezin da GnuPG exekutatu. Hortaz, Enigmail ezgaituta egongo da GnuPG-ren helbidea berriz sartu arte edo aplikazioa berrabiatu arte.
warningsAreReset=Abisu guztiak berrezarri dira.
prefs.gpgFound=GnuPG hemen aurkitu da: %S
prefs.gpgNotFound=Ezin izan da GnuPG aurkitu
prefs.warnAskNever=Kontuz: aukera hau aktibatzen bada hartzaile batentzako gakorik ez badago ez da e-posta zifratuko eta ez da horren abisurik egongo -- Enigmail-k ez dizu hori gertatzen delaren berri emango!
prefEnigmail.oneKeyserverOnly=Errorea - gako-serbitzari bakarra jarri dezakezu falta diren OpenPGP gakoak deskargatzeko.
# Strings used in enigmailSearchKey.js
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
enterPass=Mesedez, zure OpenPGP pasahitza sartu ezazu
enterPassOrPin=Mesedez, zure OpenPGP pasahitza edo zure SmartCard-aren PIN-a sartu ezazu
repeatPass=Mesedez, zure OpenPGP pasahitza berriz sartu ezazu
rememberPass=Pasahitza %S minutuz gogoratu
enterAdminPin=Mesedez, zure SmartCard-aren ADMIN PIN-a sartu ezazu
enterCardPin=Mesedez, zure SmartCard-aren PIN-a sartu ezazu
notInit=Errorea - Enigmail serbitzua ez da oraindik hasieratu
badCommand=Errorea - zifraketa komandoak huts egin du
cmdLine=komando lerroa eta output:
notRequired=Errorea - ez da zifraketarik behar
notComplete=Errorea - gako sorketa ez da oraindik bukatu
invalidEmail=Errorea - baliogabeko e-posta helbidea(k)
noPassphrase=Errorea - ez da pasahitzik sartu
noPGPblock=Errorea - Ez da OpenPGP babestutako datu blokerik aurkitu
unverifiedReply=Mezuaren tabulatutako zatia (erantzuna) ziruenik aldatu zen
decryptToImport=Argitu botoia sakatu ezazu mezuan dagoen gako publikoaren blokea inportatzeko
sigMismatch=Errorea - Sinadurak ez datoz bat
cantImport=Errorea gako publikoa inportatzerakoan\n\n
sc.wrongCardAvailable=Zure irakurgailuan aurkitutako %S SmartCard-a ezin da mezua prozesatzeko erabili.\nMesedez, zure %S SmartCard-a sartu ezazu eta eragiketa errepikatu ezazu.
sc.insertCard=Eragiketak zure %S SmartCard-a behar du.\nMesedez, behar den SmartCard-a sartu ezazu eta eragiketa errepikatu ezazu.
sc.removeCard=Eragiketak irakurgailuan SmartCard-ik ez egotea behar du.\nMesedez, zure SmartCard-a atera ezazu eta eragiketa errepikatu ezazu.
sc.noCardAvailable=Irakurgailuan ez da SmartCard-ik aurkitu.\nMesedez, zure SmartCard-a sartu eta eragiketa errepikatu ezazu.
sc.noReaderAvailable=Zure SmartCard irakurgailua ezin da aurkitu.\nMesedez, zure SmartCard irakurgailua konektatu ezazu, zure txartela sartu eta eragiketa errepikatu ezazu.
gpgNotFound=Ezin izan da '%S' GnuPG programa aurkitu.\nZiurtatu zaitez GnuPG exekutagarriaren helbidea zuzen jarri duzula Enigmail Lehentasunetan.
gpgNotInPath=Ezin izan da PATH-ean GnuPG exekutagarria aurkitu.\nZiurtatu zaitez GnuPG exekutagarriaren helbidea zuzen jarri duzula Enigmail Lehentasunetan.
enigmimeNotAvail=Enigmime Serbitzua ez dago eskuragarri
gpgAgentNotStarted=Zure GnuPG %S bertsiorako behar den gpg-agent-a ezin izan da abiatu.
prefUntrusted=MESFIDAGARRIA
prefRevoked=EZEZTATUTAKO GAKOA
prefExpiredKey=IRAUNGITAKO GAKOA
prefExpired=IRAUNGITA
prefGood=%S-ren sinadura ona
prefBad=%S-ren sinadura OKERRA
failCancel=Errorea - Gakoaren harrera erabiltzaileak utzi egin du
failNoServer=Errorea - Gakoak jasotzeko gako-serbitzari iturubururik ez da jarri
failNoID=Errorea - Ez da jasoko den gakoaren ID-a jarri
failKeyExtract=Errorea - gakoaren aterapen komandoak huts egin du
notFirstBlock=Errorea - Lehendabiziko OpenPGP blokea ez da gako publiko batena
importKeyConfirm=Mezuan txertatuta dauden gakoak inportatu nahi al dituzu?
failKeyImport=Errorea - Gakoaren inportazioak huts egin du
fileWriteFailed=%S fitxategian idazterakoan huts egin du
successKeyImport=Gakoa(k) arazorik gabe inportatu da/dira
importKey=%S gako publikoa gako-serbitzaritik inportatu:
uploadKey=%S gakoa gako-serbitzarira bidali:
keyId=Gakoaren ID-a
keyAndSigDate=Gakoaren ID-a: 0x%S / Sinatuta: %S
keyFpr=Gakoaren hatz-marka: %S
noEmailProvided=Ez duzu e-posta helbiderik eman!
keyAlreadySigned=Gakoa dagoeneko sinatuta dago, ezin duzu bitan sinatu.
# Strings in enigmailEditKeyTrustDlg.xul
selKeyExpired=%S-n iraungita
createdHeader=Sortuta
atLeastOneKey=Ez da gakorik aukeratu! Gutxienez gako bat aukeratu behar duzu lehio hau adosteko
fewerKeysThanRecipients=Hartzaile baino gako gutxiago aukeratu dituzu. Ziru zaude zifratzeko gakoen zerrenda osorik dagoela?
userSel.button.goBack=Gako gehiago aukeratu
userSel.secretKeySel.title=OpenPGP Gako Sekretu Bat Aukeratu Zure Mezuak Sinatzekoa
# Strings in enigmailSignKeyDlg.js
# Strings in enigmailKeyManager.js
pgpMimeNote=OHARRA: PGP/MIME e-posta bezero kopuru txiki batek onartzen du! Windowsen bakarrik Mozilla/Thunderbird, Sylpheed, Pegasus eta Mulberry estandar hau honartzen dute; Lunux/UNIX eta Mac OS X-ko bezero hedatuenak onartzen dute. Ziur ez bazaude, %S aukera hautatu ezazu.
first=lehendabiziko
second=bigarren
# Strings in enigmailViewKeySigDlg.xul
encryptKeyHeader=Zifratzeko OpenPGP Gako Bat Aukeratu
identityName=Nortasuna: %S
# Strings in enigmailManageUidDlg.xul
noEncryption=Zifraketa aktibatu duzu, baina ez duzu gakorik aukeratu. %S-ri bidalitako e-postak zifratzeko, zure gako zerrendaren baliodun gako bat edo gehiago hautatu behar duzu. %S-rentzat zifraketa ezgaitu nahi al duzu?
noKeyToUse=(ezer - zifraketarik ez)
noEmptyRule=Araua agian ez dago hutsik! Mesedez, e-posta helbide bat sartu ezazu Araua eremuan.
invalidAddress=Sartutako e-posta(k) ez dira baliodunak. Ez zenituzke hartzaileen izenak sartu behar, bakarrik helbide elektronikoak. Adib.:\nBaliogabea: Izen Bat \nBalioduna: izen.bat@helbidea.net
noCurlyBrackets=Giltzek {} esanahi berezia daukate eta ez lirateke helbide elektronikoetan erabili behar. Arau honen baterapen portaera aldatu nahi baduzu, 'Araua erabili hartzaileak ...' aukera erabili ezazu.\nInformazio gehiago Laguntza botoian eskuragarri dago.
# Strings in enigmailKeyDetailsDlg.xul
never=Inoiz
always=Beti
possible=Posible
deleteRule=(Hurrengo hartzailea)
negateRule=Ez
# Strings in enigmailGenCardKey.xul
needOnline=Aukeratu duzun ekintza ez dago eskuragarri konexiorik gabe. Mesedez, konektatu zaitez eta berriz saiatu.
protocolNotSupported=Aukeratu duzun '%S://' protokoloa ez dago onartuta OpenPGP gakoak deskargatzeko.
gpgkeysDisabled=Agian 'extensions.enigmail.useGpgKeysTool' aukera gaitzea lagundu dezake.
noKeyserverConn=%S-n dagoen gako-serbitzarira ezin izan da konektatu.
keyDownloadFailed=Gakoa deskargatzerakoan huts egin du. Egoera mezua:\n%S
internalError=Barneko errore bat gertatu da. Gakoak ezin izan dira deskargatu edo inportatu.
noKeyFound=Sentitzen dut baina ezin izan da jarri dituzun bilaketa irizpideekin gakorik aurkitu.\nOhartu zaitez gakoaren ID-a "0x" aurrizkia eraman behar duela (adib.: 0xABCDEF12).
# Strings in enigmailSetCardPin.xul
gpgKeysFailed=Gako-sebritzarian gakoa bilatu edo deskargatzerakoan errore bat egon da: gpgkeys_%S ezin izan da exekutatu.
# Strings in enigRetrieveProgres.xul
setKeyTrustFailed=Jabearekiko konfidantza jartzerakoan huts egin du
# Strings in enigmailSetupWizard
signKeyFailed=Gakoaren sinadurak huts egin du
undefinedError=Errore ezezagun bat gertatu da.
alreadySigned.label= Oharra: %S gakoa dagoeneko aukeratutako gako sekretuarekin sinatuta dago.
# Strings in enigmailAddUidDlg.xul
keyMan.loadingKeys=Gakoak kargatzen, mesedez itxaron ...
keyValid.unknown=ezezaguna
keyValid.invalid=baliogabea
keyValid.disabled=ezgaituta
keyValid.revoked=ezeztatuta
keyValid.expired=iraungita
keyValid.noSubkey=ubgako baliogabea
keyValid.valid=balioduna
keyTrust.untrusted=konfidantzarik ez
keyTrust.marginal=txikia
keyTrust.full=konfidagarria
keyTrust.ultimate=azkenekoa
keyTrust.group=(taldea)
keyType.public=pub
keyType.publicAndSec=pub/seg
keyMan.enableKey=Gakoa Gaitu
keyMan.disableKey=Gakoa Ezgaitu
userAtt.photo=Erabiltzailearen ezaugarria (JPEG irudia)
asciiArmorFile=ASCII Fitxategi Babestuak (*.asc)
gnupgFile=GnuPG Fitxategiak
saveRevokeCertAs=Ezeztapen Ziurtagiria Sortu eta Gorde
revokeCertOK==Ezeztapen ziurtagiria sortu egin da. Zure gako publikoa ezgaitzeko erabili dezakezu, adibidez, zure gako sekretua galtzen baduzu.\n\nMesedez, toki seguru batean gorde daitekeen unitate batean gorde ezazu, CD edo flash memoria gailu batera adibidez. Norbaitek ziurtagiri hau lortuko balu zure gakoa baliogabetu lezake.
revokeCertFailed=Ezeztapen ziurtagiria ezin izan da sortu.
addUidOK=Erabiltzeile IDa gehitu egin da
addUidFailed=Erabiltzaile IDa gehitzerakoan errore bat egon da
noKeySelected=Aukeratutako eragiketa egiteko gutxienez gako bat aukeratu behar duzu
exportToFile=Gako Publikoa Fitxategi Batera Esportatu
exportSecretKey=Gako sekretua OpenPGP gako pribatuan fitxategian gorde nahi al duzu?
saveKeysOK=Gakoak gorde egin dira
saveKeysFailed=Gakoak ezin izan dira gorde
importKeysFailed=Gakoak ezin izan dira inportatu
enableKeyFailed=Gakoak ezin izan dira gaitu/ezgaitu
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Esportatutako gako publikoak
defaultPubSecKeyFilename=Esportatutako gako publiko eta pribatuak
noSecretKeys=Ez da gako sekreturik aurkitu.\n\nZure gakoa orain sortu nahi al duzu?
sendKeysOk=Gakoa(k) bidali egin dira
sendKeysFailed=Gakoak ezin izan dira bidali
receiveKeysOk=Gakoa(k) eguneratu dira
receiveKeysFailed=Gakoak ezin izan dira deskargatu
importFromClip=Arbeletik gakoak inportatu nahi al dituzu?
copyToClipbrdFailed=Aukeratutako gakoak ezin izan dira arbelera kopiatu.
copyToClipbrdOK=Gakoak arbelera kopiatu dira
deleteSecretKey=KONTUZ: Gako pribatu bat ezabatzera zoaz!\nZure gako pribatua ezabatzen baduzu, ezin izango dituzu gako horrentzat zifratu diren mezuak argitu, eta ezin izango duzu zure gakoa ezeztatu.\n\nZiur zaude BI gakoak, gako publikoa eta gako pribatua, ezabatu nahi al dituzula\n'%S'?
deleteMix=KONTUZ: Gako pribatuak ezabatzera zoaz!nZure gako pribatua ezabatzen baduzu, ezin izango dituzu gako horrentzat zifratu diren mezuak argitu.\n\nZiur zaude BI gakoak, aukeratutako gako publiko eta pribatua, ezabatu nahi dituzula?
deletePubKey=Gako publikoa ezabatu nahi al duzu\n'%S'?
deleteSelectedPubKey=Zure gako publikoak ezabatu nahi al dituzu?
deleteKeyFailed=Gakoa ezin izan da ezabatu.
revokeKeyAsk=Funtzio honek ezeztapen ziurtagiria sortu eta inportatzen du. Ziur zaude %S gakoa ezeztatu nahi duzula?
revokeKeyOk=Gakoa ezeztatu egin da. Gakoa gako-serbitzari batean eskuragarri badago, gomendatzenda berriz igotzea, horrela besteek ezeztapena ikusi ahal izango dute.
revokeKeyFailed=Gakoa ezin izan da ezeztatu.
refreshAllQuestion=Ez duzi gakorik aukeratu. Gako GUZTIAK freskatu nahi al dituzu?
refreshKey.warn=Kontuz. Gako kopuruaren arabera eta konexioaren abiaduraren arabera, gako guztiak freskatzea prozesu luzea izan daiteke!
keyMan.button.exportSecKey=Gako &Sekretuak Esportatu
keyMan.button.exportPubKey=Gako &Publikoak Esporatatu
keyMan.button.import=&Inportatu
keyMan.button.refreshAll=Gako Guztiak &Freskatu
keyMan.button.revokeKey=Gakoa &Ezeztatu
keylist.noOtherUids=Ez dauka beste nortasunik
keylist.hasOtherUids=Goitizena
keylist.noPhotos=Ez dago argazkirik
keylist.hasPhotos=Argazkiak
# strings in pref-enigmail.js
keySignatureLocal=Lokala
keySignatureExportable=Esportagarria
keySignatureNoKey=Gakorik ez
userIdNotFound=(Erabiltzaile ID-a ez da aurkitu)
signatureValid=Bai
retrieveKeyConfirm=Gakoa ez dago eskuragarri - gako-serbitzari batetik deskargatu nahi al duzu?
changePrimUidFailed=Erabiltzaile ID primarioa aldatzerakoan huts egin du
changePrimUidOK==Erabiltzaile ID primarioa aldatu egin da
deleteUidFailed=Erabiltzaile ID %S-a ezabatzerakoan huts egin du
deleteUidOK=Erabiltzaile ID %S-a ezabatu egin da
revokeUidFailed=Ezin izan da erabiltzaile ID %S-a ezeztatu
revokeUidOK=Erabiltzaile ID %S-a ezeztatu egin da. Zure gakoa gako-serbitzari batean eskuragarri badago, berriz igotzea gomendatzen da, horrela beste erabiltzaileek ezeztapena ikusi ahal izango dute.
revokeUidQuestion=Ziur zaude %S erabiltzaile ID-a ezeztatu nahi duzula?
deleteUidQuestion=Ziur zaude %S erabiltzaile ID-a ezabatu nahi duzula?\n\nOharra: zure gako publikoa gako-serbitzari batera igo baduzu, zure erabiltzaile ID-a ezabatzeak ez du ezer aldatuko. Kasu horretan 'Erabiltzaile ID-a Ezeztatu' erabili beharko zenuke.
keyTypePublic=gako publikoa
keyTypePrimary=gako primarioa
keyTypeSubkey=sub-gakoa
keyTypePair=gako bikotea
keyExpiryNever=inoiz
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keygen.started=Mesedez, itxaron gakoa sortzen ari den bitartean ....
keygen.completed=Gakoa sortu da. Gako berriaren ID berria: 0x%S
keygen.keyBackup=Gakoa %S bezela babeskopiatu da
keygen.passRequired=Mesedez, zure SmartCard-aren kanpoan babeskopia sortu nahi baduzu pasahitz bat sartu ezazu.
cardPin.dontMatch=Sartu duzun PIN-a ez dator bat; mesedez berriz sartu
cardPin.minLength=PIN-a gutxienez %S karaktere edo zenbaki izan behar ditu
cardPin.processFailed=PIN-a ezin izan da aldatu
keyserverProgress.refreshing=Gakoak freskatzen, mesedez itxaron...
keyserverProgress.uploading=Gakoak igotzen, mesedez itxaron...
keyserverTitle.refreshing=Gakoak Freskatu
keyserverTitle.uploading=Gakoa Igo
passphrase.min8keys=Zure pasahitzak gutxienez 8 karaktere izan beharko lituzke!
setupWizard.applyAllId=Nortasun guztientzat Enigmail aktibatu
setupWizard.applySomeId=Nortasun hauentzat Enigmail aktibatu: %S
setupWizard.applySingleId=Zure e-posta kontuarentzat Enigmail aktibatu
setupWizard.setAllPrefs=Gomendatutako aplikazioaren ezarpen guztiak aldatu
setupWizard.setSomePrefs=Aukeratu dituzun gomendatutako aplikazioaren ezarpenak aldatu
setupWizard.setNoPrefs=Ez aldatu aplikazioaren ezarpenik
setupWizard.createKey=OpenPGP 2048-biteko gako berria sortu, 5 urteko balioarekin
setupWizard.useKey=Esistitzen den OpenPGP %S gako ID-a erabili sinatzeko
setupWizard.encryptAll=Lehenetsita e-posta guztiak zifratu
setupWizard.encryptNone=Lehenetsita ez zifratu e-postarik
setupWizard.signAll=Lehenetsita e-posta guztiak sinatu
setupWizard.signNone=Lehenetsita ez sinatu e-postarik
setupWizard.reallyCancel=Ziur zaude Enigmail Instalatzaile Laguntzailea itxi nahi duzula?
addUidDlg.nameOrEmailError=Ezena eta helbide elektronikoa bete behar dituzu
addUidDlg.nameMinLengthError=Izenak gutxienez 5 karaktere izan behar ditu
addUidDlg.invalidEmailError=Baliodun helbide elektronikoa sartu behar duzu
addUidDlg.commentError=Parentesiak ez dira komentarioetan onartzen
enigmail/lang/eu/help/ 0000775 0000000 0000000 00000000000 12667016244 0015135 5 ustar 00root root 0000000 0000000 enigmail/lang/eu/help/compose.html 0000664 0000000 0000000 00000010462 12667016244 0017473 0 ustar 00root root 0000000 0000000
Enigmail Laguntza: Mezua Idatzi
Enigmail Laguntza
Enigmail erabiltzen mezuak idazterakoan
- Enigmail menua e-posta idazteko lehioan
-
- Mezua sinatu
- Mezua sinatuta bidaltzeko aukera gaitu/ezgaitu. Erabiltzaileari ohar bat aterako zaio sinadurak huts egiten badu.
- Mezua zifratu
-
Bidali aurretik hartzaile guztientzat mezua zifratzeko aukera gaitu/ezgaitu. Erabiltzaileari ohar bat aterako zaio zifraketak huts egiten badu.
Aukeraketa behar denean erakutsi Lehentasunak -> Gako Aukeraketa fitxan aktibatuta badago, gako zerrenda bat agertuko da hartzaile zerrendan dauden eta euren gako publikorik ez duzun hartzaileentzako.
Ez erakutsi inoiz OpenPGP gako aukeraketa lehioa Lehentasunak -> Gako Aukeraketa fitxan gaituta badago, eta hartzaile zerrendan dagoen hartzaile baten gako publikoa baldin ez baduzu, mezua zifratu gabe bidaliko da.
- Mezu honetan PGP/MIME erabili
-
Mezu honetarako PGP/MIME erabilera gaitu/ezgaitu.
Hartzaileek e-postak PGP/MIME formatuan irakurri ditzaketela baldin badakizu, erabili beharko zenuke.
Ezaugarri honek Lehentasuanak -> PGP/MIME fitxan dauden PGP/MIME erabiltzen utzi edo Beti PGP/MIME erabili aukerekin dependentzia dauka.
- Idazteko aukera lehenetsitak
-
- Sinatu/Zifratu Aukerak...: Kontu Ezarpenak -> OpenPGP Aukerak-rantz laisterbidea
- Bidalketa Aukerak...: Lehentasunak -> Bidali fitxarako laisterbidea
- Gako aukeraketa aukerak...: Lehentasunak -> Gako aukeraketa fitxarako laisterbidea.
- PGP/MIME aukerak...: Lehentasunak -> PGP/MIME fitxarako laisterbidea.
- Zifraketa desegin
-
Mezua bidaltzerakoan arazoren bat baldin badago, adibidez, POP serbitzariak eskaera onartzen ez badu, Enigmail-ek ez du horren berri izango eta zifratutako mezua Idatzi lehioan agertzen jarraituko du. Menuaren aukera hau hautatuz sinadura/zifraketa desegingo du, Idatzi lehioa hasieran zegoen testura bueltatuz
Behin-behineko konponketa bezala, aukera hau erabili daiteke zifratutako mezuak erantzuterakoan aipatutako testua argitzeko. Enigmailek automatikoki aipatutako mezua argitu beharko luke, baina horrek huts egiten badu, menu aukera hau erabili dezakezu hori behartzeko
- Gako publikoa txertatu
- Idatzi lehioan, kurtsorea dagoen tokian ASCII-babestua formatuan gako publiko bloke bat txertatzen du. Txertatuko den/diren gakoen helbide elektronikoak eskatuko zaizkizu. Modu honetan sartzen diren gakoak, heltzerakoan Enigmailek automatikoki detektatuko ditu. Txertatu eta gero, e-posta oraindik sinatu edo zifratu dezakezu. Horretaz gain, ez ezazu gako bloke bat baino gehiago sartu mezu bakoitzeko; helbide elektroniko bat baino gehiago jarri nahi baduzu, eskatzen dizkizunean komen edo espazioen bitartez bereizita sartu itzazu.
- Ezabatu gordetako pasahitza
- Katxeatu den pasahitza ezabatzen du. Erabilgarria da pasahitz baino gehiago dituzunean.
- Laguntza
- Laguntza informazio weborria (orri hau) erakusten du.
Laguntza gehiago nahi baduzu, Enigmail Laguntza weborrian aurkitu dezakezu.
enigmail/lang/eu/help/editRcptRule.html 0000664 0000000 0000000 00000012227 12667016244 0020435 0 ustar 00root root 0000000 0000000
Enigmail Laguntza: OpenPGP Araua Editatu
Enigmail Laguntza
Enigmail Arau Editorea Erabiltzen: OpenPGP Araua Editatu
Arau editorean, hartzaile bakoitzaren lehenetsitako aukerak jarri ditzakezu zifraketa, sinadura, PGP/MIME eta ze OpenPGP gakoak erabiliko diren arloetan. Lehio honetan, hartzaile bakar batentzat arauak sartu ditzakezu eta, baita ere, antzeko ezaugarriak dituzten hartzaileentzat..
- OpenPGP Arauak honetarako ezarri
- Hartzaileen helbide elektronikoak izango ditu (izenik gabe, hau da, helbidea bakarrik norbait@helbidea.domeinua bezala). Helbide elektroniko bat baino gehiago sartu dezakezu hutsuneekin tartekatuz. Hemen sartzen diren helbideak domeinuaren zatiarekin bakarrik sartu daitezke, horrela domeniu horretako edozein helbide elektronikoarekin bat egingo du, adibidez @helbidea.domeinua domeinua norbait@helbidea.domeinua, edonor@helbidea.domeinua, eta abarrekin bat etorriko da.
- Araua aplikatu hartzaileak...
- Hoek helbide elektronikoen bateratzea aldatuko du. Helbide bat baino gehiago sartu badira, ezaugarri hau guztietara aplikatuko dira. Azpian dauden adibideak izena@helbidea.domeinua erabiliko dute goian dagoen OpenPGP Arauak eremuan.
- Zehazki bada: ezaugarri honekin araua bakarrik aplikatuko da izena@helbidea.domeinua helbidearekin (zehazki, letra larriak eta xeheak ezberdindu gabe).
- Badauka: ezaugarri honekin, testu hori daukan edozein helbiderekin bateratuko da, adibidez abizena_izena@helbidea.domeinua edo izena@helbidea.domeinua.net
- Honekin hasten da: ezaugarri honekin, testu honekin hasten den edozein helbiderekin bateratuko da, adibidez izena@helbidea.domeinua.net, izena@helbidea.domeinua-izena.com.
- Honekin bukatzen da da:ezaugarri honekin, testu honekin bukatzen den edozein helbiderekin bateratuko da, adibidez abizena_izena@helbidea.domeinua , ezizena@helbidea.domeinua.
- Bat datozen helbideekin hurrengo arauarekin jarraitu
- Funtzio honek arau bat definitzen uzten dizu Hurrengo OpenPGP gakoak erabili: eremuan GakoID-rik zehaztu behar izan gabe, horrela bidaltzeko momentuan helbide elektronikoa erabiliko da gakoa bilatzeko. Horretaz gain, helbide berdinentzat arau gehiago badaude, hauek ere prozesatuko dira.
- Ez bilatu arau gehiago bateratutako helbideentzat
- Aukera hau gaitzen baduzu, arau honekin bateratzen bada, prozesamenduak ez ditu arau gehiago bilatuko helbide honentzako; hau da, hurrengo hartzailearekin hasiko da.
- Hurrengo OpenPGP gakoak erabili:
- Gakoa(k) Aukeratu.. botoia erabili ezazu zifratzeko erabiliko diren hartzailearen gakoak aukeratzeko. Goiko ekintzaren moduan, arau honekin baterantzen diren helbideek ez dute prozesua jarraituko.
- Sinatzeko Lehenetsita
-
Mezuaren sinadura gaitu edo ezgaitu. Honek mezua idazteko lehioan jarri duzuna erabili edo jaramonik ez egitea zehazten du. Balioak hauek izan daitezke:
- Inoiz: sinadura ezgaitu, nahiz eta mezua idazteko lehioan bestela esanda (beste balioei ez die jaramonik egiten)
- Bai, Mezua idazteko lehioan aukeratzen bada: sinadura mezua idazteko lehioan jartzen duen bezela egin
- Beti: sinadura gaitu, mezua idazteko lehioan aukera hori gaituta egonez arren
Sinadura ezarpen hauek bateratzen diren arau guztietara aplikatuko da. Arau batek sinadura ezgatzen badu, mezua ez da sinatuko, nahiz eta beste arau batzuk Beti esaten duten.
- Zifraketa
- Mezuaren zifraketa gaitu edo ezgaitu. Jarri daitezken ezaugarriak eta euren esanahia sinaduran daudenen berdinak dira.
- PGP/MIME
- PGP/MIME (RFC 3156) mezu kodifikazioa gaitu edo ezgaitu. PGP/MIME ezgaituta badago, mezuak "txertatutako PGP" erabiliz kodifikatuko dira. Jarri daitezken ezaugarriak eta euren esanahia sinaduran daudenen berdinak dira.
Arauak OpenPGP Arau Editorean dagoen zerrendaren ordenean prozesatuko dira. Hartzaile batek arau batekin bat datorrenean eta arau horrek OpenPGP gako ID-a badauka, gako ID hori erabiltzeaz gain, hartzailea ez da gehiago kontutan izango ondorengo arauak prozesatzerakoan.
Laguntza gehiago nahi baduzu Enigmail Hartzaile Bakoitzeko Ezaugarriak weborrian aurkitu dezakezu
enigmail/lang/eu/help/initError.html 0000664 0000000 0000000 00000004645 12667016244 0020011 0 ustar 00root root 0000000 0000000
Enigmail Laguntza: Nola Konpondu OpenPGP Hasieratzerakoan Dauden Arazoak
Enigmail Laguntza
Nola Konpondu OpenPGP Hasieratzerakoan Dauden Arazoak
Arrazoi asko egon daitezke OpenPGP hasieratzerakoan errorea emateko. Ohikoenak azpian agertzen dira; informazio gehiago nahi baduzu, Enigmail Laguntza weborrian aurkitu dezakezu.
- GnuPG ezom ozam da aurkitu
-
OpenPG funtzionatu dezan GnuPG tresna instalatuta egon behar du.
GnuPG ezin izan bada aurkitu, lehendabizi gpg.exe (Windows-en; gpg beste plataformetan) exekutagarria zure ordenagailuan instalatuta dagoela ziurtatu zaitez.
GnuPG instalatuta badago eta OpenPGP-k ezn badu aurkitu, OpenPGP lehentasunetan (menua OpenPGP > Lehentasunak) GnuPG-ren helbidea eskuz jarri beharko diozu.
- Enigmime hasieratzerakoan huts egin du
-
OpenPGP bakarrik funtzionatuko du Thunderbird edo SeaMonkey eraiki ziren ingurune berdinean eraki bada. Horrek esan nahi du, Enigmail-en bertsio ofiziala bakarrik mozilla.org argitaratutako Thunderbird edo SeaMonkey bertsio ofizialekin bakarrik erabili daitekeela.
Beste jatorri bat daukan Thunderbird edo SeaMonkey erabiltzen baduzu (adibidez, zure Linux banaketarekin datorrena), edo zuk zeuk aplikazioa eraiki baduzu, jatorri berdinarekin eraiki den Enigmail bertsio bat erabili beharko zenuke, edo zuk zeuk Enigmail eraiki. Enigmail erakitzeko Iturburu Kodea atalera jo ezazu Enigmail weborrian. Mesedez, ez bidali akats txosten bat arazo honekin, konponketarik ez baitauka.
Informazio gehiago nahi baduzu Enigmail Laguntza weborrian aurkitu dezakezu.
enigmail/lang/eu/help/messenger.html 0000664 0000000 0000000 00000010531 12667016244 0020013 0 ustar 00root root 0000000 0000000
Enigmail Laguntza: Mezuak Irakurri
Enigmail Laguntza
Enigmail erabili mezuak irakurtzeko
- Posta lehioan dagoen Argitu botoia
- Botoi hau gauza askotarako erabili daiteke: argitu, egiaztatu edo gako publikoak inportatzeko. Normalean, argitzea/egiaztatzea automatikoki egiten da, baina aukera hau ezgaitu daiteke lehentasun baten bitartez. Honek huts egiten badu, normalean Enigmailen egoera-lerroan mezu motz bat agertuko da. Argitu botoian klik eginez, xehetasun gehiago dituen errore mezua ikusi ahal izango duzu, GnuPG komandoaren irteeera barne.
- Idazluma eta Giltza ikonoak Mezuaren Goiburuan
- Idazluma eta Giltza ikonoek mezua sinatuta edo/eta zifratuta dagoela erakusten dute, baita sinadura ona bada ere, hau da, mezua sinatu zenetik aldatu baldin ez bada. Mezua aldatu baldin bada, Idazluma ikonoa Idazluma Apurtu batera aldatuko da sinadura oker dagoela adierazteko. Idazluma eta giltza ikonoetan eskubiko klik eginez hurrengo aukerak dituen menua agertuko da:
- OpenPGP Sekurtasun informazioa: GnuPG-k mezuarentzat atera duen egoera erakutsiko dizu.
- OpenPGP Sekurtasun informazioa kopiatu: GnuPG-k atera duen egorea arbelera kopiatuko du; adibidez, erantzun batean itxasteko e.a.
- OpenPGP argazki ID-a ikusi: mezua bidali zuen pertsonaren Argazki ID-a erakutsiko dizu, euren argazkia gako publikoaren barruan txertatu baldin badu.(Aukera hau gaituta agertuko da bakarrik beraren gakoan Argazki ID-a txertatuta baldin badago.)
- S/MIME Sekurtasun informazioa: mezuaren S/MIME sekurtasun informazioa erakutsiko dizu.
Zure gpg.conf fitxategian gako-serbitzari-aukerak gakoak-auto-inportatu gaituta ez baldin baduzu eta sinatutako edo zifratutako mezu bat irakurtzen baduzu, goiburuan dagoen Idazluma ikonoak Galdera ikur bat izango du, eta goiburuan dagoen Enigmail egoera-lerroak hurrengoa esango du: Mezuaren zati bat sinatuta dago; xehetasunentzako idazluma ikonoak klik egin ezazu; horretaz gain mezu panelean OpenPGP mezu bolkearen adierazleak eta sinadura blokeak erakutsiko ditu.
Hau ere ikusi dezakezu zure gpg.conf fitxategian gako-serbitzari-aukerak gakoak-auto-inportatu gaituta gaituta badaukazu eta mezuaren OpenPGP gakoa lehenetsitako gako-serbitzarian eskuragarri ez baldin badago.
Idazluma eta Galdera ikurra ikonoan klik egiten baduzu, gakoa zure gako giltzatakoan ez dagoela abisatzeko lehioa agertuko da. Ados sakatuz, beste lehio bat erakutsiko da, honetan gako-zerbitzari zerrenda bat agertuko da eta bertan igorlearen gako publikoa deskargatzeko serbitzaria aukeratu ahal izango duzu.
Erabiliko diren gako-serbitzaren zerrenda konfiguratzeko, Enigmail -> Lehentasunak -> Oinarrizkoak fitxara joan zaitez eta gako-serbitzarien helbideak Gako-serbitzaria(k): eremuan sartu itzazu koma bitartez bananduz. Zerrendan dagoen lehendabiziko gako-serbitzaria lehenetsitakoa bezela erabiliko da
- Zifratutako eranskikak ireki / Erantsitako OpenPGP gakoak inportatu
- *.pgp, *.asc eta *.gpg luzapena duten eranskinak Enigmailek bereziak bezala identifikatuko ditu eta tratamendu berezia emango die. Eranskin hauetan eskubiko klik egiten baduzu, laister-menuan bi sarrera berezi agertuko dira: Argitu eta Ireki eta Argitu eta Gorde. Bi menu sarrera hauek erabili itzazu eranskinak ireki edo gorde baino lehen argitu nahi badituzu. Eranskin bat OpenPGP gako fitxategi bat bezela antzematen badu, zure giltzatakoan gakoak inportatzeko aukera emango dizu.
Laguntza gehiago nahi baldin baduzu Enigmail Laguntza weborrian aurkitu dezakezu.
enigmail/lang/eu/help/rulesEditor.html 0000664 0000000 0000000 00000006161 12667016244 0020330 0 ustar 00root root 0000000 0000000
Enigmail Laguntza: Arau Editorea
Enigmail Laguntza
Enigmail Arau Editorea Erabiltzen
Arau editorean, hartzaile bakoitzaren lehentasunak jarri ditzakezu zifraketa, sinadura eta PGP/MIME gaitzeko, baita ze OpenPGP gako erabiliko diren. Arau bakotzak lerro batean agertzen diren 5 eremu dira:
- E-posta
- Hartzailea:, Cc: eta Bcc: eremuekin bateratuko den helbide elektronikoa(k). Bateratzea testu zatietan lan egiten du (Xehetasun geiago Araua Editatu lehioan aurkitu daitezke)
- OpenPGP Gakoa(s)
- hartzailearentzat erabiliko diren OpenPGP gako ID zerrenda
- Sinatu
- mezuaren sinadura gaitu edo ezgaitu. Honek mezua idazteko lehioan jarrtzen diozunaren arabera edo haiei jaramonik egin gabe lan egin dezake. Balioak honakoak dira:
- Inoiz: sinadura ezgaitu, mezua idazteko lehioan gaituta egon arren (beste balioei ez die jaramonik egiten)
- Posible: sinadura mezua idazteko lehioan agertzen denaren arabera egingo da
- Beti: sinaduar gaitu, mezua idazteko lehioan aukera hori gaituta egon ez arren
Sinadura ezarpen hauek bateratzen diren arau guztiekin aplikatzen da. Arau batek sinadura ezgaitzen badu, mezua ez da sinatuko, nahiz eta beste arauek Beti esaten duten.
- Zifratu
- mezuaren zifraketa gaitu edo ezgaitu. Onartutako ezarpenak eta euren esanahia sinadurarenak bezalakoak dira.
- PGP/MIME
- PGP/MIME (RFC 3156) mezu kodifikazioaren erabilera gaitu edo ezgaitu. PGP/MIME ezgaituta badago, mezuak "txertatutako PGP" erabiliz erabiliko dira. Onartutako ezarpenak eta euren esanahia sinadurarenak bezalakoak dira.
Arauak zerrendan agertzen diren ordenean prozesatuko dira. Hartzaile batek arau batekin bat datorrenean eta arau horrek OpenPGP gako ID-a badauka, gako ID hori erabiltzeaz gain, hartzailea ez da gehiago kontutan izango ondorengo arauak prozesatzerakoan.
Oharra: Arau editorea oraindik bukatu gabe dago. Arau aurreratuagoak egin daitezke arau fitxategia zuzenean editatuz (arau hauek ez lirateke inoiz gehiago arau editorearekin editatu behar).Informazio gehiago nahi baduzu arau fitxategia zuzenean editatzeari buruz Enigmail weborrian aurkitu dezakezu
Laguntza gehiago nahi baduzu Enigmail Laguntza weborrian aurkitu dezakezu
enigmail/lang/eu/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020471 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/fi/ 0000775 0000000 0000000 00000000000 12667016244 0014172 5 ustar 00root root 0000000 0000000 enigmail/lang/fi/am-enigprefs.properties 0000664 0000000 0000000 00000000125 12667016244 0020663 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP-turvallisuus
enigmail/lang/fi/enigmail.dtd 0000664 0000000 0000000 00000076512 12667016244 0016467 0 ustar 00root root 0000000 0000000
Huom: Avaimen luominen voi kestää jopa useita minuutteja. Älä sulje ohjelmaa kun avainta luodaan. Tietokoneen aktiivinen käyttäminen avainta luotaessa lisää avaimen luontiin tarvittavaa satunnaisuutta ja siten nopeuttaa luontiprosessia. Enigmail ilmoittaa kun avain on valmis.">
" on virheellinen">
Huom: Avaimen luominen voi kestää jopa useita minuutteja. Älä sulje ohjelmaa kun avainta luodaan. Enigmail ilmoittaa kun avain on valmis.">
Huom.: Enigmail varmentaa jokaisen sähköpostin
allekirjoitukset riippumatta tilistä tai käyttäjätunnuksesta">
Kiitos Enigmail-tiimin puolesta.">
enigmail/lang/fi/enigmail.properties 0000664 0000000 0000000 00000052357 12667016244 0020111 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail-hälytys
enigConfirm=Enigmail-vahvistus
enigError=Enigmail-virhe
enigPrompt=Enigmail-kehote
dlgYes=Kyllä
dlgNo=Ei
dlgKeepSetting=Muista vastaukseni, äläkä kysy uudestaan
dlgNoPrompt=Älä näytä tätä huomioikkunaa uudestaan
dlg.button.delete=&Poista
dlg.button.cancel=&Peruuta
dlg.button.close=&Sulje
dlg.button.continue=Jatka
dlg.button.skip=&Ohita
dlg.button.view=&Näytä
repeatPrefix=\n\nTämä hälytys toistetaan %S
repeatSuffixSingular=kerran.
repeatSuffixPlural=kertaa.
noRepeat=\n\nTämä hälytys toistetaan vasta Enigmailin seuraavan päivityksen yhteydessä.
pgpNotSupported=Käytät ilmeisesti PGP 6.x:ä Enigmail:n kanssa.\n\nPGP 6.x:n toiminnassa on kuitenkin ongelmia, joiden takia Enigmail ei toiminut kunnolla ja siksi Enigmail ei enää tue PGP 6.x:ä. Käytä PGP:n sijaan GnuPG:tä.\n\nTarvittaessa Enigmailin kotisivujen ohjesivulta löytyy ohjeita GnuPG:n siirtymisestä
passphraseCleared=Salasanamuisti tyhjennettiin.
noPhotoAvailable=Ei kuvaa
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Kuvan polku '%S' ei ole luettavissa
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Enigmailin uudessa versiossa on olennaisia muutoksia asetuksissa ja vaihtoehdoissa. Pyrimme siirtämään vanhat asetukset uuteen versioon. Emme kuitenkaan voi varmistaa kaikkia tapauksia automaattisesti. Ole hyvä, tarkista eri asetukset ja vaihtoehdot asennuksen jälkeen.
enigmailCommon.checkPreferences=Tarkista asetukset..
usingVersion=Enigmailin versio %S käynnissä
usingAgent=Salaamiseen ja salauksen purkamiseen käytetään ohjelman %S tiedostoa %S
agentError=VIRHE: Enigmime-palveluun ei saatu yhteyttä
accessError=Virhe käytettäessä Enigmail-palvelua
onlyGPG=Avaimen luominen onnistuu vain GnuPG-ohjelman kanssa (Ei PGP:n kanssa).
keygenComplete=Avain luotu! Käyttäjätieto <%S> käyttää avainta viestien allekirjoittamiseen.
revokeCertRecommended=Mitätöintivarmenteen luominen avaimelle on suositeltua. Avaimen voi mitätöidä sillä jos avain esimerkiksi hukkuu tai joutuu vääriin käsiin. Luodaanko mitätöintivarmenne?
keyMan.button.generateCert=&Luo sertifikaatti
genCompleteNoSign=Avain luotu!
genGoing=Avaimen luonti on jo käynnissä.
passNoMatch=Salasanat eivät täsmää. Kirjoita ne uudelleen
passCheckBox=Valitse, jos avaimelle ei aseteta salasanaa
passUserName=Kirjoita käyttäjätiedoista puuttuva käyttäjätunnus
passSpaceProblem=Teknisistä syistä, tunnuslauseen voi aloittaa tai päättää välilyöntiin
changePassFailed=Salasanan vaihtaminen epäonnistui.
keyConfirm=Luodaanko julkinen ja salain avain käyttäjälle "%S"?
keyMan.button.generateKey=&Luo avain
keyAbort=Peruutetaanko avaimen luonti?
keyMan.button.generateKeyAbort=&Keskeytä avainten luonti
keyMan.button.generateKeyContinue=&Jatka varmenteen luontia
expiryTooLong=Avaimen vanhenemisaika ei voi ylittää 100:a vuotta.
expiryTooLongShorter=Et pysty määrittämään avaimen vanhenenemista yli 90 vuoden päähän.
expiryTooShort=Avain ei voi vanheta alle päivässä.
keyGenFailed=Avaimen luonti epäonnistui. Tarkista yksityiskohdat Enigmail-konsolin viesteistä (Valitse Enigmail > Enigmail:n virheenjäljitys).
setKeyExpirationDateFailed=Päättymispäivää ei ole muutettu
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail-turvallisuustietoja\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Tämän viestin liitteitä ei ole allekirjoitettu tai salattu*\n\n
possiblyPgpMime=Viesti on mahdollisesti PGP/MIME-salattu tai -allekirjoitettu. Napsauta Pura-painiketta varmistaaksesi
noDecrypted=Ei purettua viestiä, jota tallentaa.\nKäytä Tiedosto-valikon Tallenna-komentoa
noMessage=Ei tallennettavaa viestiä.
useButton=Napsauta Pura-painiketta purkaaksesi viestin salauksen
saveHeader=Enigmail: Tallenna purettu viesti
saveAttachmentHeader=Enigmail: Tallenna purettu liitetiedosto
noTempDir=Väliaikaista tallennuskansiota ei löytynyt\nAseta TEMP-ympäristömuuttuja
attachmentPgpKey=Avattava liite "%S" vaikuttaa OpenPGP-avaintiedostolta.\n\nTuo avaimet napsauttamalla Kyllä tai napsauta Ei näyttääksesi tiedoston sisällön
beginPgpPart=********* *SALATTU tai ALLEKIRJOITETTU OSA ALKAA* *********
endPgpPart=********** *SALATTU tai ALLEKIRJOITETTU OSA LOPPUU* **********
notePartEncrypted=Enigmail: *Osia viestistä EI OLE allekirjoitettu tai salattu*
noteCutMessage=Enigmail: *Viesti on jaettu useaan lohkoon -- Salauksen purku tai allekirjoituksen varmistus peruutettiin*
decryptOkNoSig=Varoitus\n\nSalauksen purkaminen onnistui, mutta allekirjoitus ei varmistunut oikein
msgOvl.button.contAnyway=&Jatka
signature.verifyFailed=Allekirjoituksen liitetiedostoja %S ei voitu vahvistaa
keysToExport=Valitse viestiin liitettävät OpenPGP-avaimet
keysToUse=Valitse OpenPGP-avaimet osoitesuotimelle %S
pubKey=Käyttäjätunnuksen %S julkinen avain\n
windowLocked=Viestin kirjoitusikkuna on lukittu. Viestin lähetys peruttu.
sendUnencrypted=Enigmailin alustus epäonnistui.\nLähetetäänkö viesti salaamattomana?
composeSpecifyEmail=Anna ensisijainen sähköpostiosoitteesi, jonka perusteella lähtevien viestien allekirjoitusavain valitaan.\nJos et anna sähköpostiosoitetta, jokaisen viestin allekirjoitusavain valitaan viestin lähettäjäkentän perusteella.
sendWithShownBcc=Salaa normaalisti
sendingNews=Salatun viestin lähetys peruttiin.\n\nTätä viestiä ei voi salata koska yksi vastaanottajista on keskusteluryhmä. Lähetä viesti uudestaan salaamattomana.
sendToNewsWarning=Varoitus: olet aikeissa lähettää salattua sähköpostia uutisryhmään.\n\nTämä ei ole suotavaa. Se on järkevää ainoastaan silloin, kun kaikki ryhmän jäsenet voivat purkaa viestin. Eli viesti on salattu ja avain on kaikilla ryhmään osallistujilla. Lähetä tämä viesti vain, jos tiedät tarkalleen mitä olet tekemässä.\n\nHaluatko jatkaa?
hasHTML=HTML-postin varoitus:\nViesti saattaa sisältää HTML-koodia, jonka vuoksi viestin salaus tai allekirjoitus voi epäonnistua. Voit vastaisuudessa lähettää allekirjoitettuja viestejä painamalla Shift-näppäintä napsauttaessasi Kirjoita viesti tai Vastaa viestiin -painiketta.\nJos allekirjoitat viestisi oletuksena, sinun kannattaa ottaa HTML-muotoisten viestien lähetys pois päältä tiliasetuksista.
strippingHTML=Viestissä on HTML-muotoiluja, jotka katoavat kun viesti muunnetaan allekirjoituksen tai salauksen vuoksi pelkäksi tekstiksi. Jatketaanko muuntoa?
msgCompose.button.sendAnyway=&Lähetä viesti joka tapauksessa
attachWarning=Tämän viestin liitteet ovat linkitettyjä ja niitä ei voi salata. Salataksesi tiedostot, tallenna ne ensin kiintolevyllesi ja liitä ne sitten viestiin. Jatketaanko kaikesta huolimatta?
quotedPrintableWarn=Lähtevien viestien "quoted printable"-koodaus on käytössä. Koodauksen takia viestiesi allekirjoitus ja salaus voidaan tulkita virheelliseksi.\nOtetaanko "quoted-printable"-koodaus pois käytöstä?
minimalLineWrapping=Viestit rivittyvät tällä hetkellä %S merkin leveyteen. Jotta viestejä voi salata tai allekirjoittaa, merkkejä täytyy mahtua riville vähintään 68.\nMuutetaanko riville mahtuvien merkkien määrä 68:ksi?
warning=Varoitus
signIconClicked=Olet muokannut allekirjoitusta. Tämän takia kirjoittaessasi tätä viestiä, allekirjoittaminen ja viestin salaaminen eivät enää riipu toisistaan.
pgpMime_sMime.dlg.pgpMime.button=Käytä & PGP / MIME
pgpMime_sMime.dlg.sMime.button=Käytä &S/MIME
msgCompose.toolbarTxt.signAndEncrypt=Tämä viesti tullaan allekirjoittamaan ja salataan
# note: should end with double newline:
sendAborted=Viestin lähetys peruttiin.\n\n
statPGPMIME=PGP/MIME
statSigned=ALLEKIRJOITETTU
statEncrypted=SALATTU
statPlain=SELKOKIELINEN
offlineSave=Tallennetaanko %S viesti vastaanottajalle %S lähtevien viestien kansioon?
onlineSend=Lähetä %S viesti vastaanottajalle %S?
encryptKeysNote=Huom.: viesti on salattu seuraavilla käyttäjätunnuksilla / avaimilla: %S
signFailed=Enigmail-virhe. Salaus tai allekirjoitus epäonnistui. Lähetetäänkö viesti salaamatta?
msgCompose.button.sendUnencrypted=Lähetä salaamaton viesti
recipientsSelectionHdr=Valitse vastaanottajat joiden viestit salataan
configureNow=Valittua käyttäjää ei ole asetettu käyttämään Enigmail-turvallisuutta. Muokataanko asetuksia nyt?
# should not be used anymore:
encryptYes=Viesti salataan
encryptNo=Viestiä ei salata
# should not be used anymore:
signYes=Viesti allekirjoitetaan
signNo=Viestiä ei allekirjoiteta
rulesConflict=Vastaanottajakohtaisissa säännöissä ristiriitoja\n%S\n\nLähetetäänkö viesti näillä asetuksilla?
msgCompose.button.configure=&Määritä
msgCompose.button.send=&Lähetä viesti
msgCompose.button.save=&Talllenna viesti
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Allekirjoituksen varmistamiseen tarvitaan osoitteen %S julkinen avain
clickDecrypt=. Napsauta Salauksen purkamis -painiketta
clickDecryptRetry=. Napsauta Salauksen purkamis -painiketta yrittääksesi uudestaan
msgPart=Osa viestistä %S
msgSigned=allekirjoitettu
msgEncrypted=salattu
msgSignedAndEnc=allekirjoitettu ja salattu
unverifiedSig=Varmistamaton allekirjoitus
incompleteDecrypt=Salauksen purkaminen ei ole täydellinen
needKey=Virhe - salauksen purkaminen vaatii salaisen avaimen
failedDecrypt=Virhe - salauksen purkaminen epäonnistui
badPhrase=Virhe - väärä salasana
failedDecryptVerify=Virhe - salauksen purkaminen tai viestin varmistus epäonnistui
viewInfo=. Näytä > Viestin turvallisuustiedot lukeaksesi lisätietoja
decryptedMsg=Viesti, jonka salaus on purettu
locateGpg=Osoita GnuPG-ohjelman sijainti
invalidGpgPath=GnuPG:tä ei voida käynnistää annetusta sijainnista. Enigmail on pois käytöstä kunnes GnuPG:n sijainti muutetaan tai ohjelma käynnistetään uudestaan.
warningsAreReset=Kaikki varoitusikkuna-asetukset on nollattu.
prefs.gpgFound=GnuPG:tä ei löytynyt sijainnista %S
prefs.gpgNotFound=GnuPG:tä ei löytynyt
prefs.warnAskNever=Varoitus: Asetuksen seurauksena sähköpostiviestit lähetetään salaamatta siitä erikseen ilmoittamatta jos jollekin vastaanottajista ei löydy avainta!
enterAdminPin=Kirjoita älykorttisi ADMIN PIN-koodi
enterCardPin=Kirjoita älykorttisi PIN-koodi
notInit=Virhe - Enigmail-palvelua ei ole vielä alustettu
badCommand=Virhe - salauskomento epäonnistui
cmdLine=-komento ja -tuloste:
notRequired=Virhe - salausta ei vaadita
notComplete=Virhe - avaimen luonti ei ole vielä valmis
invalidEmail=Virhe - virheellisiä sähköpostiosoitteita
noPassphrase=Virhe - salasanaa ei ole annettu
noPGPblock=Virhe - Ei löydetty kelvollista koodattua OpenPGP-dataosiota
unverifiedReply=Viestin sisennettyä osaa (vastausta) on luultavasti muokattu
sigMismatch=Virhe - Allekirjoitus ei ole täsmää
cantImport=Julkisen avaimen tuonnissa tapahtui virhe\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Älykorttia %S löydetty, lukija ei osaa käsitellä viestiä\nPyydän lisäämään älykortti %S, toista toimenpide.
sc.insertCard=Toiminta vaatii älykorttin %S.\nOle hyvä ja lisää vaadittava älykortti, toista toimenpide.
sc.noCardAvailable=Älykorttia ei löydetty lukijasta.\nAseta älykortti kortinlukijaan ja yritä uudestaan
sc.noReaderAvailable=Älykortinlukijaan ei saatu yhteyttä\nKiinnitä älykortinlukija tietokoneeseen, aseta kortti lukijaan ja yritä uudestaan
gpgNotFound=GnuPG-ohjelmaa %S ei löytynyt.\nTarkista, että GnuPG:n ohjelmatiedoston kansio on asetettu oikein Enigmail:n asetuksissa
gpgNotInPath=GnuPG-ohjelmaa ei löytynyt PATH-muuttujan kansioista.\\Tarkista, että GnuPG:n ohjelmakansio on asetettu oikein Enigmail:n asetuksissa
gpgAgentNotStarted=GnuPG versiosi %S tarvitseman gpg-agentin käynnistäminen ei onnistunut.
prefUntrusted=EI LUOTETTU
prefRevoked=MITÄTÖITY AVAIN
prefExpiredKey=VANHENTUNUT AVAIN
prefExpired=VANHENTUNUT
prefGood=Hyvä allekirjoitus lähettäjältä %S
prefBad=VääRä allekirjoitus lähettäjältä %S
failCancel=Virhe - Avaimen nouto peruutettiin
failNoServer=Virhe - Ei annettu avainpalvelinta, jolta avain noudetaan
failNoID=Virhe - Ei annettu käyttäjätunnusta, jolle avain noudetaan
failKeyExtract=Virhe - avaimen tuonti viestistä epäonnistui
notFirstBlock=Virhe - Ensimmäinen OpenPGP-osio ei ole julkinen avain
importKeyConfirm=Tuodaanko viestiin sisällytetyt avaimet?
failKeyImport=Virhe - avainten tuonti epäonnistui
fileWriteFailed=Kirjoitus tiedostoon %S epäonnistui
importKey=Tuo julkinen avain %S avainpalvelimelta:
uploadKey=Lähetetäänkö julkinen avain %S avainpalvelimelle:
keyId=Avaintunnus
keyAndSigDate=Avaintunnus: 0x%S / Allekirjoitettu: %S
keyFpr=Avaimen sormenjälki: %S
noEmailProvided=Sähköpostiosoitetta ei ole asetettu.
keyAlreadySigned=Avain on jo kertaalleen allekirjoitettu.
selKeyExpired=vanhenee %S
createdHeader=Luotu
atLeastOneKey=Avainta ei ole valittu! Valitse ainakin yksi avain ennen kuin suljet ikkunan
userSel.button.goBack=Valitse lisää avaimia
userSel.secretKeySel.title=Valitse salainen OpenPGP avain jolla allekirjoitat viestit
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Lähetä myöhemmin
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=Huom.: Kaikki sähköpostiohjelmat eivät tue PGP/MIME-standardia. Windowsilla sitä tiettävästi tukee Mozilla/Thunderbird, Sylpheed, Pegasus ja Mulberry. Linuxilla, muilla Unixeilla ja Mac OS X:llä useimmat sähköpostiohjelmat tukevat sitä. Jos et ole varma, valitse %S vaihtoehto.
first=ensimmäinen
second=toinen
# Strings used in am-enigprefs.js
encryptKeyHeader=Valitse salaukseen käytettävä OpenPGP-avain
identityName=Käyttäjätiedot: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Salaus on otettu käyttöön, mutta yhtäkään avainta ei ole valittu. Salataksesi osoitteeseen %S lähetettävät viestit, valitse avainlistasta yksi tai useampi voimassaoleva avaimesi. Poistetaanko salaus käytöstä osoitteelle %S?
noKeyToUse=(ei avainta - ei salausta)
noEmptyRule=Sääntö täytyy antaa. Kirjoita sääntökenttään sähköpostiosoite.
invalidAddress=Antamasi sähköpostiosoitteet ovat virheellisesti muotoiltuja. Anna ainoastaan vastaanottajien sähköpostiosoitteet, älä heidän nimiään. Esimerkki:\nVäärin: Joku Nimi \nOikein: joku.nimi@osoite.fi
noCurlyBrackets=Aaltosulkeilla {} on erikoismerkitys ja niitä ei tule käyttää sähköpostiosoitteissa. Jos haluat muuttaa säännön täsmäysperusteita, käytä "Sääntö pätee jos ylläoleva ..." -kenttää.\nLue lisätietoja ohjeesta.
# Strings used in enigmailRulesEditor.js
never=Ei koskaan
always=Aina
possible=Mahdollisesti
deleteRule=Poistetaanko valittu sääntö?
nextRcpt=(Seuraava vastaanottaja)
negateRule=Ei
# Strings used in enigmailSearchKey.js
needOnline=Valitsemasi toiminto ei ole käytettävissä ilman verkkoyhteyttä. Siirry verkkoyhteystilaan ja yritä uudelleen.
protocolNotSupported=OpenPGP-avaimia ei voi noutaa käyttäen antamaasi yhteyskäytäntöä "%S://".
gpgkeysDisabled=Asetuksen "extensions.enigmail.useGpgKeysTool" ottaminen käyttöön voisi olla avuksi.
noKeyserverConn=Yhteys avainpalvelimeen %S epäonnistui.
keyDownloadFailed=Avaimen nouto avainpalvelimelta epäonnistui. Virheilmoitus oli:\n%S
internalError=Tapahtui sisäinen virhe. Avainten nouto tai tuonti epäonnistui.
noKeyFound=Ikävä kyllä yhtään avainta annetulle sähköpostiosoitteelle ei löytynyt.
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Avainten haku tai nouto avainpalvelimelta epäonnistui: ohjelmaa gpgkeys_%S ei kyetty suorittamaan.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Avaimen omistajan luottamustason asettaminen epäonnistui
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Avaimen allekirjoittaminen epäonnistui
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Ladataan avaimia...
keyValid.unknown=tuntematon
keyValid.invalid=virheellinen
keyValid.disabled=ei käytössä
keyValid.revoked=mitätöity
keyValid.expired=vanhentunut
keyValid.noSubkey=ei kelvollista aliavainta
keyTrust.untrusted=ei luotettu
keyTrust.marginal=osittain luotettu
keyTrust.full=luotettu
keyTrust.ultimate=ehdottomasti luotettu
keyTrust.group=(ryhmä)
keyType.public=julk
keyType.publicAndSec=julk/sal
keyMan.enableKey=Ota avain käyttöön
keyMan.disableKey=Poista avain käytöstä
userAtt.photo=Käyttäjätieto (JPEG-kuva)
asciiArmorFile=ASCII-koodatut tiedostot (*.asc)
importKeyFile=Tuo OpenPGP avain tiedoston
gnupgFile=GnuPG-tiedostot
saveRevokeCertAs=Luo ja tallenna mitätöintivarmenne
revokeCertOK=Mitätöintivarmenne luotiin. Voit mitätöidä varmenteella julkisen avaimesi jos esimerkiksi hukkaat salaisen avaimesi.\n\nMitätöintivarmenne on parasta tallentaa erilliselle, turvallisessa paikassa säilytetylle CD:lle tai korpulle. Jos varmenne joutuu vääriin käsiin sillä voi tehdä avaimestasi käyttökelvottoman.
revokeCertFailed=Mitätöintivarmenteen luonti epäonnistui.
addUidOK=Käyttäjätunnuksen lisäys onnistui
addUidFailed=Käyttäjätunnuksen lisäys epäonnistui
noKeySelected=Vähintään yksi avain täytyy valita, jotta operaatio voidaan suorittaa
exportToFile=Valitse tiedostonimi vietäville avaimille
exportSecretKey=Tallennetaanko OpenPGP-tiedostoon myös salainen avaimesi?
saveKeysOK=Avainten tallennus onnistui
saveKeysFailed=Avainten tallennus epäonnistui
importKeysFailed=Avainten tuonti epäonnistui
enableKeyFailed=Avaimen käyttöön otto tai käytöstä poisto epäonnistui
specificPubKeyFilename=%S (0x%S) julk
specificPubSecKeyFilename=%S (0x%S) julk-sal
defaultPubKeyFilename=Viedyt-julkiset-avaimet
defaultPubSecKeyFilename=Viedyt-julkiset-ja-salaiset-avaimet
noSecretKeys=Salaisia avaimia ei löytynyt.\n\nLuodaanko avain nyt?
sendKeysOk=Avaimet lähetittiin onnistuneesti
sendKeysFailed=Avainten lähettäminen epäonnistui
receiveKeysOk=Avainten päivitys onnistui
receiveKeysFailed=Avainten nouto epäonnistui
importFromClip=Tuodaanko leikepöydällä olevat avaimet?
copyToClipbrdFailed=Avainten vienti leikepöydälle epäonnistui.
copyToClipbrdOK=Avaimet kopioitiin leikepöydälle
deleteSecretKey=VAROITUS: Olet poistamassa salaista avainta!\nAvaimelle salattuja viestejä ei voida enää purkaa jos avain poistetaan.\n\nPoistetaanko SEKÄ julkinen ETTÄ salainen avain\n"%S"?
deleteMix=VAROITUS: Olet poistamassa salaisia avaimia!\nAvaimelle salattuja viestejä ei voida enää purkaa jos avain poistetaan.\n\nPoistetaanko SEKÄ valitut julkiset ETTÄ salaiset avaimet?
deletePubKey=Poistetaanko julkinen avain tunnukselle\n%S?
deleteSelectedPubKey=Poistetaanko julkinen avain?
deleteKeyFailed=Avaimen poisto epäonnistui.
revokeKeyOk=Avain on mitätöity. Jos avain on saatavilla avainpalvelimelta, siirrä mitätöity avain palvelimelle, jotta muutkin näkevät mitätöinnin.
revokeKeyFailed=Avaimen mitätöinti epäonnistui.
refreshAllQuestion=Yhtään avainta ei valittu. Päivitetäänkö kaikki avaimet?
refreshKey.warn=Varoitus: riippuen avainten lukumäärästä ja verkkoyhteyden nopeudesta, kaikkien avainten päivittäminen voi kestää kauan!\n\nJatketaanko?
downloadContactsKeys.importFrom=Import contacts from address book '%S'?
keyMan.button.exportSecKey=&Export Secret Keys
keyMan.button.import=&Tuo
keyMan.button.refreshAll=&Päivitä kaikki avaimet
keyMan.button.revokeKey=&Peruuta avain
keyMan.button.skip=&Ohita avain
keylist.noOtherUids=Ei ole muuta identiteettiä
keylist.noPhotos=Ei valokuvaa saatavilla
keylist.hasPhotos=Valokuvat
keyMan.addphoto.filepicker.title=Valokuva
keyMan.addphoto.failed=Valokuvaa ei voitu lisätä
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Ensisijaisen käyttäjätunnuksen vaihto epäonnistui
changePrimUidOK=Ensisijaisen käyttäjätunnuksen vaihto onnistui
deleteUidFailed=Käyttäjätunnuksen %S poisto epäonnistui
deleteUidOK=Käyttäjätunnuksen %S poisto onnistui
revokeUidFailed=Käyttäjätunnuksen %S mitätöinti epäonnistui
revokeUidOK=Käyttäjätunnuksen %S mitätöinti onnistui. Jos avain on saatavilla avainpalvelimelta, siirrä mitätöity avain palvelimelle, jotta muutkin näkevät mitätöinnin.
revokeUidQuestion=Mitätöidäänkö käyttäjätunnus %S?
deleteUidQuestion=Poistetaanko käyttäjätunnus %S?\n\nHuom.: Jos käyttäjätunnuksen julkinen avain on saatavilla avainpalvelimelta, käyttäjätunnuksen poisto ei muuta mitään. Saadaksesi aikaan pysyvän muutoksen käytä "Mitätöi käyttäjätunnus" -toimintoa.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=julkinen avain
keyTypeSubkey=aliavain
keyTypePair=avainpari
keyExpiryNever=ei koskaan
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
# Strings in enigmailGenCardKey.xul
keygen.started=Odota avaimen luonnin valmistumista....
keygen.completed=Avain luotu. Uuden avaimen tunnus on: 0x%S
keygen.keyBackup=Avaimesta luotiin varmuuskopio nimellä %S
keygen.passRequired=Kirjoita salasana jos haluat luoda varmuuskopion avaimesta toiselle medialle.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Annettu PIN-koodi ei ole oikea. Yritä uudestaan
cardPin.minLength=PIN-koodissa täytyy olla vähintään %S kirjainta tai numeroa
cardPin.processFailed=PIN-koodin vaihtaminen ei onnistunut
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Päivitetään avaimia, ole hyvä ja odota...
keyserverProgress.uploading=Siirretään avaimia avainpalvelimella, ole hyvä ja odota...
keyserverTitle.refreshing=Päivitetään avaimia
keyserverTitle.uploading=Avainten siirto
# Strings in enigmailSetupWizard
passphrase.min8keys=Salasanan tulee olla ainakin 8-kirjainta pitkä.
setupWizard.reallyCancel=Peruutetaanko Enigmail:n ohjattu asennus?
enigmail/lang/fi/help/ 0000775 0000000 0000000 00000000000 12667016244 0015122 5 ustar 00root root 0000000 0000000 enigmail/lang/fi/help/compose.html 0000664 0000000 0000000 00000007155 12667016244 0017465 0 ustar 00root root 0000000 0000000
Enigmailin ohje: Viestien kirjoittamisesta
Enigmailin ohje
Enigmailin käyttö kirjoitettaessa viestejä
- Enigmailin valikko Posti tai viestin kirjoitusikkunassa
- Allekirjoita viesti: Ota käyttöön tai poista käytöstä viestin allekirjoitus.
Käyttäjälle ilmoitetaan allekirjoituksen epäonnistumisesta.
- Salaa viesti: Ota käyttöön tai poista käytöstä viestin salaus kaikille vastaanottajille.
Käyttäjälle ilmoitetaan salaamisen epäonnistumisesta.
Jos sinulla ei ole salatun viestin kaikkien vastaanottajien julkisia avaimia ja
asetuksissa on valittuna Näytä avainten valintaikkuna kun se on välttämätöntä,
avainlista avautuu.
Jos sinulla ei ole salatun viestin kaikkien vastaanottajien julkisia avaimia ja
asetuksissa on valittuna Älä koskaan näytä avainten valintaikkunaa, viesti lähetetään selkokielisenä.
- Käytä PGP/MIME:ä tässä viestissä: Ota käyttöön tai poista käytöstä
PGP/MIME
tässä viestissä.
Jos tiedät, että viestin vastaanottajien sähköpostiohjelmat ymmärtävät
PGP/MIME-muotoa, sitä tulisi käyttää.
Tämä toiminto otetaan käyttöön valitsemalla PGP/MIME-asetuksista
Salli PGP/MIME:n käyttö tai Käytä aina PGP/MIME:ä.
- Viestien kirjoituksen oletusasetukset: Alavalikko.
- Allekirjoitus-/salausasetukset...: pikalinkki Tilin asetukset -> OpenPGP-asetuksiin.
- Lähetysasetukset...: pikalinkki Asetukset -> Lähetys-välilehteen.
- Avainten valinnan asetukset...: pikalinkki Asetukset -> Avainten valinta-välilehteen.
- PGP/MIME-asetukset...: pikalinkki Asetukset -> PGP/MIME-välilehteen.
- Kumoa salaus: Jos viestin lähettämisessä tapahtuu jokin
virhe, kuten esimerkiksi POP-palvelinvirhe, Enigmail ei voi tietää sitä ja
salattu viesti jää salatuksi viestin kirjoitusikkunaan. Palauta viesti
selkokieliseksi valitsemalla Kumoa salaus.
Kun Enigmail ei virheellisesti pura salausta lainatusta tekstistä kun
salattuun viestiin vastataan, tai salausta ei pureta automaattisesti jostain
muusta syystä, tätä toimintoa voi käyttää väliaikaisena korjauksena.
Yleensä salauksen purku toimii automaattisesti.
- Lisää julkinen avain: Lisää julkisen avaimen
ASCII-koodattuna viestiin osoittimen sijainnista alkaen. Avaimeen sisällytettävät
sähköpostiosoitteet kysytään erikseen. Lisää viestiin vain yksi avainosio ja
valitse halutut julkiset avaimet. Jos vastaanottaja käyttää Enigmailia,
avainosio huomataan automaattisesti. Kun avaimet on lisätty, viesti voidaan
vielä salata ja allekirjoittaa.
- Tyhjennä salasana muistista: Tyhjentää salasanan
muistista. Toiminto on hyödyllinen, jos sinulla on useita avaimia ja useita
salasanoja.
- Ohje: Näyttää ohjeen (tämä sivu).
Lisää ohjeita
Enigmailin ohjesivulta
enigmail/lang/fi/help/editRcptRule.html 0000664 0000000 0000000 00000011201 12667016244 0020411 0 ustar 00root root 0000000 0000000
Enigmailin ohje: OpenPGP-sääntöjen muokkaaminen
Enigmailin ohje
Enigmailin sääntömuokkaimen käyttö: OpenPGP-sääntöjen muokkaus
Sääntömuokkaimessa voit asettaa oletukset viestin allekirjoittamiselle,
salaamiselle, PGP/MIME-koodauksen käytölle, ja määrittää käytettävät
OpenPGP-avaimet vastaanottajakohtaisesti. Oletukset voidaan asettaa yhdelle
vastaanottajalle tai usealle vastaanottajalle, jolla on toisensa kaltaiset
sähköpostiosoitteet.
- Aseta OpenPGP-säännöt osoitteille: Kentässä on täydelliset
sähköpostiosoitteet (tai osa osoitteista) joille alla olevat säännöt pätevät
suotimen tavoin. Jos osoitesuotimia on useita, ne erotetaan välilyönnillä.
Suotimet voivat olla esimerkiksi pelkkä verkkoalue @sposti.fi, johon
täsmäisivät kaikki @sposti.fi:n loppuvat osoitteet.
- Sääntö pätee jos ylläoleva: Osoitesuotimen käyttäytymisen
voi valita. Jos yllä olevassa kentässä on useita osoitteita, käyttäytymisasetus
pätee kaikille osoitteille. Alla olevissa esimerkeissä osoitesuodinkenttään on
kirjoitettu nieminen@sposti.fi.
- on täsmälleen vastaanottajan osoite: Tällä asetuksella sääntö
pätee viesteille, jotka lähetetään osoitteeseen nieminen@sposti.fi
(täsmäys on kirjainkoon huomioiva).
- on osa vastaanottajan osoitetta: Tällä asetuksella sääntö
pätee viesteille, jotka lähetetään esim. osoitteisiin
matti.nieminen@sposti.fi, nieminen@sposti.fi.com jne.
- ja vastaanottajan osoitteen alku täsmäävät: Tällä asetuksella
sääntö pätee viesteille, jotka lähetetään esim. osoitteeseen
nieminen@sposti.fi.com
- ja vastaanottajan osoitteen loppu täsmäävät: Tällä asetuksella
sääntö pätee viesteille, jotka lähetetään esim. osoitteeseen
maija.nieminen@sposti.fi
- Jatka seuraavaan sääntöön täsmäävälle osoitteelle
Jos asetus on valittu, Enigmail hakee osoitteeseen kuuluvaa OpenPGP-avainta
vasta viestiä lähetettäessä, ja muut säännöt voivat muuttaa täsmäävien viestien
lähetysasetuksia.
- Älä tarkista enää sääntöjä täsmäävälle osoitteelle
Jos asetus on valittu, täsmääviin osoitteisiin ei sovelleta muita sääntöjä.
Täsmäävä osoite jätetään siis huomiotta muita sääntöjä käsiteltäessä.
- Käytä seuraavia OpenPGP-avaimia:
Valitse käytettävät vastaanottajien avaimet napsauttamalla Valitse
avaimet-painiketta. Kuten yllä, jos asetus on valittu, muita sääntöjä
ei huomioida täsmääville sähköpostiosoitteille.
- Allekirjoittaminen:
Allekirjoita tai älä allekirjoita viestejä tälle vastaanottajalle. Tämä asetus
joko noudattaa viestin kirjoitusikkunassa antamaasi käskyä tai muuttaa sen.
Mahdolliset arvot:
- Ei koskaan: Älä ikinä allekirjoita viestiä
vastaanottajalle, huolimatta viestin kirjoitusikkunan asetuksista.
- Vain jos valitaan erikseen viestiä kirjoitettaessa: Allekirjoita
viesti jos niin on viestin kirjoitusikkunassa asetettu
- Aina: Allekirjoita viestit vastaanottajalle aina, huolimatta
viestin kirjoitusikkunan asetuksista
Jokainen sääntö pätee kaikille täsmääville
viesteille. Jos jokin säännöistä ottaa allekirjoituksen pois päältä, viestiä ei
allekirjoiteta huolimatta siitä, mitä muut säännöt määräisivät.
- Salaa: Salaa tai älä
salaa viestiä. Asetusvalinnat ja niiden merkitykset ovat samat kuin viestin
allekirjoitukselle.
- PGP/MIME: Ota käyttöön tai poista käytöstä PGP/MIME (RFC
3156) -koodaus. Jos PGP/MIME ei ole käytössä, viestit allekirjoitetaan ja
salataan käyttäen viestinsisäistä PGP:tä. Asetusvalinnat ja niiden merkitykset
ovat samat kuin viestin allekirjoitukselle.
Säännöt käsitellään niiden listausjärjestyksessä OpenPGP-sääntömuokkaimessa.
Jos säännössä on annettu vastaanottajan OpenPGP-avaintunnus ja osoite täsmää
vastaanottajan osoitteeseen, muita viestin kanssa täsmääviä sääntöjä ei enää
käsitellä.
Lisää ohjeita
Enigmailin vastaanottajakohtaisten asetusten ohjesivuilta
enigmail/lang/fi/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0017775 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/fi/help/messenger.html 0000664 0000000 0000000 00000006760 12667016244 0020011 0 ustar 00root root 0000000 0000000
Enigmailin ohje: Viestien lukeminen
Enigmailin ohje
Enigmailin käyttö luettaessa viestejä
- Pura salaus -painike posti-ikkunassa
Pura-painikkeella voi purkaa salauksen, varmistaa allekirjoituksen tai tuoda
julkisia avaimia. Normaalisti salauksen purku tai allekirjoituksen varmistus
tapahtuu automaattisesti, mutta jos näin ei käy, Enigmailin tilariville ilmestyy
lyhyt virheilmoitus. Pura-painikkeesta saa tarkemman virheilmoituksen jossa
on mukana GnuPG-komennon virheilmoitus.
- Allekirjoitus- ja salauskuvakkeet viestin otsaketiedoissa
Allekirjoitus (kynä) ja salaus (avain) -kuvakkeet
ovat viestiotsakkeissa riippuen siitä, onko viesti allekirjoitettu hyvin (eli
viestiä ei ole muokattu siirrettäessä) tai salattu. Jos viestiä on jollain tapaa
muutettu siirrettäessä eli sen allekirjoitus on huono, tämä näkyy
allekirjoituskuvakkeessa (se on esimerkiksi rikkinäinen tai yliviivattu kynä).
Napsauttamalla kuvaketta hiiren oikealla painikkeella avautuu ponnahdusvalikko,
jossa on seuraavat kohdat:
- OpenPGP-turvallisuustiedot: Näyttää GnuPG:n tulosteen tälle
viestille.
- Kopioi OpenPGP-turvallisuustiedot: Kopiot leikepöydälle GnuPG:n
tulosteen tälle viestille.
- Näytä OpenPGP-kuva: Näyttää kuvan, jonka viestin
lähettäjä on liittänyt julkiseen avaimeensa (vain jos kuva on olemassa).
- S/MIME-turvallisuustiedot: Näyttää viestin
S/MIME-turvallisuustiedot.
Kun saat viestin, joka on allekirjoitettu sinulta puuttuvalla avaimella, ja
jos sinulla ei ole keyserver-options auto-key-retrieve asetusta
gpg.conf-tiedostossa (eli että kaikki tuntemattomat avaimet yritetään
hakea avainpalvelimelta), Enigmail näyttää viestiotsakkeissa
allekirjoituskuvakkeen, jossa on kysymysmerkki ja tekstirivin, jossa lukee
Osa viestistä allekirjoitettu. Napsauta allekirjoituskuvaketta saadaksesi
lisätietoja.
Sama allekirjoituskuvake voi näkyä vaikka
keyserver-options auto-key-retrieve olisikin asetettu, koska haettua
avainta ei ehkä löydy oletusavainpalvelimelta.
Napsauttamalla allekirjoituskuvaketta, jossa on kysymysmerkki, avautuu ikkuna,
joka ilmoittaa, että avainta ei löydy avainrenkaastasi. Sulkemalla tämän ikkunan
OK:ta napsauttamalla avautuu ikkuna, josta voit valita avainpalvelimen, jolta
julkista avainta tulisi hakea.
Voit muokata valittavissa olevia avainpalvelimia Enigmailin asetuksista:
Enigmail -> Asetukset -> Yleiset-välilehti, ja muokkaamalla
pilkulla erotettuja avainpalvelinten osoitteita
Avainpalvelimet:-kentässä. Oletusavainpalvelin on listassa ensimmäisenä.
- Salattujen liitetiedostojen avaaminen ja liitettyjen OpenPGP-avainten tuonti
Enigmail käsittelee liitteet, joiden tiedostopääte on pgp, asc tai gpg.
Tällaisen liitteen ponnahdusvalikossa (napsauta hiiren oikealla painikkeella
liitettä) on kaksi erityistä valintaa: Pura ja avaa sekä Pura ja
tallenna. Näillä valinnoilla voit purkaa liitteen salauksen ennen kuin
avaat tai tallennat sen. Jos liite tunnistetaan OpenPGP-avaintiedostoksi,
sinulta kysytään haluatko tuoda avaimet.
Lisää ohjeita
Enigmailin ohjesivuilta
enigmail/lang/fi/help/rulesEditor.html 0000664 0000000 0000000 00000005613 12667016244 0020316 0 ustar 00root root 0000000 0000000
Enigmailin ohje: Sääntömuokkain
Enigmailin ohje
Enigmailin sääntömuokkaimen käyttö
Sääntömuokkaimessa voit muokata vastaanottajakohtaisia lähetysasetuksia.
Voit määrätä, missä PGP/MIME-muodossa viesti lähetetään, mitä avainta käytetään
ja allekirjoitetaanko tai salataanko se. Jokainen sääntö muodostuu viidestä
kentästä ja on kirjoitettu yhdelle riville:
- Sähköpostiosoite:
Osoitteet, joiden vastaanottaja-, kopio- tai piilokopiokentässä on
ehdon täyttävä osoite. Ehto voi koskea myös vain osaa osoitteesta
(lisätietoja muokkaa sääntöjä -ikkunasta)
- OpenPGP-avaimet: Lista vastaanottajalle käytettävistä
OpenPGP-avaimista
- Allekirjoita: Allekirjoita tai älä allekirjoita viestejä
tälle vastaanottajalle. Tämä asetus joko noudattaa viestin kirjoitusikkunassa
antamaasi käskyä tai muuttaa sen. Mahdolliset arvot:
- Ei koskaan: Älä ikinä allekirjoita viestiä vastaanottajalle,
huolimatta viestin kirjoitusikkunan asetuksista.
- Mahdollisesti: Allekirjoita viesti jos niin on viestin
kirjoitusikkunassa asetettu
- Aina: Allekirjoita viestit vastaanottajalle aina, huolimatta viestin
kirjoitusikkunan asetuksista
Jokainen sääntö pätee kaikille täsmääville
viesteille. Jos jokin säännöistä ottaa allekirjoituksen pois päältä, viestiä ei
allekirjoiteta huolimatta siitä, mitä muut säännöt määräisivät.
- Salaa: Salaa tai älä salaa viestiä. Asetusvalinnat ja
niiden merkitykset ovat samat kuin viestin allekirjoitukselle.
- PGP/MIME: Ota käyttöön tai poista käytöstä PGP/MIME (RFC
3156) -koodaus. Jos PGP/MIME ei ole käytössä, viestit allekirjoitetaan ja
salataan käyttäen viestinsisäistä PGP:tä. Asetusvalinnat ja niiden merkitykset
ovat samat kuin viestin allekirjoitukselle.
Säännöt käsitellään niiden listausjärjestyksessä. Jos säännössä on annettu
vastaanottajan OpenPGP-avaintunnus ja osoite täsmää vastaanottajan osoitteeseen,
muita viestin kanssa täsmääviä sääntöjä ei enää käsitellä.
Huom.: Sääntömuokkain ei ole vielä valmis. Monimutkaisempia sääntöjä
on mahdollista kirjoittaa muokkaamalla sääntötiedostoa käsin (näin muokattuihin
sääntöihin ei pitäisi enää koskea sääntömuokkaimella). Tarkempia ohjeita sääntötiedoston muokkaamisesta Enigmailin
kotisivulta.
Lisää ohjeita
Enigmailin ohjesivuilta
enigmail/lang/fi/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020456 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/fr/ 0000775 0000000 0000000 00000000000 12667016244 0014203 5 ustar 00root root 0000000 0000000 enigmail/lang/fr/am-enigprefs.properties 0000664 0000000 0000000 00000000123 12667016244 0020672 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Sécurité OpenPGP
enigmail/lang/fr/enigmail.dtd 0000664 0000000 0000000 00000147710 12667016244 0016477 0 ustar 00root root 0000000 0000000
NOTE: La génération d'une clef peut prendre plusieurs minutes. Ne quittez pas l'application tant que la génération est en cours. La navigation intensive sur le web ou les opérations intenses sur les disques durs pendant la génération de la clef augmenteront l'entropie et accélèreront le processus. Vous serez averti quand l'opération sera terminée.">
 » est invalide">
Nota : la génération de la clef peut prendre plusieurs minutes. Veuillez ne pas quitter l'application tant que cette opération est en cours. Vous serez prévenu lorsque la génération sera terminée.">
Note : Enigmail vérifiera toujours les signatures des messages pour tous les comptes et identités, qu'il y soit actif ou pas.">
clef publique est pour les autres pour envoyer des messages chiffrés à vous. Vous pouvez le distribuer à tout le monde.">
clef privée est pour vous même pour déchiffrer des messages chiffrés pour vous,
et pour signer vos messages à d'autres. Vous ne devez la donner à personne.">
clef privée est pour vous pour déchiffrer des messages chiffrés pour vous,
et pour signér vos messages à autres. Vous ne devez la donner à personne.
Pour protéger votre clef privée, vous serez invité à entrer une phrase secrète dans les deux dialogues suivantes.">
phrase secrète est un mot de passe pour protéger votre clef privée. Elle empêche une utilisation abusive de votre clef privée.">
ne sont pas recommandés.">
Votre mot de passe vous sera demandé pour cette création.">
exporter votre données depuis le système originale, utilisant l'assistant de sauvegarder dans les Préférences Enigmail
importer les données dans le système nouveau, utilisant l'assitant ici.
">
Merci d'utiliser Enigmail.">
Exporter votre données depuis le système originale, utilisant l'assistant ici.
Importer les données dans le système nouveau, utilisant l'assitant Setup.
">
enigmail/lang/fr/enigmail.properties 0000664 0000000 0000000 00000122423 12667016244 0020112 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Alerte Enigmail
enigConfirm=Confirmation Enigmail
enigError=Erreur Enigmail
enigPrompt=Question Enigmail
dlgYes=&Oui
dlgNo=&Non
dlgKeepSetting=Retenir la réponse et ne plus reposer la question
dlgNoPrompt=Ne plus afficher cette fenêtre de dialogue
dlg.button.delete=&Supprimer
dlg.button.cancel=&Annuler
dlg.button.close=&Fermer
dlg.button.continue=Con&tinuer
dlg.button.skip=&Passer
dlg.button.overwrite=&Écraser
dlg.button.view=&Voir
dlg.button.retry=&Refaire
dlg.button.ignore=&Sauter
repeatPrefix=\n\nCette alerte sera répétée %S
repeatSuffixSingular=fois.
repeatSuffixPlural=fois.
noRepeat=\n\nCette alerte ne sera répétée jusqu'à ce que vous mettiez à jour Enigmail.
pgpNotSupported=Vous semblez utiliser Enigmail avec la version 6.x de PGP\n\nMalheureusement, PGP 6.x comporte un certain nombre de problèmes qui empêche Enigmail de fonctionner correctement. Pour cette raison Enigmail ne supporte plus PGP 6.x ; veuillez passer à GnuPG (GPG) à la place.\n\nSi vous désirez de l'aide pour passer à GnuPG, voyez la section Help du site Enigmail.
initErr.howToFixIt=GnuPG est nécessaire pour l'utilisation d'Enigmail. Si vous ne l'avez pas encore installé, le plus pratique est de se servir du bouton "Setup Wizard" ci-dessous.
initErr.setupWizard.button=&Setup Wizard
passphraseCleared=La phrase secrète a été oubliée.
cannotClearPassphrase=Vous utilisez une outil non standard (comme gnome-keyring) pour gérer les phrases secrètes. Il n'est ainsi pas possible d'affacer la phrase secrète depuis Enigmail
noPhotoAvailable=Pas de photo disponible
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Le chemin de la photo '%S' n'est pas accessible
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Cette nouvelle version d'Engmail a changé significativement la manipulation des préférences et des options. Nous avons essayé de transférer vos anciens paramètres vers cette nouvelle version. Cependant tous les cas ne peuvent pas forcément être traités automatiquement. Merci de vérifier les nouvelles préférences et options résultantes.
enigmailCommon.checkPreferences=Vérifier les préférences...
preferences.defaultToPgpMime=Nous avons changé l'encodage par défaut dans Enigmail de Inline-PGP à PGP/MIME. Nous vous recommandons de conserver ce réglage.\n\nSi vous souhaitez vraiment utiliser Inline-PGP par défaut, vous pouvez le faire dans les Paramètres de compte, dans Sécurité OpenPGP
usingVersion=Enigmail version %S
usingAgent=Le programme %S (%S) est utilisé pour chiffrer et déchiffrer
agentError=ERREUR: impossible d'accéder au service Enigmail !
accessError=Erreur lors de l'accès au service Enigmail
onlyGPG=La génération de clef ne fonctionne qu'avec GnuPG (pas avec PGP) !
keygenComplete=Génération de la clef terminée! L'identifiant <%S> sera utilisé pour la signature.
revokeCertRecommended=Il est grandement recommandé de créer un certificat de révocation pour la clef. Ce certificat peut être utilisé pour invalider votre clef dans le cas où votre clef privée soit perdue ou compromise. Désirez-vous créer un certificat de révocation maintenant ?
keyMan.button.generateCert=&Générer le certificat
genCompleteNoSign=Génération de clef terminée !
genGoing=Une génération de clef est déjà en cours !
passNoMatch=Les phrases secrètes ne concordent pas ; veuillez les saisir à nouveau
passCheckBox=Veuillez cocher la case en cas d'absence de phrase secrète pour la clef
passUserName=Veuillez indiquer un nom d'utilisateur pour cet identité
keygen.missingUserName=Il n'y a pas de nom spécifié pour le compte/l'identité sélectioné. Merci de saisir une valeur dans le champ "Nom" dans les Paramètres de compte.
keygen.passCharProblem=Vous avez des caractères spéciaux dans votre phrase secrète. Ceci pourrait, malheureusement, poser un problème pour d'autres applications. Nous vous conseillons de choisir une phrase secrète ne comprenant que ces caractères : \na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Pour des raisons techniques votre phrase secrète ne peut commencer ou se terminer par un espace.
changePassFailed=Échec de la modification de la phrase secrète.
keyConfirm=Générer les clefs publique et privée de %S ?
keyMan.button.generateKey=&Générer la clef
keyAbort=Abandonner la génération de clef ?
keyMan.button.generateKeyAbort=&Abandonner la génération de clef
keyMan.button.generateKeyContinue=&Continuer la génération de clef
expiryTooLong=Il est impossible de créer une clef qui expire dans plus de 100 ans.
expiryTooLongShorter=Vous ne pouvez pas créer une clé qui expire dans plus de 90 ans.
expiryTooShort=Votre clef doit être valide au minimum un jour.
dsaSizeLimit=Les clés de signature DSA sont limitée à 3072 bits. La taille de la clé sera réduite à cette limite.
keyGenFailed=La génération de la clef a échoué. Veuillez consulter la console Enigmail (Menu Enigmail > Débogage d'Enigmail) pour plus de détails.
setKeyExpirationDateFailed=La date d'expiration ne peut pas être changée
# Strings in enigmailMessengerOverlay.js
securityInfo=Information de sécurité d'Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail : *les pièces jointes à ce message n'ont pas été signées ni chiffrées*\n\n
possiblyPgpMime=Message probablement chiffré ou signé au format PGP/MIME; cliquez le bouton Déchiffrer pour vérifier
noDecrypted=Aucun message déchiffré à enregistrer!\nUtilisez la commande «enregistrer» du menu fichier
noMessage=Aucun message à enregistrer !
useButton=Veuillez cliquer sur le bouton «Déchiffrer» pour déchiffrer le message
saveHeader=Enigmail : enregistrer le message déchiffré
saveAttachmentHeader=Enigmail : enregistrer la pièce jointe déchiffrée
noTempDir=Impossible de trouver un répertoire temporaire\nVeuillez définir la variable d'environnement TEMP
attachmentPgpKey=La pièce jointe « %S » que vous tenter d'ouvrir semble être un fichier de clef OpenPGP.\n\nCliquez Oui pour importer la clef contenue ou Non pour visualiser le contenu du fichier dans une fenêtre de navigateur
beginPgpPart=********* *DÉBUT CONTENU CHIFFRÉ ou SIGNÉ* *********
endPgpPart=********** *FIN CONTENU CHIFFRÉ ou SIGNÉ* **********
notePartEncrypted=Enigmail : *Des parties du message n'ont pas été signées ou chiffrées*
noteCutMessage=Enigmail : *Plusieurs blocs de message trouvés -- déchiffrement/vérification abandonné*
decryptOkNoSig=Attention\n\nLe déchiffrement a réussi, mais la signature ne peut pas être vérifiée correctement
msgOvl.button.contAnyway=&Continuer quand même
signature.verifiedOK=La signature pour la pièce jointe %S a été vérifiée avec succès
signature.verifyFailed=La signature pour la pièce jointe %S n'a pas pu être vérifiée
attachment.noMatchToSignature=Impossible de faire correspondre la pièce jointe '%S' à un fichier de signature
attachment.noMatchFromSignature=Impossible de faire correspondre le fichier de signature '%S' à une pièce jointe
fixBrokenExchangeMsg.failed=Échec de réparation du message
keysToExport=Choisissez les clefs OpenPGP à insérer
keysToUse=Sélectionnez la ou les clefs OpenPGP à utiliser pour %S
pubKey=Clef publique de %S\n
windowLocked=La fenêtre de rédaction est verrouillée ; envoi annulé
sendUnencrypted=Erreur lors de l'initialisation d'Enigmail.\nEnvoyer le message sans chiffrement ?
composeSpecifyEmail=Veuillez spécifier votre adresse de messagerie principale, celle-ci sera utilisée pour déterminer la clef de signature des messages sortants.\n Si vous laissez le champ vide, l'adresse de l'expéditeur du message sera utilisée pour déterminer la clef.
sendingHiddenRcpt=Ce message a des destinataires cachés (BCC : copie cachée). Si ce message est encrypté, il est possible de cacher ces destinataires mais les utilisateurs de certains logiciels (ex. : PGP Corp.) ne pourront pas décrypter le message. Pour cette raison nous déconseillons l'utilisation de copie cachée pour les messages chiffrés.
sendWithHiddenBcc=Cacher les destinataires en copie cachée (BCC)
sendWithShownBcc=Encrypter normalement
sendingNews=Échec de l'envoi chiffré.\n\nCe message ne peut-être chiffré car il s'adresse à des forums. Veuillez renvoyer le message sans chiffrement.
sendToNewsWarning=Attention : vous êtes en train d'envoyer un courriel chiffré à un forum.\n\nCeci est déconseillé car ce n'est utile que si tout les membres du forum peuvent déchiffrer le message, c'est-à -dire que le message doit être chiffré avec les clefs de tous les membres. Envoyez ce message uniquement si vous savez bien ce que vous faites.\n\nContinuer ?
hasHTML=Avertissement courrier HTML:\nCe message peut contenir du code HTML, qui pourrait empêcher la signature ou le chiffrement. Pour éviter cela à l'avenir, vous devriez appuyer sur la touche MAJ en cliquant sur les boutons «Nouveau» ou «Répondre» pour envoyer un courrier signé.\nSi vous signez le courrier par défaut, vous devriez décocher l'option «Rédiger les messages en HTML» afin de désactiver le courrier HTML pour ce compte de messagerie.
strippingHTML=Ce message contient des balises de formatage HTML qui seront perdues lors de la conversion en texte brut pour la signature ou le chiffrement. Voulez-vous continuer ?
msgCompose.button.sendAnyway=&Envoyer le message quand même
attachWarning=Les pièces jointes dans ce message ne sont pas stockées localement, elles ne peuvent donc pas être chiffrées. Pour pouvoir chiffrer des pièces jointes, stockez-les d'abord localement puis attachez-les. Désirez-vous poursuivre malgré tout ?
quotedPrintableWarn=Vous avez activé l'encodage 'quoted-printable' pour l'envoi de messages. Ceci peut entrainer un déchiffrement ou une vérification incorrect du message.\n Désirez-vous désactiver l'envoi des messages en 'quoted-printable' ?
minimalLineWrapping=Votre réglage de formatage des lignes est de %S caractères. Pour un chiffrement et/ou une signature correct, cette valeur doit être au moins 68.\nDésirez-vous changer le formatage des lignes à 68 caractères ?
warning=Attention
signIconClicked=Vous avez modifié manuellement la signature. De ce fait, pendant la rédaction de ce message, activer ou non la signature ne dépend plus de l'activation ou non du chiffrement.
pgpMime_sMime.dlg.text=Vous avez activé PGP/MIME et S/MIME ensemble. Malheureusement il n'est pas possible d'utiliser les deux protocoles en même temps. Merci de choisir si vous voulez utiliser PGP/MIME ou S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Utiliser &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Utiliser &S/MIME
errorKeyUnusable=L'adresse courriel ou 'ID de clef '%S' ne correspond pas à une clef OpenPGP valide et non-expirée.\nMerci de vous assurer que votre clef OpenPGP est valide et que vos paramètres de compte font référence à cette clef.
errorOwnKeyUnusable=L'identifiant de clé « %S » configuré pour l'identité courante ne correspond à aucune clé OpenPGP valide.\n\nMerci de vérifier que vous avez bien une clé OpenPGP valide, non expirée et que les préférences de votre compte pointent bien sur cette clé.\nSi votre clé n'est pas expirée, merci de vérifier que vous lui avez bien placé un degré de confiance élevé ou absolu.
msgCompose.cannotSaveDraft=Erreur lors de l'enregistrement du brouillon
msgCompose.internalEncryptionError=chiffrage promis désactivé
msgCompose.internalError=Une erreur interne s'est produite.
msgCompose.toolbarTxt.signAndEncrypt=Ce message sera signé et chiffré
msgCompose.toolbarTxt.signOnly=Ce message sera signé
msgCompose.toolbarTxt.encryptOnly=Ce message sera chiffré
msgCompose.toolbarTxt.noEncryption=Ce message ne sera ni signé et ni chiffré
msgCompose.toolbarTxt.disabled=Enigmail est désactivé pour l'identité sélectionnée
msgCompose.toolbarTxt.smime=S/MIME est activé - potentiellement en conflit avec Enigmail
msgCompose.toolbarTxt.smimeOff=- S/MIME n'est donc pas utilisé
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME est activé - Enigmail n'est donc pas utilisé
msgCompose.toolbarTxt.smimeNoDraftEncryption=- les brouillons ne seront pas chiffrés
msgCompose.toolbarTxt.smimeConflict=Enigmail n'est pas utilisé car S/MIME est activé. Merci de désactiver le chiffrement/la signature S/MIME et ensuite activer le chiffrement Enigmail
msgCompose.encryptedSubjectStub=Message chiffré
msgCompose.detailsButton.label=Détails...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Envoi de courrier abandonné.\n\n
# details:
keyNotTrusted=Pas assez de confiance pour la clef '%S'
keyNotFound=Clef '%S' introuvable
keyRevoked=Clef '%S' révoquée
keyExpired=Clef '%S' n'est plus valide
statPGPMIME=PGP/MIME
statSigned=SIGNÉ
statEncrypted=CHIFFRÉ
statPlain=TEXTE BRUT
offlineSave=Enregistrer le message %S pour %S dans le dossier « Messages en attente » ?
onlineSend=Envoyer le message %S Ã destination de %S ?
encryptKeysNote=Note : le message est chiffré avec le couple « ID utilisateur/clef » suivant : %S
hiddenKey=
signFailed=Erreur Enigmail : le chiffrement ou la signature ont échoué. Envoyer un message en clair et non signé ?
msgCompose.button.sendUnencrypted=&Envoyé le message non chiffré
recipientsSelectionHdr=Sélectionnez les destinataires pour le chiffrement
configureNow=La sécurité Enigmail n'a pas encore été configurée pour cette identité. Désirez-vous le faire maintenant ?
# encryption/signing status and associated reasons:
encryptMessageAuto=Chiffre le message (auto)
encryptMessageNorm=Chiffre le message
signMessageAuto=Signe le message (auto)
signMessageNorm=Signe le message
encryptOff=Chiffrage : OFF
encryptOnWithReason=Chiffrage : ON (%S)
encryptOffWithReason=Chiffrage : OFF (%S)
encryptOn=Chiffrage : ON
signOn=Signature : ON
signOff=Signature : OFF
signOnWithReason=Signature : ON (%S)
signOffWithReason=Signature : OFF (%S)
reasonEnabledByDefault=activé par défaut
reasonManuallyForced=forcé manuellement
reasonByRecipientRules=forcé par les règles par destinataires
reasonByAutoEncryption=forcé par le cryptage automatique
reasonByConflict=en raison du conflit dans les règles par destinataires
reasonByEncryptionMode=Ã cause du mode de chiffrement
reasonSmimeConflict=car S/MIME est activé à la place
# should not be used anymore:
encryptYes=Le message sera chiffré
encryptNo=Le message ne sera pas chiffré
# should not be used anymore:
signYes=Le message sera signé
signNo=Le message ne sera pas signé
# PGP/MIME status:
pgpmimeNormal=Protocole : PGP/MIME
inlinePGPNormal=Protocole : Inline PGP
pgpmimeAuto=Protocole : PGP/MIME (auto)
inlinePGPAuto=Protocole : Inline PGP (auto)
# should not be used anymore
pgpmimeYes=PGP/MIME sera utilisé
pgpmimeNo=PGP en ligne (inline PGP) sera utilisé
# Attach own key status (tooltip strings):
attachOwnKeyNo=Votre propre clef ne sera pas jointe
attachOwnKeyYes=Votre propre clef sera jointe
attachOwnKeyDisabled=Votre propre clef ne peut pas être jointe. Vous devez sélectionner une clé spécifique\ndans la section OpenPGP des Paramètres de compte pour activer cette fonctionnalité
rulesConflict=Conflit de règles par destinataire détecté\n%S\n\nEnvoyer le message avec ces réglages ?
msgCompose.button.configure=Con&figurer
msgCompose.button.send=&Envoyer le message
msgCompose.button.save=Enregi&strer le message
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Clef publique «%S» est nécessaire à la vérification de la signature
keyUsed=Clef publique %S utilisée pour vérification de la signature
clickDecrypt=; cliquez sur le bouton « Déchiffrer »
clickDecryptRetry=; cliquez sur le bouton « Déchiffrer » pour réessayer
clickDetailsButton=; pour plus d'informations, cliquez sur le bouton 'Détails'
clickImportButton=; pour télécharger la clef, cliquez sur le bouton «Importer la clef»
keyTypeUnsupported=; le type de clef n'est pas pris en charge par votre version de GnuPG
msgPart=Partie du message %S
msgSigned=signée
msgSignedUnkownKey=signé avec une clef inconnue
msgEncrypted=chiffrée
msgSignedAndEnc=signée et chiffrée
unverifiedSig=Signature non vérifiée
incompleteDecrypt=Déchiffrement incomplet
needKey=Erreur - une clef privée est nécessaire au déchiffrement du message
failedDecrypt=Erreur - le déchiffrement a échoué
badPhrase=Erreur - mauvaise phrase secrète
failedDecryptVerify=Erreur - le déchiffrement ou la vérification ont échoué
viewInfo=; pour plus de détails, consultez « Infos de sécurité des messages » dans le menu Affichage
decryptedMsg=Message déchiffré
decryptedMsgWithFormatError=Message déchiffré (restauration d'un format de message corrompu probablement causé par un ancien serveur Exchange ; le résultat peut ne pas être complètement lisible)
usedAlgorithms=Algorithmes utilisés : %S et %S
# strings in pref-enigmail.js
oldGpgVersion14=L'initialisation d'Enigmail a échoué.\n\nVous utilisez actuellement GnuPG version %S qui n'est plus supporté. Enigmail requiert une version de GnuPG supérieure ou égale à la 2.0.7. Merci de bien vouloir mettre à jour votre installation de GnuPG ou Enigmail ne pourra pas fonctionner.
locateGpg=Localiser l'agent GnuPG
invalidGpgPath=GnuPG ne peut être exécuté depuis le chemin indiqué. Enigmail est donc désactivé jusqu'au changement du chemin de GnuPG ou au redémarrage de l'application.
warningsAreReset=Tous les messages d'avertissements ont été réinitialisés.
prefs.gpgFound=GnuPG trouvé dans %S
prefs.gpgNotFound=Impossible de trouver GnuPG
prefs.warnAskNever=Attention : activer cette option impliquera l'envoi de messages non chiffré sans aucun avertissement s'il manque une clef pour un des destinataires -- Enigmail n'avertira pas si un tel cas se produit !
prefs.warnIdleTimeForUnknownAgent=Votre système utilise un outil externe pour la gestion de votre mot de passe (comme gnome-keyring ou seahorse-agent). Malheureusement Enigmail ne peut pas contrôler la durée de mémorisation pour cet outil. Les paramètres de mémorisation d'Enigmail ne seront donc pas utilisés.
prefEnigmail.oneKeyserverOnly=Erreur : vous ne pouvez spécifier qu'un seul serveur pour le téléchargement automatique des clefs OpenPGP manquantes.
enterAdminPin=Veuillez saisir le code PIN d'administration de votre carte à puce
enterCardPin=Veuillez saisir le code PIN de votre carte à puce
notInit=Erreur - le service Enigmail n'a pas encore été initialisé
badCommand=Erreur - la commande de chiffrement a échoué
cmdLine=ligne de commande et sortie :
notRequired=Erreur - aucun chiffrement nécessaire
notComplete=Erreur - la génération de la clef n'est pas encore terminée
invalidEmail=Erreur - adresse(s) de messagerie incorrecte(s)
noPassphrase=Erreur - aucune phrase secrète saisie
noPGPblock=Erreur - Aucun bloc de données OpenPGP (blindage) correct n'a été trouvé
unverifiedReply=La partie indentée du message (réponse) a probablement été modifiée
keyInMessageBody=Clef trouvée dans le corps du message. Cliquer "Importer la clef" pour l'importer
sigMismatch=Erreur - la signature ne correspond pas
cantImport=Erreur lors de l'importation de la clef publique\n\n
doImportOne=Importer %1$S (%2$S) ?
doImportMultiple=Importer la clef ci-dessous ?\n\n%S
previewFailed=Impossible de lire le fichier de la clef publique.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=La carte à puce %S détectée dans votre lecteur ne peut pas être utilisée pour faire l'opération sur le message.\nMerci d'insérer votre carte à puce %S et de recommencer l'opération.
sc.insertCard=Cette opération nécessite la carte à puce %S.\nMerci d'insérer la carte à puce requise et de recommencer l'opération.
sc.removeCard=Cette opération n'a pas besoin de carte à puce dans le lecteur.\nMerci d'enlever la carte et de recommencer l'opération.
sc.noCardAvailable=Aucune carte à puce n'a été trouvée dans votre lecteur\nVeuillez insérer votre carte et recommencer l'opération
sc.noReaderAvailable=Impossible d'accéder à votre lecteur de cartes à puce\nVeuillez connecter votre lecteur de cartes, insérer votre carte et recommencer l'opération
keyError.keySpecNotFound=L'adresse email "%S" n'a pas de clef correspondante dans votre trousseau.
keyError.keyIdNotFound=L'identifiant de clé « %S » fourni n'a pas pu être trouvé dans votre trousseau.
keyError.resolutionAction=Merci de saisir un identifiant de clé valide dans la section OpenPGP des préférences de votre compte.
missingPassphrase=Phrase secrète manquante
errorHandling.gpgAgentInvalid=Votre système utilise une version de gpg-agent qui n'est pas compatible avec votre version de GnuPG.
errorHandling.gpgAgentError=GnuPG a rapporté une erreur de communication avec gpg-agent (un composant de GnuPG).
errorHandling.dirmngrError=GnuPG a rapporté une erreur de communication avec dirmngr (un composant de GnuPG).
errorHandling.pinentryError=GnuPG ne peut pas vous demander votre phrase de passe à l'aide de pinentry.
errorHandling.readFaq=Ceci est une erreur d'installation ou de configuration qui empêche Enigmail de fonctionner correctement et qui ne peut pas être corrigée automatiquement.\n\nNous vous conseillons vivement de consulter notre page de support sur notre site internet à l'adresse https://enigmail.net/faq.
gpgNotFound=Impossible de localiser l'agent GnuPG « %S ».\nAssurez-vous d'avoir saisie le chemin correct pour l'exécutable GnuPG dans les préférences Enigmail
gpgNotInPath=Impossible de localiser l'exécutable GnuPG dans le chemin par défaut (PATH).\nAssurez-vous d'avoir saisie le chemin correct pour l'exécutable GnuPG dans les préférences Enigmail
enigmailNotAvailable=Enigmail core Service n'est pas disponible
gpgAgentNotStarted=Impossible de démarrer le programme gpg-agent qui est requis avec votre version GnuPG %S.
prefUntrusted=NON CERTIFIÉE
prefRevoked=CLEF REVOQUÉE
prefExpiredKey=CLEF EXPIRÉE
prefExpired=EXPIRÉE
prefGood=Signature correcte de %S
prefBad=MAUVAISE signature de %S
failCancel=Erreur - Le téléchargement de clef a été annulé par l'utilisateur
failNoServer=Erreur - Aucun serveur de clefs n'a été spécifié pour le téléchargement de clefs
failNoID=Erreur - Aucun identifiant spécifié pour le téléchargement de la clef
failKeyExtract=Erreur - l'extraction de la clef a échoué
notFirstBlock=Erreur - Le premier bloc de données OpenPGP ne contient pas de clef publique
importKeyConfirm=Importer la/les clef(s) publique(s) incorporée(s) au message ?
failKeyImport=Erreur - l'importation de clef a échouée
fileWriteFailed=Échec de l'écriture dans le fichier %S
importKey=Importer la clef publique %S du serveur de clefs :
uploadKey=Envoyer la clef publique %S au serveur de clefs :
keyId=Identifiant de clef
keyAndSigDate=Id de clef : 0x%S / Signée le : %S
keyFpr=Empreinte de la clef : %S
noEmailProvided=Vous n'avez pas fourni d'adresse de messagerie !
keyAlreadySigned=La clef est déjà signée, il est impossible de la signer deux fois.
gnupg.invalidKey.desc=La clef %S est introuvable ou invalide. La (sous-)clef peut avoir expiré.
selKeyExpired=expire %S
createdHeader=Créée
atLeastOneKey=Aucune clef sélectionnée ! Vous devez sélectionner au moins une clef pour accepter cette boîte de dialogue
fewerKeysThanRecipients=Vous avez sélectionné moins de clefs que de destinataires. Êtes-vous sûr que la liste de clefs pour chiffrer est complète ?
userSel.button.goBack=Sélectionnez plus de clefs
userSel.secretKeySel.title=Sélectionnez une clef privée OpenPGP pour signer vos messages
userSel.problemNoKey=Pas de clef valide
userSel.problemMultipleKeys=plusieurs clefs
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Envoyer plus tard
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=PGP/MIME n'est supporté que par un nombre limité de logiciels de messagerie ! Sous Windows seuls Mozilla/Thunderbird, Sylpheed, Pegasus et Mulberry sont connus pour supporter ce standard; sous Linux, UNIX et MacOS X la plupart des logiciels de messagerie le supportent. Dans le doute, sélectionnez la %S option.
first=première
second=seconde
# Strings used in am-enigprefs.js
encryptKeyHeader=Sélectionnez la clef OpenPGP pour le chiffrement
identityName=Identité : %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Vous avez activé le chiffrement mais vous n'avez pas sélectionné de clef. Afin de chiffrer les messages destinés à %1$S, vous devez indiquer une ou plusieurs clefs valides dans votre liste de clefs. Désirez-vous désactiver le chiffrement pour %2$S ?
noKeyToUse=(aucune - pas de chiffrement)
noEmptyRule=La règle ne peut être vide ! Veuillez définir une adresse de messagerie dans le champ Règle.
invalidAddress=Les adresses électroniques que vous avez saisies ne sont pas valides. Vous ne devez pas définir le nom des destinataires, uniquement les adresses électroniques. Par ex. :\nInvalide : Un nom \nValide : un.nom@adresse.net
noCurlyBrackets=Les accolades {} ont une signification particulière et ne peuvent pas apparaitre dans les adresses électroniques. Si vous désirez modifier le comportement de correspondance pour cette règle, utiliser l'option « Appliquer la règle si le destinataire... ».\nPlus d'information est disponible via le bouton Aide.
# Strings used in enigmailRulesEditor.js
never=Jamais
always=Toujours
possible=Possible
deleteRule=Effacer la règle sélectionnée ?
nextRcpt=(destinataire suivant)
negateRule=Non
addKeyToRule=Ajouter la clef %S (%S) à la règle par destinataire
# Strings used in enigmailSearchKey.js
needOnline=La fonction sélectionnée n'est pas disponible en mode hors ligne. Veuillez passer en mode connecté et réessayer.
protocolNotSupported=Le protocole « %S:// » que vous avez sélectionné n'est pas supporté pour le téléchargement de clefs OpenPGP.
gpgkeysDisabled=Il peut être utile d'activer l'option « extensions.enigmail.useGpgKeysTool ».
noKeyserverConn=Impossible de se connecter au serveur %S.
keyDownloadFailed=Impossible de télécharger la clef depuis le serveur de clefs. Le message d'état est :\n%S
internalError=Une erreur interne est survenue. Les clefs n'ont pas pu être téléchargées ou importées.
noKeyFound=Désolé, impossible de trouver une clef qui corresponde aux critères de recherche spécifiés.\nVeuillez noter que les identifiants de clefs doivent être préfixés par « 0x » (ex. : 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Impossible de rechercher ou télécharger la clef depuis le serveur de clefs : impossible d'exécuter gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Échec de la définition du niveau de confiance du propriétaire
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Échec de la signature de la clef
alreadySigned.label=Note : la clef %S est déjà signée avec la clef privée sélectionnée.
alreadySignedexportable.label=Note : la clé %S a déjà été signée publiquement à l'aide de la clé privée sélectionnée. Une signature locale ne fait donc pas sens ici.
partlySigned.label=Remarque : certains ID utilisateurs %S sont déjà signés avec la clef secrète sélectionnée.
noTrustedOwnKeys=Aucune clé éligible n'a été trouvée pour signature ! Vous devez posséder au minimum une clé privée en laquelle vous avez une confiance pleine pour pouvoir signer d'autres clés.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Chargement des clefs, veuillez patienter...
keyValid.unknown=inconnue
keyValid.invalid=invalide
keyValid.disabled=désactivée
keyValid.revoked=révoquée
keyValid.expired=expirée
keyValid.noSubkey=pas de sous-clef valide
keyTrust.untrusted=pas confiance
keyTrust.marginal=confiance modérée
keyTrust.full=pleine confiance
keyTrust.ultimate=confiance absolue
keyTrust.group=(groupe)
keyType.public=publique
keyType.publicAndSec=publique/privée
keyMan.enableKey=Activer la clef
keyMan.disableKey=Désactiver la clef
userAtt.photo=Attribut utilisateur (image JPEG)
asciiArmorFile=Fichiers de blindage ASCII (*.asc)
importKeyFile=Importer un fichier de clef OpenPGP
gnupgFile=Fichiers GnuPG
saveRevokeCertAs=Créer et enregistrer le certificat de révocation
revokeCertOK=Le certificat de révocation a été créé avec succès. Il est utilisable pour invalider votre clef publique, en cas de perte de votre clef privée.\n\nVeuillez le transférer sur un support pouvant être stocké en sécurité comme un CD ou une disquette. Si quelqu'un met la main sur ce certificat, il pourra rendre votre clef inutilisable.
revokeCertFailed=Impossible de créer le certificat de révocation.
addUidOK=Identifiant utilisateur ajouté avec succès
addUidFailed=L'ajout de l'identifiant utilisateur a échoué
noKeySelected=Il est nécessaire de sélectionner au moins une clef pour effectuer l'opération
exportToFile=Exporter la clef publique dans un fichier
exportKeypairToFile=Export des clefs Secret et Publique dans un fichier
exportSecretKey=Désirez-vous inclure la clef privée dans le fichier OpenPGP enregistré ?
saveKeysOK=Les clefs ont été enregistrées avec succès
saveKeysFailed=L'enregistrement des clefs a échoué
importKeysFailed=L'import des clefs a échoué
enableKeyFailed=L'activation/La désactivation des clefs a échoué
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-priv
defaultPubKeyFilename=Clefs-publiques-exportées
defaultPubSecKeyFilename=clefs-publique-et-privée-exportées
noSecretKeys=Pas de clef secrète trouvée.\n\nDésirez-vous créer votre propre clef maintenant ?
sendKeysOk=Clefs envoyées avec succès
sendKeysFailed=L'envoi des clefs a échoué
receiveKeysOk=clef(s) mise(s) à jour avec succés
receiveKeysFailed=Le téléchargement des clefs a échoué
importFromClip=Désirez-vous importer des clefs depuis le presse-papiers ?
importFromUrl=Télécharger une clé publique depuis cette URL :
copyToClipbrdFailed=Impossible de copier les clefs sélectionnées dans le presse-papiers.
copyToClipbrdOK=Clefs copiées dans le presse-papiers
deleteSecretKey=ATTENTION : Vous êtes sur le point de supprimer une clef privée !\nSi vous supprimer votre clef privée, vous ne serez plus en mesure de déchiffrer les messages chiffrés pour cette clef ni révoquer cette clef.\n\nDésirez-vous réellement supprimer à la fois la clef privée et la clef publique\n« %S » ?
deleteMix=ATTENTION : Vous êtes sur le point de supprimer des clefs privées !\nSi vous supprimez votre clef privée, vous ne serez plus en mesure de déchiffrer les messages chiffrés pour cette clef.\n\nDésirez-vous réellement supprimer à la fois les clefs privées et publiques sélectionnées ?
deletePubKey=Désirez-vous supprimer la clef publique\n« %S » ?
deleteSelectedPubKey=Désirez-vous supprimer les clefs publiques ?
deleteKeyFailed=Impossible de supprimer la clef.
revokeKeyQuestion=Vous êtes sur le point de révoquer la clef '%S'.\n\nVous ne serez plus en mesure de signer avec cette clef, et une fois distribuée, d'autres ne seront plus en mesure de chiffrer avec cette clef. Vous pouvez toujours utiliser la clef pour déchiffrer les anciens messages.\n\nVoulez-vous continuer?
revokeKeyOk=La clef a été révoquée. Si cette clef est disponible sur un serveur de clefs, il est recommandé de l'envoyer à nouveau afin que les autres utilisateurs puissent voir la révocation.
revokeKeyFailed=Impossible de révoquer la clef.
refreshAllQuestion=Vous n'avez sélectionné aucune clef. Désirez-vous rafraîchir toutes les clefs ?
refreshKey.warn=Attention : en fonction du nombre de clefs et de la vitesse de la connexion, le rafraîchissement de toutes les clefs pourrait prendre beaucoup de temps !\n\nContinuer ?
downloadContactsKeys.warn=Attention : selon le nombre de contacts et de votre vitesse de connexion, le téléchargement de toutes les clefs pourrait prendre beaucoup de temps !
downloadContactsKeys.importFrom=Importer les contacts à partir du carnet d'adresse '%S' ?
keyMan.button.exportSecKey=&Exporter les clefs privées
keyMan.button.exportPubKey=Exporter uniquement les clés &publiques
keyMan.button.import=&Importer
keyMan.button.refreshAll=&Rafraîchir toutes les clefs
keyMan.button.revokeKey=&Révoquer la clef
keyMan.button.skip=&Passer la clef
keylist.noOtherUids=N'a pas d'autre identité
keylist.hasOtherUids=Connu aussi sous
keylist.noPhotos=Pas de photo disponible
keylist.hasPhotos=Photo
keyMan.addphoto.filepicker.title=Sélectionner une photo à ajouter
keyMan.addphoto.warnLargeFile=Le fichier que vous avez choisi fait plus de 25 ko.\nIl n'est pas recommandé d'ajouter de trop gros fichier car les clefs deviennent très grosses.
keyMan.addphoto.noJpegFile=Le fichier sélectionné ne semble pas être au format JPEG. Merci de choisir un autre fichier.
keyMan.addphoto.failed=La photo ne peut pas être ajoutée
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Échec de la modification de l'identifiant utilisateur principal
changePrimUidOK=Identifiant utilisateur principal modifié avec succès
deleteUidFailed=Échec de la suppression de l'identifiant %S
deleteUidOK=L'identifiant %S a été supprimé avec succès
revokeUidFailed=Échec de la révocation de l'identifiant %S
revokeUidOK=L'identifiant %S a été révoqué avec succès. Si cette clef est disponible sur un serveur de clefs, il est recommandé de l'envoyer à nouveau afin que les autres utilisateurs puissent voir la révocation.
revokeUidQuestion=Voulez-vous vraiment révoquer l'identifiant %S ?
deleteUidQuestion=Voulez-vous vraiment supprimer l'identifiant %S ?\n\nÀ noter : si cette clef a été soumise sur un serveur de clef, supprimer un identifiant utilisateur ne changera rien du tout. Dans ce cas vous devez utiliser « Révoquer un identifiant ».
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=Succès ! Les clés ont été importées
importInfoSuccess=✅
importInfoBits=Bits
importInfoCreated=Créées
importInfoFpr=Empreinte
importInfoDetails=(Détails)
importInfoNoKeys=Aucune clé n'a été importée.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=clef publique
keyTypePrimary=clé primaire
keyTypeSubkey=sous-clef
keyTypePair=paire de clefs
keyExpiryNever=jamais
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=CCE
keyAlgorithm_19=CCE
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Chiffrer
keyUsageSign=Signer
keyUsageCertify=Certifier
keyUsageAuthentication=Authentification
keyDoesNotExpire=Cette clé n'expire pas
# Strings in enigmailGenCardKey.xul
keygen.started=Veuillez patienter pendant la génération de la clef...
keygen.completed=Clef générée. Le nouvel identifiant de clef est : 0x%S
keygen.keyBackup=La clef est sauvegardée en %S
keygen.passRequired=Veuillez spécifier une phrase secrète si vous désirez créer une copie de sauvegarde de votre clef en dehors de votre carte à puce.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Le code PIN saisi ne correspond pas ; veuillez essayer à nouveau
cardPin.minLength=Le code PIN doit comporter au moins %S caractères ou chiffres
cardPin.processFailed=Échec de la modification du code PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Rafraîchissement des clefs, veuillez patienter...
keyserverProgress.uploading=Envoi des clefs, veuillez patienter...
keyserverTitle.refreshing=Rafraîchissement des clefs
keyserverTitle.uploading=Envoi des clefs
# Strings in enigmailSetupWizard
passphrase.min8keys=Votre phrase secrète doit comporter au moins 8 caractères !
setupWizard.reallyCancel=Voulez-vous vraiment abandonner l'assistant de configuration Enigmail ?
setupWizard.invalidGpg=Le fichier spécifié n'est pas un exécutable GnuPG. Choisissez un autre fichier.
setupWizard.specifyFile=Vous devez au moins spécifier un fichier de clef publique pour poursuivre.
setupWizard.installFailed=Il semble que l'installation n'ait pas réussi. Merci de réessayer l'installation ou d'installer GnuPG manuellement puis de sélectionner l'exécutable avec le bouton Parcourir.
setupWizard.downloadForbidden=Pour votre sécurité nous ne téléchargerons pas GnuPG. Rendez-vous sur http://www.gnupg.org/ pour télécharger GnuPG.
setupWizard.downloadImpossible=Nous ne pouvons pas télécharger GnuPG actuellement. Essayez plus tard ou rendez-vous sur http://www.gnupg.org/ pour télécharger GnuPG.
setupWizard.hashSumError=L'assistant ne peut pas vérifier l'intégrité du fichier téléchargé. Le fichier peut avoir été corrompu ou modifié. Souhaitez-vous quand même poursuivre l'installation ?
setupWizard.importSettingsFile=Spécifier un fichier de sauvegarde depuis lequel importer
setupWizard.invalidSettingsFile=Le fichier spécifié n'est pas une sauvegarde Enigmail correcte.
setupWizard.gpgConfExists=Le fichier de configuration Enigmail existe déjà . Souhaitez-vous le remplacer par celui de votre ancienne installation ?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Une erreur est intervenue lors du téléchargement de GnuPG. Consultez la console pour plus de détails.
installGnuPG.installFailed=Une erreur est intervenue lors de l'installation de GnuPG. Consultez la console pour plus de détails.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Vous devez saisir un nom et une adresse e-mail
addUidDlg.nameMinLengthError=Le nom doit faire au minimum 5 caractères
addUidDlg.invalidEmailError=Vous devez spécifier une adresse e-mail valide
addUidDlg.commentError=Les parenthèse sont interdites dans les commentaires
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Les smartcards OpenPGP ne supportent que les caractère ASCII dans le prénom/nom.
# network error types
errorType.SecurityCertificate=Le certificat de sécurité présenté par le service web n'est pas valide.
errorType.SecurityProtocol=Le protocole de sécurité utilisé par le service web est inconnu.
errorType.Network=Une erreur réseau est intervenue.
# filter stuff
filter.folderRequired=Vous devez sélectionner un dossier cible.
filter.decryptMove.label=Déchiffrage permanent (Enigmail)
filter.decryptCopy.label=Créer une copie décryptée (Enigmail)
filter.decryptMove.warnExperimental=Attention - l'action de filtrage "Déchiffrage permanent" pourrait conduire à des messages détruits.\n\nNous vous recommandons fortement d'essayer d'abord le filtre "Créer une copie décryptée", de tester le résultat avec soin, et de ne commencer à utiliser ce filtre qu'une fois que vous êtes satisfait de la résultat.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Impossible de déchiffrer le message avec objet\n"%S".\nVoulez-vous recommencer avec une phrase secrète différente ou voulez-vous sauter ce message?
converter.decryptAtt.failed=Impossible de déchiffrer l'attache "%1$S"\ndu message avec objet\n"%2$S".\nVoulez-vous recommencez avec une phrase secrète différente ou voulez-vous sauter ce message?
saveLogFile.title=Enregistrer le fichier journal
# strings in gpg.jsm
unknownSigningAlg=Algorithme de signature inconnu (IDÂ : %S)
unknownHashAlg=Empreinte cryptographique inconnue (IDÂ : %S)
# strings in keyRing.jsm
keyring.photo=Photo
keyRing.pubKeyRevoked=La clé %1$S (identifiant de clé %2$S) a été révoquée.
keyRing.pubKeyExpired=La clé %1$S (identifiant de clé %2$S) a expiré.
keyRing.pubKeyNotForSigning=La clé %1$S (identifiant de clé %2$S) ne peut pas être utilisée pour signer.
keyRing.pubKeyNotForEncryption=La clé %1$S (identifiant de clé %2$S) ne peut pas être utilisée pour chiffrer.
keyRing.keyDisabled=La clé %1$S (identifiant de clé %2$S) a été desactivée ; elle ne peut pas être utilisée.
keyRing.keyNotTrusted=Vous n'avez pas placer un niveau de confiance suffisant dans la clé %1$S (identifiant de clé %2$S). Merci de sélectionner un niveau de confiance absolu pour pouvoir l'utiliser dans une signature.
keyRing.keyInvalid=La clé %1$S (identifiant de clé %2$S) est invalide (par ex. elle n'a pas été auto-signée).
keyRing.signSubKeysRevoked=Toutes les sous-clefs de signature de la clef %1$S (ID de clef %2$S) ont été révoquées.
keyRing.signSubKeysExpired=Toutes les sous-clefs de signature de la clef %1$S (ID de clef %2$S) ont expiré.
keyRing.signSubKeysUnusable=Toutes les sous-clefs de signature de la clef %1$S (ID de clef %2$S) ont été révoquées, ont expiré ou sont inutilisables.
keyRing.encSubKeysRevoked=Toutes les sous-clefs de chiffrement de la clef %1$S (ID de clef %2$S) ont été révoquées.
keyRing.encSubKeysExpired=Toutes les sous-clefs de chiffrement de la clef %1$S (ID de clef %2$S) ont expiré.
keyRing.noSecretKey=Vous ne semblez pas avoir de clef secrète pour %1$S (ID de clef %2$S) dans votre trousseau ; vous ne pouvez pas utiliser la clef pour signer.
keyRing.encSubKeysUnusable=Toutes les sous-clefs de chiffrement de la clef %1$S (ID de clef %2$S) ont été révoquées, ont expiré ou sont inutilisables.
#strings in exportSettingsWizard.js
cannotWriteToFile=Impossible de sauver la clé '%S'. Merci de sélectionner un autre fichier.
dataExportError=Une erreur a eu lieu en exportant vos données.
enigmailSettings=ParametresEnigmail
defaultBackupFileName=Enigmail-export
specifyExportFile=Précisez le nom du fichier d'export
homedirParamNotSUpported=Les paramètres additionnels configurant des chemins, comme --homedir et --keyring, ne sont pas supportés lors de l'import/export de vos paramètres. Merci d'utiliser d'autres méthodes comme la création d'une variable d'environnement GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=Votre clef %1$S expirera dans moins de %2$S jours.\n\nNous vous recommandons de créer une nouvelle paire de clefs et de configurer les comptes correspondants pour utiliser la nouvelle clef.
expiry.keysExpireSoon=Vos clefs suivantes expireront dans moins de %1$S jours : %2$S\n\nNous vous recommandons de créer de nouvelles clefs et de configurer les comptes correspondants pour utiliser les nouvelles clefs.
enigmail/lang/fr/help/ 0000775 0000000 0000000 00000000000 12667016244 0015133 5 ustar 00root root 0000000 0000000 enigmail/lang/fr/help/compose.html 0000664 0000000 0000000 00000010304 12667016244 0017464 0 ustar 00root root 0000000 0000000
Aide Enigmail : Rédaction de message
Aide Enigmail
Utiliser Enigmail lors de la rédaction de messages
- Menu Enigmail dans la fenêtre de composition
- Signer le message : Activer/Désactiver l'envoi de messages signés. L'utilisateur est prévenu
si l'opération de signature échoue.
- Chiffrer le message : Activer/Désactiver le chiffrement pour tous les destinataires avant l'envoi.
L'utilisateur est prévenu si l'opération de chiffrement échoue.
Si l'option Afficher une sélection si nécessaire est définie dans Préférences
-> onglet Sélection clef, une liste de clefs apparaitra s'il y a dans le message des adresses de destination
pour lesquelles vous n'avez pas de clef publique.
Si l'option Ne jamais afficher le dialogue de sélection de clef est définie dans Préférences
-> onglet Sélection clef et qu'il y a dans le message des adresses de destination
pour lesquelles vous n'avez pas de clef publique, le message sera envoyé non chiffré.
- Utiliser PGP/MIME pour ce message : Activer/Désactiver l'utilisation de
PGP/MIME
pour ce message.
Si vous savez que le destinataire peut lire les messages utilisant le format PGP/MIME,
il est conseillé de l'utiliser.
Cette fonctionnalité est dépendante du réglage dans Préférences
-> onglet PGP/MIME qui doit être Utiliser PGP/MIME si possible ou Toujours utiliser
PGP/MIME.
- Options de rédaction par défaut : Sous-menu.
- Options de signature/chiffrement... : raccourci vers Paramètres des comptes ->
Sécurité OpenPGP ;
- Options d'envoi... : raccourci vers l'onglet Préférences ->
Envoi ;
- Options de sélection de clef... : raccourci vers l'onglet Préférences ->
Sélection clef ;
- Options PGP/MIME... : raccourci vers l'onglet Préférences ->
PGP/MIME.
- Annuler le chiffrement : S'il y a un problème lors de l'envoi effectif du message,
par exemple parceque le serveur POP n'accepte pas la requête, Enigmail n'en sera pas informé,
et le message sera toujours affiché chiffré dans la fenêtre de rédaction.
En choississant ce menu, le chiffrement et la signature seront annulés et le message restauré
dans sa forme texte originelle.
Cette option peut être également utilisée en tant que solution temporaire pour déchiffrer les citations
lors de la réponse à des messages chiffrés. Enigmail devrait automatiquement déchiffrer les citations
mais si cela échoue pour une raison inconnue, il est possible d'utiliser ce menu pour forcer
le déchiffrement.
- Insérer une clef publique: insérer un bloc armure-ASCII d'une clef publique
à la position courante du curseur dans la fenêtre de rédaction. L'adresse électronique de la clef
à insérer sera demandée. Les clefs insérées de cette manière seront automatiquement reconnues par
Enigmail du coté du destinataire. Après l'insertion de la clef, il est toujours possible de choisir
de signer/chiffrer le message si nécessaire. De plus, il ne faut pas insérer plus d'un bloc de clef dans un
message ; if faut juste spécifier plusieurs adresses, séparées par virgules ou des espaces, lors
de la demande.
- Oublier la phrase secrète: Effacer de la mémoire la phrase secrète mémorisée. Utile si vous
avez plusieurs phrases secrètes.
- Aide: Afficher les informations d'aide depuis le site Web (cette page).
De l'aide supplémentaire est disponible sur la
page Web d'Enigmail
enigmail/lang/fr/help/editRcptRule.html 0000664 0000000 0000000 00000013474 12667016244 0020440 0 ustar 00root root 0000000 0000000
Aide Enigmail : Modifier les règles OpenPGP
Aide Enigmail
Utiliser l'éditeur de règles d'Enigmail : modifier les règles OpenPGP
Avec l'éditeur de règles, il est possible de définir les paramètres par défaut
par destinataire concernant l'activation du chiffrement, de la signature, de PGP/MIME
et de choisir quelle(s) clef(s) utiliser. Dans cette boite de dialogue, vous pouvez
spécifier les règles pour un destinataire unique ou pour un groupe de destinataires
ayant des attributs très proches.
- Définir les règles OpenPGP pour : contient les adresses
électroniques des destinataires (sans leur nom, c.à.d. juste une adresse comme
personne@adresse.domaine). Il est possible de spécifier plusieurs adresses séparées par des espaces.
L'adresse indiquée ici peut être réduite uniquement à la partie domaine de l'adresse
afin de faire correspondre toutes les adresses vers ce domaine, par exemple
@adresse.domaine correspondra à nafnaf@adresse.domaine,
nifnif@adresse.domaine, noufnouf@adresse.domaine, etc ;
- Appliquer la règle si le destinataire... :
Ceci modifie la correspondance des adresses.
Si plusieurs adresses sont saisies, le réglages s'applique à toutes.
Les exemples ci-dessous sont basés sur le fait que naf@adresse.domaine
à été saisi dans le champ règles OpenPGP ci-dessus :
- Est exactement : avec ce réglage, la règle s'appliquera uniquement
sur des messages à destination de naf@adresse.domaine (correspondance exacte, insensible à la casse),
- Contient : avec ce réglage, n'importe quelle adresse contenant la chaîne correspond,
par exemple nafnaf@adresse.domaine ou aeronaf@adresse.domaine.net,
- Débute par : avec ce réglage, n'importe quelle adresse commençant
par la chaîne correspond, par exemple naf@adresse.domaine.net,
naf@adresse.domaine-nom.com,
- Se termine par : avec ce réglage, n'importe quelle adresse finissant
par la chaîne correspond, par exemple nafnaf@adresse.domaine,
nafnafnaf@adresse.domaine ;
- Continuer avec la prochaine règle pour l'adresse correspondante
Activer cette fonctionnalité vous permettra de définir une règle sans avoir à spécifier
un ID de clef dans le champ Utiliser les clefs OpenPGP suivantes :
, de ce fait l'adresse électronique est utilisée pour trouver une clef au moment de
l'envoi. De plus, les règles suivantes pour la (les) même(s) adresse(s) seront traitées également.
- Ne pas vérifier les prochaines règles pour l'adresse correspondante
Activer cette fonctionnalité interrompra le traitement des autres règles pour l'adresse correspondante
si la règle en cours correspond ; c.à.d. que le traitement des règles continu avec le destinataire
suivant.
- Utiliser les clefs OpenPGP suivantes :
Utilisez le bouton Sélectionner les clefs... pour sélectionner la clef du
destinataire à utiliser pour le chiffrement. Comme dans l'option ci-dessus, plus aucune règle
pour l'adresse correpondante n'est traitée.
- Par défaut pour signature : activer ou désactiver
la signature des messages. Ceci utilise ou outrepasse les réglages effectués
dans la fenêtre de rédaction. Les valeurs possibles sont :
- Jamais: désactiver la signature, même si elle est activée dans la fenêtre de
rédaction du messages (prévaut sur les autres valeurs),
- Oui, si sélectionné lors de la composition du message: laisser le réglage
de signature tel qu'il est spécifié dans la fenêtre de rédaction,
- Toujours: activer la signature, même si elle n'est pas activée dans la fenêtre de
rédaction,
Ces paramètres de signature sont appliqués pour
toutes les règles qui correspondent. Si l'une des règles désactive la signature, le message
ne sera pas signé, même si d'autres règles spécifiaient Toujours ;
- Chiffrement : activer ou
désactiver le chiffrement des messages. Les valeurs autorisées ainsi que leur signification
sont les mêmes que pour la signature des messages ;
- PGP/MIME : activer ou
désactiver l'utilisation du codage de message PGP/MIME (RFC 3156).
Si PGP/MIME est désactivé, les
messages sont codés en utilisant le format « PGP en ligne ». Les valeurs autorisées
ainsi que leur signification sont les mêmes que pour la signature des messages.
Les règles sont appliquées dans l'ordre d'affichage de la liste de
l'éditeur de règles OpenPGP. Dès lors qu'une règle
correspond à un destinataire et contient un identifiant de clef OpenPGP, non seulement l'identifiant
de clef spécifié est utilisé, mais le destinataire n'est plus pris en compte dans le traitement
des règles suivantes.
De l'aide supplémentaire est disponible sur la
page des réglages par destinataire d'Enigmail
enigmail/lang/fr/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020006 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/fr/help/messenger.html 0000664 0000000 0000000 00000010525 12667016244 0020014 0 ustar 00root root 0000000 0000000
Aide Enigmail : Lecture de messages
Aide Enigmail
Utiliser Enigmail lors de la lecture de messages
- Bouton Déchiffrer dans la fenêtre principale
Ce bouton peut être utilisé pour plusieurs actions : déchiffrer, vérifier ou importer
des clefs publiques. En temps normal, bien que cela soit optionnellement désactivable,
le déchiffrement et la vérification seront effectués automatiquement. Toutefois, en cas d'échec,
un court message apparaitra dans la barre d'état d'Enigmail. Un clic
sur le bouton Déchiffrer permettra d'obtenir un message d'erreur plus détaillé, contenant
les messages de sortie de la commande GnuPG.
- Icônes stylo et clef dans l'affichage de l'en-tête du message
Les icônes Stylo et Clef dans l'affichage de l'en-tête du message indique
si le message affiché a été signé et/ou chiffré et si la signature est correcte,
c.à.d. que le message n'a pas été modifié depuis qu'il a été signé. Si le message
a été modifié, l'icône Stylo se changera en un Stylo brisé afin
d'indiquer que la signature est incorrecte. Un clic droit sur l'icône de stylo ou celle de clef
fera apparaitre un menu contenant les options suivantes :
- Infos de sécurité OpenPGP : permet d'obtenir l'état de sortie de
GnuPG pour le message ;
- Copier les infos de sécurité OpenPGP : copie l'état de sortie de GnuPG dans
le presse papier afin de le coller dans un message de réponse par exemple ;
- Voir l'ID photo OpenGPG : permet de voir l'ID photo de l'expéditeur
du message, uniquement s'il y a une photo intégrée dans sa clef publique
(cette option ne sera active que si un ID photo existe dans la clef) ;
- Infos de sécurité S/MIME : permet de visualiser les informations de sécurité S/MIME
du message.
Si vous n'avez pas l'option keyserver-options auto-key-retrieve définie dans votre
fichier gpg.conf et que vous lisez un message signé ou chiffré,
vous verrez une icône de Stylo comportant un point d'interrogation
dans la zone d'affichage des en-têtes, la ligne d'état Enigmail affichera Partie du message signée
; cliquez sur l'icône « stylo » pour plus de détails. De plus le message dans le
panneau de message affichera tous les blocs de message OpenPGP et le bloc de signature.
Il est également possible d'observer ce comportement même si vous l'option keyserver-options auto-key-retrieve
est bien définie dans votre fichier gpg.conf mais que la clef OpenPGP n'est pas disponible sur le serveur
de clefs par défaut.
En cliquant sur l'icône Stylo et point d'interrogation apparaitra une fenêtre
vous avertissant que la clef n'est pas disponible dans votre trousseau de clefs. Fermer la fenêtre par OK
ouvrira une autre fenêtre contenant une liste de serveurs de clefs que vous pouvez sélectionner afin de
télécharger la clef publique de l'expéditeur.
Pour configurer la liste des serveurs de clefs que vous désirez utiliser, allez dans Enigmail ->
Préférences -> onglet Général et saisissez les adresses des serveurs de clefs dans la zone
Serveur(s) de clefs : séparées par des virgules. Le premier serveur de la liste
sera utilisé comme serveur par défaut.
- Ouverture de pièces jointes chiffrées / importation de clefs OpenPGP attachées
Les pièces jointes nommées *.pgp, *.asc et *.gpg sont reconnues par Enigmail comme pouvant être
traitées spécialement. Cliquer droit sur une de ces pièces jointes
active deux entrées de menu spéciales dans le menu contextuel : Déchiffrer et ouvrir
et Déchiffrer et enregistrer sous. Utilisez ces deux menus si vous désirez qu'Enigmail
déchiffre une pièce jointe avant de l'ouvrir ou de l'enregistrer. Si une pièce jointe est
reconnue comme un fichier de clef OpenPGP, il vous est proposé d'importer les clefs qu'il contient dans
votre trousseau de clefs.
De l'aide supplémentaire est disponible sur la
page web d'Enigmail
enigmail/lang/fr/help/rulesEditor.html 0000664 0000000 0000000 00000006713 12667016244 0020331 0 ustar 00root root 0000000 0000000
Aide Enigmail : Éditeur de règles
Aide Enigmail
Utilisation de l'éditeur de règles
Dans l'éditeur de règles, vous pouvez spécifier les paramètres par défaut par destinataire,
concernant l'activation du chiffrement, de la signature, de PGP/MIME et de choisir
quelle(s) clef(s) utiliser. Chaque règle consiste en 5 champs et est représentée sur une seule ligne :
- Adresse : l'adresse électronique
des champs Pour, Cc et Bcc pour la correspondance. Cette correspondance est faite sur des sous-chaînes (plus de détails se trouvent dans la
boite de dialogue d'édition des règles) ;
- Clef(s) à utiliser : une liste d'identifiants
de clefs OpenPGP à utiliser pour le destinataire ;
- Signature : activer ou désactiver
la signature des messages. Ceci utilise ou outrepasse les réglages effectués
dans la fenêtre de rédaction. Les valeurs possibles sont :
- Jamais : désactiver la signature, même si elle est activée dans la fenêtre de
rédaction du messages (prévaut sur les autres valeurs),
- Oui, si sélectionné lors de la composition du message : laisser le réglage
de signature tel qu'il est spécifié dans la fenêtre de rédaction,
- Toujours : activer la signature, même si elle n'est pas activée dans la fenêtre de
rédaction,
Ces paramètres de signature sont appliqués pour
toutes les règles qui correspondent. Si l'une des règles désactive la signature, le message
ne sera pas signé, même si d'autres règles spécifiaient Toujours ;
- Chiffrement: activer ou
désactiver le chiffrement des messages. Les valeurs autorisées ainsi que leur signification
sont les mêmes que pour la signature des messages ;
- PGP/MIME: activer ou
désactiver l'utilisation du codage de message PGP/MIME (RFC 3156).
Si PGP/MIME est désactivé, les
messages sont codés en utilisant le format « PGP en ligne ». Les valeurs autorisées
ainsi que leur signification sont les mêmes que pour la signature des messages.
Les règles sont appliquées dans l'ordre d'affichage de la liste. Dès lors qu'une règle
correspond à un destinataire et contient un identifiant de clef OpenPGP, non seulement l'identifiant
de clef spécifié est utilisé, mais le destinataire n'est plus pris en compte dans le traitement
des règles suivantes.
Note : l'éditeur de règles n'est pas encore terminé. Il est possible d'écrire des
règles plus avancées en modifiant directement le fichier de règles
(ces règles ne devront alors plus être modifiées dans l'éditeur de règles). Des informations
complémentaires pour modifier directement le fichier sont disponibles
sur le site Web d'Enigmail
De l'aide supplémentaire est disponible sur la
page Web d'Enigmail
enigmail/lang/fr/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020467 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/gd/ 0000775 0000000 0000000 00000000000 12667016244 0014166 5 ustar 00root root 0000000 0000000 enigmail/lang/gd/am-enigprefs.properties 0000664 0000000 0000000 00000000127 12667016244 0020661 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Tèarainteachd OpenPGP
enigmail/lang/gd/enigmail.dtd 0000664 0000000 0000000 00000152100 12667016244 0016447 0 ustar 00root root 0000000 0000000
à s-phortaich an dà ta agad on t-seann choimpiutair agad le draoidh à s-phortadh nan roghainnean Enigmail
ion-phortaich an dà ta dhan choimpiutair ùr agad leis an draoidh seo.
">
à s-phortaich an dà ta agad on t-seann choimpiutair agad leis an draoidh seo
ion-phortaich an dà ta dhan choimpiutair ùr agad le draoidh an rèiteachaidh.
">
enigmail/lang/gd/enigmail.properties 0000664 0000000 0000000 00000134063 12667016244 0020100 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Caismeachd Enigmail
enigConfirm=Dearbhadh Enigmail
enigError=Mearachd Enigmail
enigPrompt=Ceist Enigmail
dlgYes=&Tha
dlgNo=&Chan eil
dlgKeepSetting=Cuir an fhreagairt agam an cuimhne is na faighnich a-rithist
dlgNoPrompt=Na seall an còmhradh seo a-rithist
dlg.button.delete=&Sguab à s
dlg.button.cancel=&Sguir dheth
dlg.button.close=&Dùin
dlg.button.continue=Lean air adhar&t
dlg.button.skip=Gearr &leum
dlg.button.overwrite=&Sgrìobh thairis air
dlg.button.view=&Seall
dlg.button.retry=Feuch ris a-&rithist
dlg.button.ignore=Le&ig seachad
repeatPrefix=\n\nNochdaidh a’ chaismeachd seo a-rithist %S
repeatSuffixSingular=turas eile.
repeatSuffixPlural=tursan/turas eile.
noRepeat=\n\nChan nochd a’ chaismeachd seo a-rithist gus an à rdaich thu Enigmail.
pgpNotSupported=Tha coltas gu bheil thu a’ chleachdadh Enigmail còmhla ri PGP 6.x\n\nGu mì-fhortanach, cha duilgheadasan aig PGP 6.x a dh’adhbharaicheas nach obraich Enigmail mar bu chòir. Mar sin, cha chuir Enigmail taic ri PGP 6.x tuilleadh; cleachd GnuPG (GPG) ’na à ite.\n\nMa tha thu feumach air taic gus atharrachadh gu GnuPG, thoir sùil air earrann na cobharach air an duilleag-dhachaigh aig Enigmail.
initErr.howToFixIt=Tha thu feumach air GnuPG mus urrainn dhut Enigmail a chleachdadh. Mur an do stà laich thu GnuPG fhathast, ’s e an dòigh as fhasa gun cleachd thu putan “Draoidh an rèiteachaidh†gu h-ìosal.
initErr.setupWizard.button=Draoidh an &rèiteachaidh
passphraseCleared=Tha an abairt-fhaire air fhalamhachadh.
cannotClearPassphrase=Tha thu a’ cleachdadh inneal neo-à bhaisteach (mar gnome-keyring) gus abairtean-faire a là imhseachadh. Chan eil Enigmail fhèin comasach air an abairt-fhaire fhalamhachadh air an adhbhar seo.
noPhotoAvailable=Chan eil dealbh ri là imh
debugLog.title=Loga dì-bhugachaidh Enigmail
error.photoPathNotReadable=Cha ghabh slighe an deilbh “%S†leughadh
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Thà inig atharrachadh mòr air mar a thèid roghainnean a là imhseachadh leis an tionndadh ùr seo de dh’Enigmail. Dh’fheuch sinn ris na seann roghainnean a thar-aiseag dhan tionndadh ùr seo. Co-dhiù, chan urrainn dhut dèiligeadh ris a h-uile roghainn gu fèin-obrachail. Thoir sùil air na roghainnean ùra a fhuair thu mar thoradh.
enigmailCommon.checkPreferences=Dearbhaich na roghainnean...
preferences.defaultToPgpMime=Dh’atharraich sinn còdachadh tùsail nan teachdaireachdan ann an Enigmail o Inline-PGP gu PGP/MIME. Mholamaid gun cum thu seo mar a’ bhun-roghainn.\n\nNam gu toigh leat Inline-PGP a chleachdadh a ghnà th fhathast, ’s urrainn dhut seo a dhèanamh ann an “Roghainnean nan Cunntasan†fo “Tèarainteachd OpenPGPâ€.
usingVersion=A’ ruith Enigmail tionndadh %S
usingAgent=A’ chleachdadh faidhle so-ghnìomhaichte %1$S %2$S airson crioptachadh is dì-chrioptachadh
agentError=MEARACHD: Cha deach leinn seirbheis Enigmail inntrigeadh!
accessError=Mearachd le inntrigeadh seirbheis Enigmail
onlyGPG=Chan obraich gintinn iuchraichean ach le GnuPG (chan obraich e le PGP)!
keygenComplete=Tha na h-iuchraichean air an gintinn! Thèid an dearbh-aithne <%S> a chleachdadh airson soidhneadh.
revokeCertRecommended=Mholamaid gun cruthaich thu teisteanas cùl-ghairm dhen iuchair agad. ’S urrainn dhut an teisteanas a chleachdadh gus an iuchair agad a dhèanamh mì-dhligheach, m.e. ma thèid an iuchair phrìobhaideach agad air a call no briseadh a-steach oirre. A bheil thu airson teisteanas cùl-ghairm a chruthachadh an-drà sta?
keyMan.button.generateCert=&Gin teisteanas
genCompleteNoSign=Tha gintinn nan iuchraichean coileanta!
genGoing=Tha iuchraichean ’gan gintinn mar-thà !
passNoMatch=Chan eil an dà abairt-fhaire co-ionnann; cuir a-steach a-rithist iad
passCheckBox=Cuir cromag sa bhogsa mur eil thu ag iarraidh abairt-fhaire airson na h-iuchrach
passUserName=Sònraich ainm cleachdaiche airson na dearbh-aithne seo
keygen.missingUserName=Cha deach ainm a shònrachadh airson a’ chunntais/na h-aithne a thagh thu. Cuir a-steach luach san raon “D’ ainm†ann an roghainnean a’ chunntais.
keygen.passCharProblem=Chleachd thu caractaran sònraichte san abairt-fhaire agad. Gu mì-fhortanach, dh’fhaoidte gun adhbharaich seo trioblaid airson aplacaidean eile. Mholamaid gun tagh thu abairt-fhaire anns nach eil ach na caractaran seo:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Air adhbharan teicnigeach, chan fhaod an abairt-fhaire agad tòiseachadh no crìochnachadh le beà rn.
changePassFailed=Dh’fhà illig le atharrachadh na h-abairt-fhaire.
keyConfirm=A bheil thu airson iuchraichean poblach is prìobhaideach a ghintinn airson “%S�
keyMan.button.generateKey=&Gin iuchair
keyAbort=A bheil thu airson sgur de ghintinn nan iuchair?
keyMan.button.generateKeyAbort=&Sguir de ghintinn nan iuchair
keyMan.button.generateKeyContinue=&Lean air adhart le gintinn nan iuchair
expiryTooLong=Chan urrainn dhut iuchair a chruthachadh a dh’fhalbhas an ùine air an ceann corr is 100 bliadhna.
expiryTooLongShorter=Chan urrainn dhut iuchair a chruthachadh a dh’fhalbhas an ùine air an ceann corr is 90 bliadhna.
expiryTooShort=Feumaidh an iuchair agad a bhith dligheach fad latha air a char as lugha.
dsaSizeLimit=Tha iuchraichean soidhnidh DSA cuingichte le 3072 biodan. Thèid meud na h-iuchrach a lùghdachadh gus seo a choileanadh.
keyGenFailed=Dh’fhà illig le gintinn nan iuchraichean. Thoir sùil air consoil Enigmail (clà r-taice Enigmail > Dì-bhugachadh Enigmail) airson barrachd fiosrachaidh.
setKeyExpirationDateFailed=Cha b’ urrainn dhuinn a’ chrìoch ùine atharrachadh
# Strings in enigmailMessengerOverlay.js
securityInfo=Fiosrachadh tèarainteachd Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Cha deach na ceanglachain aig an teachdaireachd seo a shoidhneadh no a chrioptachadh*\n\n
possiblyPgpMime=Teachdaireachd air a crioptachadh no soidhneadh le PGP/MIME ’s dòcha; briog air a’ phutan “Dì-chrioptaich†airson dearbhadh
noDecrypted=Chan eil teachdaireachd dhì-chrioptaichte ri sà bhaladh ann!\nCleachd an à ithne “Sabhail†on chlà r-taice “Faidhleâ€
noMessage=Chan eil teachdaireachd ri sà bhaladh ann!
useButton=Briog air a’ phutan “Dì-chrioptaich†gus an teachdaireachd a dhì-chrioptachadh
saveHeader=Enigmail: Sà bhail teachdaireachd air a dì-chrioptachadh
saveAttachmentHeader=Enigmail: Sà bhail ceanglachan air a dhì-chrioptachadh
noTempDir=Cha deach leinn pasgan sealach a lorg gus sgrìobhadh ann\nFeuch an suidhich thu caochladair na h-à rainneachd TEMP
attachmentPgpKey=’S e faidhle iuchrach OpenPGP a tha sa cheanglachan “%S†a tha thu a’ fosgladh a-rèir coltais.\n\nBriog air “Ion-phortaich†gus na h-iuchraichean ’na bhroinn ion-phortachadh no air “Seall†gus susbaint an fhaidhle a shealltainn ann an uinneag brabhsair
beginPgpPart=***** *TOISEACH NA PÀIRT CHRIOPTAICHTE no AIR A SOIDHNEADH* *****
endPgpPart=***** *DEIREADH NA PÀIRT CHRIOPTAICHTE no AIR A SOIDHNEADH* *****
notePartEncrypted=Enigmail: *CHA deach a h-uile pà irt dhen teachdaireachd a shoidhneadh no a chrioptachadh*
noteCutMessage=Enigmail: *Chaidh iomadh bloca teachdaireachd a lorg -- chaidh sgur dhen dì-chrioptachadh/dearbhadh*
decryptOkNoSig=Rabhadh\n\nShoirbhich leis an dì-chrioptachadh ach cha b’ urrainn dhuinn an soidhneadh a dhearbhadh mar bu chòir
msgOvl.button.contAnyway=Lean air adhart &co-dhiù
signature.verifiedOK=Chaidh an soidhneadh airson a’ cheanglachain %S a dhearbhadh gu soirbheachail
signature.verifyFailed=Cha deach leinn an soidhneadh airson a’ cheanglachain %S a dhearbhadh
attachment.noMatchToSignature=Cha deach leinn an ceanglachan “%S†a mhaidseadh ri faidhle soidhnidh
attachment.noMatchFromSignature=Cha deach leinn am faidhle soidhnidh “%S†a mhaidseadh ri ceanglachan
fixBrokenExchangeMsg.failed=Cha deach leinn an teachdaireachd a chà radh
keysToExport=Tagh iuchraichean OpenPGP gus an chur ris
keysToUse=Tagh iuchair/iuchraichean OpenPGP gus an cleachdadh airson %S
pubKey=An iuchair phoblach airson %S\n
windowLocked=Tha an uinneag sgrìobhaidh glaiste; chaidh sgur dhen chur
sendUnencrypted=Dh’fhà illig le tòiseachadh Enigmail.\nA bheil thu airson an teachdaireachd a chur gun chrioptachadh?
composeSpecifyEmail=Sònraich am prìomh sheòladh puist-d agad a chleachdas sinn gus iuchair an t-soidhnidh a thaghadh airson teachdaireachdan a-mach.\nMa dh’fhà gas tu bà n e, thèid an seòladh O aig an teachdaireachd a chleachdadh gus iuchair an t-soidhnidh a thaghadh.
sendingHiddenRcpt=Tha faightearan BCC (lethbhreac dall) aig an teachdaireachd seo. Ma thèid an teachdaireachd seo a chrioptachadh, gabhaidh na faightearan BCC fhalach ach chan urrainn do chuid a bhathar-bhog (can PGP Corp.) a chleachdas faightear ma dh’fhaoidte an teachdaireachd a dhì-chrioptachadh. Air sà illeibh seo, mholamaid gun seachnaich thu puist-d BCC le crioptachadh.
sendWithHiddenBcc=Falaich na faightearan BCC
sendWithShownBcc=Crioptaich gu h-Ã bhaisteach
sendingNews=Chaidh sgur dhen chur crioptaichte.\n\nChan urrainn dhuinn an teachdaireachd seo a chrioptachadh on a tha faightearan buidhinn-naidheachd innte. Feuch an cuir thu an teachdaireachd a-rithist gun chrioptachadh.
sendToNewsWarning=Rabhadh: tha thu gu bhith cur post-d crioptaichte gu buidheann-naidheachd.\n\nCha mholamaid seo air sgà th ’s nach eil e gu ciall sam bith ach mas urrainn dhan a h-uile ball dhen bhuidheann-naidheachd an teachdaireachd a dhì-chrioptachadh, ’s e seo gum feum thu an teachdaireachd a chrioptachadh le iuchraichean gach buill. Na cuir an teachdaireachd seo ach ma tha thu là n eòlach air na tha thu a’ dèanamh.\n\nA bheil thu airson leantainn air adhart?
hasHTML=Rabhadh post HTML:\nTha HTML am broinn na teachdaireachd seo ma dh’fhaoidte agus b’ urrainn seo adhbharachadh nach dèid leis an t-soidhneadh/a’ chrioptachadh. Gus seo a sheachnadh san à m ri teachd, cum an iuchair SHIFT sìos fhad ’s a bhriogas tu air a’ phutan Sgrìobh/Freagair gus post air a shoidhneadh a chur.\nMa nì thu soidhneadh a’ phuist a ghnà th, bu chòir dhut a’ chromag a thoirt far bogsa na roghainn “Sgrìobh teachdaireachdan ann an cruth HTML†gus post HTML a chur à comas gu buan airson a’ chunntais puist seo.
strippingHTML=Tha fiosrachadh fòrmatadh HTML am broinn na teachdaireachd seo a thèid air chall nuair a thèid iompachadh gu teacsa lom airson an t-soidhnidh/a’ chrioptachaidh. A bheil thu airson leantainn air adhart?
msgCompose.button.sendAnyway=&Cuir an teachdaireachd co-dhiù
attachWarning=Chan eil na ceanglachain aig an teachdaireachd seo ionadail, mar sin cha ghabh an crioptachadh. Gus na ceanglachain a chrioptachadh, glèidh iad ’nam faidhlichean ionadail an toiseach agus cuir na faidhlichean ris an uairsin. A bheil thu airson an teachdaireachd a chur co-dhiù?
quotedPrintableWarn=Chuir thu còdachadh “quoted-printable†an comas airson cur nan teachdaireachdan. Faodaidh seo dì-chrioptachadh/dearbhadh cearr adhbharachadh airson na teachdaireachd agad.\nA bheil thu airson cur theachdaireachdan “quoted-printable†a chur à comas a-nis?
minimalLineWrapping=Shuidhich thu pasgadh nan loidhnichean air %S caractar. Airson crioptachadh/soidhneadh mar bu chòir, feumaidh an luach seo a bhith 68 no nas motha.\nA bheil thu airson pasgadh nan loidhnichean atharrachadh gu 68 caractar a-nis?
warning=Rabhadh
signIconClicked=Dh’atharraich thu an soidhneadh a là imh. Mar sin, fad ’s a tha thu a’ sgrìobhadh an teachdaireachd seo, chan eil cur an/à comas an t-soidhnidh an eisimeil air cur an/à comas a’ chrioptachaidh.
pgpMime_sMime.dlg.text=Chuir thu an dà chuid PGP/MIME agus S/MIME an comas. Gu mì-fhortanach, cha ghabh taic a chur ris an dà phròtacal aig an aon à m. Tagh a bheil thu airson PGP/MIME no S/MIME a chleachdadh.
pgpMime_sMime.dlg.pgpMime.button=Cleachd &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Cleachd &S/MIME
errorKeyUnusable=Cha ghabh an seòladh puist-d no ID na h-iuchrach “%S†a mhaidseadh ri iuchair OpenPGP dhligheach ’s nach do dh’fhalbh an ùine oirre.\nDèan cinnteach gu bheil iuchair OpenPGP dhligheach agad agus gun tomh roghainnean a’ chunntais agad ris an iuchair sin.
errorOwnKeyUnusable=Cha lìbhrig ID na h-iuchrach “%S†a chaidh a rèiteachadh airson na h-aithne là ithrich iuchair OpenPGP a ghabhas cleachdadh.\n\nDèan cinnteach gu bheil iuchair OpenPGP dhligheach agad nach do dh’fhalbh an ùine oirre agus gun tomh roghainnean a’ chunntais agad ris an iuchair sin.\nMur an do dh’fhalbh an ùine air an iuchair agad, dearbhaich gun do shuidhich thu earbsa an t-seilbheadair air “earbsach†no “cho earbsach ’s a ghabhasâ€.
msgCompose.cannotSaveDraft=Mearachd le sà bhaladh an dreachd
msgCompose.internalEncryptionError=Mearachd taobh a-staigh: Chaidh an crioptachadh geallta a chur à comas
msgCompose.internalError=Thachair mearachd taobh a-staigh.
msgCompose.toolbarTxt.signAndEncrypt=Thèid an teachdaireachd seo a shoidhneadh agus a chrioptachadh
msgCompose.toolbarTxt.signOnly=Thèid an teachdaireachd seo a shoidhneadh
msgCompose.toolbarTxt.encryptOnly=Thèid an teachdaireachd seo a chrioptachadh
msgCompose.toolbarTxt.noEncryption=Cha dèid an teachdaireachd seo a shoidhneadh no a chrioptachadh
msgCompose.toolbarTxt.disabled=Chaidh Enigmail a chur à comas airson na dearbh-aithne a thagh thu
msgCompose.toolbarTxt.smime=Tha S/MIME an comas - còmhstri le Enigmail ’s dòcha
msgCompose.toolbarTxt.smimeOff=- chan eil S/MIME ’ga chleachdadh ri linn seo
msgCompose.toolbarTxt.smimeSignOrEncrypt=Tha S/MIME an comas - chan eil Enigmail ’ga chleachdadh ri linn seo
msgCompose.toolbarTxt.smimeNoDraftEncryption=- cha dèid dreachdan a chrioptachadh
msgCompose.toolbarTxt.smimeConflict=Chan eil Enigmail ’ga chleachdadh air sgà th ’s gu bheil S/MIME an comas an-drà sta. Cuir soidhneadh agus/no crioptachadh S/MIME dheth agus an uairsin cuir an comas crioptachadh Enigmail
msgCompose.encryptedSubjectStub=Teachdaireachd le crioptachadh
msgCompose.detailsButton.label=Mion-fhiosrachadh ...
msgCompose.detailsButton.accessKey=f
# note: should end with double newline:
sendAborted=Chaidh sgur dhen chur.\n\n
# details:
keyNotTrusted=Chan eil earbsa gu leòr san iuchair “%Sâ€
keyNotFound=Cha deach an iuchair “%S†a lorg
keyRevoked=Chaidh an iuchair “%S†a chùl-ghairm
keyExpired=Dh’fhalbh an ùine air an iuchair “%Sâ€
statPGPMIME=PGP/MIME
statSigned=AIR A SHOIDHNEADH
statEncrypted=CRIOPTAICHTE
statPlain=GUN SOIDHNEADH no CRIOPTACHADH
offlineSave=A bheil thu airson an teachdaireachd %1$S a shà bhaladh gu %2$S ann am pasgan nan teachdaireachdan nach deach a chur?
onlineSend=A bheil thu airson an teachdaireachd %1$S a chur gu %2$S?
encryptKeysNote=An aire: Tha an teachdaireachd ’ga crioptachadh le IDan/iuchraichean a’ chleachdaiche seo: %S
hiddenKey=
signFailed=Mearachd le Enigmail; dh’fhà illig leis a’ chrioptachadh/ an t-soidhnidh; an cuir sinn an teachdaireachd gun chrioptachadh?
msgCompose.button.sendUnencrypted=&Cuir an teachdaireachd gun chrioptachadh
recipientsSelectionHdr=Tagh na faightearan airson a’ chrioptachaidh
configureNow=Cha do rèitich thu tèarainteachd Enigmail airson na dearbh-aithne a thagh thu fhathast. A bheil thu airson seo a dhèanamh a-nis?
# encryption/signing status and associated reasons:
encryptMessageAuto=Crioptaich an teachdaireachd (fèin-obrachail)
encryptMessageNorm=Crioptaich an teachdaireachd
signMessageAuto=Soidhnich an teachdaireachd (fèin-obrachail)
signMessageNorm=Soidhnich an teachdaireachd
encryptOff=Crioptachadh: DHETH
encryptOnWithReason=Crioptachadh: AIR (%S)
encryptOffWithReason=Crioptachadh: DHETH (%S)
encryptOn=Crioptachadh: AIR
signOn=Soidhneadh: AIR
signOff=Soidhneadh: DHETH
signOnWithReason=Soidhneadh: AIR (%S)
signOffWithReason=Soidhneadh: DHETH (%S)
reasonEnabledByDefault=an comas a ghnà th
reasonManuallyForced=air a sparradh a là imh
reasonByRecipientRules=air a sparradh le riaghailtean an fhaighteir
reasonByAutoEncryption=air a sparradh leis a’ chrioptachadh fhèin-obrachail
reasonByConflict=ri linn còmhstri ann an riaghailtean an fhaighteir
reasonByEncryptionMode=ri linn modh a’ chrioptachaidh
reasonSmimeConflict=air sgà th ’s gu bheil S/MIME an comas ’na à ite
# should not be used anymore:
encryptYes=Thèid an teachdaireachd a chrioptachadh
encryptNo=Cha dèid an teachdaireachd a chrioptachadh
# should not be used anymore:
signYes=Thèid an teachdaireachd a shoidhneadh
signNo=Cha dèid an teachdaireachd a shoidhneadh
# PGP/MIME status:
pgpmimeNormal=Pròtacal: PGP/MIME
inlinePGPNormal=Pròtacal: PGP ion-loidhne
pgpmimeAuto=Pròtacal: PGP/MIME (fèin-obrachail)
inlinePGPAuto=Pròtacal: PGP ion-loidhne (fèin-obrachail)
# should not be used anymore
pgpmimeYes=Thèid PGP/MIME a chleachdadh
pgpmimeNo=Thèid PGP ion-loidhne a chleachdadh
# Attach own key status (tooltip strings):
attachOwnKeyNo=Cha dèid an iuchair agad fhèin a chur ris
attachOwnKeyYes=Thèid an iuchair agad fhèin a chur ris
attachOwnKeyDisabled=Chan urrainn dhuinn an iuchair agad fhèin a chur ris. Feumaidh tu iuchair shònraichte a thaghadh\nann an earrann OpenPGP aig “Roghainnean nan cunntasan†gus am feart seo a chur an comas.
rulesConflict=Mhothaich sinn do chòmhstri ann an riaghailtean a-rèir faighteir\n%S\n\nA bheil thu airson an teachdaireachd a chur leis na roghainnean seo?
msgCompose.button.configure=&Rèitich
msgCompose.button.send=&Cuir an teachdaireachd
msgCompose.button.save=&SÃ bhail an teachdaireachd
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Tha feum air an iuchair phoblach %S gus an soidhneadh a dhearbhadh
keyUsed=An iuchair phoblach %S a chaidh a chleachdadh gus an soidhneadh a dhearbhadh
clickDecrypt=; briog air a’ phutan “Dì-chrioptaichâ€
clickDecryptRetry=; briog air a’ phutan “Dì-chrioptaich†gus feuchainn ris a-rithist
clickDetailsButton=; briog air a’ phutan “Mion-fhiosrachadh†airson barrachd fiosrachaidh
clickImportButton=; briog air a’ phutan “Ion-phortaich iuchair†gus an iuchair a luchdadh a-nuas
keyTypeUnsupported=; cha chuir an tionndadh agad de GhnuPG taic ris an seòrsa iuchrach seo
msgPart=PÃ irt dhen teachdaireachd %S
msgSigned=air a soidhneadh
msgSignedUnkownKey=air a shoidhneadh le iuchair nach aithne dhuinn
msgEncrypted=air a crioptachadh
msgSignedAndEnc=air a soidhneadh is crioptachadh
unverifiedSig=Soidhneadh gun dearbhadh
incompleteDecrypt=Chan eil an dì-chrioptachadh coileanta
needKey=Mearachd - cha deach iuchair phrìobhaideachd a fhreagras a lorg gus an teachdaireachd a dhì-chrioptachadh
failedDecrypt=Mearachd - dh’fhà illig leis an dì-chrioptachadh
badPhrase=Mearachd - droch abairt-fhaire
failedDecryptVerify=Mearachd - dh’fhà illig leis an dì-chrioptachadh/soidhneadh
viewInfo=; Sealladh > Tèarainteachd na teachdaireachd airson barrachd fiosrachaidh
decryptedMsg=Teachdaireachd air a dì-chrioptachadh
decryptedMsgWithFormatError=Teachdaireachd air a dì-chrioptachadh (chaidh fòrmat puist-d PGP briste aiseag a dh’adhbharaich seann fhrithealaiche Exchange ma dh’fhaoidte, mar sin chan eil sinn an dùil gum bi an toradh foirfe ri leughadh)
usedAlgorithms=Algairimean ’gan cleachdadh: %S agus %S
# strings in pref-enigmail.js
oldGpgVersion14=Dh’fhà illig le tòiseachadh Enigmail.\n\nTha thu a’ cleachdadh tionndadh %S dhe GnuPG ’s cha chuir sinn taic ris tuilleadh. Tha Enigmail feumach air GnuPG tionndadh 2.0.7 no nas ùire. Àrdaich an stà ladh dhe GnuPG agad air neo chan obraich Enigmail.
locateGpg=Lorg prògram GnuPG
invalidGpgPath=Cha ghabh GnuPG a ruith leis an t-slighe a chaidh a shònrachadh. Chaidh Enigmail a chur à comas gus an atharraich thu an t-slighe gu GnuPG a-rithist no gus an tòisich thu an aplacaid às ùr.
warningsAreReset=Chaidh gach rabhadh ath-shuidheachadh.
prefs.gpgFound=Chaidh GnuPG a lorg an-seo: %S
prefs.gpgNotFound=Cha deach GnuPG a lorg
prefs.warnAskNever=Rabhadh: ma chuireas tu an roghainn seo an comas, bidh teachdaireachdan gun chrioptachadh agad gun fhiosrachadh a bharrachd sam bith mur eil iuchair airson aon dhe na faightearan ann -- chan innis Enigmail dhut nuair a thachras seo!
prefs.warnIdleTimeForUnknownAgent=Chan urrainn dhuinn ceangal ri gpg-agent. ’S dòcha gun cleachd an siostam agad inneal sònraichte gus abairtean-faire a là imhseachadh (m.e. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Gu mì-fhortanach, chan eil smachd aig Enigmail air nuair a dh’fhalbhas an ùine air abairt-fhaire airson an inneal a tha thu a’ chleachdadh. Mar sin, thèid roghainnean falbh na h-ùine aig Enigmail a leigeil seachad.
prefEnigmail.oneKeyserverOnly=Mearachd - chan urrainn dhut barrachd air aon fhrithealaiche iuchraichean a shònrachadh airson luchdadh a-nuas fèin-obrachail nan iuchraichean OpenPGP a tha a dhìth.
enterAdminPin=Cuir a-steach PIN an RIANAIRE airson a’ SmartCard agad
enterCardPin=Cuir a-steach PIN a’ SmartCard agad a-rithist
notInit=Mearachd - chan eil seirbheis Enigmail air a tòiseachadh fhathast
badCommand=Mearachd - dh’fhà illig le à ithne dì-chrioptachaidh
cmdLine=loidhne-à ithne is à s-chur:
notRequired=Mearachd - chan eil crioptachadh riatanach
notComplete=Mearachd - cha deach gintinn na h-iuchrach a choileanadh fhathast
invalidEmail=Mearachd - seòladh no seòlaidhean puist-d mì-dhligheach
noPassphrase=Mearachd - cha deach abairt-fhaire a sholar
noPGPblock=Mearachd - cha deach bloca dà ta OpenPGP armaichte dligheach a lorg
unverifiedReply=Eagachadh ann am pà irt dhen teachdaireachd (freagairt), tha sinn an dùil gun deach atharrachadh
keyInMessageBody=Lorg sinn iuchaidh ann am bodhaig na teachdaireachd. Briog air “Ion-phortaich iuchair†gus an iuchair ion-phortadh
sigMismatch=Mearachd - soidhneadh neo-ionnann
cantImport=Mearachd le ion-phortadh na h-iuchrach poblaich\n\n
doImportOne=A bheil thu airson %1$S (%2$S) ion-phortadh?
doImportMultiple=A bheil thu airson na h-iuchraichean seo ion-phortadh?\n\n%S
previewFailed=Chan urrainn dhuinn faidhle nan iuchraichean poblach a leughadh.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Cha ghabh an SmartCard %1$S a lorg sinn san inneal-leughaidh agad cleachdadh gus an teachdaireachd seo a phròiseasadh.\nCuir a-steach an SmartCard %S agad is feuch ris a-rithist.
sc.insertCard=Tha an t-obrachadh feumach air a’ SmartCard %S agad.\nCuir a-steach an SmartCard a tha a dhìth is feuch ris a-rithist.
sc.removeCard=Tha an t-obrachadh ag iarraidh nach eil SmartCard san inneal-leughaidh agad.\nThoir air falbh an SmartCard agad is feuch ris a-rithist.
sc.noCardAvailable=Cha deach SmartCard a lorg san inneal-leughaidh agad.\nCuir a-steach an SmartCard a tha a dhìth is feuch ris a-rithist.
sc.noReaderAvailable=Cha b’ urrainn dhuinn an t-inneal-leughaidh SmartCard agad inntrigeadh\nCeangail an t-inneal-leughaidh SmartCard agad, cuir a-steach a’ chairt agad agus feuch ris a-rithist.
keyError.keySpecNotFound=Cha do lorg sinn iuchair air an dul-iuchrach agad a fhreagras ris an t-seòladh puist-d “%Sâ€.
keyError.keyIdNotFound=Cha do lorg sinn ID na h-iuchrach “%S†air an dul-iuchrach agad.
keyError.resolutionAction=Tagh iuchair dhligheach ann an earrann OpenPGP dhe “Roghainnean nan cunntasan†agad.
missingPassphrase=Tha abairt-fhaire a dhìth
errorHandling.gpgAgentInvalid=Tha an siostam agad a’ ruith tionndadh dhe gpg-agent nach eil iomchaidh airson an tionndaidh agad dhe GnuPG.
errorHandling.gpgAgentError=Dh’aithris GnuPG mearachd sa chonaltradh le gpg-agent (seo co-phà irt dhe GnuPG).
errorHandling.dirmngrError=Dh’aithris GnuPG mearachd sa chonaltradh le dirmngr (seo co-phà irt dhe GnuPG).
errorHandling.pinentryError=Chan urrainn dha GnuPG an abairt-fhaire agad iarraidh le pinentry.
errorHandling.readFaq=Seo mearachd le suidheachadh no rèiteachadh an t-siostaim nach leig le Enigmail obair mar bu chòir ’s a ghabh a cà radh gu fèin-obrachail.\n\nMholamaid gun doir thu sùil air an là rach-lìn taice againn air https://enigmail.net/faq.
gpgNotFound=Cha deach am prògram GnuPG “%S†a lorg.\nDèan cinnteach gun do shònraich thu slighe an fhaidhle sho-ghnìomhaichte GnuPG mar bu chòir ann an roghainnean Enigmail.
gpgNotInPath=Cha deach prògram GnuPG a lorg am broinn PATH.\nDèan cinnteach gun do shònraich thu slighe an fhaidhle sho-ghnìomhaichte GnuPG mar bu chòir ann an roghainnean Enigmail.
enigmailNotAvailable=Chan eil bun-seirbheis Enigmail ri fhaighinn
gpgAgentNotStarted=Cha b’ urrainn dhuinn am prògram gpg-agent a thòiseachadh air a bheil feum airson GnuPG tionndadh %S.
prefUntrusted=GUN EARBSA
prefRevoked=IUCHAIR AIR A CÙL-GHAIRM
prefExpiredKey=IUCHAIR A DH’FHALBH AN ÙINE OIRRE
prefExpired=DH’FHALBH AN ÙINE AIR
prefGood=Deagh shoidhneadh o %S
prefBad=DROCH shoidhneadh o %S
failCancel=Mearachd - chaidh sgur de dh’fhaighinn na h-iuchrach leis a’ chleachdaiche
failNoServer=Mearachd - Cha deach frithealaiche iuchraichean a shònrachadh gus iuchair fhaighinn uaithe
failNoID=Mearachd - Cha deach ID na h-iuchrach a shònrachadh gus iuchair fhaighinn air a shon
failKeyExtract=Mearachd - Dh’fhà illig le à ithne à s-tharraing na h-iuchrach
notFirstBlock=Mearachd - Chan eil a’ chiad bhloca OpenPGP ’na bhloca iuchrach poblaich
importKeyConfirm=A bheil thu airson an iuchair/na h-iuchraichean a tha leabaichte san teachdaireachd ion-phortadh?
failKeyImport=Mearachd - Dh’fhà illig le ion-phortachadh iuchrach
fileWriteFailed=Cha deach leinn sgrìobhadh san fhaidhle %S
importKey=Ion-phortaich an iuchair phoblach %S on fhrithealaiche iuchraichean:
uploadKey=Cuir an iuchair phoblach %S dhan fhrithealaiche iuchraichean:
keyId=ID na h-iuchrach
keyAndSigDate=ID na h-iuchrach: 0x%1$S / Air a soidhneadh: %2$S
keyFpr=Lorg-mheòir na h-iuchrach: %S
noEmailProvided=Tha dug thu seòladh puist-d seachad!
keyAlreadySigned=Chaidh an iuchair a shoidhneadh mar-thà , chan urrainn dhut a soidhneadh dà thuras.
gnupg.invalidKey.desc=Cha deach an iuchair %S a lorg air neo chan eil i dligheach. Dh’fhaoidte gun do dh’fhalbh an ùine air an (fho-)iuchair.
selKeyExpired=dh’fhalbh an ùine air %S
createdHeader=Air a chruthachadh
atLeastOneKey=Cha deach iuchair a thaghadh! Feumaidh tu iuchair no dhà a thaghadh airson gabhail ris a’ chòmhradh seo
fewerKeysThanRecipients=Thagh thu uiread nas lugha de dh’iuchraichean na tha faightearan ris. A bheil thu cinnteach gu bheil liosta nan iuchraichean crioptachaidh coileanta?
userSel.button.goBack=Tagh barrachd iuchraichean
userSel.secretKeySel.title=Tagh iuchair OpenPGP prìobhaideach gus na teachdaireachdan agad a shoidhneadh
userSel.problemNoKey=Gun iuchair dhligheach
userSel.problemMultipleKeys=Iomadh iuchair
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Cuir uaireigin eile
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=AN AIRE: Cha chuir ach corra cliant puist-d taic ri PGP/MIME! Air Windows, chan eil sinn eòlach ach air Mozilla/Thunderbird, Sylpheed, Pegasus agus Mulberry a chuireas taic ris an stannard seo; air Linux/UNIX agus Mac OS X, cuiridh a’ mhòrchuid a chliantan puist mòr-chòrdte taic ris. Ma tha thu mì-chinnteach, tagh %S roghainn.
first=a’ chiad
second=an dà rna
# Strings used in am-enigprefs.js
encryptKeyHeader=Tagh iuchair OpenPGP airson a’ chrioptachaidh
identityName=Dearbh-aithne: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Ghnìomhaich thu an crioptachadh ach cha do thagh thu iuchair. Feumaidh tu iuchair dhligheach no dhà a shònrachadh o liosta nan iuchraichean gus puist-d a chuireas tu gu %1$S a chrioptachadh. A bheil thu airson an crioptachadh a chur à comas airson %2$S?
noKeyToUse=(gun iuchair - gun chrioptachadh)
noEmptyRule=Chan fhaod an riaghailt a bhith falamh! Suidhich seòladh puist-d ann an raon na riaghailt.
invalidAddress=Chan eil an seòladh/na seòlaidhean puist-d a chuir thu a-steach dligheach. Cha bu chòir dhut ainmean nam faightearan a shònrachadh, na sònraich ach na seòlaidhean puist-d. M.e.:\nMì-dhligheach: Ainm \nDligheach: ainm@seòladh.net
noCurlyBrackets=Tha ciall sònraichte air na camagan dualach {} agus cha bu chòir dhut an cleachdadh ann an seòladh puist-d. Ma tha thu airson giùlan na riaghailt seo a fhreagras atharrachadh, cleachd an roghainn “Cuir an riaghailt an sà s ma ... an fhaightearâ€.\nGheibh thu barrachd fiosrachadh le putan na cobharach.
# Strings used in enigmailRulesEditor.js
never=Chan ann idir
always=An-còmhnaidh
possible=Comasach
deleteRule=A bheil thu airson an riaghailt a thagh thu a sguabadh à s?
nextRcpt=(An ath-fhaightear)
negateRule=Gun a bhith
addKeyToRule=Cuir an iuchair %1$S (%2$S) ris an riaghailt a-rèir faighteir
# Strings used in enigmailSearchKey.js
needOnline=Chan eil am feart a thagh thu ri fhaighinn sa mhodh far loidhne. Rach air loidhne is feuch ris a-rithist.
protocolNotSupported=Cha chuir sinn taic ris a’ phròtacal “%S://†a thagh thu gus iuchraichean OpenPGP a luchdadh a-nuas.
gpgkeysDisabled=’S dòcha gum b’ fheairrde thu an roghainn “extensions.enigmail.useGpgKeysTool†a chur an comas.
noKeyserverConn=Cha b’ urrainn dhuinn ceangal ri frithealaiche iuchraichean air %S.
keyDownloadFailed=Cha deach leinn an iuchair a luchdadh a-nuas on fhrithealaiche iuchraichean. Seo teachdaireachd na staide:\n%S
internalError=Thachair mearachd taobh a-staigh. Cha b’ urrainn dhuinn na h-iuchraichean a luchdadh a-nuas no an ion-phortadh.
noKeyFound=Tha sinn duilich ach cha deach leinn iuchair a lorg a fhreagras ris na faclan-luirg.\nThoir an aire nach bu chòir dhut “0x†a chur an toiseach ID iuchrach (m.e. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Cha deach leinn an iuchair a lorg no a luchdadh a-nuas on fhrithealaiche iuchraichean: cha b’ urrainn dhuinn gpgkeys_%S a ghnìomhachadh.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Dh’fhà illig le suidheachadh earbsa an t-seilbheadair
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Dh’fhà illig le soidhneadh na h-iuchrach
alreadySigned.label=An aire: chaidh an iuchair %S a shoidhneadh leis an iuchair phrìobhaideach a thagh thu mar-thà .
alreadySignedexportable.label=An aire: chaidh an iuchair %S a shoidhneadh mar thè a ghabhas à s-phortadh leis an iuchair phrìobhaideach a thagh thu. Chan eil soidhneadh ionadail gu ciall sam bith.
partlySigned.label=An aire: chaidh cuid dhe na IDan cleachdaiche aig an iuchair %S a shoidhneadh leis an iuchair phrìobhaideach a thagh thu mar-thà .
noTrustedOwnKeys=Cha deach iuchair iomchaidh a lorg gus a shoidhneadh! Feumaidh iuchair phrìobhaideach e là n-earbsa innte a bhith agad mus urrainn dhut iuchraichean a shoidhneadh.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=A’ luchdadh nan iuchraichean, fuirich ort...
keyValid.unknown=chan eil fios
keyValid.invalid=mì-dhligheach
keyValid.disabled=Ã comas
keyValid.revoked=air chùl-ghairm
keyValid.expired=dh’fhalbh an ùine air
keyValid.noSubkey=chan eil fo-iuchair dligheach ann
keyTrust.untrusted=gun earbsa ann
keyTrust.marginal=cugallach
keyTrust.full=earbsach
keyTrust.ultimate=cho earbsach ’s a ghabhas
keyTrust.group=(buidheann)
keyType.public=poblach
keyType.publicAndSec=poblach/prìobhaideach
keyMan.enableKey=Cuir an iuchair an comas
keyMan.disableKey=Cuir an iuchair à comas
userAtt.photo=Buadh a’ chleachdaiche (dealbh JPEG)
asciiArmorFile=Faidhlichean ASCII armaichte (*.asc)
importKeyFile=Ion-phortaich faidhle iuchrach OpenPGP
gnupgFile=Faidhlichean GnuPG
saveRevokeCertAs=Cruthach ⊠sà bhail teisteanas cùl-ghairm
revokeCertOK=Chaidh an teisteanas cùl-ghairm a chruthachadh gu soirbheachail. ’S urrainn dhut a chleachdadh gus an iuchair phoblach agad a dhèanamh mì-dhligheach,m. e. ma chaill thu an iuchair phrìobhaideach agad.\n\nCuir e air meadhan a ghabhas glèidheadh gu sà bhailte a leithid CD no USB stick. Ma gheibh cuideigin inntrigeadh dhan teisteanas seo, ’s urrainn dha a chleachdadh gus an iuchair agad a chur a-mach à feum.
revokeCertFailed=Cha b’ urrainn dhuinn an teisteanas cùl-ghairm a chruthachadh.
addUidOK=Chaidh ID a’ chleachdaiche a chur ris gu soirbheachail
addUidFailed=Cha deach leinn ID a’ chleachdaiche a chur ris
noKeySelected=Bu chòir dhut iuchair no dhà a thaghadh gus na thagh thu a dhèanamh
exportToFile=Às-phortaich an iuchair phoblach gu faidhle
exportKeypairToFile=Às-phortaich an iuchair phrìobhaideach is phoblach gu faidhle
exportSecretKey=A bheil thu airson an iuchair phrìobhaideach a ghabhail a-steach san fhaidhle iuchrach OpenPGP air a shà bhaladh?
saveKeysOK=Chaidh na h-iuchraichean a shà bhaladh gu soirbheachail
saveKeysFailed=Cha deach leinn na h-iuchraichean a shà bhaladh
importKeysFailed=Cha deach leinn na h-iuchraichean ion-phortadh
enableKeyFailed=Dh’fhà illig le cur an/à comas nan iuchraichean
specificPubKeyFilename=%1$S (0x%2$S) pobl
specificPubSecKeyFilename=%1$S (0x%2$S) pobl-priobh
defaultPubKeyFilename=Iuchraichean-poblach-air-as-phortadh
defaultPubSecKeyFilename=Iuchraichean-poblach-is-priobhaideach-air-as-phortadh
noSecretKeys=Cha deach iuchair phrìobhaideach a lorg.\n\nA bheil thu airson an iuchair agad fhèin a ghintinn a-nis?
sendKeysOk=Chaidh an iuchair/na h-iuchraichean a chur gu soirbheachail
sendKeysFailed=Dh’fhà illig le cur nan iuchraichean
receiveKeysOk=Chaidh an iuchair/na h-iuchraichean ùrachadh gu soirbheachail
receiveKeysFailed=Dh’fhà illig le luchdadh a-nuas nan iuchraichean
importFromClip=A bheil thu airson iuchair no dhà ion-phortadh on stòr-bhòrd?
importFromUrl=Luchdaich a-nuas iuchair phoblach on URL seo:
copyToClipbrdFailed=Cha b’ urrainn dhuinn lethbhreac dhen iuchair/dhe na h-iuchraichean a chur dhan stòr-bhòrd.
copyToClipbrdOK=Chaidh lethbhreac dhen iuchair/dhe na h-iuchraichean a chur dhan stòr-bhòrd.
deleteSecretKey=RABHADH: Tha thu gu bhith iuchair phrìobhaideach a sguabadh à s!\nMa sguabas tu à s an iuchair phrìobhaideach agad, chan urrainn dhut teachdaireachd sam bith a chaidh a chrioptachadh air a son a dhì-chrioptachadh agus chan urrainn dhut an iuchair agad a chùl-ghairm tuilleadh.\n\nA bheil thu cinnteach gu bheil thu airson AN DÀ CHUID an iuchair phrìobhaideach is an iuchair phoblach\n“%Sâ€\na sguabadh à s?
deleteMix=RABHADH: Tha thu gu bhith iuchraichean prìobhaideach a sguabadh à s!\nMa sguabas tu às iuchair phrìobhaideach agad, chan urrainn dhut teachdaireachd sam bith a chaidh a chrioptachadh air a son a dhì-chrioptachadh agus chan urrainn dhut an iuchair agad ais-ghairm tuilleadh.\n\nA bheil thu cinnteach gu bheil thu airson AN DÀ CHUID na h-iuchraichean prìobhaideach is na h-iuchraichean poblach a sguabadh à s?
deletePubKey=A bheil thu airson an iuchair phoblach\n“%Sâ€\na sguabadh à s?
deleteSelectedPubKey=A bheil thu airson na h-iuchraichean poblach a sguabadh à s?
deleteKeyFailed=Cha b’ urrainn dhuinn an iuchair a sguabadh à s.
revokeKeyQuestion=Tha thu gu bhith an iuchair “%S†a chùl-ghairm.\n\nChan urrainn dhut soidhneadh leis an iuchair seo agus nuair a bhios i air a sgaoileadh, chan urrainn do chà ch soidhneadh leatha tuilleadh. ’S urrainn dhut an iuchair a chleachdadh fhathast gus seann theachdaireachdan a dhì-chrioptachadh.\n\nA bheil thu airson leantainn air adhart?
revokeKeyOk=Chaidh an iuchair agad a chùl-ghairm. Ma tha an iuchair agad ri fhaighinn air frithealaiche iuchraichean, mholamaid gun luchdaidh thu suas a-rithist i ach am faic cà ch gun deach a cùl-ghairm.
revokeKeyFailed=Cha b’ urrainn dhuinn an iuchair a chùl-ghairm.
refreshAllQuestion=Cha do thagh thu iuchair. Am bu toil leat a h-UILE iuchair ath-nuadhachadh?
refreshKey.warn=Rabhadh: a’ crochadh air uiread nan iuchraichean is luaths a’ cheangail, dh’fhaoidte gun toir e fada fada gus a h-uile iuchair ath-nuadhachadh!
downloadContactsKeys.warn=Rabhadh: a’ crochadh air uiread an luchd-aithne is luaths a’ cheangail, dh’fhaoidte gun toir e fada fada gus a h-uile iuchair ath-nuadhachadh!
downloadContactsKeys.importFrom=A bheil thu airson an luchd-aithne o leabhar nan seòladh “%S†ion-phortadh?
keyMan.button.exportSecKey=À&s-phortaich na h-iuchraichean prìobhaideach
keyMan.button.exportPubKey=Na à s-phortaich ach na h-iuchraichean &poblach
keyMan.button.import=&Ion-phortaich
keyMan.button.refreshAll=Ath-nuadhaich a h-uile iuchai&r
keyMan.button.revokeKey=Cùl-ghai&rm an iuchair
keyMan.button.skip=&Gearr leum thar na h-iuchrach
keylist.noOtherUids=Chan eil dearbh-aithne eile aig an neach seo
keylist.hasOtherUids=Tha seo air cuideachd:
keylist.noPhotos=Chan eil dealbh ri là imh
keylist.hasPhotos=Dealbhan
keyMan.addphoto.filepicker.title=Tagh dealbh gus a chur ris
keyMan.addphoto.warnLargeFile=Tha am faidhle a thagh thu nas motha na 25 kB.\nCha mholamaid gun cuir thu faidhle glè mhòr ris on a gheibh thu iuchair glè mhòr an uairsin.
keyMan.addphoto.noJpegFile=Tha coltas nach eil am faidhle a thagh thu ’na fhaidhle JPEG. Feuch an tagh thu faidhle eile.
keyMan.addphoto.failed=Cha b’ urrainn dhuinn an dealbh a chur ris.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Dh’fhà illig le atharrachadh prìomh ID a’ chleachdaiche
changePrimUidOK=Chaidh prìomh ID a’ chleachdaiche atharrachadh gu soirbheachail
deleteUidFailed=Dh’fhà illig le sguabadh às ID a’ chleachdaiche %S
deleteUidOK=Chaidh ID a’ chleachdaiche %S a sguabadh às gu soirbheachail
revokeUidFailed=Dh’fhà illig le cùl-ghairm ID a’ chleachdaiche %S
revokeUidOK=Chaidh ID a’ chleachdaiche %S a chùl-ghairm gu soirbheachail. Ma tha an iuchair agad ri fhaighinn air frithealaiche iuchraichean, mholamaid gun luchdaich thu suas a-rithist i ach am faic cà ch gun deach a cùl-ghairm.
revokeUidQuestion=A bheil thu cinnteach gu bheil thu airson ID a’ chleachdaiche %S a chùl-ghairm?
deleteUidQuestion=A bheil thu cinnteach gu bheil thu airson ID a’ chleachdaiche %S a sguabadh à s?\n\nThoir an aire: ma chuir thu an iuchair phoblach agad a-null gu frithealaiche iuchraichean, cha dèan sguabadh às ID a’ chleachdaiche diofar sam bith. Ma rinn thu seo, bu chòir dhut “Cùl-ghairm ID a’ chleachdaiche†a chleachdadh.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=SOIRBHEAS! Chaidh na h-iuchraichean ion-phortadh
importInfoSuccess=✅
importInfoBits=Biodan
importInfoCreated=Air a chruthachadh
importInfoFpr=Lorg-mheòir
importInfoDetails=(Mion-fhiosrachadh)
importInfoNoKeys=Cha deach iuchair ion-phortadh.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=iuchair phoblach
keyTypePrimary=prìomh iuchair
keyTypeSubkey=fo-iuchair
keyTypePair=cà raid iuchrach
keyExpiryNever=gun chrìoch
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Crioptachadh
keyUsageSign=Soidhneadh
keyUsageCertify=Teisteanachadh
keyUsageAuthentication=Dearbhadh
keyDoesNotExpire=Chan fhalbh an ùine air an iuchair
# Strings in enigmailGenCardKey.xul
keygen.started=Fuirich ort fhad ’s a tha an iuchair ga gintinn....
keygen.completed=Chaidh an iuchair a ghintinn. Is “0x%S†ID na h-iuchrach ùire
keygen.keyBackup=Chaidh lethbhreac-glèidhidh dhen iuchair a dhèanamh mar %S
keygen.passRequired=Sònraich abairt-fhaire ma tha thu airson lethbhreac-glèidhidh dhen iuchair agad a chruthachadh taobh a-muigh a’ SmartCard agad.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Chan eil am PIN a chuir thu a-steach co-ionnann; cuir a-steach a-rithist e
cardPin.minLength=Feumaidh %S caractaran no à ireamhan a bhith sa PhIN air a char as lugha
cardPin.processFailed=Cha deach leinn am PIN atharrachadh
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Ag ath-nuadhachadh nan iuchraichean, fuirich ort...
keyserverProgress.uploading=Ag luchdadh suas nan iuchraichean, fuirich ort...
keyserverTitle.refreshing=Ath-nuadhaich na h-iuchraichean
keyserverTitle.uploading=Luchdadh suas iuchraichean
# Strings in enigmailSetupWizard
passphrase.min8keys=Bu chòir do 8 caractaran a bhith san abairt-fhaire agad air a char a lugha!
setupWizard.reallyCancel=A bheil thu cinnteach gu bheil thu airson draoidh an rèiteachaidh Enigmail a dhùnadh?
setupWizard.invalidGpg=Chan eil am faidhle a shònraich thu ’na fhaidhle so-ghnìomhaichte GnuPG. Feuch an sònraich thu faidhle eile.
setupWizard.specifyFile=Feumaidh tu faidhle iuchrach poblaich a shònrachadh mus urrainn dhut leantainn air adhart.
setupWizard.installFailed=Tha coltas nach do shoirbhich leis an stà ladh. Feuch ris an stà ladh a-rithist no stà laich GnuPG a là imh agus lorg e leis a’ phutan “Rùraichâ€.
setupWizard.downloadForbidden=Air sà illeibh do thèarainteachd fhèin, cha luchdaich sinn a-nuas GnuPG. Tadhail air http://www.gnupg.org/ gus GnuPG a luchdadh a-nuas.
setupWizard.downloadImpossible=Chan urrainn dhuinn GnuPG a luchdadh a-nuas an-drà sta. Feuch ris a-rithist an ceann greis no tadhail air http://www.gnupg.org/ gus GnuPG a luchdadh a-nuas.
setupWizard.hashSumError=Cha b’ urrainn dhan draoidh fìreantachd an fhaidhle air a luchdadh a-nuas a dhearbhadh. Dh’fhaoidte gu bheil am faidhle briste no gun deach beantainn ris. A bheil thu airson leantainn air adhart leis an stà ladh co-dhiù?
setupWizard.importSettingsFile=Sònraich faidhle lethbhric-ghlèidhidh gus a luchdadh uaithe
setupWizard.invalidSettingsFile=Chan eil am faidhle a shònraich thu ’na fhaidhle lethbhric-ghlèidhidh airson roghainnean Enigmail.
setupWizard.gpgConfExists=Tha faidhle rèiteachaidh GnuPG ann mar-thà . A bheil thu airson sgrìobhadh thairis air leis an fhear on t-seann-stà ladh agad?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Thachair mearachd rè luchdadh a-nuas GnuPG. Thoir sùil air loga na consoil airson barrachd fiosrachaidh.
installGnuPG.installFailed=Thachair mearachd rè stà ladh GnuPG. Thoir sùil air loga na consoil airson barrachd fiosrachaidh.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Feumaidh tu ainm is seòladh puist-d a chur a-steach
addUidDlg.nameMinLengthError=Feumaidh 5 caractaran a bhith san ainm air a char as lugha
addUidDlg.invalidEmailError=Feumaidh tu seòladh puist-d dligheach a thoirt seachad
addUidDlg.commentError=Chan eil camagan ceà rnach ceadaichte ann am beachdan
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Cha chuir SmartCard OpenPGP taic ach ri caractaran ASCII san ainm.
# network error types
errorType.SecurityCertificate=Chan eil an teisteanas tèarainteachd a thug an t-seirbheis-lìn seachad dligheach.
errorType.SecurityProtocol=Chan aithne dhuinn am pròtacal tèarainteachd a chleachdas an t-seirbheis-lìn.
errorType.Network=Thachair mearachd lìonraidh.
# filter stuff
filter.folderRequired=Feumaidh tu pasgan-uidhe a thaghadh.
filter.decryptMove.label=Dì-chrioptaich gu buan (Enigmail)
filter.decryptCopy.label=Cruthaich lethbhreac dì-chrioptaichte (Enigmail)
filter.decryptMove.warnExperimental=Rabhadh - dh’fhaoidte gum mill an roghainn criathraidh “Dì-chrioptaich gu buan†teachdaireachdan.\n\nMholamaid gu dìon gum feuch thu ris a’ chriathrag “Cruthaich lethbhreac dì-chrioptaichte†an toiseach, gun dearbhaich thu an toradh gu cùramach agus nach cleachd thu a’ chriathrag seo ach ma tha thu toilichte leis an toradh.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Cha deach leinn an teachdaireachd a dhì-chrioptachadh air a bheil an cuspair\n“%Sâ€.\nA bheil thu airson feuchainn ris a-rithist le abairt-fhaire eile no a bheil thu airson leum a ghearradh thar na teachdaireachd?
converter.decryptAtt.failed=Cha deach leinn an ceanglachan “%1$Sâ€\na dhì-chrioptachadh aig an teachdaireachd air a bheil an cuspair\n“%2$Sâ€.\nA bheil thu airson feuchainn ris a-rithist le abairt-fhaire eile no a bheil thu airson leum a ghearradh thar na teachdaireachd?
saveLogFile.title=SÃ bhail faidhle loga
# strings in gpg.jsm
unknownSigningAlg=Algairim soidhnidh nach aithne dhuinn (ID: %S)
unknownHashAlg=Hais soidhnidh nach aithne dhuinn (ID: %S)
# strings in keyRing.jsm
keyring.photo=Dealbh-camara
keyRing.pubKeyRevoked=Chaidh an iuchair %1$S (ID na h-iuchrach %2$S) a chùl-ghairm.
keyRing.pubKeyExpired=Dh’fhalbh an ùine air an iuchair %1$S (ID na h-iuchrach %2$S).
keyRing.pubKeyNotForSigning=Cha ghabh an iuchair %1$S (ID na h-iuchrach %2$S) cleachdadh airson soidhneadh.
keyRing.pubKeyNotForEncryption=Cha ghabh an iuchair %1$S (ID na h-iuchrach %2$S) cleachdadh airson crioptachadh.
keyRing.keyDisabled=Chaidh an iuchair %1$S (ID na h-iuchrach %2$S) a chur à comas; cha ghabh a cleachdadh.
keyRing.keyNotTrusted=Chan eil earbsa gu leòr san iuchair %1$S (ID na h-iuchrach %2$S). Suidhich ìre earbsa na h-iuchrach agad air “cho earbsach ’s a ghabhas†gus a cleachdadh airson soidhneadh.
keyRing.keyInvalid=Chan eil an iuchair %1$S (ID na h-iuchrach %2$S) dhligheach (’s dòcha nach deach a fèin-shoidhneadh).
keyRing.signSubKeysRevoked=Chaidh gach fo-iuchair soidhnidh aig an iuchair %1$S (ID na h-iuchrach %2$S) a chùl-ghairm.
keyRing.signSubKeysExpired=Dh’fhalbh an ùine air gach fo-iuchair soidhnidh aig an iuchair %1$S (ID na h-iuchrach %2$S).
keyRing.signSubKeysUnusable=Chaidh gach fo-iuchair soidhnidh aig an iuchair %1$S (ID na h-iuchrach %2$S) a chùl-ghairm, dh’fhalbh an ùine orra no cha ghabh an cleachdadh air adhbhar eile air choireigin.
keyRing.encSubKeysRevoked=Chaidh gach fo-iuchair crioptachaidh aig an iuchair %1$S (ID na h-iuchrach %2$S) a chùl-ghairm.
keyRing.encSubKeysExpired=Dh’fhalbh an ùine air gach fo-iuchair crioptachaidh aig an iuchair %1$S (ID na h-iuchrach %2$S).
keyRing.noSecretKey=Chan eil an iuchair dhìomhair airson %1$S (ID na h-iuchrach %2$S) air an dul-iuchrach agad a-rèir coltais; chan urrainn dhut an iuchair a chleachdadh airson soidhneadh.
keyRing.encSubKeysUnusable=Chaidh gach fo-iuchair crioptachaidh aig an iuchair %1$S (ID na h-iuchrach %2$S) a chùl-ghairm, dh’fhalbh an ùine orra no cha ghabh an cleachdadh air adhbhar eile air choireigin.
#strings in exportSettingsWizard.js
cannotWriteToFile=Chan urrainn dhuinn sà bhaladh dhan fhaidhle “%Sâ€. Feuch an tagh thu faidhle eile.
dataExportError=Tachair mearachd rè à s-phortadh an dà ta agad.
enigmailSettings=RoghainneanEnigmail
defaultBackupFileName=Enigmail-Ã s-phortadh
specifyExportFile=Sònraich ainm faile airson an à s-phortaidh
homedirParamNotSUpported=Cha chuir sinn taic ri paramadairean a bharrachd a rèiticheas slighean, can --homedir agus --keyring rè à s-phortadh/aiseag nan roghainnean agad. Cleachd dòighean eile, can suidheachadh caochladair GNUPGHOME na h-arainneachd.
#strings in expiry.jsm
expiry.keyExpiresSoon=Falbhaidh an ùine air an iuchair %1$S agad ro %2$S là (ithean).\n\nMholamaid gun cruthaich thu cà raid iuchrach ùr ’s gun rèitich thu na cunntasan a fhreagras rithe ach an cleachd iad an iuchair ùr.
expiry.keysExpireSoon=Falbhaidh an ùine air na h-iuchraichean seo agad ro %1$S là (ithean):\n%2$S. Mholamaid gun cruthaich thu iuchraichean ùra ’s gun rèitich thu na cunntasan agad ach an cleachd iad na h-iuchraichean ùra.
enigmail/lang/gd/help/ 0000775 0000000 0000000 00000000000 12667016244 0015116 5 ustar 00root root 0000000 0000000 enigmail/lang/gd/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017454 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/gd/help/editRcptRule.html 0000664 0000000 0000000 00000011603 12667016244 0020413 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit Per-Recipient Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit Per-Recipient Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set Enigmail Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/gd/help/help.html 0000664 0000000 0000000 00000010467 12667016244 0016744 0 ustar 00root root 0000000 0000000
Enigmail Help
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
If you have questions or comments about enigmail, please send a message to the Enigmail mailing list
Enigmail is open source and licensed under the Mozilla Public License and the GNU General Public License
enigmail/lang/gd/help/initError.html 0000664 0000000 0000000 00000004546 12667016244 0017772 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing Enigmail
Enigmail Help
How to Resolve Problems with Initializing Enigmail
There are several reasons why initializing Enigmail does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for Enigmail to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences)
- Enigmime failed to initialize
-
Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/gd/help/messenger.html 0000664 0000000 0000000 00000010141 12667016244 0017771 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/gd/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020305 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/gd/help/sendingPrefs.html 0000664 0000000 0000000 00000004757 12667016244 0020450 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/gl/ 0000775 0000000 0000000 00000000000 12667016244 0014176 5 ustar 00root root 0000000 0000000 enigmail/lang/gl/am-enigprefs.properties 0000664 0000000 0000000 00000000123 12667016244 0020665 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Seguridade OpenPGP
enigmail/lang/gl/enigmail.dtd 0000664 0000000 0000000 00000137622 12667016244 0016473 0 ustar 00root root 0000000 0000000
Seguranza OpenPGP)">
NOTA: A xeración de chaves pode levar varios minutos. Non saia da aplicación mentres se xera a chave. Unha navegación activa ou realizar operacións intensivas co disco durante a xeración das chaves acelerará o proceso e beneficiará a aleatoriedade. Recibirá un aviso cando se complete a xeración das chaves.">
' non é válido">
NOTA: A xeración da chave pode levar varios minutos. Non saia da aplicación mentres se estea a xerar a chave. Recibirá un aviso en canto remate o proceso.">
Nota: Enigmail verificará sempre sinaturas
nos correos para todas as contas ou identidades, estean ou non activadas">
chave pública é para que outros lle poidan enviar os correos electrónicos cifrados. Pode distribuirlla a quen desexe.">
chave privada é só para que vostede poida descifrar estes correos e mais enviar correos asinados.
Non deberÃa darlla a ninguén.">
chave privada é só para que vostede poida descifrar estes correos e mais enviar correos asinados.
Non deberÃa darlla a ninguén.
Para asegurar a chave privada, pediráselle o contrasinal nos seguintes dous diálogos.">
contrasinal protexe a chave privada impedindo un mal uso dela.">
non se recomendan.">
Pediráselle que introduza o seu contrasinal.">
exportar os datos usando o asistente de copias de seguranza nas preferencias do Enigmail
importar os datos ao novo computador usando este asistente.
">
Grazas por usar Enigmail.">
exportar os datos desde o computador antigo usando este asistente
importar os datos ao novo computador usando o asistente de configuración.
">
enigmail/lang/gl/enigmail.properties 0000664 0000000 0000000 00000113453 12667016244 0020110 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Alerta do Enigmail
enigConfirm=Confirmación do Enigmail
enigError=Erro do Enigmail
enigPrompt=Diálogo do Enigmail
dlgYes=&Si
dlgNo=&Non
dlgKeepSetting=Lembrar a resposta e non preguntar de novo
dlgNoPrompt=Non mostrar este diálogo de novo
dlg.button.delete=Eliminar
dlg.button.cancel=&Cancelar
dlg.button.close=Pe&char
dlg.button.continue=Con&tinuar
dlg.button.skip=&Omitir
dlg.button.overwrite=&Sobrescribir
dlg.button.view=&Ver
dlg.button.retry=&Reintentar
dlg.button.ignore=&Ignorar
repeatPrefix=\n\nEsta alerta repetirase %S
repeatSuffixSingular=vez máis.
repeatSuffixPlural=veces máis.
noRepeat=\n\nEsta alerta non se repetirá até que actualice Enigmail.
pgpNotSupported=Semella que está a usar Enigmail xunto con PGP 6.x\n\nDesafortunadamente, PGP 6.x ten problemas que impiden que Enigmail traballe correctamente. Ademais, Enigmail xa non acepta PGP 6.x. Cambie a GnuPG (GPG) no seu lugar.\n\nSe precisa axuda para cambiar a GnuPG, comprobe a sección da Axuda no sitio web de Enigmail.
initErr.howToFixIt=Para poder usar o Enigmail, precisa instalar o GnuPG. Se aÃnda non o ten, o xeito máis doado de instalalo é usando o botón inferior do «Asistente de configuración».
initErr.setupWizard.button=Configurar o a&sistente
passphraseCleared=O contrasinal foi borrado.
cannotClearPassphrase=Está usando unha ferramenta non estándar (como gnome-keyring) para manexar os contrasinais. Por este motivo non é posÃbel limpar o contrasinal desde o Enigmail.
noPhotoAvailable=A foto non está dispoñÃbel
debugLog.title=Rexistro da depuración do Enigmail
error.photoPathNotReadable=A ruta da imaxe '%S' non se pode ler
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Esta nova versión de Enigmail ten cambios importantes no manexo das preferencias e das opcións. Tentamos conservar os vellos axustes na nova versión. Con todo, non podemos cubrir todos os casos automaticamente. Por favor, comprobe as novas preferencias e opcións.
enigmailCommon.checkPreferences=Comprobar as preferencias...
preferences.defaultToPgpMime=Cambiamos a codificación predeterminada de mensaxes no Enigmail de Inline-PGP a PGP/MIME. Recomendámoslle que o manteña asÃ.\n\nSe aÃnda desexa usar Inline-PGP de xeito predeterminado, pode facelo nos axustes da conta en Seguridade OpenPGP.
usingVersion=Executando Enigmail versión %S
usingAgent=Usando %S executábel %S para cifrar e descifrar
agentError=ERRO: Produciuse un fallo ao acceder ao servizo Enigmime!
accessError=Produciuse un erro ao acceder ao servizo Enigmail
onlyGPG=A xeración de chaves só funciona con GnuPG (non con PGP)!
keygenComplete=Completouse a xeración da chave! Usarase a identidade <%S> para asinar.
revokeCertRecommended=Recoméndase crear un certificado de revogación para a súa chave. Este certificado pode utilizarse para invalidar a súa chave, p.ex. no caso de que perda a súa chave privada ou esta se vexa comprometida. Quere crear un certificado de revogación agora?
keyMan.button.generateCert=Xerar certificado
genCompleteNoSign=Completouse a xeración da chave!
genGoing=Xa se están a xerar as chaves!
passNoMatch=Os contrasinais non coinciden; introdúzaos de novo
passCheckBox=Marque a caixa se non quere contrasinal para a chave
passUserName=Especifique o nome de usuario/a para esta identidade
keygen.missingUserName=Non se especificou un nome para a conta/identidade seleccionada. \nIntroduza un valor no campo «Nome» nos axustes da conta.
keygen.passCharProblem=Está a usar caracteres especiais no seu contrasinal. Desafortunadamente, isto pode causar problemas noutros aplicativos. Recomendámoslle que escolla un contrasinal utilizando os seguintes caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Debido a razóns técnicas, o contrasinal non pode comezar ou rematar cun espazo.
changePassFailed=Produciuse un fallo ao cambio de contrasinal.
keyConfirm=Xerar chaves pública e privada para '%S'?
keyMan.button.generateKey=Xerar chave
keyAbort=Desexa interromper a xeración de chaves?
keyMan.button.generateKeyAbort=Cancelar a xeración da chave
keyMan.button.generateKeyContinue=Continuar coa xeración da chave
expiryTooLong=Non é posÃbel crear unha chave con unha caducidade de máis de 100 anos.
expiryTooLongShorter=Non é posÃbel crear unha chave que caduque en máis de 90 anos.
expiryTooShort=A súa chave debe ser válida alomenos durante un dÃa.
dsaSizeLimit=As chaves de asinado DSA limÃtanse a 3072 bits. O tamaño da chave reducirase en consecuencia.
keyGenFailed=Produciuse un fallo durante a xeración da chave. Comprobe a consola de Enigmail (Menú Enigmail > Depuración Enigmail) para saber os detalles.
setKeyExpirationDateFailed=Non foi posÃbel cambiar a data de caducidade
# Strings in enigmailMessengerOverlay.js
securityInfo=Información de seguridade de Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Os anexos de esta mensaxe non foron asinados nin cifrados*\n\n
possiblyPgpMime=PosÃbelmente é unha mensaxe PGP/MIME cifrada ou asinada; prema no botón Descifrar para verificalo
noDecrypted=Non hai ningunha mensaxe descifrada que gardar!\nUse o comando Gardar desde o menú Ficheiro
noMessage=Non hai ningunha mensaxe que gardar!
useButton=Prema no botón Descifrar para descifrar a mensaxe
saveHeader=Enigmail: Gardar mensaxe descifrada
saveAttachmentHeader=Enigmail: Gardar anexo descifrado
noTempDir=Non foi posÃbel atopar un cartafol temporal no que escribir. Defina a variábel de contorno TEMP
attachmentPgpKey=O anexo '%S' que quere abrir parece ser un ficheiro de chave OpenPGP.\n\nPrema 'Importar' para importar as chaves contidas ou 'Ver' para ver o contido do ficheiro en unha xanela do navegador
beginPgpPart=********* *INICIO DA PARTE CIFRADA OU ASINADA* *********
endPgpPart=********** *FIN DA PARTE CIFRADA OU ASINADA* **********
notePartEncrypted=Enigmail: *Hai partes da mensaxe que NON están asinadas ou cifradas*
noteCutMessage=Enigmail: *Atopáronse múltiples bloques da mensaxe -- interrompeuse o descifrado/verificación*
decryptOkNoSig=Aviso\n\nDescifrouse satisfactoriamente, mais a sinatura non se puido verificar correctamente.
msgOvl.button.contAnyway=&Continuar igualmente
signature.verifiedOK=A sinatura do anexo %S comprobouse correctamente
signature.verifyFailed=Non foi posÃbel comprobar a sinatura do anexo %S
attachment.noMatchToSignature=Non foi posÃbel asociar o anexo '%S' a un ficheiro de sinatura
attachment.noMatchFromSignature=Non foi posÃbel asociar o ficheiro de sinatura '%S' a un anexo
fixBrokenExchangeMsg.failed=Non se conseguiu repara a mensaxe.
keysToExport=Seleccionar chaves OpenPGP a inserir
keysToUse=Seleccionar chaves OpenPGP que usar para %S
pubKey=Chave pública para %S\n
windowLocked=A xanela de composición está bloqueada; o envÃo foi cancelado
sendUnencrypted=Produciuse un fallo ao arrancar Enigmail.\nQuere enviar o mensaxe sen cifrar?
composeSpecifyEmail=Especifique o seu enderezo de correo principal, o que se utilizará para escoller a chave para asinar as mensaxes saÃntes.\n Se o deixa en branco, usarase o enderezo de REMITE da mensaxe para escoller a chave para asinar.
sendingHiddenRcpt=Esta mensaxe ten destinos ocultos Cco (Copia carbón oculta). Se esta mensaxe está cifrada, é posÃbel agochar os/as destinatarios/as ocultos/as (Cco) mais usuarios/as dalgúns productos (p.e. PGP Corp.) non poderán descifrar a mensaxe. Dito isto, recomendase evitar correos con Cco con mensaxes cifradas.
sendWithHiddenBcc=Agochar destinatarios/as Cco
sendWithShownBcc=Cifrar normalmente
sendingNews=Cancelouse o envÃo cifrado.\n\nEsta mensaxe non se pode cifrar porque hai destinos de grupos de novas. ReenvÃe a mensaxe sen cifrar.
sendToNewsWarning=Aviso: está a piques de enviar unha mensaxe cifrada a un grupo de novas.\n\nIsto non é aconsellábel xa que só ten sentido se todoas as persoas do grupo poden descifrar a mensaxe, p.e. a mensaxe precisa ser cifrada coas chaves de todos/as participantes do grupo. EnvÃe esta mensaxe só se sabe exactamente o que está a facer.\n\nContinuar?
hasHTML=Aviso de correo HTML:\nEsta mensaxe pode conter HTML, o que poderÃa causar fallos na sinatura/cifrado. Para evitar isto no futuro, deberÃa premer a tecla SHIFT cando prema no botón Compoñer/Responder para enviar correo asinado.\nSe asina o correo de xeito predeterminado, deberÃa desmarcar a opción 'Compoñer mensaxes en HTML' para desactivar o correo HTML de xeito permanente para esta conta de correo.
strippingHTML=A mensaxe contén información de formato en HTML que se perderá ao facer a conversión a texto plano para asinar/cifrar. Quere continuar?
msgCompose.button.sendAnyway=Enviar a mensaxe igualmente&Send Message Anywa
attachWarning=Os anexos a esta mensaxe non son locais e non se poden cifrar. Para cifrar os anexos, gárdeos primeiro como ficheiros locais e despois engádaos como ficheiros adxuntos. Quere enviar a mensaxe igualmente?
quotedPrintableWarn=Activou a codificación 'entrecomiñado-imprimÃbel' para o envÃo de mensaxes. Isto pode producir erros ao descifrar ou verificar a mensaxe.\nQuere desactivar o envÃo de mensaxes 'entrecomiñados-imprimÃbeis' agora?
minimalLineWrapping=Definiu o axuste de liña a %S caracteres. Para un cifrado ou sinatura correcta, este valor ten que ser como mÃnimo 68.\nQuere mudar o axuste de liña a 68 caracteres agora?
warning=Aviso
signIconClicked=Modificou manualmente a sinatura de mensaxes. Polo tanto, mentres que compón esta mensaxe, (des)activar a sinatura non depende de (des)activar o cifrado.
pgpMime_sMime.dlg.text=Ten activados PGP/MIME e S/MIME. Desgraciadamente non é posÃbel utilizar ambos os protocolos ao mesmo tempo. Seleccione cal desexa usar.
pgpMime_sMime.dlg.pgpMime.button=Usar &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Usar &S/MIME
errorKeyUnusable=Non é posÃbel asociar o enderezo de correo nin o identificador da chave '%S' a unha chave OpenPGP válida e non caducada.\nAsegúrese de que ten unha chave OpenPGP válida e que os axustes da conta apuntan a esa chave.
errorOwnKeyUnusable=O ID da chave «%S» configurado para a identidade actual non fornece unha chave OpenPGP válida.\n\nAsegúrese que ten unha chave OpenPGP non caducada e que os axustes da conta dirixen a esta chave.\nSe a chave non está caducada, comprobe que ten a confianza no propietario estabelecida como Completa ou Definitiva.
msgCompose.cannotSaveDraft=Produciuse un erro gardando o borrador
msgCompose.internalEncryptionError=Erro interno: desactivouse o cifrado prometido.
msgCompose.internalError=Produciuse un erro interno
msgCompose.toolbarTxt.signAndEncrypt=Esta mensaxe asinarase e cifrarase
msgCompose.toolbarTxt.signOnly=Esta mensaxe asinarase
msgCompose.toolbarTxt.encryptOnly=Esta mensaxe cifrarase
msgCompose.toolbarTxt.noEncryption=Esta mensaxe non se asinará nin cifrará
msgCompose.toolbarTxt.disabled=Desactivouse o Enigmail para a identidade seleccionada
msgCompose.toolbarTxt.smime=S/MIME está activado, en conflito potencial co Enigmail
msgCompose.toolbarTxt.smimeOff=- S/MIME polo tanto non se usa
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME está activado - O Enigmail polo tanto non se usa
msgCompose.toolbarTxt.smimeNoDraftEncryption=-os borradores non se cifrarán
msgCompose.toolbarTxt.smimeConflict=O Enigmail non está operatiavo porque o S/MIME está activado. Desactive o cifrado e/o asinado de S/MIME e despois active o Enigmail.
msgCompose.encryptedSubjectStub=Mensaxe cifrada
msgCompose.detailsButton.label=Detalles...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Cancelouse o envÃo.\n\n
# details:
keyNotTrusted=A chave «%S» non é fiábel dabondo
keyNotFound=Non foi posÃbel atopar a chave «%S»
keyRevoked=A chave «%S» revogouse
keyExpired=A chave «%S» caducou
statPGPMIME=PGP/MIME
statSigned=ASINADO
statEncrypted=CIFRADO
statPlain=SEN ASINAR e SEN CIFRAR
offlineSave=Gardar %S mensaxe a %S no cartafol de mensaxes sen enviar?
onlineSend=Enviar %S mensaxe a %S?
encryptKeysNote=Nota: a mensaxe está cifrada co seguinte ID de usuario/a / Chaves: %S
hiddenKey=
signFailed=Produciuse un erro en Enigmail; fallou Cifrado/sinatura; enviar mensaxe sen cifrar?
msgCompose.button.sendUnencrypted=Enviar mensaxe sen cifrar
recipientsSelectionHdr=Seleccionar destinatarios/as para o cifrado
configureNow=AÃnda non configurou a seguridade Enigmail para a identidade seleccionada. Quere facer isto agora?
# encryption/signing status and associated reasons:
encryptMessageAuto=Cifrar mensaxe (automaticamente)
encryptMessageNorm=Cifrar mensaxe
signMessageAuto=Asinar mensaxe (automaticamente)
signMessageNorm=Asinar mensaxe
encryptOff=Cifrado: DESACTIVADO
encryptOnWithReason=Cifrado: ACTIVADO (%S)
encryptOffWithReason=Cifrado: DESACTIVADO (%S)
encryptOn=Cifrado: ACTIVADO
signOn=Asinado: ACTIVADO
signOff=Asinado: DESACTIVADO
signOnWithReason=Asinado: ACTIVADO (%S)
signOffWithReason=Asinado: DESACTIVADO (%S)
reasonEnabledByDefault=activado de forma predeterminada
reasonManuallyForced=forzado manualmente
reasonByRecipientRules=forzado polas regras do destinatario
reasonByAutoEncryption=forzado polo cifrado automático
reasonByConflict=debido a un conflito nas regras do destinatario
reasonByEncryptionMode=debido ao modo de cifrado
reasonSmimeConflict=porque S/MIME está activado
# should not be used anymore:
encryptYes=Vaise cifrar a mensaxe
encryptNo=Non se vai a cifrar a mensaxe
# should not be used anymore:
signYes=Vaise asinar a mensaxe
signNo=Non se vai asinar a mensaxe
# PGP/MIME status:
pgpmimeNormal=Protocolo: PGP/MIME
inlinePGPNormal=Protocolo: Inline PGP
pgpmimeAuto=Protocolo: PGP/MIME (automaticamente)
inlinePGPAuto=Protocolo: Inline PGP (automaticamente)
# should not be used anymore
pgpmimeYes=Usarase PGP/MIME
pgpmimeNo=Usarase o Inline PGP
# Attach own key status (tooltip strings):
attachOwnKeyNo=Non se anexará a súa chave
attachOwnKeyYes=Anexarase a súa chave
attachOwnKeyDisabled=Non pode anexar a súa chave. Ten que seleccionar unha chave na\nsección de OpenPGP nos axustes da conta para activar esta función.
rulesConflict=Detectáronse conflitos nas regras por destinatario%S\n\nEnviar a mensaxe con esta configuración?
msgCompose.button.configure=&Configurar
msgCompose.button.send=Enviar mensaxe
msgCompose.button.save=Gardar mensaxe
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=NecesÃtase a chave pública %S para verificar a sinatura
keyUsed=A chave pública %S usouse para comprobar a sinatura
clickDecrypt=; premer botón Descifrar
clickDecryptRetry=; premer botón Descifrar para tentar de novo
clickDetailsButton=; premer no botón 'Detalles' para ver máis información
clickImportButton=; prema no botón «Importar chave» para descargar a chave
keyTypeUnsupported=; o tipo de chave non é compatÃbel coa versión de GnuPG
msgPart=Parte da mensaxe %S
msgSigned=asinado
msgSignedUnkownKey=asinado cunha chave descoñecida
msgEncrypted=cifrado
msgSignedAndEnc=asinado e cifrado
unverifiedSig=Sinatura sen verificar
incompleteDecrypt=Descifrado incompleto
needKey=Erro - precÃsase a chave privada para descifrar a mensaxe
failedDecrypt=Erro - fallou o descifrado
badPhrase=Erro - contrasinal incorrecto
failedDecryptVerify=Erro - fallou o descifrado/verificación
viewInfo=; Ver > Información de seguridade da mensaxe para ver os detalles
decryptedMsg=Mensaxe descifrada
decryptedMsgWithFormatError=Mensaxe descifrada (restabeleceuse o formato de correo PGP, roto probabelmente por un servidor Exchange antigo, asà que o resultado pode non ser perfecto para a súa lectura)
usedAlgorithms=Algoritmos usados: %S e %S
# strings in pref-enigmail.js
oldGpgVersion14=Fallou a iniciación do Enigmail.\n\nEstá usando a versión %S de GnuPG, que xa non ten asistencia. O Enigmail require a versión 2.0.7 ou superior. Anove a instalación de GnuPG ou o Enigmail non funcionará.
locateGpg=Localizar o programa GnuPG
invalidGpgPath=GnuPG non se pode executar coa ruta especificada. Enigmail ficará desactivado até que cambie a ruta de GnuPG de novo ou reinicie o aplicativo.
warningsAreReset=Restablecéronse todos os avisos.
prefs.gpgFound=Atopouse GnuPG en %S
prefs.gpgNotFound=Non se atopou o GnuPG
prefs.warnAskNever=Aviso: activar esta opción causará que non se cifre ningún correo se falta algunha das chaves dos/das destinatarios/as -- Enigmail non informará disto cando suceda!
prefs.warnIdleTimeForUnknownAgent=Non é posÃbel conectar co gpg-agent. Quizais o seu sistema usa unha ferramenta especializada para manexar contrasinais (como gnome-keyring ou seahorse-agent, KDE wallet manager...). Desafortunadamente Enigmail non pode controlar o tempo lÃmite dos contrasinais na ferramenta que está usando. Polo tanto a configuración do tempo lÃmite respectivo en Enigmail é ignorada.
prefEnigmail.oneKeyserverOnly=Erro - so se pode especificar un servidor de chaves para a descarga automática das chaves OpenPGP que falten.
enterAdminPin=Introduza o PIN de administración da súa SmartCard
enterCardPin=Introduza o PIN da súa SmartCard
notInit=Erro - non se iniciou o servizo Enigmail
badCommand=Erro - fallou o comando de cifrado
cmdLine=liña de comando e saÃda:
notRequired=Erro - non se precisa cifrado
notComplete=Erro - non se completou a xeración da chave
invalidEmail=Erro - enderezo(s) de correo non válido(s)
noPassphrase=Erro - non se proporcionou o contrasinal
noPGPblock=Erro - non se atopou un bloque de datos armado OpenPGP válido
unverifiedReply=Probabelmente modificouse a parte sangrada da mensaxe (resposta)
keyInMessageBody=Hai unha chave no corpo da mensaxe. Prema «Importar chave» para importala
sigMismatch=Erro - A sinatura non coincide
cantImport=Produciuse un erro importando a chave pública\n\n
doImportOne=Desexa importar %1$S (%2$S)?
doImportMultiple=Desexa importar as seguintes chaves?\n\n%S
previewFailed=Non é posÃbel ler o ficheiro da chave pública.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Non se pode utilizar a SmartCard %S atopada no seu lector para procesar a mensaxe.\nInsira a súa SmartCard %S e repita a operación.
sc.insertCard=A operación require o uso da súa SmartCard %S.\nInsira a SmartCard requerida e repita a operación.
sc.removeCard=A operación non require que teña a súa SmartCard no lector.\nRetire a súa SmartCard e repita a operación.
sc.noCardAvailable=Non se puido atopar ningunha SmartCard no seu lector\nInsira de novo a SmartCard e repita a operación.
sc.noReaderAvailable=Non se puido acceder ao lector de tarxetas SmartCard \nConecte o lector de tarxetas, insira a SmartCard, e repita a operación.
keyError.keySpecNotFound=O enderezo de correo-e «%S» non obtivo ningunha coincidencia cunha chave do anel de chaves.
keyError.keyIdNotFound=O ID da chave configurada «%S» non se atopa no anel de chaves.
keyError.resolutionAction=Seleccione unha chave válida na sección OpenPGP dos axustes da conta
missingPassphrase=Falta o contrasinal
errorHandling.gpgAgentInvalid=O sistema está executando unha versión do gpg-agent que non é axeitada para a súa versión de GnuPG.
errorHandling.gpgAgentError=GnuPG informou dun erro na comunicación co gpg-agent (un compoñente do GnuPG).
errorHandling.dirmngrError=GnuPG informou dun erro na comunicación co dirmngr (un compoñente do GnuPG).
errorHandling.pinentryError=GnuPG non puido consultar o contrasinal por medio de pinentry,
errorHandling.readFaq=Este é un erro de configuración do sistema que impide que o Enigmail funcione correctamente. Non se pode arranxar automaticamente.\n\nRecomendámoslle moito que consulte o noso sitio de asistencia en https://enigmail.net/faq.
gpgNotFound=Non se puido localizar o programa GnuPG '%S'.\nAsegúrese de que a ruta ao executábel GnuPG é correcto nas Preferencias de Enigmail.
gpgNotInPath=Non se puido localizar o executábel de GnuPG na ruta (PATH).\nAsegúrese de que a ruta ao executábel GnuPG é correcto nas Preferencias de Enigmail.
enigmailNotAvailable=O servizo principal do Enigmail non está dispoñÃbel
gpgAgentNotStarted=Non foi posÃbel iniciar o programa gpg-agent, necesario para a súa versión do GnuPG %S.
prefUntrusted=NON FIÃBEL
prefRevoked=CHAVE REVOCADA
prefExpiredKey=CHAVE CADUCADA
prefExpired=CADUCADO
prefGood=Sinatura correcta de %S
prefBad=Sinatura INCORRECTA de %S
failCancel=Erro - A descarga da chave foi cancelada polo usuario
failNoServer=Erro- Non se especificou un servidor do que descargar as chaves
failNoID=Erro - Non se especificou un ID de chave para descargar
failKeyExtract=Erro - fallou o comando de extración de chave
notFirstBlock=Erro - o primeiro bloque OpenPGP non é un bloque de chave pública
importKeyConfirm=Importar chave(s) pública(s) integradas na mensaxe?
failKeyImport=Erro - fallou a importación de chaves
fileWriteFailed=Houbo un erro ao escribir ao ficheiro %S
importKey=Importar chave pública %S desde o servidor de chaves.
uploadKey=Enviar chave pública %S ao servidor de chaves:
keyId=ID de chave
keyAndSigDate=ID de chave: 0x%S / Asinado en: %S
keyFpr=Pegada dixital da chave: %S
noEmailProvided=Non proporcionou un enderezo de correo!
keyAlreadySigned=A chave xa está asinada, non pode asinala dúas veces.
gnupg.invalidKey.desc=Non se encontrou a chave %S ou esta non é valida. É posÃbel que a (sub-)chave xa caducase.
selKeyExpired=caducada %S
createdHeader=Creada
atLeastOneKey=Non se seleccionou ningunha chave! Ten que seleccionar polo menos unha chave para aceptar este diálogo
fewerKeysThanRecipients=Seleccionou un número máis pequeno de chaves que de remitentes. Está seguro/a de que a lista de chaves para cifrar está completa?
userSel.button.goBack=Seleccionar máis chaves
userSel.secretKeySel.title=Seleccionar unha chave privada OpenPGP para asinar as mensaxes
userSel.problemNoKey=Ningunha chave válida
userSel.problemMultipleKeys=Múltiples chaves
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Enviar máis tarde
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOTA: PGP/MIME só está soportado por un número limitado de clientes de correo! En Windows só Mozilla/Thunderbird, Sylpheed, Pegasus e Mulberry soportan este estándar; en Linux/UNIX e Mac OS X está soportado polos clientes de correo máis populares. Se non está seguro/a, seleccione a opción %S.
first=primeiro
second=segundo
# Strings used in am-enigprefs.js
encryptKeyHeader=Seleccionar chave OpenPGP para o cifrado
identityName=Identidade: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Activou o cifrado, mais non seleccionou unha chave. Para cifrar correos enviados a %S, precisa especificar unha ou varias chaves válidas da súa lista de chaves. Quere desactivar o cifrado para %S?
noKeyToUse=(ningún - sen cifrado)
noEmptyRule=A regra non pode estar baleira! Defina un enderezo de correo no campo da regra.
invalidAddress=Os enderezos de correo que introduciu non son válidos. Non deberÃa definir os nomes dos/as destinatarios/as, defina só os enderezos de correo. P.e.:\nInválido: Un nome\nVálido: un.nome@enderezo.net
noCurlyBrackets=As chaves {} teñen un significado especial e non se deberÃan utilizar nos enderezos de correo. Se quere modificar o comportamento desta regra, utilice a opción 'Aplicar regra se o destinatario...'.\nPode ver máis información premendo sobre o botón de Axuda.
# Strings used in enigmailRulesEditor.js
never=Nunca
always=Sempre
possible=PosÃbel
deleteRule=Está seguro de que quere eliminar a regra?
nextRcpt=(Seguinte destinatario)
negateRule=Non
addKeyToRule=Engadir unha chave %S (%S) á regra por-receptor
# Strings used in enigmailSearchKey.js
needOnline=A función seleccionada non está dispoñÃbel en modo sen conexión. Conéctese e ténteo de novo.
protocolNotSupported=O protocolo '%S://' que seleccionou non está soportado para a descarga de chaves OpenPGP.
gpgkeysDisabled=Activar a opción 'extensions.enigmail.useGpgKeysTool' poderÃa axudar.
noKeyserverConn=Non se puido conectar co servidor de chaves en %S.
keyDownloadFailed=Houbo un erro ao descargar a chave do servidor. A mensaxe de estado é:\n%S
internalError=Produciuse un erro interno. Non se puido descargar ou importar as chaves.
noKeyFound=SentÃmolo, non se puido atopar ningunha chave que coincida cos criterios de busqueda especificados.\nOs ID's de chave deberÃan ter como prefixo \\"0x\\" (e.g. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Produciuse un erro ao buscar ou descargar a chave do servidor: non se puido executar gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Fallou ao definir a confianza no propietario
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Fallou ao asinar a chave
alreadySigned.label=Nota: a chave %S xa está asinada coa chave privada seleccionada.
alreadySignedexportable.label=Nota: a chave %S xa está asinada exportábel coa chave privada seleccionada. Unha sinatura local non ten sentido.
partlySigned.label=Nota: algunhas ID de chave de usuario %S xa están asinadas coa chave secreta seleccionada.
noTrustedOwnKeys=Non se atopou ningunha chave axeitada para asinar. Precisa, cando menos, unha chave privada plenamente confiábel para asinar as chaves.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Cargando chaves, espere ...
keyValid.unknown=descoñecido
keyValid.invalid=incorrecto
keyValid.disabled=desactivado
keyValid.revoked=revogado
keyValid.expired=caducado
keyValid.noSubkey=subchave non válida
keyTrust.untrusted=non fiábel
keyTrust.marginal=marxinal
keyTrust.full=fiábel
keyTrust.ultimate=definitiva
keyTrust.group=(groupo)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Activar chave
keyMan.disableKey=Desactivar chave
userAtt.photo=Usar atributo (imaxe JPEG)
asciiArmorFile=Ficheiros con armadura ASCII (*.asc)
importKeyFile=Importar o ficheiro coa chave OpenPGP
gnupgFile=Ficheiros GnuPG
saveRevokeCertAs=Crear e gardar certificado de revogación
revokeCertOK=Creouse con éxito o certificado de revogación. Pode usalo para invalidar a súa chave pública, p.e. en caso de que perda a súa chave privada.\n\nTransfÃrao a un medio que poida almacenarse dun xeito seguro como un CD ou un disco floppy. Se alguén ten acceso a este certificado pode utilizalo para volver a súa chave inútil.
revokeCertFailed=Non se puido crear o certificado de revogación.
addUidOK=O ID do usuario foi engadido correctamente
addUidFailed=Produciuse un fallou ao engadir o ID de usuario
noKeySelected=Debe seleccionar alomenos unha chave para realizar a operación selecionada
exportToFile=Exportar chave pública a un ficheiro
exportKeypairToFile=Exportar as chaves secreta e pública a un ficheiro
exportSecretKey=Quere incluÃr a chave privada no ficheiro de chave OpenPGP que vai a gardar?
saveKeysOK=O ficheiro de chave foi gardado correctamente
saveKeysFailed=Produciuse un fallo ao gardar as chaves
importKeysFailed=Produciuse un fallo ao importar as chaves
enableKeyFailed=Produciuse un erro ao activar/desactivar as chaves
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Chaves-públicas-exportadas
defaultPubSecKeyFilename=Chaves-públicas-e-privadas-exportadas
noSecretKeys=Non se atopou ningunha chave privada.\n\nQuere xerar a súa propia chave agora?
sendKeysOk=As chaves foron enviadas correctamente
sendKeysFailed=Produciuse un fallo ao enviar as chaves
receiveKeysOk=As chaves foron actualizadas correctamente
receiveKeysFailed=Produciuse un erro ao descargar as chaves
importFromClip=Quere importar algunha(s) chaves do portarretallos?
importFromUrl=Descargue a chave pública nesta URL:
copyToClipbrdFailed=Non foi posÃbel copiar a(s) chave(s) seleccionada(s) ao portarretallos.
copyToClipbrdOK=Chave(s) copiada(s) ao portarretallos
deleteSecretKey=AVISO: Vai eliminar unha chave privada!\nSe elimina a súa chave privada, non poderá descifrar ningunha mensaxe cifrada para esa chave, e tampouco poderá revogar a súa chave.\n\nEstá seguro de que quere eliminar AMBAS as chaves, a chave privada e a pública '%S'?
deleteMix=AVISO: vai eliminar chaves privadas!\nSe elimina a súa chave privada non poderá descifrar calquera mensaxe cifrado para esa chave.\n\nEstá seguro de que quere eliminar AMBAS as chaves, as chaves privadas e públicas seleccionadas?
deletePubKey=Desexa eliminar a chave pública\n'%S'?
deleteSelectedPubKey=Desexa eliminar as chaves públicas?
deleteKeyFailed=Non foi posÃbel eliminar a chave.
revokeKeyQuestion=Vai a revogar a chave «%S»\n\nXa non lle será posÃbel volver asinar con esta chave. Unha vez revogada, os demais non serán quen de cifrar con ela. Pode seguir a usar a chave para descifrar as mensaxes antigas.\n\nDesexa continuar?\n\n
revokeKeyOk=A chave foi revogada. Se a súa chave está dispoñÃbel nalgún servidor de chaves, é recomendábel que a suba de novo, para que outras persoas poidan ver a revogación.
revokeKeyFailed=Non se puido revogar a chave.
refreshAllQuestion=Non seleccionou ningunha chave. Desexa recargar TODAS as chaves?
refreshKey.warn=Aviso: dependendo do número de chaves e da velocidade da conexión, a recarga de todas as chaves pode ser un proceso bastante lento!
downloadContactsKeys.warn=Aviso: dependendo do número de contactos e da velocidade da conexión, a descarga de todas as chaves pode durar unha boa miga.
downloadContactsKeys.importFrom=Desexa importar contactos da axenda de enderezos «%S»?
keyMan.button.exportSecKey=Exportar chaves privadas
keyMan.button.exportPubKey=Exportar só chaves &públicas
keyMan.button.import=&Importar
keyMan.button.refreshAll=&Recargar todas as chaves
keyMan.button.revokeKey=&Revogar chave
keyMan.button.skip=&Saltar a chave
keylist.noOtherUids=Non ten outras identidades
keylist.hasOtherUids=Tamén coñecido como
keylist.noPhotos=Non hai fotografÃas dispoñÃbeis
keylist.hasPhotos=FotografÃas
keyMan.addphoto.filepicker.title=Seleccione unha foto para engadir
keyMan.addphoto.warnLargeFile=O ficheiro seleccionado é maior de 25kB.\nNon é recomendábel engadir ficheiros grandes porque a chave resulta longa de máis.
keyMan.addphoto.noJpegFile=O ficheiro seleccionado non semella un ficheiro JPEG. Seleccione outro diferente.
keyMan.addphoto.failed=Non foi posÃbel engadir a foto.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Produciuse un erro cambiando o ID de usuario principal
changePrimUidOK=O ID de usuario principal foi cambiado correctamente
deleteUidFailed=Produciuse un erro ao eliminar o ID de usuario %S
deleteUidOK=O ID de usuario %S foi eliminado correctamente
revokeUidFailed=Produciuse un erro revogando o ID de usuario %S
revokeUidOK=O ID de usuario %S revogouse correctamente. Se a súa chave está dispoñÃbel nalgún servidor de chaves, é recomendábel que a suba de novo, para que outras persoas poidan ver a revogación.
revokeUidQuestion=Está seguro de que quere revogar o ID de usuario %S?
deleteUidQuestion=Está seguro de que quere eliminar o ID de usuario %S?\n\nSe enviou a súa chave pública a un servidor de chaves, eliminar un ID de usuario non cambiará nada. Neste caso deberÃa 'Revogar o ID de usuario'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=A chave importouse correctamente
importInfoSuccess=✅
importInfoBits=Bits
importInfoCreated=Creado
importInfoFpr=Pegada dixital
importInfoDetails=(Detalles)
importInfoNoKeys=Non hai chaves importadas
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=chave pública
keyTypePrimary=chave primaria
keyTypeSubkey=subchave
keyTypePair=par de chaves
keyExpiryNever=nunca
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Cifrar
keyUsageSign=Asinar
keyUsageCertify=Certificar
keyUsageAuthentication=Autenticación
keyDoesNotExpire=A chave non caduca
# Strings in enigmailGenCardKey.xul
keygen.started=Agarde mentres se xera a chave ...
keygen.completed=Chave xerada. O novo ID da chave é: 0x%S
keygen.keyBackup=FÃxose unha copia de seguridade da chave a %S
keygen.passRequired=Especifique un contrasinal se quere crear unha copia de seguranza da súa chave fora da súa SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=O PIN que introduciu non coincide; introdúzao de novo
cardPin.minLength=O PIN debe ter polo menos %S caracteres ou números
cardPin.processFailed=Produciuse un erro ao cambiar o PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Recargando chaves, agarde ...
keyserverProgress.uploading=Subindo chaves, agarde ...
keyserverTitle.refreshing=Recargar chaves
keyserverTitle.uploading=Subir chave
# Strings in enigmailSetupWizard
passphrase.min8keys=O seu contrasinal deberÃa conter polo menos 8 caracteres!
setupWizard.reallyCancel=Está seguro que quere pechar o Asistente de instalación de Enigmail?
setupWizard.invalidGpg=O ficheiro especificado non é un executábel de GnuPG. Indique outro ficheiro.
setupWizard.specifyFile=Debe especificar polo menos un ficheiro coa chave pública para continuar.
setupWizard.installFailed=Parece que a instalación non se realizou correctamente. Tente facela de novo ou instale GnuPG manualmente e localÃceo usando o botón Explorar.
setupWizard.downloadForbidden=Pola súa seguranza, non descargaremos GnuPG. Visite http://www.gnupg.org/ para descargalo.
setupWizard.downloadImpossible=Neste intre non podemos descargar GnuPG. Ténteo máis tarde ou visite http://www.gnupg.org/ para descargalo.
setupWizard.hashSumError=O asistente non puido verificar a integridade do ficheiro descargado. Pode que estea roto ou manipulado. Desexa continuar a instalación?
setupWizard.importSettingsFile=Especificar a copia de seguridade que cargar
setupWizard.invalidSettingsFile=O ficheiro indicado non é unha copia de seguridade dos axustes de Enigmail correcta.
setupWizard.gpgConfExists=O ficheiro config de GnuPG xa existe. Desexa sobrescribilo co ficheiro da instalación antiga?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Produciuse un erro mentres se tentaba descargar GnuPG. Comprobe o rexistro da consola para máis información.
installGnuPG.installFailed=Produciuse un erro mentres se instalaba GnuPG. Comprobe o rexistro da consola para máis información.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Debe que indicar un nome e un enderezo de correo
addUidDlg.nameMinLengthError=O nome debe ter polo menos 5 caracteres
addUidDlg.invalidEmailError=Debe especificar un enderezo de correo válido
addUidDlg.commentError=Non se permiten chaves nos comentarios
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=A Smartcards OpenPGP unicamente aceptan caracteres ASCII no nome
# network error types
errorType.SecurityCertificate=O certificado de seguranza presentado polo servizo web non é válido.
errorType.SecurityProtocol=O protocolo de seguranza usado polo servizo web é descoñecido.
errorType.Network=Produciuse un erro de rede.
# filter stuff
filter.folderRequired=Debe seleccionar un cartafol de destino.
filter.decryptMove.label=Descifrar permanentemente (Enigmail)
filter.decryptCopy.label=Crear unha copia descifrada (Enigmail)
filter.decryptMove.warnExperimental=Aviso: a acción do filtro «Descifrar permanentemente» pode provocar a destrución de mensaxes.\n\nRecomendámoslle que probe primeiro o filtro «Crear copia descifrada», comprobe o resultado con coidado e use este filtro unicamente se está satisfeito co resultado.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Non foi posÃbel descifrar a mensaxe\n«%S».\nDesexa tentalo cun contrasinal diferente ou prefire saltar a mensaxe?
converter.decryptAtt.failed=Non foi posÃbel descifrar o anexo «%1$S»\nda mensaxe co asunto\n«%2$S».\nDesexa tentalo de novo cun contrasinal distinto ou prefire saltar a mensaxe?
saveLogFile.title=Gardar o ficheiro do rexistro
# strings in gpg.jsm
unknownSigningAlg=Algoritmo de asinado descoñecido (ID: %S)
unknownHashAlg=Hash de cifrado descoñecido (ID: %S)
# strings in keyRing.jsm
keyring.photo=Imaxe
keyRing.pubKeyRevoked=A chave %1$S (ID da chave %2$S) revogouse.
keyRing.pubKeyExpired=A chave %1$S (ID da chave %2$S) caducou.
keyRing.pubKeyNotForSigning=A chave %1$S (ID da chave %2$S) non se pode usar para asinar.
keyRing.pubKeyNotForEncryption=A chave %1$S (ID da chave %2$S) non se pode usar para cifrar.
keyRing.keyDisabled=A chave %1$S (ID da chave %2$S) está desactivada e non se pode usar.
keyRing.keyNotTrusted=A chave %1$S (ID da chave %2$S) non ten suficiente nivel de confianza. Estabeleza o nivel de confianza a «definitiva» para poder asinar con ela.
keyRing.keyInvalid=A chave %1$S (ID da chave %2$S) non é válida (p.e: non ten unha auto-sinatura).
keyRing.signSubKeysRevoked=Todas as sub-chaves de asinado da chave %1$S (ID da chave %2$S) revogáronse.
keyRing.signSubKeysExpired=Todas as sub-chaves de asinado da chave %1$S (ID da chave %2$S) caducaron.
keyRing.signSubKeysUnusable=Todas as subchaves de asinado da chave %1$S (ID da chave %2$S) revogáronse, caducaron ou non son utilizábeis.
keyRing.encSubKeysRevoked=Revogáronse todas as sub-chaves de cifrado da chave %1$S (ID da chave %2$S).
keyRing.encSubKeysExpired=Caducaron todas as sub-chaves de cifrado da chave %1$S (ID da chave %2$S).
keyRing.noSecretKey=Non parece ter a chave secreta de %1$S (ID da chave %2$S) no anel de chaves. Non pode usar a chave para asinar.
keyRing.encSubKeysUnusable=Todas as sub-chaves de cifrado da chave %1$S (ID da chave %2$S) revogáronse, caducaron ou non son utilizábeis.
#strings in exportSettingsWizard.js
cannotWriteToFile=Non é posÃbel gardar no ficheiro «%S». Seleccione un ficheiro diferente.
dataExportError=Produciuse un erro na exportación dos datos.
enigmailSettings=Axustes do Enigmail
defaultBackupFileName=Exportar-export.
specifyExportFile=Especificar o nome do ficheiro para exportar
homedirParamNotSUpported=Os parámetros adicionais que configuran a ruta, tales como --homedir e --keyring non se aceptan para exportar/restabelecer os seus axustes. Use métodos alternativos como axustar a variábel de contorno GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=A súa chave %1$S caducará en menos de %2$S days.\n\nRecomendámoslle crear unha nova parella de chaves e configurar as correspondentes contas para usar esta nova chave.
expiry.keysExpireSoon=As súas chaves seguintes caducarán en menos de %1$S dÃas:\n%2$S. Recomendámoslle que cree novas chaves e configure as súas contas para usalas.
enigmail/lang/gl/help/ 0000775 0000000 0000000 00000000000 12667016244 0015126 5 ustar 00root root 0000000 0000000 enigmail/lang/gl/help/compose.html 0000664 0000000 0000000 00000010350 12667016244 0017460 0 ustar 00root root 0000000 0000000
Axuda de Enigmail: Composición de Mensaxe
Axuda de Enigmail
Usando Enigmail para compoñer mensaxes
- Menú de Enigmail na ventá de Composición de correo
- Asinar mensaxe: Activa/Desactiva o envío de correo asinado. O
usuario ou usuaria son notificados se a sinatura falla.
- Cifrar mensaxe: Activar/Desactiva o cifrado a todos os destinatarios
ou destinatarias antes do envío. Notifícase en caso de que se produza un erro no
cifrado.
Se Mostrar selección cando sexa necesario está definido na pestana de
Preferencias -> Selección de chaves, mostrarase unha listaxe de chaves se
hai algún enderezo na lista de destinatarios/as da mensaxe para os/as que non ten
chave pública.
Se a opción de non mostrar nunca o diálogo de selección de chaves OpenPGP
está activado na pestana Preferencias -> Selección de chaves, e hai enderezos
na lista de destinatarios/as para os que non ten a chave pública, a mensaxe enviaras
sen cifrar.
- Usar PGP/MIME para esta mensaxe: Activa/Desactiva o uso de PGP/MIME
para esta mensaxe.
Se sabe que o(s) destinatario(s) ou destinataria(s) poden ler correo utilizando o
formato PGP/MIME, debería utilizalo.
Esta característica depende da configuración na pestana Preferencias
-> PGP/MIME sendo a opción Permitir o uso de PGP/MIME ou Usar sempre
PGP/MIME.
- Opcións predeterminadas para a composición: Submenú.
- Opcións de Sinatura/Cifrado...: atallo a Configuración das contas ->
Opcións OpenPGP.
- Opcións de envío...: atallo á pestana Preferencias ->
Envío.
- Opcións de selección de chaves...: atallo á pestana Preferencias ->
Selección de chaves.
- Opcións PGP/MIME...: atallo á pestana Preferencias ->
PGP/MIME.
- Desfacer cifrado: Se hai un fallo ao enviar un correo, como o
servidor POP que non acepta unha solicitude, Enigmail non pode sabelo, e a
mensaxe cifrada seguirá na ventá de composición. Escollendo este elemento do
menú desfarase o cifrado/sinatura, volvendo o texto orixial á ventá de
composición.
Como un arranxo temporal, esta opción pode utilizarse para descifrar o
texto comentado ao responder mensaxes cifradas. Enigmail debería descifrar
a mensaxe automaticamente, mais se falla por algunha razón, pode utilizar
este elemento do menú para forzalo.
- Inserir chave pública: insire a chave pública nun bloque ASCII-armado
na posición actual do cursos na ventá de composición. Pediráselle o enderezo da
chave que quere inserir. As chaves inseridas desta maneira serán recoñecidas
automaticamente ao seren recividas por Enigmail. Despois da inserción da chave,
pode tamén escoller asinar/cifrar o correo se é preciso. De todos xeitos, non
insira máis dun bloque de chaves nunha mensaxe; simplemente especifique múltiples
enderezos de correo, separados por comas ou espazos, cando se lle pregunte.
- Limpar contrasinais gardados: Limpa os contrasinais gardados en caché.
Útil se ten múltiples contrasinais.
- Axuda: Mostra información de axuda desde o sitio web (esta páxina).
Máis axuda dispoñíbel na
páxina web de Axuda de Enigmail
enigmail/lang/gl/help/editRcptRule.html 0000664 0000000 0000000 00000013140 12667016244 0020421 0 ustar 00root root 0000000 0000000
Axuda de Enigmail: Editar regra OpenPGP
Axuda de Enigmail
Usando o Editor de regras de Enigmail Rules Editor: Editar regra OpenPGP
No Editor de regras, pode especificar configuracións predeterminadas por
destinatario/a para a activación de cifrado, sinatura e PGP/MIME, e definir que
chave(s) OpenPGP utilizar. Neste diálogo, pode especificar as regras para un único
ou unha única destinataria, e para un grupo de destinatarios/as con atributos
mois similares.
- Definiar regras OpenPGP para: Contén os
enderezos de correo dos destinos (sen nomes, p.e. so un enderezo como
alguen@correo.dominio). Pode especificar varios enderezos de correo,
separados por espazos. O enderezo especificado aquí pode consistir só na parte do
dominio de xeito que calquera enderezo deste dominio coincidirá,
p.e. @correo.dominio funcionará con calquera@correo.dominio,
algun@correo.dominio, algunha@correo.dominio, etc.
- Aplicar regra se o/a destinatario/a ...:
Isto modifica a coincidencia dos enderezos de correo. Se se introducen múltiples
enderezos, a configuración aplicaráselles a todos eles. Os seguintes exemplos están
baseados en calquera@correo.dominio introducidos no seguinte campo de
Regras OpenPGP.
- É exactamente: con esta configuración, a regra só se dispara con
correos a calquera@correo.dominio (exacto, coincidencia sensíbel a maiúsculas)
- Contén: con esta configuración, calquera correo que conteña a cadea coincide
p.e son.calquera@correo.dominio ou calquera@correo.dominio.net
- Comeza por: con esta configuración, calquera correo que comece coa cadea
coincidirá, p.e. calquera@correo.dominio.net,
calquera@correo.dominio-nome.com.
- Remata con: con esta configuración, calquera enderezo que remate coa cadea
coincidirá, p.e. soncalquera@correo.dominio, nonson.calquera@correo.dominio.
- Continuar coa seguinte regra que coincida co enderezo
Activando esta función permitirase definir unha regra sen ter que especificar un
ID de chave no campo Usar as seguintes chaves OpenPGP:, de xeito que
o enderezo se utilizar para buscar unha chave no momento do envío. Tamén se
procesarán outras regras para o(s) mesmo(s) enderezos igualmente.
- Non comprobar outras regras para os enderezos que coinciden
Activando esta función párase o procesamento de outras regras para un enderezo que xa
coincidiu; p.e. o procesado de regras continúa co seguinte destinatario
- Usar as seguintes chaves OpenPGP:
Use o botón Seleccionar chave(s).. para seleccionar as chaves dos/as
destinatarios/as que utilizar para o cifrado. Como na anterior acción, non se
procesan máis regras para enderezos que xa coincidiron.
- Predeterminado para sinatura:
activa ou desactiva a sinatura de mensaxes. Isto afirmar ou anula o que especificou na ventá
de composición de mensaxe. Os valores son:
- Nunca: desactiva a sintaura, aínda que estea activada na ventá de composición
da mensaxe (anula outros valores)
- Si, se está seleccionado na Composición da mensaxe: deixa a sinatura
tal e como se especificou na ventá de composición da mensaxe
- Sempre: activa a sinatura, aínda que non estea activada na ventá de composición da mensaxe
Esta configuració de sinatura aplícase para todas
as regras que coincidan. Se unha das regras desactiva a sinatura, a mensaxe non se
asina, a pesar do que especifiquen outras regras Sempre.
- Cifrado: activa ou desactiva o cifrado
de mensaxes. As configuracións permitidas e o seu significado é o mesmo que para
a sinatura.
- PGP/MIME: activar ou desactivar o uso
da codificación de mensaxes PGP/MIME (RFC 3156).
Se PGP/MIME está desactivado, as mensaxes codifícanse usando "PGP en liña". Os valores
permitidos e os seus significados son os mesmos que para a sinatura.
As regras son procesadas no orde mostrado na lista no Editor de regras OpenPGP.
Cando unha regras coincide con un destinatario e contén un ID de chave OpenPGP, ademais
de utilizar o ID de chave especificado, o destinatario non se utiliza para procesar máis regras.
Pode atopar máis información de axuda dispoñíbel na
páxina de configuracións por-destinatario/a de Enigmail
enigmail/lang/gl/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020001 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/gl/help/messenger.html 0000664 0000000 0000000 00000011006 12667016244 0020002 0 ustar 00root root 0000000 0000000
Axuda de Enigmail: Lectura de mensaxes
Axuda de Enigmail
Usando Enigmail para ler o correo
- Botón Descifra na ventá principal do correo
Este botón pode utilizarse para diferentes propósitos: descifrar, verificar,
ou importar chaves públicas. Normalmente o descifrado/verificación sucede
de xeito automático, mais isto pode desactivarse a través das preferencias.
De todos xeitos, se isto falla, normalmente aparecerá unha mensaxe de erro na
liañ de estdo de Enigmail. Se fai clic no botón Descifrar, poderá ver unha
mensaxe de erro máis detallada, incluída a saída do comando GnuPG.
- Iconas do lápis e a chave na cabeceira da mensaxe
As iconas do lápis e a chave ca cabeceira da mensaxe indican que
a mensaxe que está a ler está asinada e/ou cifrada e que a sinatura é correcta,
p.e. a mensaxe non mudou desde que foi asinada. Se a mensaxe tivese mudado, a icona
do lápis mudaría nun láspis roto para indicar que a sinatura non é
correcta. Se fai clic co botón dereito sobre o lápis ou a chave aparecerá un menú
coas seguintes opcións:
- Información de seguridade OpenPGP: permite ver o estado da saída de GnuPG
para esta mensaxe.
- Copiar información de seguridade OpenPGP: copia o estado da saída de
GnuPG ao portarretallos; para pegala nunha mensaxe de resposta, etc.
- Ver ID de foto OpenPGP: permite ver o ID de fotoda persoa que
enviou a mensaxe, se é que tiña unha foto integrada na súa chave pública
(Esta opción só estará activada se hai un ID de foto na chave.)
- Información de seguridade S/MIME: permite ver a información sobre
seguridade S/MIME para a mensaxe.
Se non ten definido keyserver-options auto-key-retrieve no seu ficheiro
gpg.conf e quere ler unha mensaxe asinada ou cifrada verá unha icona con un
lápis na área da cabeceira con un símbolo de interrogación enriba,
a liña de estado de Enigmail na cabeceira mostrará a mensaxe Parte da mensaxe
asinada; prema na icona do lápis para máis detalles e a mensaxe no panel da
mensaxe mostrará todos os bloques de sinaturas e indicadores de bloques de mensaxe OpenPGP.
Tamén pode ver isto se ten definido keyserver-options auto-key-retrieve
no seu ficheiro gpg.conf e a chave OpenPGP non está dispoñíbel no seu
sevidor de chaves.
Premendo na icona do lapis e símbolo de interrogación aparecerá unha ventá
advertindo que a chave non está dispoñíbel no seu anel de chaves. Premendo en OK
aparecerá outra ventá con unha lista de servidores de chaves dos cales pode seleccionar
desde onde descargar a chave pública da persoa que lle enviou o correo.
Para configurar a lista de servidores de chaves que quere usar, vaia á pestana
Enigmail -> Preferencias -> Básico e introduza os enderezos dos servidores
de chaves na caixa Servidor(es) de chaves: separados por comas.
O primeiro servidor da lista será o que se utilice como servidor de chaves predeterminado.
- Abrir ficheiros adxuntos cifrados / importar chaves OpenPGP adxuntas
Anexos nomeados *.pgp, *.asc e *.gpg son recoñecidos como anexos que poden ser
manexados especialmente por Enigmail. Facendo clic co botón dereito neses ficheiros
adxuntos actívanse dous elementos de menú especiais no menú contextual: Descifrar
e abrir e Descifrar e gardar. Use estes dous elementos do menú se quere
que Enigmail descifre un anexo antes de abrilo ou gardalo. Se un anexo é recoñecido como
un ficheiro de chave OpenPGP, ofreceráselle importar as chaves no seu anel de chaves.
Pode consultar máis información na
páxina web de axuda de Enigmail
enigmail/lang/gl/help/rulesEditor.html 0000664 0000000 0000000 00000006526 12667016244 0020326 0 ustar 00root root 0000000 0000000
Axuda de Enigmail: Editor de regras
Axuda de Enigmail
Usando o Editor de regras de Enigmail
No Editor de regras, pode especificar as opcións predeterminadas por
destinatario/a para activar cifrado, sinatura e PGP/MIME, e definir que
chave(s) OpenPGP utilizar. Cada regra consiste en 5 campos e está
representada por unha soa liña:
- Correo: os campos de remite do(s) correo(s)
o Para:, Cc: e Cco:the To:, Cc: and Bcc: que teñen que coincidir.
A coincidencia funciona en subcadeas (Pódense consultar máis detalles
no diálogo de edición da regra)
- Chave(s) OpenPGP: unha lista de ID's de chaves
para utilizar cos enderezos destinatarios
- Asinar: activa ou desactiva a
sinatura de mensaxes. Isto afirma ou anula o que especificou na ventá de composición
da mensaxe. Os valores son:
- Nunca: desactiva a sinatura, aínda que estea activa na ventá de
composición da mensaxe (anular outros valores)
- Posíbel: deixa a sinatura tal e como se especificou na ventá de
composición da mensaxe.
- Sempre: activa a sinatura, aínda que non estea activada na ventá de composición da mensaxe
Estas configuracións da sinatura aplícanse para
todas as regras que coincidan. Se algunha das regras desactiva a sinatura, a mensaxe
non se asinará, a pesar do que digan outras regras Sempre.
- Cifrar: activa ou desactiva o
cifrado de mensaxes. As configuracións permitidas e o seu significado é o
mesmo que para as sinaturas.
- PGP/MIME: activa ou desactiva o
uso da codificación de mensaxes PGP/MIME (RFC 3156).
Se PGP/MIME está desactivado, as mensaxes codifícanse usando "PGP en-liña".
Os valores permitidos e o seu significado son os mesmos que para a sinatura.
As regras procésanse no orde que se mostra na lista. Cando unha regra coincide
co/a destinatario/a e contén un ID de chave OpenPGP, ademais de usar o ID de
chave especificado, o/a destinatario/a non se terá en conta ao procesar máis regras.
Nota: O editor de regras aínda non está completo. É posíbel escribir
regras máis avanzadas editando directamente o ficheiro de regras (estas regras non
poderás ser editadas despois no editor de regras) Máis información
sobre como editar directamente o ficheiro está dispoñíbel na páxina web de Enigmail
Pode atopar máis información de axuda na
páxina web de Axuda de Enigmail
enigmail/lang/gl/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020462 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/hr/ 0000775 0000000 0000000 00000000000 12667016244 0014205 5 ustar 00root root 0000000 0000000 enigmail/lang/hr/am-enigprefs.properties 0000664 0000000 0000000 00000000205 12667016244 0020675 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Nizovi koriÅ¡teni u Mozilla upravitelju raÄuna\n\nOpenPGP sigurnost
enigmail/lang/hr/enigmail.dtd 0000664 0000000 0000000 00000137402 12667016244 0016476 0 ustar 00root root 0000000 0000000
OpenPGP sigurnost)">
NAPOMENA: Generiranje kljuÄeva može trajati nekoliko minuta. Ne izlazite iz aplikacije dok se kljuÄevi generiraju. Aktivno pregledavanje interneta ili provoÄ‘enje operacija koje su zahtjevne za disk prilikom generiranja kljuÄeva će napuniti 'bazen nasumiÄnosti' i ubrzati proces. Bit će te obavijeÅ¡teni kad je generiranje kljuÄeva gotovo.">
NAPOMENA: Generiranje kljuÄa može potrajati nekoliko minuta. Ne izlazite iz aplikacije dok se kljuÄ generira. Bit će te obavijeÅ¡teni kad je deneriranje zavrÅ¡eno.">
Obavijest: Enigmail će uvijek provjeravati potpise
na email-ovima za svaki raÄun i identitet, bez obzira da li je omogućen ili ne">
javni kljuÄ je za druge da Vam poÅ¡alju enkriptirane email-ove. Možete ga distribuirati svima.">
privatni kljuÄ je za Vas tako da možete dekriptirati i slati potpisane email-ove.
Ne bi ga trebali dati nikom.">
privatni kljuÄ je za Vas da bi dekriptirali ove email-ove i slali potpisane email-ove.
Ne bi ga trebali dati nikom.
Da bi osigurali VaÅ¡ privatni kljuÄ, bit ćete upitani za lozinku u sljedeća dva dijaloga.">
lozinka je lozinka za zaÅ¡titu VaÅ¡eg privatnog kljuÄa. SprijeÄava zloupotrebu VaÅ¡eg privatnog kljuÄa.">
nisu preporuÄeni.">
Od Vas će se tražiti unos Vaše lozinke za to.">
izvezite svoje podatke sa svog starog raÄunala koristeći Äarobnjak za sigurnosne kopije iz Enigmail postavki
uvezite podatke na novo raÄunalo koristeći ovaj Äarobnjak.
">
Hvala Vam što koristite Enigmail.">
izvezite svoje podatke sa starog raÄunala koristeći ovaj Äarobnjak
uvezite podatke na novo raÄunalo koristeći ÄŒarobnjak za postavljanje.
">
enigmail/lang/hr/enigmail.properties 0000664 0000000 0000000 00000112214 12667016244 0020111 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail upozorenje
enigConfirm=Enigmail potvrda
enigError=Enigmail greška
enigPrompt=Enigmail prompt
dlgYes=&Da
dlgNo=&Ne
dlgKeepSetting=Zapamti moj odgovor i ne pitaj me više
dlgNoPrompt=Ne pokazuj mi ovaj okvir ponovno
dlg.button.delete=&Obriši
dlg.button.cancel=&Otkaži
dlg.button.close=&Zatvori
dlg.button.continue=Nastavi
dlg.button.skip=&PreskoÄi
dlg.button.overwrite=&Prepiši
dlg.button.view=&Pregledaj
dlg.button.retry=&Pokušaj ponovno
dlg.button.ignore=&Ignoriraj
repeatPrefix=\n\nOvo upozorenje će se ponoviti još %S
repeatSuffixSingular=put.
repeatSuffixPlural=puta.
noRepeat=\n\nOvo upozorenje se neće ponavljati dok ne nadogradite Enigmail.
pgpNotSupported=Izgleda da koristite Enigmail zajedno s PGP 6.x\n\nNažalost, PGP 6.x ima niz problema koji sprijeÄavaju Enigmail da radi ispravno. Zbog toga Enigmail ne podržava PGP 6.x viÅ¡e; molimo Vas da se prebacite na GnuPG (GPG) umjesto toga.\n\nAko Vam treba pomoć pri prebacivanju na GnuPG, provjerite dio Enigmail naslovne stranice na kojem se nalazi Pomoć.
initErr.howToFixIt=Da bi koristili Enigmail morate imati GnuPG. Ako joÅ¡ niste instalirali GnuPG, najjednostavniji naÄin da to napravite je koristeći "ÄŒarobnjak postavljanja" gumb niže.
initErr.setupWizard.button=&ÄŒarobnjak postavljanja
passphraseCleared=Lozinka je oÄišćena.
cannotClearPassphrase=Koristite ne standardni alat (npr. gnome-keyring) za upravljanje lozinkama. Zbog toga Äišćenje lozinke nije moguće iz Enigmail-a.
noPhotoAvailable=Slika nije dostupna
debugLog.title=Enigmail zapis o otklanjanju pogreške
error.photoPathNotReadable=Putanja '%S' slike nije Äitljiva
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Ova nova verzija Enigmail-a ima znaÄajne promjene u rukovanju postavki i opcija. PokuÅ¡ali smo prenijeti stare postavke na ovu novu verziju, no ne možemo pokriti sve sluÄajeve automatski. Molimo Vas da provjerite nove postavke i opcije.
enigmailCommon.checkPreferences=Provjeri postavke...
preferences.defaultToPgpMime=Promjenili smo zadano enkodiranje poruka u Enigmail-u sa Inline-PGP-a u PGP/MIME. PreporuÄamo Vam da to zadržite kao zadano.\n\nAko i dalje želite koristiti Inline-PGP kao zadani, možete to napraviti u postavkama raÄunaa, pod OpenPGP sigurnost.
usingVersion=Koristim Enigmail verziju %S
usingAgent=Koristim %1$S izvršnu datoteku %2$S za enkripciju i dekripciju
agentError=POGREÅ KA: Pristup Enigmime usluzi nije uspio!
accessError=Pogreška u pristupanju Enigmail usluzi
onlyGPG=Generiranje kljuÄeva radi jedino s GnuPG-om (ne s PGP-om)!
keygenComplete=Generiranje kljuÄa zavrÅ¡eno! Identitet <%S> će biti koriÅ¡ten za potpisivanje.
revokeCertRecommended=PreporuÄamo stvaranje certifikata za opoziv za VaÅ¡ kljuÄ. Ovaj certifikat se može iskoristiti za poniÅ¡tavanje VaÅ¡eg kljuÄa u sluÄaju da se VaÅ¡ tajni kljuÄ izgubi ili postane kompromitiran. Želite li stvoriti certifikat za opoziv sad?
keyMan.button.generateCert=&Generiraj certifikat
genCompleteNoSign=Generiranje kljuÄa zavrÅ¡eno!
genGoing=Generiranje kljuÄa je već u tijeku!
passNoMatch=Lozinke se ne podudaraju; molimo Vas da ih ponovno unesete
passCheckBox=OznaÄite kvaÄicom kutiju ako ne odreÄ‘ujete lozinku za kljuÄ
passUserName=Molimo Vas da odredite korisniÄko ime za ovaj identitet
keygen.missingUserName=Nije odreÄ‘eno ime za odabranu državu/identitet. Molimo unesite vrijednost u polje "VaÅ¡e ime" u postavkama raÄunama.
keygen.passCharProblem=Koristite posebne znakove u svojoj lozinci. Nažalost, ovo može prouzroÄiti probleme drugim aplikacijama. PreporuÄamo da odaberete lozinku koja se sastoji jedino od ovih znakova:\na-z A-Z 0-9 /.;:,!?(){}[]%*
passSpaceProblem=Zbog tehniÄkih razloga VaÅ¡a lozinka ne može zapoÄeti ili zavrÅ¡iti s razmakom.
changePassFailed=Promjena lozinke nije uspjela.
keyConfirm=Generiraj javni i privatni kljuÄ za '%S'?
keyMan.button.generateKey=&Generiraj kljuÄ
keyAbort=Prekini generiranje kljuÄa?
keyMan.button.generateKeyAbort=&Prekini generiranje kljuÄa
keyMan.button.generateKeyContinue=&Nastavi generiranje kljuÄa
expiryTooLong=Ne možete stvoriti kljuÄ koji istiÄe za viÅ¡e od 100 godina.
expiryTooLongShorter=Ne možete stvoriti kljuÄ koji istiÄe za viÅ¡e od 90 godina.
expiryTooShort=VaÅ¡ kljuÄ mora biti valjan za najmanje jedan dan.
dsaSizeLimit=DSA kljuÄevi za potpisivanje su ograniÄeni na 3072 bita. VeliÄina kljuÄa će biti smanjena sukladno.
keyGenFailed=Generiranje kljuÄa nije uspjelo. Molimo Vas provjerite Enigmail konzolu (Izbornik Enigmail > Otklanjanje pogreÅ¡ki Enigmail-a) za detalje.
setKeyExpirationDateFailed=Datum isteka nije mogao biti promjenjen
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail sigurnosne informacije\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Privitci ove poruke nisu potpisani ili enkriptirani*\n\n
possiblyPgpMime=Potencionalno PGP/MIME enkriptirana ili potpisana poruka; kliknite gumb Dekriptiraj za provjeru
noDecrypted=Nema dekriptirane poruke za pohranu!\nUpotrijebite Pohrani naredbu iz izbornika Datoteka
noMessage=Nema poruke za pohranu!
useButton=Molimo Vas kliknite gumb Dekriptiraj kako bi dekriptirali poruku
saveHeader=Enigmail: Pohrani dekriptiranu poruku
saveAttachmentHeader=Enigmail: Pohrani dekriptirani privitak
noTempDir=Nije pronađena privremena mapa u koju se piše\nMolimo Vas da postavite TEMP varijablu
attachmentPgpKey=ÄŒini se da je privitak '%S' koji otvarate datoteka OpenPGP kljuÄa.\n\nKliknte 'Uvezi' da bi uveli kljuÄeve ili 'Pregledaj' da bi pregledali sadržaj datoteke u prozoru preglednika
beginPgpPart=********* *POÄŒNI ENKRIPTRANI ili POTPISANI DIO* *********
endPgpPart=********** *ZAVRÅ I ENKRIPTIRANI ili POTPISANI DIO* **********
notePartEncrypted=Enigmail: *Dijelovi poruke NISU potpisani ili enkriptirani*
noteCutMessage=Enigmail: *Pronađeni višestruki blokovi poruke -- dekripcija/provjera prekinuta*
decryptOkNoSig=Upozorenje!\n\nDekripcija je provedena uspjeÅ¡no, ali potpisa nije mogao biti provjeren toÄno
msgOvl.button.contAnyway=&Svejedno nastavi
signature.verifiedOK=Potpis za privitak %S je uspješno provjeren
signature.verifyFailed=Potpis za privitak %S nije moguće provjeriti
attachment.noMatchToSignature=Nije moguće usporediti privitak '%S' s potpisnom datotekom
attachment.noMatchFromSignature=Nije moguće usporediti potpisnu datoteku '%S' s privitkom
fixBrokenExchangeMsg.failed=Popravak poruke nije uspio.
keysToExport=Odaberite OpenPGP kljuÄeve za umetanje
keysToUse=Odabeirte OpenPGP kljuÄ(eve) za uporabu za %S
pubKey=Javni kljuÄ za %S\n
windowLocked=Prozor stvaranja poruke je zakljuÄan; slanje otkazano
sendUnencrypted=Inicijalizacija Enigmail-a nije uspjela.\nPoslati neenkriptiranu poruku?
composeSpecifyEmail=Molimo Vas da odredite svoju primarnu email adresu koja će biti koriÅ¡tena pri odabiru potpisnog kljuÄa za odlazne poruke.\nAko ostavite prazno, OD adresa poruke će biti iskoriÅ¡tena za odabir potpisnog kljuÄa.
sendingHiddenRcpt=Ova poruka ima BCC (slijepe kopije - skrivene) primatelje. Ukoliko je ova poruka enkriptirana moguće je sakriti BCC primatelje ali korisnici nekih proizvoda (npr. PGP Corp.) neće biti u mogućnosti dekriptirati poruku. S tim na umu, savjetujemo Vam da izbjegavate BCC email-ove kad radite s enkriptiranim porukama.
sendWithHiddenBcc=Sakrij BCC primatelje
sendWithShownBcc=Enkriptiraj normalno
sendingNews=Operacija Enkriptiranog slanja prekinuta.\n\nOva poruka ne može biti dekriptirana jer postoje grupe primatelja. Molimo Vas da ponovno pošaljete poruku bez enkripcije.
sendToNewsWarning=Upozorenje: poslati ćete neenkriptirani email grupi primatelja.\n\nOvo se ne potiÄe jer ima smisla jedino ako svi Älanovi grupe mogu dekriptirati poruku, odnosno poruka mora biti enkriptirana s kljuÄevima svih Älanova grupe. PoÅ¡aljite ovu poruku jedino ako znate toÄno Å¡to radite.\n\nNastaviti?
hasHTML=HTML mail upozorenje:\nOva poruka može sadržavati HTML, Å¡to bi moglo prouzroÄiti neuspjeh potpisivanja/enkripcije. Da bi se to izbjeglo, u budućnosti bi trebali pritisnuti SHIFT tipku kad klikćete na Stvori/Odgovori gumb tako da poÅ¡aljete potpisan email.\nAko potpisujete email pod zadano, trebali bi odznaÄiti 'Stvori poruku u HTML-u' tako da trajno onemogućite HTML mail za ovaj raÄun.
strippingHTML=Poruka sadrži HTML informacije formatiranja koje će biti izgubljene prilikom pretvorbe u obiÄan tekst za potpisivanje/enkripciju. Želite li nastaviti?
msgCompose.button.sendAnyway=&Pošalji poruku svejedno
attachWarning=Privitci ovoj poruci nisu lokalni, ne mogu biti enkriptirani. Da bi enkriptirali te privitke prvo ih pohranite kao lokalne datoteke, a zatim dodajte kao privitke. Želite li svejedno poslati poruku?
quotedPrintableWarn=Omogućili ste enkodiranje 'citirano - pogodno za ispis' za poruke koje se Å¡alju. Ovo može rezultirati netoÄnom dekripcijom i/ili provjerom VaÅ¡e poruke.\nŽelite li iskljuÄiti slanje takvih poruka sad?
minimalLineWrapping=Postavili ste omatanje linije na %S znakova. Za ispravnu enkripciju i/ili potpisivanje, ova vrijednost mora biti najmanje 68.\nŽelite li promjeniti omatanje linije na 68 znakova sad?
warning=Upozorenje
signIconClicked=RuÄno ste modificirali potpisivanje, stoga, dok stvarate ovu poruku, (de)aktiviranje potpisivanja ne ovisi viÅ¡e o (de)aktiviranju enkripcije.
pgpMime_sMime.dlg.text=Omogućili ste PGP/MIME i S/MIME zajedno. Nažalost nije moguće podržati oba protokola u isto vrijeme. Molimo Vas da odaberete želite li koristiti PGP/MIME ili S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Koristi &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Koristi &S/MIME
errorKeyUnusable=Email adresa ili ID kljuÄa '%S' ne može biti spojena s važećim, ne isteklim OpenPGP kljuÄem.\nMolimo Vas da osigurate da imate važeći OpenPGP kljuÄ, te da VaÅ¡e postavke pokazuju na taj kljuÄ.
errorOwnKeyUnusable=ID '%S' kljuÄa konfiguriranog za trenutni identitet ne daje iskoristiv OpenPGP kljuÄ.\n\nUvjerite se da imate važeći, ne istekli OpenPGP kljuÄ i da postavke VaÅ¡eg raÄuna pokazuju na taj kljuÄ.\nAko VaÅ¡ kljuÄ nije istekao, provjerite jeste li postavili povjerenje prema vlasniku na puno ili ultimativno.
msgCompose.cannotSaveDraft=Pogreška prilikom spremanja predloška
msgCompose.internalEncryptionError=Interna pogreška: obećana enkripcija onemogućena
msgCompose.internalError=Došlo je do interne pogreške.
msgCompose.toolbarTxt.signAndEncrypt=Ova poruka će biti potpisana i enkriptirana
msgCompose.toolbarTxt.signOnly=Ova poruka će biti potpisana
msgCompose.toolbarTxt.encryptOnly=Ova poruka će biti enkriptirana
msgCompose.toolbarTxt.noEncryption=Ova poruka će biti nepotpisana i neenkriptirana
msgCompose.toolbarTxt.disabled=Enigmail je onemogućen za odabrani identitet
msgCompose.toolbarTxt.smime=S/MIME je omogućen - potencijalno konfliktan s Enigmail-om
msgCompose.toolbarTxt.smimeOff=- S/MIME se zbog toga ne koristi.
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME je omogućen - Enigmail se zbog toga ne koristi
msgCompose.toolbarTxt.smimeNoDraftEncryption=- predlošci neće biti enkriptirani
msgCompose.toolbarTxt.smimeConflict=Enigmail se ne koristi jer je S/MIME trenutno omogućen. Molimo ugasite S/MIME potpisivanje i/ili S/MIME enkripciju te omogućite Enigmail enkripciju
msgCompose.encryptedSubjectStub=Enkriptirana poruka
msgCompose.detailsButton.label=Detalji...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Operacija slanja prekinuta.\n\n
# details:
keyNotTrusted=Nema dovoljno povjerenja za kljuÄ '%S'
keyNotFound=KljuÄ '%S' nije pronaÄ‘en
keyRevoked=KljuÄ '%S' opozvan
keyExpired=KljuÄ '%S' je istekao
statPGPMIME=PGP/MIME
statSigned=POTPISANO
statEncrypted=ENKRIPTIRANO
statPlain=NEPOTPISANO i NEENKRIPTIRANO
offlineSave=Pohrani %1$S poruku za %2$S u mapi neposlanih poruka?
onlineSend=Pošalji %1$S poruku %2$S?
encryptKeysNote=Napomena: poruka je enkriptirana za sljedeće ID-e korisnika / kljuÄeve: %S
hiddenKey=
signFailed=Pogreška u Enigmail-u; Enkripcija/potpisivanje nije uspjelo; pošalji neenkriptiranu poruku?
msgCompose.button.sendUnencrypted=&Pošalji neenkriptiranu poruku
recipientsSelectionHdr=Odaberi primatelje za enkripciju
configureNow=JoÅ¡ niste postavili Enigmail sigurnost za odabrani identitet. Želite li to uÄiniti sad?
# encryption/signing status and associated reasons:
encryptMessageAuto=Enkriptiraj poruku (automatski)
encryptMessageNorm=Enkriptiraj poruku
signMessageAuto=Potpiši poruku (automatski)
signMessageNorm=Potpiši poruku
encryptOff=Enkripcija: ISKLJUÄŒENA
encryptOnWithReason=Enkripcija: UKLJUÄŒENA (%S)
encryptOffWithReason=Enkripcija: ISKLJUÄŒENA (%S)
encryptOn=Enkripcija: UKLJUÄŒENA
signOn=Potpisivanje: UKLJUÄŒENO
signOff=Potpisivanje: ISKLJUÄŒENO
signOnWithReason=Potpisivanje: UKLJUÄŒENO (%S)
signOffWithReason=Potpisivanje: ISKLJUÄŒENO (%S)
reasonEnabledByDefault=omogućeno pod zadano
reasonManuallyForced=prisiljeno ruÄno
reasonByRecipientRules=prisiljeno po pravilima primatelja
reasonByAutoEncryption=prisiljeno po auto enkripciji
reasonByConflict=zbog sukoba u pravilima primatelja
reasonByEncryptionMode=zbog enkripcijskog naÄina rada
reasonSmimeConflict=jer je S/MIME omogućen umjesto toga
# should not be used anymore:
encryptYes=Poruka će biti enkriptirana
encryptNo=Poruka neće biti enkriptirana
# should not be used anymore:
signYes=Poruka će biti potpisana
signNo=Poruka neće biti potpisana
# PGP/MIME status:
pgpmimeNormal=Protokol: PGP/MIME
inlinePGPNormal=Protokol: Inline PGP
pgpmimeAuto=Protokol: PGP/MIME (automatski)
inlinePGPAuto=Protokol: Inline PGP (automatski)
# should not be used anymore
pgpmimeYes=PGP/MIME će biti korišten
pgpmimeNo=Inline PGP će biti korišten
# Attach own key status (tooltip strings):
attachOwnKeyNo=VaÅ¡ kljuÄ neće biti privijen
attachOwnKeyYes=VaÅ¡ kljuÄ Ä‡e biti privijen
attachOwnKeyDisabled=VaÅ¡ kljuÄ ne može biti privijen. Morate odabrati specifiÄan kljuÄ\nu OpenPGP sekciji Postavki raÄuna kako bi omogućili ovu znaÄajku.
rulesConflict=Otkrivena konfliktna pravila po primatelju\n%S\n\nPošalji poruku s ovim postavkama?
msgCompose.button.configure=&Postavi
msgCompose.button.send=&Pošalji poruku
msgCompose.button.save=&Spremi poruku
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Potreban je javni kljuÄ %S da bi verificirali potpis
keyUsed=Javni kljuÄ %S koriÅ¡ten za provjeru potpisa
clickDecrypt=; kliknite Dekriptiraj gumb
clickDecryptRetry=; kliknite Dekriptiraj gumb da bi pokušali ponovno
clickDetailsButton=; kliknite na 'Detalji' za više informacija
clickImportButton=; kliknite na 'Uvezi kljuÄ' da bi preuzeli kljuÄ
keyTypeUnsupported=; vrsta kljuÄa nije podržana od strane VaÅ¡e verzije GnuPG-a
msgPart=Dio poruke %S
msgSigned=potpisan
msgSignedUnkownKey=potpisano nepoznatim kljuÄem
msgEncrypted=enkriptiran
msgSignedAndEnc=potpisan i enkriptiran
unverifiedSig=Neverificiran potpis
incompleteDecrypt=Dekripcija nepotpuna
needKey=GreÅ¡ka - nije pronaÄ‘en odgovarajući privatni/tajni kljuÄ za dekripciju poruke
failedDecrypt=Greška - dekripcija nije uspjela
badPhrase=Greška - loša lozinka
failedDecryptVerify=Greška - dekripcija/verifikacija nije uspjela
viewInfo=; Pogledajte > Informacije o sigurnosti poruke za detalje
decryptedMsg=Dekriptiraj poruku
decryptedMsgWithFormatError=Dekriptirana poruka (obnovljen potrgani PGP email format vjerovatno uzrokovan starim Exchange poslužitelje, tako da bi rezultat mogao biti nesavrÅ¡en za Äitanje)
usedAlgorithms=Korišteni algoritmi: %S i %S
# strings in pref-enigmail.js
oldGpgVersion14=Enigmail inicijalizacija nije uspjela.\n\nKoristite GnuPG verziju %S, koja više nije podržana. Enigmail zahtjeva GnuPG verziju 2.0.7 ili noviju. Molimo Vas da nadogradite svoju GnuPG instalaciju ili Enigmail neće raditi.
locateGpg=Lociraj GnuPG program
invalidGpgPath=GnuPG ne može biti izvršen s danom putanjom. Enigmail je deaktiviran dok ne promjenite putanju za GnuPG ili ne pokrenete ponovno aplikaciju.
warningsAreReset=Sva upozorenja su ponovno postavljena.
prefs.gpgFound=GnuPG je pronađen u %S
prefs.gpgNotFound=Nije pronađen GnuPG
prefs.warnAskNever=Upozorenje: aktiviranje ove opcije će rezultirati neenkriptiranim email-ovima bez daljnjih informacija u sluÄaju nedostatka kljuÄa za nekog od primatelja -- Enigmail Vas neće obavijestiti ako se to dogodi!
prefs.warnIdleTimeForUnknownAgent=Nije moguće spajanje s gpg-agent. Možda Vaš sustav koristi specijalizirani alat za upravljanje lozinkama (npr. gnome-keyring, seahorse-agent, KDE wallet manager...). Nažalost Enigmail ne može kontrolirati timeout lozinki za alat koji koristite. Zbog toga su pripadajuće postavke timeout-a u Enigmailu zanemarene.
prefEnigmail.oneKeyserverOnly=PogreÅ¡ka - možete odrediti samo jedan poslužitelj kljuÄeva za automatsko preuzimanje OpenPGP kljuÄeva koji nedostaju.
enterAdminPin=Molimo unesite administratorski PIN Vaše SmartCard
enterCardPin=Molimo unesite svoj SmartCard PIN
notInit=Pogreška - Enigmail usluga još nije inicijalizirana
badCommand=Pogreška - naredba enkripcije nije uspjela
cmdLine=naredbena linija i izlaz:
notRequired=Pogreška - enkripcija nije zahtjevana
notComplete=PogreÅ¡ka - generiranje kljuÄa joÅ¡ nije zavrÅ¡eno
invalidEmail=Pogreška - pogrešna email adresa ili adrese
noPassphrase=Pogreška - nije dana lozinka
noPGPblock=Pogreška - nije pronađen valjan oklopljeni OpenPGP blok podataka
unverifiedReply=UvuÄeni dio poruke (odgovor) je vjerovatno modificiran
keyInMessageBody=PronaÄ‘en kljuÄ u tjelu poruke. Stisnite 'Uvezi kljuÄ' kako bi uvezli kljuÄ
sigMismatch=Pogreška - potpisi se ne slažu
cantImport=PogreÅ¡ka pri uvozu javnog kljuÄa\n\n
doImportOne=Uvezi %1$S (%2$S)?
doImportMultiple=Uvezi sljedeće kljuÄeve?\n\n%S
previewFailed=Ne mogu proÄitati datoteku javnog kljuÄa.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=SmartCard %1$S pronaÄ‘ena u VaÅ¡em ÄitaÄu ne može biti koriÅ¡tena za obradu poruke.\nMolimo umetnite svoju SmartCard %S i ponovite operaciju.
sc.insertCard=Operacija zahtjeva Vašu SmartCard %S.\nMolimo umetnite zahtjevanu SmartCard i ponovite operaciju.
sc.removeCard=Operacija ne zahtjeva SmartCard u ÄitaÄu.\nMolimo uklonite svoju SmartCard i ponovite operaciju.
sc.noCardAvailable=Nije pronaÄ‘ena nijedna SmartCard u VaÅ¡em ÄitaÄu\nMolimo Vas umetnite SmartCard i ponovite operaciju.
sc.noReaderAvailable=VaÅ¡oj SmartCard se ne može pristupiti\nMolimo spojite VaÅ¡ SmartCard ÄitaÄ, umetnite karticu i ponovite operaciju.
keyError.keySpecNotFound=Email adresa "%S" ne može biti usporeÄ‘ena sa kljuÄem na VaÅ¡em privjesku kljuÄeva.
keyError.keyIdNotFound=Konfigurirani ID "%S" kljuÄa ne može biti pronaÄ‘en na VaÅ¡em privjesku kljuÄeva.
keyError.resolutionAction=Molimo odaberite ispravan kljuÄ u OpenPGP odjelu u Postavkama raÄuna.
missingPassphrase=Nedostaje lozinka
errorHandling.gpgAgentInvalid=Vaš sustav koristi verziju gpg-agent koja ne odgovara Vašoj GnuPG verziji.
errorHandling.gpgAgentError=GnuPG je prijavio pogrešku u komunikaciji s gpg-agent -om (komponenta GnuPG-a).
errorHandling.dirmngrError=GnuPG je prijavio pogrešku u komunikaciji s dirmngr-om (komponenta GnuPG-a).
errorHandling.pinentryError=GnuPG ne može poslati upit za Vašu lozinku putem unosa pin-a.
errorHandling.readFaq=Ovo je greÅ¡ka sustava ili konfiguracije koja onemogućava da Enigmail radi ispravno i ne može biti popravljena automatski.\n\nPreporuÄamo da se posavjetujete s naÅ¡om stranicom https://enigmail.net/faq.
gpgNotFound=Nije pronaÄ‘en GnuPG program '%S'.\nBudite sigurni da ste postavili toÄnu putanju do izvrÅ¡ne datoteke u Enigmail postavkama.
gpgNotInPath=Nije pronaÄ‘ena GnuPG izvrÅ¡na datoteka na PUTANJI.\nBudite sigurni da ste postavili toÄnu putanju do izvrÅ¡ne datoteke u Enigmail postavkama.
enigmailNotAvailable=Enigmail jezgrena usluga nije dostupna
gpgAgentNotStarted=Nije moguće pokrenuti gpg-agent program koji je potreban za Vašu GnuPG verziju %S.
prefUntrusted=NESIGURNI
prefRevoked=REVOCIRANI KLJUČ
prefExpiredKey=ISTEKLI KLJUČ
prefExpired=ISTEKLI
prefGood=Dobar potpis od %S
prefBad=LOÅ potpis od %S
failCancel=PogreÅ¡ka - primanje kljuÄa otkazano od strane korisnika
failNoServer=PogreÅ¡ka - nije odreÄ‘en poslužitelj kljuÄeva s kojeg bi se preuzeo kljuÄ
failNoID=PogreÅ¡ka - nije odreÄ‘en ID kljuÄa za koji se preuzima kljuÄ
failKeyExtract=PogreÅ¡ka - naredba ekstrakcije kljuÄa nije uspjela
notFirstBlock=PogreÅ¡ka - Prvi OpenPGP blok nije blok javnog kljuÄa
importKeyConfirm=Uvezi javni kljuÄ(eve) ugraÄ‘en(e) u poruku?
failKeyImport=PogreÅ¡ka - uvoz kljuÄa nije uspio
fileWriteFailed=Pisanje u datoteku %S nije uspjelo
importKey=Uvezi javni kljuÄ %S sa poslužitelja kljuÄeva:
uploadKey=PoÅ¡alji javni kljuÄ %S na poslužitelj kljuÄeva:
keyId=ID kljuÄa
keyAndSigDate=ID kljuÄa: 0x%1$S / potpisan: %2$S
keyFpr=Otisak prsta kljuÄa: %S
noEmailProvided=Niste dali email adresu!
keyAlreadySigned=KljuÄ je već potpisan, ne možete ga potpisati dva puta.
gnupg.invalidKey.desc=KljuÄ %S nije pronaÄ‘en ili nije valjan. (Pod)kljuÄ je možda istekao.
selKeyExpired=istekao %S
createdHeader=Stvoren
atLeastOneKey=Nije odabran kljuÄ! Morate odabrati najmanje jedan kljuÄ da bi prihvatili ovaj dijalog
fewerKeysThanRecipients=Odabrali ste manji broj kljuÄeva nego primatelja. Jeste li sigurni da je popis kljuÄeva za enkripciju potpun?
userSel.button.goBack=Odaberi viÅ¡e kljuÄeva
userSel.secretKeySel.title=Odabei tajni OpenPGP kljuÄ za potpisivanje poruka
userSel.problemNoKey=Nema važećih kljuÄeva
userSel.problemMultipleKeys=ViÅ¡estruki kljuÄevi
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Pošalji kasnije
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NAPOMENA: PGP/MIME je podržan od strane ograniÄenog broja email klijenata! Na Windows-ima se sa sigurnošću zna jedino da Mozilla/Thunderbird, Sylpheed, Pegasus i Mulberry podržavaju ovaj standard; na Linux/UNIX-u i Mac OS X-u ga podržavaju najpopularniji klijenti. Ako niste sigurni odaberite %S opciju.
first=prvu
second=drugu
# Strings used in am-enigprefs.js
encryptKeyHeader=Odaberite OpenPGP kljuÄ za enkripciju
identityName=Identitet: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Aktivirali ste enkripciju ali niste odabrali kljuÄ. Kako bi enkriptirali email-ove poslane prema %1$S morate odrediti jedan ili viÅ¡e važećih kljuÄeva iz VaÅ¡eg popisa kljuÄeva. Želite li onemogućiti enkripciju za %2$S?
noKeyToUse=(ništa - bez enkripcije)
noEmptyRule=Pravilo ne smije biti prazno! Molimo Vas postavite email adresu u polju Pravila.
invalidAddress=Jedna ili više email adresa koje ste unijeli nisu valjane. Ne bi trebali postavljati imena primatelja, samo email adrese. Npr:\nNeispravno: Neko Ime \nIspravno: neko.ime@adresa.net
noCurlyBrackets=VitiÄaste zagrade {} imaju posebno znaÄenje i ne bi trebale biti koriÅ¡tene u email adresama. Ako želite urediti odgovarajuće ponaÅ¡anje za ovo pravilo upotrijebite opciju 'Primjeni pravilo ako korisnik...'.\nViÅ¡e informacija dostupno na gumbu Pomoć.
# Strings used in enigmailRulesEditor.js
never=Nikad
always=Uvijek
possible=Moguće
deleteRule=Stvarno obrisati odabrano pravilo?
nextRcpt=(Sljedeći primatelj)
negateRule=Ne
addKeyToRule=Dodaj kljuÄ %1$S (%2$S) pravilu po primatelju
# Strings used in enigmailSearchKey.js
needOnline=Funkcija koju ste odabrali nije dostupna u izvanmrežnom naÄinu rada. Molimo Vas da se povežete s mrežom i probate opet.
protocolNotSupported=Protokol '%S://' koji ste odabrali nije podržan za preuzimanje OpenPGP kljuÄeva.
gpgkeysDisabled=Možda bi pomoglo da omogućite opciju 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Spajanje na poslužitelj kljuÄeva %S nije uspjelo.
keyDownloadFailed=Preuzimanje kljuÄa s poslužitelja kljuÄeva nije uspjelo. Poruka je:\n%S
internalError=Dogodila se interna pogreÅ¡ka. KljuÄevi se nisu mogli preuzeti ili uvesti.
noKeyFound=Žao nam je, ali nismo mogli pronaći kljuÄ koji odgovara zadanim kriterijima pretrage.\nMolimo Vas da obratite pozornost da bi ID kljuÄa trebao poÄeti s "0x= (npr. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Pretraga ili preuzimanje kljuÄa sa poslužitelja kljuÄeva nijo uspjelo: gpgkeys_%S nije moguće izvrÅ¡iti.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Postavljanje povjerenja valsnika nije uspjelo
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Potpisivanje kljuÄa nije uspjelo
alreadySigned.label=Napomena: kljuÄ %S je već potpisan s odabranim tajnim kljuÄem.
alreadySignedexportable.label=Napomena: kljuÄ %S je već potpisan za izvoz sa odabranim privatnim kljuÄem. Lokalni potpis nema smisla.
partlySigned.label=Napomena: neki ID-evi korisnika kljuÄa %S su već potpisani s odabranim tajnim kljuÄem.
noTrustedOwnKeys=Nije pronaÄ‘en kvalificirani kljuÄ za potpisivanje! Trebate barem jedan privatni kljuÄ kojem se potpuno vjeruje kako bi potpisivali kljuÄeve.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=UÄitavam kljuÄeve, priÄekajte...
keyValid.unknown=nepoznat
keyValid.invalid=neisprava
keyValid.disabled=onemogućen
keyValid.revoked=opozvan
keyValid.expired=istekao
keyValid.noSubkey=nema valjanog podkljuÄa
keyTrust.untrusted=nesiguran
keyTrust.marginal=marginalan
keyTrust.full=siguran
keyTrust.ultimate=ultimativan
keyTrust.group=(grupa)
keyType.public=javni
keyType.publicAndSec=javni/tajni
keyMan.enableKey=Omogući kljuÄ
keyMan.disableKey=Onemogući kljuÄ
userAtt.photo=Koristi atribut (JPEG slike)
asciiArmorFile=ASCII oklopljene datoteke (*.asc)
importKeyFile=Uvezi OpenPGP datoteku kljuÄa
gnupgFile=GnuPG datoteke
saveRevokeCertAs=Stvori i pohrani certifikat za opoziv
revokeCertOK=Certifikat za opoziv je uspjeÅ¡no stvoren. Možete ga iskoristiti za poniÅ¡tavanje valjanosti svog javnog kljuÄa, npr. u sluÄaju da izgubite svoj tajni kljuÄ.\n\nMolimo Vas da ga prenesete na medij koji može biti pohranjen sigurno, primjerice USB ili CD. Ako netko dobije pristup ovom certifikatu može ga iskoristiti da uÄini VaÅ¡ kljuÄ neiskoristivim.
revokeCertFailed=Certifikat za opoziv nije mogao biti stvoren.
addUidOK=KorisniÄki ID uspjeÅ¡no dodan
addUidFailed=Dodavanje korisniÄkog ID-a nije uspjelo
noKeySelected=Trebali bi odabrati barem jedan kljuÄ kako bi proveli odabranu operaciju
exportToFile=Izvezi javni kljuÄ u datoteku
exportKeypairToFile=Izvezi tajni i javni kljuÄ u datoteku
exportSecretKey=Želite li ukljuÄiti tajni kljuÄ u pohranjenu OpenPGP datoteku kljuÄa?
saveKeysOK=KljuÄevi uspjeÅ¡no pohranjeni
saveKeysFailed=Pohrana kljuÄeva nije uspjela
importKeysFailed=Uvoz kljuÄeva nije uspio
enableKeyFailed=Omogućivanje/onemogućivanje kljuÄeva nije uspjelo
specificPubKeyFilename=%1$S (0x%2$S) javni
specificPubSecKeyFilename=%1$S (0x%2$S) javni-tajni
defaultPubKeyFilename=Izvezeni-javni-kljuÄevi
defaultPubSecKeyFilename=Izvezeni-javni-i-tajni-kljuÄevi
noSecretKeys=Nisu pronaÄ‘eni tajni kljuÄevi.\n\nŽelite li generirati svoj kljuÄ sad?
sendKeysOk=KljuÄ(evi) poslan(i) uspjeÅ¡no
sendKeysFailed=Slanje kljuÄeva nije uspjelo
receiveKeysOk=KljuÄ(evi) uspjeÅ¡no ažuriran(i)
receiveKeysFailed=Preuzimanje kljuÄeva nije uspjelo
importFromClip=Želite li uvesti neke kljuÄeve iz meÄ‘uspremnika?
importFromUrl=Preuzmite javni kljuÄ sa ovog URL-a:
copyToClipbrdFailed=Kopiranje odabranih kljuÄeva u meÄ‘uspremnik nije moguće.
copyToClipbrdOK=KljuÄ(evi) kopiran(i) u meÄ‘uspremnik
deleteSecretKey=UPOZORENJE: PokuÅ¡avate obrisati tajni kljuÄ!\nAko obriÅ¡ete tajni kljuÄ, nećete viÅ¡e moći dekriptirati poruke enkriptirane za taj kljuÄ, i nećete viÅ¡e moći opozvati svoj kljuÄ.\n\nŽelite li uistinu obrisati OBA kljuÄa, tajni i javni?\n'%S'
deleteMix=UPOZORENJE: PokuÅ¡avate obrisati tajne kljuÄeve!\nAko obriÅ¡ete tajni kljuÄ, nećete viÅ¡e moći dekriptirati poruke enkriptirane za taj kljuÄ.\n\nŽelite li uistinu obrisati odabrane kljuÄeve, tajne i javne?
deletePubKey=Želite li obrisati javni kljuÄ\n'%S'?
deleteSelectedPubKey=Želite li obrisati javne kljuÄeve?
deleteKeyFailed=KljuÄ se ne može obrisati.
revokeKeyQuestion=Opozvati će te kljuÄ '%S'.\n\nViÅ¡e nećete biti u mogućnosti potpisivati ovim kljuÄem, i jednom distribuirano, ostali neće moći dekriptirati s tim kljuÄem. JoÅ¡ uvjek možete koristit kljuÄ za dekripciju starih poruka.\n\nŽelite li nastaviti?
revokeKeyOk=KljuÄ je opozvan. Ako je VaÅ¡ kljuÄ dostupan na poslužitelju kljuÄeva, preporuÄa se ponovno postavljanje tako da drugi mogu vidjeti opoziv.
revokeKeyFailed=KljuÄ se ne može opozvati.
refreshAllQuestion=Niste odabrali nijedan kljuÄ. Želite li osvježiti SVE kljuÄeve?
refreshKey.warn=Upozorenje: ovisno o broju kljuÄeva i brzini veze, osvježenje svih kljuÄeva može biti dugotrajan proces!
downloadContactsKeys.warn=Upozorenje: ovisno o broju kontakta i brzini veze, preuzimanje kljuÄeva može biti dugotrajan proces!
downloadContactsKeys.importFrom=Uvesti kontakte iz adresara '%S'?
keyMan.button.exportSecKey=Izvezi &Tajne kljuÄeve
keyMan.button.exportPubKey=Izvezi samo &Javne kljuÄeve
keyMan.button.import=&Uvezi
keyMan.button.refreshAll=&Osvježi sve kljuÄeve
keyMan.button.revokeKey=&Opozovi kljuÄ
keyMan.button.skip=&PreskoÄi kljuÄ
keylist.noOtherUids=Nema drugih identiteta
keylist.hasOtherUids=Također poznat kao
keylist.noPhotos=Slika nije dostupna
keylist.hasPhotos=Slike
keyMan.addphoto.filepicker.title=Odaberite sliku za dodavanje
keyMan.addphoto.warnLargeFile=Datoteka koju ste odabrali je veća od 25 kB.\nNije preporuÄeno dodavati vrlo velike datoteke jer se tako povećavaju kljuÄevi.
keyMan.addphoto.noJpegFile=Izgleda da odabrana datoteka nije JPEG datoteka. Molimo Vas da odaberete drugu datoteku.
keyMan.addphoto.failed=Slika se ne može dodati.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Mijenjanje primarnog korisniÄkog ID-a nije uspjelo
changePrimUidOK=Primarni korisniÄki ID uspjeÅ¡no promijenjen
deleteUidFailed=Brisanje korisniÄkog ID-a %S nije uspjelo
deleteUidOK=KorisniÄki ID %S je uspjeÅ¡no obrisan
revokeUidFailed=Opoziv korisniÄkog ID-a %S nije uspio
revokeUidOK=KorisniÄki ID %S je uspjeÅ¡no opozvan. Ako je VaÅ¡ kljuÄ dostupan na poslužitelju kljuÄeva, preporuÄa se ponovno postavljanje, tako da ostali mogu vidjeti opoziv.
revokeUidQuestion=Želite li stvarno opozvati korisniÄki ID %S?
deleteUidQuestion=Želite li stvarno izbrisati korisniÄki ID %S?\n\nNapomena: ako ste predali svoj javni kljuÄ na poslužitelj kljuÄeva, brisanje korisniÄkog ID-a neće promijeniti niÅ¡ta. U tom sluÄaju bi trebali koristiti 'Opozovi korisniÄki ID'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=USPJEH! KljuÄevi uvedeni
importInfoSuccess=✅
importInfoBits=Bitovi
importInfoCreated=Stvoreno
importInfoFpr=Otisak prsta
importInfoDetails=(Detalji)
importInfoNoKeys=Nema uvedenih kljuÄeva.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=javni kljuÄ
keyTypePrimary=primarni kljuÄ
keyTypeSubkey=podkljuÄ
keyTypePair=par kljuÄeva
keyExpiryNever=nikad
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Enkriptiraj
keyUsageSign=Potpiši
keyUsageCertify=Certificiraj
keyUsageAuthentication=Autentikacija
keyDoesNotExpire=KljuÄ ne istiÄe
# Strings in enigmailGenCardKey.xul
keygen.started=Molimo priÄekajte dok se kljuÄ generira...
keygen.completed=KljuÄ generiran. Novi ID kljuÄa je: 0x%S
keygen.keyBackup=Sigurnosna kopija kljuÄa je %S
keygen.passRequired=Molimo Vas da odredite lozinku ako želite stvoriti sigurnosnu kopiju VaÅ¡eg kljuÄa izvan SmartCard-a.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN koji ste unijeli ne odgovara; unesite ponovno
cardPin.minLength=PIN mora imati najmanje %S slova ili brojeva
cardPin.processFailed=Promjena PIN-a nije uspjela
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Osvježujem kljuÄeve, priÄekajte...
keyserverProgress.uploading=Postavljam kljuÄeve, priÄekajte...
keyserverTitle.refreshing=Osvježi kljuÄeve
keyserverTitle.uploading=Postavljanje kljuÄa
# Strings in enigmailSetupWizard
passphrase.min8keys=Vaša lozinka bi trebala sadržavati najmanje 8 znakova!
setupWizard.reallyCancel=Želite li stvarno zatvoriti Enigmail Äarobnjak za postavljanje?
setupWizard.invalidGpg=Datoteka koju ste odredili nije izvršna datoteka GnuPG-a. Molimo odredite drugu datoteku.
setupWizard.specifyFile=Morate odrediti barem javni kljuÄ da bi nastavili.
setupWizard.installFailed=Izgleda da instalacija nije uspjela. Ili ponovno pokuÅ¡ajte ili instalirajte GnuPG ruÄno te ga locirajte koristeći Pregledaj gumb.
setupWizard.downloadForbidden=Za Vašu osobnu sigurnost nećemo preuzeti GnuPG. Posjetite http://www.gnupg.org/ kako bi preuzeli GnuPG.
setupWizard.downloadImpossible=Trenutno ne možemo preuzeti GnuPG. Probajte ponovno kasnije ili posjetite http://www.gnupg.org/ da bi preuzeli GnuPG.
setupWizard.hashSumError=Čarobnjak nije mogao potvrditi integritet preuzete datoteke. Datoteka može biti oštećena ili obrađivana od treće strane. Želite li svejedno nastaviti instalaciju?
setupWizard.importSettingsFile=Odredite datoteku sigurnosne kopije iz koje će se uÄitavati
setupWizard.invalidSettingsFile=Specificirana datoteka nije toÄna Enigmail datoteka sigurnosne kopije postavki.
setupWizard.gpgConfExists=Datoteka GnuPG postavki već postoji. Želite li ju prepisati s onom iz stare instalacije?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Dogodila se pogreška pri preuzimanju GnuPG-a. Molimo provjerite konzolni zapis za daljnje detalje.
installGnuPG.installFailed=Dogodila se pogreška prilikom instalacije GnuPG-a. Provjerite konzolni zapis za daljnje detalje.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Morate ispuniti ime i email adresu.
addUidDlg.nameMinLengthError=Ime mora imati minimalno 5 znakova
addUidDlg.invalidEmailError=Morate odrediti valjanu email adresu
addUidDlg.commentError=Zagrade nisu dozvoljene u komentarima
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP SmartCard podržava jedino ASCII znakove u imenu/prezimenu.
# network error types
errorType.SecurityCertificate=Sigurnosni certifikat pružen od strane web usluge nije valjan.
errorType.SecurityProtocol=Sigurnosni protokol korišten od strane web usluge je nepoznat.
errorType.Network=Dogodila se mrežna pogreška.
# filter stuff
filter.folderRequired=Morate odabrati ciljnu mapu.
filter.decryptMove.label=Dekriptiraj trajno (Enigmail)
filter.decryptCopy.label=Kreiraj dekriptiranu kopiju (Enigmail)
filter.decryptMove.warnExperimental=Upozorenje - filter akcija "Dekriptiraj trajno" može dovesti do uniÅ¡tenih poruka.\n\nSnažno preporuÄamo da prvo probate filter "Kreiraj dekriptiranu kopiju", pozorno testirate rezultate, te poÄnete koristit ovaj filter tek kad ste zadovoljni rezultatima.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Nije uspjelo dekriptiranje poruke s predmetom\n"%S".\nŽelite li pokuÅ¡ati ponovno s drugom lozinkom ili želite preskoÄiti poruku?
converter.decryptAtt.failed=Nije uspjelo dekriptiranje privitka "%1$S"\nporuke s predmetom\n"%2$S".\nŽelite li pokuÅ¡ati ponovno s drugom lozinkom ili želite preskoÄiti poruku?
saveLogFile.title=Pohrani datoteku zapisa
# strings in gpg.jsm
unknownSigningAlg=Nepoznat algoritam potpisivanja (ID: %S)
unknownHashAlg=Nepoznat kriptografski hash (ID: %S)
# strings in keyRing.jsm
keyring.photo=Slika
keyRing.pubKeyRevoked=KljuÄ %1$S (ID kljuÄa %2$S) je opozvan.
keyRing.pubKeyExpired=KljuÄ %1$S (ID kljuÄa %2$S) je istekao.
keyRing.pubKeyNotForSigning=KljuÄ %1$S (ID kljuÄa %2$S) ne može biti koriÅ¡ten za potpisivanje.
keyRing.pubKeyNotForEncryption=KljuÄ %1$S (ID kljuÄa %2$S) ne može biti koriÅ¡ten za enkripciju.
keyRing.keyDisabled=KljuÄ %1$S (ID kljuÄa %2$S) je onemogućen; ne može biti koriÅ¡ten.
keyRing.keyNotTrusted=KljuÄu %1$S (ID kljuÄa %2$S) se ne vjeruje dovoljno. Molimo postavite razinu povjerenja na "ultimativno" kako bi ga koristili za potpisivanje.
keyRing.keyInvalid=KljuÄ %1$S (ID kljuÄa %2$S) je nevažeći (možda nema samo-potpis).
keyRing.signSubKeysRevoked=Svi poptisni podkljuÄevi kljuÄa %1$S (ID kljuÄa %2$S) su opozvani.
keyRing.signSubKeysExpired=Svi poptisni podkljuÄevi kljuÄa %1$S (ID kljuÄa %2$S) su istekli.
keyRing.signSubKeysUnusable=Svi poptisni podkljuÄevi kljuÄa %1$S (ID kljuÄa %2$S) su opozvani, istekli ili drugaÄije neiskoristivi.
keyRing.encSubKeysRevoked=Svi enkripcijski podkljuÄevi kljuÄa %1$S (ID kljuÄa %2$S) su opozvani.
keyRing.encSubKeysExpired=Svi enkripcijski podkljuÄevi kljuÄa %1$S (ID kljuÄa %2$S) su istekli.
keyRing.noSecretKey=Izgleda da nemate tajni kljuÄ za %1$S (ID kljuÄa %2$S) na VaÅ¡em privjesku kljuÄeva; ne možete koristiti taj kljuÄ za potpisivanje.
keyRing.encSubKeysUnusable=Svi enkripcijski podkljuÄevi kljuÄa %1$S (ID kljuÄa %2$S) su opozvani, istekli ili drugaÄije neiskoristivi.
#strings in exportSettingsWizard.js
cannotWriteToFile=Ne može se spremiti u datoteku '%S'. Molimo odredite drugu datoteku.
dataExportError=Došlo je do greške prilikom izvoza Vaših podataka.
enigmailSettings=EnigmailPostavke
defaultBackupFileName=Enigmail-izvoz
specifyExportFile=Odredite ime za izvoz
homedirParamNotSUpported=Dodatni parametri koji konfiguriraju putanje, primjerice --homedir i --keyring nisu podržani za izvoz/uvoz Vaših postavki. Molimo koristite alternativne metode, primjerice postavite varijablu okoline na GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=VaÅ¡ kljuÄ %1$S istiÄe za manje od %2$S dana.\n\nPreporuÄamo da stvorite novi par kljuÄeva i postavite raÄune tako da ih koriste.
expiry.keysExpireSoon=Sljedeći VaÅ¡i kljuÄevi istiÄu za manje od %1$S dana:\n%2$S. PreporuÄamo da stvorite nove kljuÄeve i konfigurirate raÄune tako da ih koriste.
enigmail/lang/hr/help/ 0000775 0000000 0000000 00000000000 12667016244 0015135 5 ustar 00root root 0000000 0000000 enigmail/lang/hr/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017473 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/hr/help/editRcptRule.html 0000664 0000000 0000000 00000011603 12667016244 0020432 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit Per-Recipient Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit Per-Recipient Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set Enigmail Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/hr/help/help.html 0000664 0000000 0000000 00000010467 12667016244 0016763 0 ustar 00root root 0000000 0000000
Enigmail Help
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
If you have questions or comments about enigmail, please send a message to the Enigmail mailing list
Enigmail is open source and licensed under the Mozilla Public License and the GNU General Public License
enigmail/lang/hr/help/initError.html 0000664 0000000 0000000 00000004546 12667016244 0020011 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing Enigmail
Enigmail Help
How to Resolve Problems with Initializing Enigmail
There are several reasons why initializing Enigmail does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for Enigmail to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences)
- Enigmime failed to initialize
-
Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/hr/help/messenger.html 0000664 0000000 0000000 00000010141 12667016244 0020010 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/hr/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020324 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/hr/help/sendingPrefs.html 0000664 0000000 0000000 00000004757 12667016244 0020467 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/hu/ 0000775 0000000 0000000 00000000000 12667016244 0014210 5 ustar 00root root 0000000 0000000 enigmail/lang/hu/am-enigprefs.properties 0000664 0000000 0000000 00000000127 12667016244 0020703 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP adatbiztonság
enigmail/lang/hu/enigmail.dtd 0000664 0000000 0000000 00000146463 12667016244 0016510 0 ustar 00root root 0000000 0000000
MEGJEGYZÉS: A kulcskészÃtés több percet is igénybe vehet. Ne lépjen ki az alkalmazásból a kulcskészÃtés alatt. A kulcspár elkészültekor egy tájékoztató ablak fog megjelenni a képernyÅ‘n.">
Megjegyzés: Az Enigmail minden e-mail esetén ellenÅ‘rzi az aláÃrást, figyelmen kÃvül hagyva a postafiókok és azonosÃtók beállÃtásait.">
nyilvános kulcs-át odaadhatjamásoknak, akik Ãgy tudnak Önnek titkosÃtott levelet küldeni. A nyilvános kulcs bárkinek odaadható.">
titkos kulcs-át kizárólag Ön használja. Ezzel tudja visszafejteni az Önnek küldött leveleket és aláÃrni az Ön által küldött leveleket.
Soha, semmilyen körülmény között ne adja oda másnak.">
titkos kulcs-át kizárólag Ön használja. Ezzel tudja visszafejteni az Önnek küldött leveleket és aláÃrni az Ön által küldött leveleket.
Soha, semmilyen körülmény között ne adja oda másnak.
A titkos kulcs biztonságos tárolásához jelmondatot kell megadnia a következő két párbeszédablakon.">
jelmondat a jelszó, amit a titkos kulcsát védi. Megvédi titkos kulcsát az illetéktelen használattól.">
kerülendő.">
Meg kell adni majd ehhez egy jelszót.">
adatok mentése a régi számÃtógéprÅ‘l az Enigmail BeállÃtások közül elérhetÅ‘ MentÅ‘ Tündér segÃtségével,
adatok betöltése az új számÃtógépen ennek a tündérnek a segÃtségével.
">
Köszönjük, hogy az Enigmail programot használja.">
adatok mentése a régi számÃtógéprÅ‘l ennek a tündérnek a segÃtségével,
adatok betöltése az új számÃtógépen a BeállÃtás Tündér segÃtségével.
">
enigmail/lang/hu/enigmail.properties 0000664 0000000 0000000 00000122614 12667016244 0020121 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail figyelmeztetés
enigConfirm=Enigmail jóváhagyás
enigError=Enigmail hiba
enigPrompt=Enigmail kérdés
dlgYes=&Igen
dlgNo=&Nem
dlgKeepSetting=Emlékezzen a válaszaimra, és ne kérdezze meg újra
dlgNoPrompt=Ne mutassa újra ezt az ablakot
dlg.button.delete=&Törlés
dlg.button.cancel=&Mégse
dlg.button.close=&Bezárás
dlg.button.continue=Foly&tatás
dlg.button.skip=&Kihagyás
dlg.button.overwrite=&FelülÃrás
dlg.button.view=&Megtekintés
dlg.button.retry=Új&ra
dlg.button.ignore=&Mellőzés
repeatPrefix=\n\nAz értesÃtés ismétlÅ‘dik még %S
repeatSuffixSingular=alkalommal.
repeatSuffixPlural=alkalommal.
noRepeat=\n\nEz az értesÃtés nem ismétlÅ‘dik, amÃg nem frissÃti az Enigmail programot.
pgpNotSupported=Úgy tűnik, hogy az Enigmail a PGP 6.x rendszerrel dolgozik együtt.\n\nSajnos a PGP 6.x számos esetben akadályozza az Enigmail helyes működését. Emiatt az Enigmail nem támogatja többé a PGP 6.x rendszert. Használja inkább a GnuPG (GPG) csomagot.\n\nHa szüksége van segÃtségre a GPG-re történÅ‘ átálláshoz, nézze meg az Enigmail honlapján a Help szakaszt.
initErr.howToFixIt=Az Enigmail használatához szükség van a GnuPG programra. Ha még nem telepÃtette a GnuPG programot, akkor a legegyszerűbben a „BeállÃtás Tündér†gombra kattintva teheti meg.
initErr.setupWizard.button=BeállÃtá&s Tündér
passphraseCleared=A jelmondat törölve.
cannotClearPassphrase=A jelmondatok kezeléséhez a nem szabványos programot (például: gnome-keyring) használja, ezért a kulcstároló ürÃtése nem lehetséges az Enigmail programban.
noPhotoAvailable=Nem érhető el fénykép
debugLog.title=Enigmail hibanapló
error.photoPathNotReadable=A(z) „%S†fénykép elérési útja nem olvasható.
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Az Enigmail új verziójának beállÃtásai jelentÅ‘sen eltérnek a régebbi verziótól. A régi beállÃtások átvétele az új verzióba megtörtént. Mindazonáltal nem minden esetben működik tökéletesen. Kérjem ellenÅ‘rizzen minden beállÃtást az új verzióban.
enigmailCommon.checkPreferences=BeállÃtások ellenÅ‘rzése…
preferences.defaultToPgpMime=Megváltozott az Enigmail alapértelmezett üzenetkódolása a beágyazott PGP beállÃtásról a PGP/MIME beállÃtásra. Ajánlott az új alapértelmezett érték megtartása.\n\nHa ennek ellenére a beágyazott PGP szeretné használni, akkor azt a Postafiók beállÃtásai párbeszédablakban az \nOpenPGP biztonság részben teheti meg.
usingVersion=A használatban levő Enigmail verziószáma: %S
usingAgent=A titkosÃtáshoz és visszafejtéshez a(z) %1$S program %2$S példányát használja.
agentError=HIBA: Sikertelen az Enigmime szolgáltatás elérése!
accessError=Hiba az Enigmail szolgáltatás elérésekor
onlyGPG=A kulcskészÃtés csak a GPG-vel működik (PGP-vel nem)!
keygenComplete=A kulcs elkészült. A következÅ‘ azonosÃtó tartozik az aláÃráshoz: „%Sâ€.
revokeCertRecommended=ErÅ‘sen ajánljuk, hogy készÃtsen visszavonási tanúsÃtványt a kulcsához. Ez a tanúsÃtvány használható a kulcs érvénytelenÃtéséhez abban az esetben, ha a titkos kulcs elveszik vagy megsérül. Szeretné most létrehozni a visszavonási tanúsÃtványt?
keyMan.button.generateCert=&TanúsÃtvány létrehozása
genCompleteNoSign=A kulcs elkészült!
genGoing=A kulcs készÃtése folyamatban!
passNoMatch=A megadott jelmondatok nem egyeznek, adja meg újra
passCheckBox=Jelölje be a négyzetet, ha nem ad meg a kulcshoz jelmondatot
passUserName=Adja meg a felhasználónevet ehhez az azonosÃtóhoz
keygen.missingUserName=Nincs a megadott néven szereplÅ‘ postafiók. A Postafiók beállÃtásainál adja meg nevét a „Név†mezÅ‘ben.
keygen.passCharProblem=A jelmondatban különleges (például ékezetes) karaktereket használt. Sajnos ez más alkalmazásoknál gondot okozhat. Válasszon olyan jelmondatot, amelyben csak ezek a karakterek szerepelnek:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Technikai okokból a jelmondata nem kezdődhet vagy zárulhat szóköz karakterrel.
changePassFailed=A jelmondat megváltoztatása nem sikerült.
keyConfirm=Létre kÃván hozni nyilvános és titkos kulcsot „%S†részére?
keyMan.button.generateKey=&Kulcs létrehozása
keyAbort=Meg kÃvánja szakÃtani a kulcs létrehozását?
keyMan.button.generateKeyAbort=&MegszakÃtás
keyMan.button.generateKeyContinue=&Folytatás
expiryTooLong=Nem hozhat létre 100 évnél később lejáró kulcsot.
expiryTooLongShorter=Nem hozhat létre 90 évnél később lejáró kulcsot.
expiryTooShort=A kulcsnak legalább 1 napig érvényesnek kell lennie.
dsaSizeLimit=A DSA aláÃrókulcsok 3072 bitre vannak korlátozva. A kulcs mérete ennek megfelelÅ‘en lesz csökkentve.
keyGenFailed=A kulcs létrehozása nem sikerült. EllenÅ‘rizze az Enigmail konzolban a részleteket (Enigmail menü → Hibakeresési beállÃtások).
setKeyExpirationDateFailed=A lejárati idő nem változtatható meg
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail biztonsági adatok\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *A levél mellékletei nem lettek aláÃrva vagy titkosÃtva*\n\n
possiblyPgpMime=Lehetséges, hogy az üzenet PGP/MIME-mal titkosÃtott vagy aláÃrt. Kattintson a „Visszafejtés†gombra az ellenÅ‘rzéshez.
noDecrypted=Nincs mentendő visszafejtett levél!\nHasználja a Fájl menü Mentés parancsát.
noMessage=Nincs mentendő üzenet.
useButton=Kattintson a Visszafejtés gombra a levél visszafejtéséhez.
saveHeader=Enigmail: Visszafejtett levél mentése
saveAttachmentHeader=Enigmail: Visszafejtett melléklet mentése
noTempDir=Nincs ideiglenes könyvtár a mentéshez.\nÃllÃtsa be a „TEMP†környezeti változó értékét.
attachmentPgpKey=A megnyitott melléklet („%Sâ€) egy OpenPGP-kulcsfájl.\n\nVálassza az „Importálás†gombot a kulcs rögzÃtéséhez, vagy a „Megtekintés†gombot a fájl tartalmának böngészÅ‘ablakban történÅ‘ megtekintéséhez.
beginPgpPart=********* *A TITKOSÃTOTT vagy ALÃÃRT TARTALOM KEZDETE* *********
endPgpPart=********** *A TITKOSÃTOTT vagy ALÃÃRT TARTALOM VÉGE* ***********
notePartEncrypted=Enigmail: *A levél ezen része NINCS aláÃrva vagy titkosÃtva*
noteCutMessage=Enigmail: *Az üzenetben több blokk szerepel -- visszafejtés és ellenÅ‘rzés megszakÃtva*
decryptOkNoSig=Figyelmeztetés!\n\nA visszafejtés sikerült, de az aláÃrást nem lehetett megfelelÅ‘en ellenÅ‘rizni.
msgOvl.button.contAnyway=&Folytatás mindenképp
signature.verifiedOK=A(z) „%S†melléklet aláÃrása sikeresen ellenÅ‘rizve lett.
signature.verifyFailed=A(z) „%S†melléklet aláÃrása nem ellenÅ‘rizhetÅ‘.
attachment.noMatchToSignature=A(z) „%S†melléklet aláÃrása nem jó.
attachment.noMatchFromSignature=A(z) „%S†aláÃrásfájlhoz nem található melléklet.
fixBrokenExchangeMsg.failed=Az üzenet megjavÃtása nem sikerült.
keysToExport=Válasszon beszúrandó OpenPGP-kulcsokat
keysToUse=OpenPGP-kulcsok választása %S számára
pubKey=%S nyilvános kulcsa\n
windowLocked=SzerkesztÅ‘ablak zárolva; küldés megszakÃtva
sendUnencrypted=Enigmail indÃtási hiba.\nElküldi titkosÃtás nélkül az üzenetet?
composeSpecifyEmail=Adja meg az elsÅ‘dleges e-mail cÃmét, amely a kimenÅ‘ levelek aláÃrásának kulcsaként lesz kiválasztva.\n Ha üresen hagyja, úgy a levél feladójának cÃme lesz kiválasztva az aláÃrás kulcsaként.
sendingHiddenRcpt=Ennek az üzenetnek rejtett másolat cÃmzettjei is vannak. Amennyiben az üzenet titkosÃtásra kerül, a rejtet másolat cÃmzettjei el lesznek rejtve, de néhány termék (például: PGP Corp.) felhasználója nem tudja majd visszafejteni az üzenetet. Ennek megfelelÅ‘en nem javasolt rejtett másolat cÃmzetteket megadni a titkosÃtott üzenetekben.
sendWithHiddenBcc=Rejtett másolat cÃmzettjeinek elrejtése
sendWithShownBcc=Hagyományos titkosÃtás
sendingNews=TitkosÃtott üzenetküldés megszakÃtva.\n\nAz üzenetet nem lehet titkosÃtani, mivel hÃrcsoport is szerepel a cÃmzettek között. Küldje el ismét az üzenetet titkosÃtás nélkül.
sendToNewsWarning=FIGYELMEZTETÉS: TitkosÃtott üzenetet szeretett volna elküldeni egy hÃrcsoportnak.\n\nEz lehet, hogy nem helyes cselekedet, mert csak akkor elfogadható, ha a hÃrcsoport összes tagja vissza tudja fejteni az üzenetet. Például az üzenet a hÃrcsoport összes tagjának nyilvános kulcsával kerül titkosÃtásra. Csak akkor küldje el ezt az üzenetet, ha valóban tudja, hogy mit csinál.\n\nKÃvánja folytatni?
hasHTML=HTML-levél figyelmeztetés:\nAz üzenet tartalmazhat HTML tartalmat, ami megakadályozhatja az aláÃrást, illetve a titkosÃtást. A jövÅ‘ben ennek elkerülése végett használja a SHIFT billentyűt, amikor az Új üzenet/Válasz/TovábbÃtás gombokra kattint, hogy a küldéskor egyszerű levél legyen.\nHa a levél automatikus aláÃrása használatban van, be kell állÃtani a postafióknál, hogy a „Levelek Ãrása HTML formátumban†jelölÅ‘négyzet ki legyen kapcsolva.
strippingHTML=Az üzenet HTML formázásokra vonatkozó információkat tartalmaz, ami törlÅ‘dik az egyszerű szöveggé történÅ‘ átalakÃtáskor, amire az aláÃráskor/titkosÃtáskor kerül sor. Szeretné folytatni?
msgCompose.button.sendAnyway=Ü&zenet küldése
attachWarning=A levélhez csatolt állomány nem helyi, ezért nem lehet titkosÃtani. A melléklet titkosÃtásához elÅ‘bb tárolja le az állományt a saját gépére, majd ez után csatolja a levélhez. Folytatni kÃvánja a figyelmeztetés figyelmen kÃvül hagyásával?
quotedPrintableWarn=Engedélyezte a „quoted-printable†kódolást a levélküldéshez. Ez a levele téves visszafejtését, illetve ellenőrzését okozhatja.\nSzeretné kikapcsolni a „quoted-printable†alapú üzenetküldést most?
minimalLineWrapping=BeállÃtotta a sortördelést %S karakterre. A helyes titkosÃtáshoz, illetve aláÃráshoz ennek az értéknek legalább 68-nak kell lennie.\nSzeretné átállÃtani a sortördelést 68 karakterre most?
warning=Figyelem
signIconClicked=Manuálisan módosÃtotta a postafiók Enigmail beállÃtását! Amennyiben folytatja a levél Ãrását, úgy a postafiókhoz beállÃtott Enigmail funkció (titkosÃtás, aláÃrás) érvényét veszti.
pgpMime_sMime.dlg.text=Együttesen engedélyezte a PGP/MIME és az S/MIME protokollok használatát. Sajnálatos módon egyszerre nem használható mindkét protokoll. Válassza ki, hogy a PGP/MIME vagy az S/MIME protokoll szeretné használni.
pgpMime_sMime.dlg.pgpMime.button=&PGP/MIME használatával
pgpMime_sMime.dlg.sMime.button=&S/MIME használatával
errorKeyUnusable=Az e-mail cÃm vagy a(z) „%S†azonosÃtójú kulcs nem rendelhetÅ‘ össze, mint érvényes és le nem járt OpenPGP kulcs.\nKérem bizonyosodjon meg róla, hogy érvényes OpenPGP kulccsal rendelkezik, és a postafiók beállÃtásai alapján ezt a kulcsot használja.
errorOwnKeyUnusable=Az aktuális azonosÃtónál beállÃtott „%S†kulcs nem használható az OpenPGP számára.\n\nGyÅ‘zÅ‘djön meg róla, hogy a használandó kulcs érvényes, nem lejárt OpenPGP kulcs, és ellenÅ‘rizze, hogy Postafiók beállÃtásainál megfelelÅ‘ kulcs van megadva.\nHa a kulcs nem járt le, akkor ellenÅ‘rizze, hogy a tulajdonos megbÃzhatóság teljesen- vagy véglegesen megbÃzhatóra van állÃtva.
msgCompose.cannotSaveDraft=Hiba lépett fel a piszkozat mentése közben
msgCompose.internalEncryptionError=BelsÅ‘ hiba: az Ãgért titkosÃtási támogatás le van tiltva
msgCompose.internalError=Belső hiba történt.
msgCompose.toolbarTxt.signAndEncrypt=Ez az üzenet alá lesz Ãrva és titkosÃtva lesz
msgCompose.toolbarTxt.signOnly=Ez az üzenet alá lesz Ãrva
msgCompose.toolbarTxt.encryptOnly=Ez az üzenet titkosÃtva lesz
msgCompose.toolbarTxt.noEncryption=Ez az üzenet aláÃrás nélküli és titkosÃtatlan lesz
msgCompose.toolbarTxt.disabled=Az Enigmail le van tiltva a kijelölt postafiókhoz
msgCompose.toolbarTxt.smime=Az S/MIME engedélyezett – lehet, hogy nem fog jól működni az Enigmail
msgCompose.toolbarTxt.smimeOff=– S/MIME ezért használaton kÃvül
msgCompose.toolbarTxt.smimeSignOrEncrypt=Az S/MIME engedélyezett – ezért az Enigmail használaton kÃvül
msgCompose.toolbarTxt.smimeNoDraftEncryption=- a piszkozat nem lesz titkosÃtva
msgCompose.toolbarTxt.smimeConflict=Az Enigmail nem használható, mert a S/MIME be van kapcsolva. Kapcsolja ki a S/MIME aláÃrást és titkosÃtást az Enigmail titkosÃtás használatához.
msgCompose.encryptedSubjectStub=TitkosÃtott üzenet
msgCompose.detailsButton.label=Részletek…
msgCompose.detailsButton.accessKey=R
# note: should end with double newline:
sendAborted=Küldés művelet megszakÃtva.\n\n
# details:
keyNotTrusted=Nem eléggé megbÃzható kulcs: „%Sâ€
keyNotFound=Nem található a kulcs: „%Sâ€
keyRevoked=A(z) „%S†kulcs vissza lett vonva
keyExpired=A(z) „%S†kulcs lejárt
statPGPMIME=PGP/MIME
statSigned=ALÃÃRT
statEncrypted=TITKOSÃTOTT
statPlain=SIMA SZÖVEG
offlineSave=Mentse a(z) %1$S üzenetet %2$S részére a Postázandó üzenetek közé?
onlineSend=Küldje el a(z) %1$S üzenetet %2$S részére?
encryptKeysNote=Megjegyzés: az üzenet titkosÃtva van a következÅ‘ felhasználói azonosÃtókkal/kulcsokkal: %S
hiddenKey=
signFailed=Hiba az Enigmail programban: titkosÃtási/aláÃrási hiba. Elküldi a levelet titkosÃtás nélkül?
msgCompose.button.sendUnencrypted=&TitkosÃtatlan üzenet küldése
recipientsSelectionHdr=Válassza ki a cÃmzetteket a titkosÃtáshoz
configureNow=Még nem állÃtotta be az Enigmail védelmet a kijelölt azonosÃtóhoz. Szeretné most megtenni?
# encryption/signing status and associated reasons:
encryptMessageAuto=Üzenet titkosÃtása (auto)
encryptMessageNorm=Üzenet titkosÃtása
signMessageAuto=Üzenet aláÃrása (auto)
signMessageNorm=Üzenet aláÃrása
encryptOff=TitkosÃtás: KI
encryptOnWithReason=TitkosÃtás: BE (%S)
encryptOffWithReason=TitkosÃtás: KI (%S)
encryptOn=TitkosÃtás: BE
signOn=AláÃrás: BE
signOff=AláÃrás: KI
signOnWithReason=AláÃrás: BE (%S)
signOffWithReason=AláÃrás: KI (%S)
reasonEnabledByDefault=mindig bekapcsolva
reasonManuallyForced=kézzel kényszerÃtve
reasonByRecipientRules=cÃmzettenkénti szabállyal kényszerÃtve
reasonByAutoEncryption=automatikus titkosÃtással kényszerÃtve
reasonByConflict=a cÃmzettenkénti szabályok ütközése miatt
reasonByEncryptionMode=az automatikus titkosÃtás miatt
reasonSmimeConflict=mert helyette az S/MIME engedélyezett
# should not be used anymore:
encryptYes=A levél titkosÃtva lesz
encryptNo=A levél nem lesz titkosÃtva
# should not be used anymore:
signYes=A levél alá lesz Ãrva
signNo=A levél nem lesz aláÃrva
# PGP/MIME status:
pgpmimeNormal=Protokoll: PGP/MIME
inlinePGPNormal=Protokoll: Beágyazott PGP
pgpmimeAuto=Protokoll: PGP/MIME (auto)
inlinePGPAuto=Protokoll: Beágyazott PGP (auto)
# should not be used anymore
pgpmimeYes=&PGP/MIME használatával
pgpmimeNo=Beágyazott PGP használatával
# Attach own key status (tooltip strings):
attachOwnKeyNo=A saját kulcs nem lesz mellékelve.
attachOwnKeyYes=A saját kulcs mellékelve lesz.
attachOwnKeyDisabled=A saját kulcs nem mellékelhetÅ‘. A szolgáltatás engedélyezéséhez\nki kell választania egy kulcsot a Postafiók beállÃtásai párbeszédablakban az OpenPGP részben.
rulesConflict=A cÃmzettenkénti szabályok többszörösen egyeznek:\n%S\n\nElküldi az üzenetet ezekkel a beállÃtásokkal?
msgCompose.button.configure=&BeállÃtás
msgCompose.button.send=Ü&zenet küldése
msgCompose.button.save=Üzenet &mentése
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=%S nyilvános kulcs szükséges az aláÃrás ellenÅ‘rzéséhez
keyUsed=%S nyilvános kulcs szükséges az aláÃrás ellenÅ‘rzéséhez
clickDecrypt=; kattintson a „Visszafejtés†gombra
clickDecryptRetry=; kattintson a „Visszafejtés†gombra az ismétléshez
clickDetailsButton=; További információkért kattintson a „Részletek†gombra
clickImportButton=; kattintson az „Importálás†gombra a kulcs letöltéséhez
keyTypeUnsupported=; ezt a kulcstÃpust nem támogatja a telepÃtett GnuPG verzió
msgPart=A levél része: %S
msgSigned=aláÃrt
msgSignedUnkownKey=ismeretlen kulccsal aláÃrt
msgEncrypted=titkosÃtott
msgSignedAndEnc=aláÃrt és titkosÃtott
unverifiedSig=Nem ellenÅ‘rzött aláÃrás
incompleteDecrypt=Visszafejtés nem teljes
needKey=Hiba – Titkos kulcs szükséges az üzenet visszafejtéséhez
failedDecrypt=Hiba – Visszafejtés sikertelen
badPhrase=Hiba – Rossz jelmondat
failedDecryptVerify=Hiba – A visszafejtés és az ellenőrzés sikertelen
viewInfo=; további részletek: „Nézet → Üzenet biztonsági adataiâ€
decryptedMsg=Visszafejtett üzenet
decryptedMsgWithFormatError=Üzenet visszafejtése (visszaállÃtás hibás PGP levélformátumból, amelyet valószÃnűleg egy régi Exchange kiszolgáló okozott, Ãgy az eredménye esetleg nem lesz tökéletes)
usedAlgorithms=Alkalmazott algoritmus: %S és %S
# strings in pref-enigmail.js
oldGpgVersion14=Nem sikerült az Enigmail elindÃtása!\n\nÖn a GnuPG %S verzióját használja, amely nem naprakész. Az Enigmail számára szükséges a GnuPG 2.0.7 vagy újabb változata. Kérem frissÃtse a GnuPG programot, különben az Enigmail nem fog működni.
locateGpg=GnuPG program elérési útja
invalidGpgPath=GnuPG nem indÃtható a megadott útvonalról. Az Enigmail kikapcsolt állapotba kerül mindaddig, amÃg a GnuPG útvonala nincs kijavÃtva, vagy az alkalmazás újra nem indul.
warningsAreReset=A figyelmeztetések törölve lettek.
prefs.gpgFound=A talált GnuPG helye: %S
prefs.gpgNotFound=GnuPG nem található
prefs.warnAskNever=Figyelmeztetés: Az opció kiválasztása mindenféle további figyelmeztetés nélkül hatással lesz a nem titkosÃtott levelekre, ha nincs kulcs valamelyik cÃmzettnél -- Enigmail nem fogja értesÃteni, ha ez történik.
prefs.warnIdleTimeForUnknownAgent=Nem sikerült csatlakozni a gpg-agent programhoz. ElÅ‘fordulhat hogy az Ön rendszere speciális eszközt – gnome-keyring vagy seahorse-agent – használ a jelmondatok kezeléséhez. Sajnos az Enigmail Ãgy nem tudja befolyásolni az jelmondatok lejáratát az Ön által használt eszközben. Ennek megfelelÅ‘en az Enigmail programban megadott lejárati idÅ‘k figyelmen kÃvül lesznek hagyva.
prefEnigmail.oneKeyserverOnly=Hiba – Csak egy kulcskiszolgálót adhat meg a hiányzó OpenPGP-kulcsok automatikus letöltéséhez.
enterAdminPin=Ãrja be az intelligens kártya adminisztrátori PIN-kódját.
enterCardPin=Ãrja be az intelligens kártya PIN-kódját.
notInit=Hiba – Az Enigmail szolgáltatás még nem indult el
badCommand=Hiba – A titkosÃtó parancs sikertelen volt
cmdLine=parancssor és kimenet:
notRequired=Hiba – TitkosÃtás nem szükséges
notComplete=Hiba – A kulcskészÃtés még nem fejezÅ‘dött be
invalidEmail=Hiba – Érvénytelen email cÃm(ek)
noPassphrase=Hiba – Nincs jelmondat megadva
noPGPblock=Hiba – Nem található érvényes védett OpenPGP-adatblokk
unverifiedReply=A beljebb kezdett üzenetrész (válasz) valószÃnűleg módosult
keyInMessageBody=Az üzenettörzsben kulcs található. kattintson az „Importálás†gombra a kulcs importálásához.
sigMismatch=Hiba – EltérÅ‘ aláÃrás
cantImport=Hiba a nyilvános kulcs importálásakor\n\n
doImportOne=Importálja a következőt: %1$S (%2$S)?
doImportMultiple=Importálja a következő OpenPGP-kulcsot?\n\n%S
previewFailed=A nyilvános kulcsfájl nem olvasható.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=A kártyaolvasóban a(z) „%1$S†intelligens kártya található, amely nem használható a művelet végrehajtásához.\nKérem, helyezze be a(z) „%2$S†intelligens kártyát és ismételje meg a műveletet.
sc.insertCard=A művelet végrehajtásához a(z) „%S†intelligens kártyára van szükség.\nKérem, helyezze be az intelligens kártyát és ismételje meg a műveletet.
sc.removeCard=A művelet végrehajtásához nincs szükség intelligens kártyára.\nKérem, távolÃtsa el az intelligens kártyát és ismételje meg a műveletet.
sc.noCardAvailable=Nem található intelligens kártya az olvasóban.\nKérem, helyezze be az Intelligens kártyát és ismételje meg a műveletet.
sc.noReaderAvailable=Az intelligens kártyaolvasó nem elérhető.\nKérem, csatlakoztassa az Intelligens kártyaolvasót, helyezze be a kártyát, majd ismételje meg a műveletet.
keyError.keySpecNotFound=A(z) „%S†e-mail cÃm nem egyeztethetÅ‘ össze a kulcstartón található kulccsal.
keyError.keyIdNotFound=A beállÃtott „%S†azonosÃtójú kulcs nem található meg a kulcstartón.
keyError.resolutionAction=Adjon meg egy érvényes OpenPGP kulcsot a Postafiók beállÃtásai párbeszédablakban az OpenPGP részben.
missingPassphrase=Hiányzó jelmondat
errorHandling.gpgAgentInvalid=A számÃtógépen olyan gpg-agent verzió található, amely nem működik együtt a telepÃtett GnuPG verzióval.
errorHandling.gpgAgentError=A GnuPG nem képes kommunikálni a gpg-agent programmal (amely a GnuPG része).
errorHandling.dirmngrError=A GnuPG nem képes kommunikálni a dirmngr programmal (amely a GnuPG része).
errorHandling.pinentryError=A GnuPG nem tudja lekérdezni a jelmondatot a pinentry segÃtségével.
errorHandling.readFaq=Ez egy rendszer telepÃtési vagy beállÃtási hiba, amely meggátolja az Enigmail programot a helyes működésben. Ez a hiba nem javÃtható automatikusan.\n\nA hibaelhárÃtással kapcsolatos teendÅ‘kért látogassa meg az Enigmail terméktámogatási weboldalát:https://enigmail.net/faq.
gpgNotFound=A GnuPG program („%Sâ€) nem található.\nGyÅ‘zÅ‘djön meg róla, hogy a GnuPG útvonala megfelelÅ‘en van beállÃtva az Enigmail beállÃtásainál.
gpgNotInPath=A GPG program nem található az útvonalban (PATH).\nGyÅ‘zÅ‘djön meg róla, hogy a GPG útvonala megfelelÅ‘en van beállÃtva az Enigmail beállÃtásainál.
enigmailNotAvailable=Az Enigmail alapszolgáltatások nem érhetők el
gpgAgentNotStarted=Nem tudom elindÃtani a gpg-agent programot, amely szükséges a GnuPG program %S verziójához.
prefUntrusted=MEGBÃZHATATLAN
prefRevoked=VISSZAVONT KULCS
prefExpiredKey=LEJÃRT KULCS
prefExpired=LEJÃRT
prefGood=Jó aláÃrás: %S
prefBad=ROSSZ aláÃrás: %S
failCancel=Hiba – Kulcslekérés a felhasználó által megszakÃtva
failNoServer=Hiba – Nincs kulcskiszolgáló megadva, ahonnan letölthető a kulcs
failNoID=Hiba – Nincs kulcsazonosÃtó megadva a kulcs lekéréséhez
failKeyExtract=Hiba – A kulcskinyerő parancs sikertelen volt
notFirstBlock=Hiba – Az első OpenPGP-blokk nem nyilvános kulcs blokkja
importKeyConfirm=Importálja a levélbe ágyazott nyilvános kulcsokat?
failKeyImport=Hiba – A kulcsok importálása sikertelen
fileWriteFailed=Hiba történt a fájl Ãrásakor: %S
importKey=Nyilvános kulcs importálása a kulcskiszolgálóról: %S
uploadKey=Nyilvános kulcs küldése a kulcskiszolgálóra: %S
keyId=KulcsazonosÃtó
keyAndSigDate=KulcsazonosÃtó: 0x%1$S / AláÃrva: %2$S
keyFpr=Kulcs ujjlenyomata: %S
noEmailProvided=Nem adott meg e-mail cÃmet.
keyAlreadySigned=A kulcs korábban már alá lett Ãrva.
gnupg.invalidKey.desc=A(z) „%S†kulcs nem található vagy nem érvényes. Esetleg lejárt az érvényessége az (al)kulcsnak.
selKeyExpired=lejár %S
createdHeader=Létrehozva
atLeastOneKey=Nincs kulcs kiválasztva. Ki kell választani legalább egy kulcsot az elfogadáshoz.
fewerKeysThanRecipients=Kevesebb kulcsot választott ki, mint amennyi cÃmzett van. Biztos benne, hogy a titkosÃtókulcsok listája teljes?
userSel.button.goBack=Válasszon ki több kulcsot
userSel.secretKeySel.title=Válasszon ki titkos OpenPGP-kulcsot az üzenet aláÃrásához
userSel.problemNoKey=Nincs érvényes kulcs
userSel.problemMultipleKeys=Több kulcs
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Küldés később
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=Megjegyzés: PGP/MIME formátum csak néhány levelezőprogramban használható. Windows alatt csak a Mozilla/Thunderbird, Sylpheed, Pegasus és Mulberry támogatja ezt a szabványt; Linux/UNIX és Mac OS X legjobban elterjedt levelezőprogramjai támogatják. Ha nem biztos benne, válassza a %S lehetőséget.
first=első
second=második
# Strings used in am-enigprefs.js
encryptKeyHeader=Válasszon ki OpenPGP-kulcsot a titkosÃtáshoz
identityName=AzonosÃtó: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Aktiválta a titkosÃtást, de nem jelölt ki egy kulcsot. Ha %1$S számára küldött leveleit titkosÃtani szeretné, meg kell adnia egy vagy több kulcsot a kulcslistáról. Szeretné kikapcsolni a titkosÃtást %2$S számára?
noKeyToUse=(nincs – nincs titkosÃtás)
noEmptyRule=A szabály nem lehet üres. Adjon meg egy e-mail cÃmet a Szabály mezÅ‘ben.
invalidAddress=A beÃrt e-mail cÃmek nem érvényesek. A cÃmzettek nevét nem szabad beÃrni, csak az e-mail cÃmet. Például:\nRossz: Senki Alfonz \nJó: alfonz.senki@cime.net
noCurlyBrackets=A kapcsos zárójeleknek {} különleges jelentésük van, és nem használhatók e-mail cÃmekben. Ha módosÃtani szeretné a szabály illeszkedési viselkedését, használja a „Szabály alkalmazása, ha a cÃmzett…†lehetÅ‘séget.\nA „Súgó†gomb megnyomásával további segÃtséget kaphat.
# Strings used in enigmailRulesEditor.js
never=Soha
always=Mindig
possible=Ha lehet
deleteRule=Valóban szeretné törölni a kijelölt szabályt?
nextRcpt=(KövetkezÅ‘ cÃmzett)
negateRule=Nem
addKeyToRule=A(z) „%1$S†kulcs (%2$S) hozzáadása cÃmzettenkénti szabályhoz
# Strings used in enigmailSearchKey.js
needOnline=A kiválasztott funkció nem érhető el kapcsolat nélküli módban. Kérem, jelentkezzen be az Internetre, és próbálja ismét.
protocolNotSupported=OpenPGP-kulcsok letöltését a kiválasztott protokoll ('%S://') nem támogatja.
gpgkeysDisabled=SegÃthet, ha engedélyezi az 'extensions.enigmail.useGpgKeysTool' lehetÅ‘séget.
noKeyserverConn=Nem lehet kapcsolódni a kulcskiszolgálóhoz: %S.
keyDownloadFailed=A kulcskiszolgálóról nem sikerült letölteni a kulcsot. Ãllapotüzenet:\n%S
internalError=Belső hiba lépett fel. A kulcsot nem lehetett letölteni, illetve importálni.
noKeyFound=Nem található egyetlen kulcs sem, amely megfelel a megadott keresési feltételeknek.\nKérem, jegyezze meg azt a kulcsazonosÃtót, amely „0xâ€-el kezdÅ‘dik (például: 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=A kulcsot nem találtam, illetve nem tudtam letölteni a kulcskiszolgálóról: gpgkeys_%S nem futtatható.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nem sikerült a tulajdonos megbÃzhatóságát beállÃtani.
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Kulcs aláÃrása nem sikerült.
alreadySigned.label=Megjegyzés: A(z) „%S†kulcs már alá van Ãrva a kiválasztott titkos kulccsal.
alreadySignedexportable.label=Megjegyzés: A(z) „%S†kulcs már exportálhatóan alá van Ãrva a kiválasztott titkos kulccsal. A helyi aláÃrást nem használja.
partlySigned.label=Megjegyzés: A(z) „%S†kulcshoz tartozó néhány felhasználói azonosÃtó már alá van Ãrva a kiválasztott titkos kulccsal.
noTrustedOwnKeys=Nem található megfelelÅ‘ kulcs az aláÃráshoz. Legalább egy teljesen megbÃzható titkos kulcsra van szükség a kulcsok aláÃrásához.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Kulcsok betöltése, kérem várjon…
keyValid.unknown=ismeretlen
keyValid.invalid=érvénytelen
keyValid.disabled=letiltott
keyValid.revoked=visszavont
keyValid.expired=lejárt
keyValid.noSubkey=nincs érvényes kulcsrész
keyTrust.untrusted=megbÃzhatatlan
keyTrust.marginal=részben megbÃzható
keyTrust.full=megbÃzható
keyTrust.ultimate=teljesen megbÃzható
keyTrust.group=(csoport)
keyType.public=nyilvános
keyType.publicAndSec=nyilvános/titkos
keyMan.enableKey=Kulcs engedélyezése
keyMan.disableKey=Kulcs tiltása
userAtt.photo=Felhasználói tulajdonság (JPEG-kép)
asciiArmorFile=ASCII-adat fájlok (*.asc)
importKeyFile=OpenPGP-kulcsfájl importálása
gnupgFile=GnuPG fájlok
saveRevokeCertAs=Visszavonási tanúsÃtvány készÃtése és mentés
revokeCertOK=A visszavonási tanúsÃtvány létrejött. Ez használandó a nyilvános kulcs visszavonásához, például abban az esetben, ha elveszett a titkos kulcs.\n\nKérjük, biztonságos adathordozón helyezze el (például CD-n vagy floppylemezen). Ha valaki hozzáfér ehhez a tanúsÃtványhoz, akkor használhatatlanná tudja tenni a kulcsot.
revokeCertFailed=A visszavonási tanúsÃtvány létrehozása nem sikerült.
addUidOK=Felhasználói azonosÃtó hozzáadva.
addUidFailed=Nem sikerült hozzáadni a felhasználói azonosÃtót.
noKeySelected=Legalább egy kulcsot ki kell választani a listából, hogy a kijelölt művelet elvégezhető legyen.
exportToFile=Nyilvános kulcsok fájlba mentése
exportKeypairToFile=Titkos és nyilvános kulcsok fájlba mentése
exportSecretKey=Szeretné menteni a titkos kulcsot is az OpenPGP kulcs-fájlhoz?
saveKeysOK=A kulcsok mentése sikerült
saveKeysFailed=Nem sikerült a kulcsokat elmenteni.
importKeysFailed=Nem sikerült a kulcsokat beolvasni.
enableKeyFailed=Kulcsok engedélyezése/tiltása nem sikerült
specificPubKeyFilename=%1$S (0x%2$S) nyilvános
specificPubSecKeyFilename=%1$S (0x%2$S) nyilvános-titkos
defaultPubKeyFilename=Mentett-nyilvanos-kulcsok
defaultPubSecKeyFilename=Mentett-nyilvanos-es-titkos-kulcsok
noSecretKeys=Nem található titkos kulcs.\n\nSzeretne most létrehozni egy saját kulcsot?
sendKeysOk=Kulcs(ok) elküldése sikerült
sendKeysFailed=Nem sikerült a kulcs(ok) elküldése
receiveKeysOk=Kulcs(ok) frissÃtése sikerült
receiveKeysFailed=Kulcs(ok) letöltése nem sikerült
importFromClip=Szeretné a vágólapról betölteni a kulcs(ok)at?
importFromUrl=Publikus kulcs letöltése errÅ‘l az URL-cÃmrÅ‘l:
copyToClipbrdFailed=Nem sikerült a vágólapra másolni a kijelölt kulcs(ok)at.
copyToClipbrdOK=A kulcs(ok) a vágólapra kerültek
deleteSecretKey=FIGYELMEZTETÉS: A titkos kulcs törlését kezdeményezte.\nHa letörli a titkos kulcsot, akkor a korábban ezzel a kulccsal titkosÃtott leveleit soha többé nem tudja visszafejteni, illetve a kulcsot sem tudja visszavonni többé.\n\nBiztosan törölni akarja MINDKÉT, a titkos és a nyilvános kulcsot is\n„%Sâ€?
deleteMix=FIGYELMEZTETÉS: A titkos kulcsok törlését kezdeményezte.\nHa letörli a titkos kulcsot, akkor a korábban ezzel a kulccsal titkosÃtott leveleit soha többé nem tudja visszafejteni.\n\nBiztosan törölni akar MINDEN kiválasztott titkos és nyilvános kulcsot?
deletePubKey=Szeretné törölni a következő nyilvános kulcsot\n„%S�
deleteSelectedPubKey=Szeretné törölni a kijelölt nyilvános kulcsokat?
deleteKeyFailed=A kulcs nem törölhető.
revokeKeyQuestion=A következÅ‘ kulcs visszavonását kezdte el: „%Sâ€.\n\nA kulcs visszavonása után Ön nem tud majd aláÃrni ezzel a kulccsal és a visszavonás közreadása után, mások sem tudnak majd – ehhez a kulcshoz tartozó – titkosÃtott üzenetet küldeni. Továbbra is használhatja a kulcsot a régi üzenetek visszafejtésére.\n\nKÃvánja folytatni a visszavonást?
revokeKeyOk=A kulcs visszavonása sikerült. Ha a kulcs elérhető a kulcskiszolgálón, javasoljuk, hogy töltse fel oda is, hogy a nyilvánosság felé is látszódjon a visszavonás.
revokeKeyFailed=A kulcs nem vonható vissza.
refreshAllQuestion=Nincs kiválasztva egyetlen kulcs sem. Szeretné frissÃteni az összes kulcsot?
refreshKey.warn=Figyelmeztetés: Az összes kulcs frissÃtése hosszabb ideig eltarthat, a kulcsok mennyiségétÅ‘l és a kapcsolat sebességétÅ‘l függÅ‘en.\n\nFolytatja?
downloadContactsKeys.warn=Figyelmeztetés: Az összes kulcs frissÃtése hosszabb ideig eltarthat, a kulcsok mennyiségétÅ‘l és a kapcsolat sebességétÅ‘l függÅ‘en.
downloadContactsKeys.importFrom=KÃvánja importálni a névjegyeket a következÅ‘ cÃmjegyzékbÅ‘l: %S?
keyMan.button.exportSecKey=Titkos kulcs &exportálása
keyMan.button.exportPubKey=Csak a &nyilvános kulcs exportálása
keyMan.button.import=&Importálás
keyMan.button.refreshAll=Összes kulcs f&rissÃtése
keyMan.button.revokeKey=Kulcs &visszavonás
keyMan.button.skip=Kulcs kihagyá&sa
keylist.noOtherUids=Nincs több azonosÃtó
keylist.hasOtherUids=Más néven
keylist.noPhotos=Nem érhető el fotó
keylist.hasPhotos=Fotók
keyMan.addphoto.filepicker.title=Válassza ki a fotót
keyMan.addphoto.warnLargeFile=A kiválasztott fájl nagyobb mint 25 kilobyte.\nNem ajánlatos túl nagy fájlt kiválasztani, mert a kulcs nagyon nagy méretű lesz.
keyMan.addphoto.noJpegFile=A kiválasztott fájl nem tűnik JPEG-fájlnak. Válasszon ki egy JPEG-fájlt.
keyMan.addphoto.failed=A fotó nem adható hozzá.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Az elsÅ‘dleges felhasználói azonosÃtó módosÃtása sikertelen.
changePrimUidOK=Sikerült módosÃtani az elsÅ‘dleges felhasználói azonosÃtót.
deleteUidFailed=%S felhasználó azonosÃtójának törlése sikertelen
deleteUidOK=%S felhasználó azonosÃtója sikeresen törölve
revokeUidFailed=%S felhasználó azonosÃtójának visszavonása nem sikerült
revokeUidOK=%S felhasználói azonosÃtó visszavonása sikerült. Ha a kulcs elérhetÅ‘ a kulcskiszolgálón, javasoljuk, hogy töltse fel oda is, hogy a nyilvánosság felé is látszódjon a visszavonás.
revokeUidQuestion=Valóban szeretné visszavonni a(z) %S felhasználó azonosÃtót?
deleteUidQuestion=Valóban szeretné törölni a(z) %S felhasználó azonosÃtót?\n\nMegjegyzés: ha feltölti a nyilvános kulcsát a kulcskiszolgálóra, akkor a felhasználói azonosÃtó törlése nem változtat semmit. Ebben az esetben használandó a „Felhasználói azonosÃtó visszavonásaâ€.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=Sikerült a kulcsok importálása
importInfoSuccess=✅
importInfoBits=Bit
importInfoCreated=Létrehozva
importInfoFpr=Ujjlenyomat
importInfoDetails=(Részletek)
importInfoNoKeys=Nincsenek kulcsok importálva.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=nyilvános kulcs
keyTypePrimary=elsődleges kulcs
keyTypeSubkey=kulcsrész
keyTypePair=kulcspár
keyExpiryNever=soha
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=TitkosÃtás
keyUsageSign=AláÃrás
keyUsageCertify=TanúsÃtás
keyUsageAuthentication=HitelesÃtés
keyDoesNotExpire=A kulcs soha nem jár le
# Strings in enigmailGenCardKey.xul
keygen.started=Kérem várjon, amÃg a kulcs elkészül…
keygen.completed=Kulcs elkészült. Az új kulcsazonosÃtó: 0x%S
keygen.keyBackup=A kulcs lementve mint %S
keygen.passRequired=Adja meg a jelmondatát, ha szeretne biztonsági másolatot készÃteni a kulcsról az intelligens kártyán kÃvülre.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=A megadott PIN-kódok nem egyeznek. Kérem, ismételje meg PIN-kódok megadását.
cardPin.minLength=A PIN-kódnak legalább %S karakterből kell állnia.
cardPin.processFailed=PIN-kód módosÃtása nem sikerült.
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Kulcsok frissÃtése, kérem várjon…
keyserverProgress.uploading=Kulcsok feltöltése, kérem várjon…
keyserverTitle.refreshing=Kulcsok frissÃtése
keyserverTitle.uploading=Kulcs feltöltése
# Strings in enigmailSetupWizard
passphrase.min8keys=A jelszavának legalább 8 karaktert kell tartalmaznia.
setupWizard.reallyCancel=Valóban ki szeretne lépni az Enigmail BeállÃtás TündérbÅ‘l?
setupWizard.invalidGpg=A megadott fájl nem egy GnuPG végrehajtható fájl. Adjon meg egy másik fájlt.
setupWizard.specifyFile=Legalább a nyilvános kulcsot meg kell adnia a művelet végrehajtásához.
setupWizard.installFailed=Az telepÃtés nem sikerült. Próbálja meg újra a telepÃtést, vagy telepÃtse a GnuPG programot kézzel és adja meg az elérési útját a „Tallózás†gombbal.
setupWizard.downloadForbidden=Biztonsága érdekében a GnuPG nem kerül letöltésre. Látogassa meg a http://www.gnupg.org/ weboldalt a GnuPG letöltéséhez.
setupWizard.downloadImpossible=A GnuPG jelenleg nem tölthető le. Próbálja meg később vagy látogassa meg a http://www.gnupg.org/ weboldalt a GnuPG letöltéséhez.
setupWizard.hashSumError=A tündér nem tudja ellenÅ‘rizni a letöltött fájl érvényességét. A fájl esetleg hibás vagy rossz szándékkal megváltoztatott lehet. Ennek ellenére folytatni kÃvánja a telepÃtést?
setupWizard.importSettingsFile=Adja meg a betöltendő mentés fájlt
setupWizard.invalidSettingsFile=A megadott fájl nem érvényes Enigmail beállÃtások mentésfájl.
setupWizard.gpgConfExists=A GnuPG beállÃtófájl már létezik. Felül kÃvánja Ãrni a fájlt egy régebbi telepÃtésbÅ‘l származó fájllal?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Hiba lépett fel a GnuPG letöltése során. További részleteket a konzol naplóban talál.
installGnuPG.installFailed=Hiba lépett fel a GnuPG telepÃtése során. További részleteket a konzol naplóban talál.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Ki kell töltenie a név és e-mail mezőket.
addUidDlg.nameMinLengthError=A névnek legalább 5 karakter hosszúnak kell lennie.
addUidDlg.invalidEmailError=Érvényes e-mail cÃmet kell megadnia.
addUidDlg.commentError=Zárójelek nem szerepelhetnek a megjegyzésekben
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Az OpenPGP intelligens kártya kizárólag ASCII karaktereket támogat a keresztnévben és a névben.
# network error types
errorType.SecurityCertificate=A webszolgáltatás által megadott biztonsági tanúsÃtvány nem érvényes.
errorType.SecurityProtocol=A webszolgáltatás által alkalmazott protokoll ismeretlen.
errorType.Network=Hálózati hiba történt.
# filter stuff
filter.folderRequired=Ki kell választania a célmappát.
filter.decryptMove.label=Végleges visszafejtés (Enigmail)
filter.decryptCopy.label=Visszafejtett másolat létrehozása (Enigmail)
filter.decryptMove.warnExperimental=Figyelmeztetés – a „Végleges visszafejtés†szűrőművelet tönkreteheti az üzeneteket.\n\nErősen ajánlott, hogy először a „Visszafejtett másolat létrehozása†szűrővel próbálkozzon, ellenőrizze az eredményt és csak akkor használja ezt a szűrőt, ha nem talált semmi problémát.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Nem fejthetÅ‘ vissza az üzenet, amelynek tárgya:\n„%Sâ€.\nMegpróbálja visszafejteni egy másik jelmondattal, vagy kihagyja ezt az üzenetet?
converter.decryptAtt.failed=Nem fejthetÅ‘ vissza a(z) „%1$Sâ€\nüzenet mellékelte, amelynek tárgya:\n„%2$Sâ€.\nMegpróbálja visszafejteni egy másik jelmondattal, vagy kihagyja ezt az üzenetet?
saveLogFile.title=Naplófájl mentése
# strings in gpg.jsm
unknownSigningAlg=Ismeretlen aláÃró algoritmus (azonosÃtó: %S)
unknownHashAlg=Ismeretlen kriptográfiai algoritmus (azonosÃtó: %S)
# strings in keyRing.jsm
keyring.photo=Fénykép
keyRing.pubKeyRevoked=A(z) „%1$S†kulcs (azonosÃtó: %2$S) vissza lett vonva.
keyRing.pubKeyExpired=A(z) „%1$S†kulcs (azonosÃtó: %2$S) lejárt.
keyRing.pubKeyNotForSigning=A(z) „%1$S†kulcs (azonosÃtó: %2$S) nem használható aláÃráshoz.
keyRing.pubKeyNotForEncryption=A(z) „%1$S†kulcs (azonosÃtó: %2$S) nem használható titkosÃtáshoz.
keyRing.keyDisabled=A(z) „%1$S†kulcs (azonosÃtó: %2$S) le van tiltva, nem használható.
keyRing.keyNotTrusted=A(z) „%1$S†kulcs (azonosÃtó: %2$S) nem eléggé megbÃzható. Amennyiben mégis ezt a kulcsot szeretné használni aláÃráshoz állÃtsa be a kulcs megbÃzhatóságát „teljesen megbÃzható†szintre.
keyRing.keyInvalid=A(z) „%1$S†kulcs (azonosÃtó: %2$S) érvénytelen (például nem rendelkezik önaláÃrással).
keyRing.signSubKeysRevoked=A(z) „%1$S†kulcs (azonosÃtó: %2$S) összes aláÃró alkulcsa vissza lett vonva.
keyRing.signSubKeysExpired=A(z) „%1$S†kulcs (azonosÃtó: %2$S) összes aláÃró alkulcsa lejárt.
keyRing.signSubKeysUnusable=A(z) „%1$S†kulcs (azonosÃtó: %2$S) összes aláÃró alkulcsa vissza lett vonva, lejárt, vagy más okból nem használható.
keyRing.encSubKeysRevoked=A(z) „%1$S†kulcs (azonosÃtó: %2$S) összes titkosÃtó alkulcsa vissza lett vonva.
keyRing.encSubKeysExpired=A(z) „%1$S†kulcs (azonosÃtó: %2$S) összes titkosÃtó alkulcsa lejárt.
keyRing.noSecretKey=Úgy tűnik nem rendelkezik a(z) %1$S titkos kulcsával (azonosÃtó: %2$S) a számÃtógép kulcstartóján, Ãgy ezt a kulcsot nem használhatja aláÃrásra.
keyRing.encSubKeysUnusable=A(z) „%1$S†kulcs (azonosÃtó: %2$S) összes titkosÃtó alkulcsa vissza lett vonva, lejárt, vagy más okból nem használható.
#strings in exportSettingsWizard.js
cannotWriteToFile=Hiba lépett fel a fájl mentése során: „%Sâ€. Válasszon egy másik fájlt.
dataExportError=Hiba történt az adatok exportálása során: %s.
enigmailSettings=EnigmailBeallitasok
defaultBackupFileName=Enigmail-export
specifyExportFile=Adja meg a fájlnevet az exportáláshoz
homedirParamNotSUpported=További paraméterek, amelyek az elérési utat állÃtják be – például: „--homedir†és „--keyring†– nem támogatottak a beállÃtások mentésekor és visszatöltésekor. Használjon más megoldást, például a „GNUPGHOME†környezeti változót.
#strings in expiry.jsm
expiry.keyExpiresSoon=A következÅ‘ kulcs lejár %1$S nap múlva:\n%2$S. KészÃtse el az új kulcsot és a postafiókját állÃtsa át az új kulcs használatára.
expiry.keysExpireSoon=A következÅ‘ kulcsok lejárnak %1$S nap múlva:\n%2$S. KészÃtse el az új kulcsokat és a postafiókját állÃtsa át az új kulcsok használatára.
enigmail/lang/hu/help/ 0000775 0000000 0000000 00000000000 12667016244 0015140 5 ustar 00root root 0000000 0000000 enigmail/lang/hu/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017476 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/hu/help/editRcptRule.html 0000664 0000000 0000000 00000011603 12667016244 0020435 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit Per-Recipient Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit Per-Recipient Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set Enigmail Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/hu/help/help.html 0000664 0000000 0000000 00000010467 12667016244 0016766 0 ustar 00root root 0000000 0000000
Enigmail Help
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
If you have questions or comments about enigmail, please send a message to the Enigmail mailing list
Enigmail is open source and licensed under the Mozilla Public License and the GNU General Public License
enigmail/lang/hu/help/initError.html 0000664 0000000 0000000 00000004546 12667016244 0020014 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing Enigmail
Enigmail Help
How to Resolve Problems with Initializing Enigmail
There are several reasons why initializing Enigmail does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for Enigmail to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences)
- Enigmime failed to initialize
-
Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/hu/help/messenger.html 0000664 0000000 0000000 00000010141 12667016244 0020013 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/hu/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020327 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/hu/help/sendingPrefs.html 0000664 0000000 0000000 00000004757 12667016244 0020472 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/it/ 0000775 0000000 0000000 00000000000 12667016244 0014210 5 ustar 00root root 0000000 0000000 enigmail/lang/it/am-enigprefs.properties 0000664 0000000 0000000 00000000110 12667016244 0020673 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP
enigmail/lang/it/enigmail.dtd 0000664 0000000 0000000 00000141636 12667016244 0016505 0 ustar 00root root 0000000 0000000
Sicurezza OpenPGP)">
NOTA: La creazione della chiave può richiedere anche parecchi minuti. Non uscire dall'applicazione prima del termine dell'operazione. Navigare su internet o svolgere attività che sfruttino intensamente il disco durante la creazione della chiave potrà facilitare la generazione dei numeri casuali e accelerare il processo stesso. Sarai avvertito quando la creazione della chiave sarà completata.">
' non è valido">
NOTA: La creazione della chiave può richiedere anche diversi minuti per essere completata. Non uscire dall'applicazione mentre la creazione della chiave è in corso. Sarai avvertito al termine del processo.">
Nota: Enigmail verificherà comunque le firme sulle email di tutti gli account o identità , indipendentemente dal fatto che sia abilitato o meno">
chiave pubblica è per gli altri per inviare a te messaggi cifrati. Puoi distribuirla a chiunque.">
chiave privata è solo per te per decifrare questi messaggi e per inviare messaggi firmati.
Non dovresti fornirla a nessuno.">
chiave privata è solo per te per decifrare questi messaggi e per inviare messaggi firmati.
Non dovresti fornirla a nessuno.
Per proteggere la tua chiave privata, ti sarà richiesta una frase segreta nelle due finestre seguenti.">
frase segreta è una password per proteggere la tua chiave privata. Impedisce utilizzi impropri della tua chiave privata.">
non sono consigliati.">
Ti sarà richiesta la digitazione della tua password.">
esporta i tuoi dati dal vecchio computer utilizzando la procedura di backup dalle preferenze di Enigmail
importa i dati nel nuovo computer utilizzando questa procedura.
">
Grazie per aver scelto Enigmail.">
esporta i tuoi dati dal vecchio computer utilizzando questa procedura
importa i dati nel nuovo computer utilizzando la procedura di configurazione.
">
enigmail/lang/it/enigmail.properties 0000664 0000000 0000000 00000116337 12667016244 0020126 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Avviso Enigmail
enigConfirm=Conferma Enigmail
enigError=Errore Enigmail
enigPrompt=Richiesta Enigmail
dlgYes=&Sì
dlgNo=&No
dlgKeepSetting=Ricorda la risposta e non chiedere ancora
dlgNoPrompt=Non mostrare ancora questa finestra
dlg.button.delete=&Elimina
dlg.button.cancel=&Annulla
dlg.button.close=&Chiudi
dlg.button.continue=Con&tinua
dlg.button.skip=&Salta
dlg.button.overwrite=S&ovrascrivi
dlg.button.view=&Visualizza
dlg.button.retry=&Riprova
dlg.button.ignore=&Ignora
repeatPrefix=\n\nQuesto avviso sarà ripetuto %S
repeatSuffixSingular=altra volta.
repeatSuffixPlural=altre volte.
noRepeat=\n\nQuesto avviso non sarà ripetuto fino a che non aggiornerai Enigmail.
pgpNotSupported=Sembra che tu stia usando Enigmail insieme a PGP 6.x\n\nSfortunatamente, PGP 6.x ha una serie di problemi che impediscono a Enigmail di operare correttamente. Pertanto, Enigmail non supporta più PGP 6.x ed è necessario usare GnuPG (GPG) al suo posto.\n\nSe hai bisogno di aiuto su come passare da PGP a GnuPG, controlla la sezione 'Help' della pagina web di Enigmail.
initErr.howToFixIt=Per utilizzare Enigmail, è richiesto GnuPG. Se non hai ancora installato GnuPG, il modo più semplice per farlo è utilizzare il pulsante "Procedura guidata di configurazione"
initErr.setupWizard.button=Procedura guidata di configura&zione
passphraseCleared=La frase segreta è stata cancellata.
cannotClearPassphrase=Stai utilizzando uno strumento non standard (come gnome-keyring) per la gestione della frase segreta. Non è perciò possibile cancellare la frase segreta dall'interno di Enigmail.
noPhotoAvailable=Nessuna foto disponibile
debugLog.title=Log di debug di Enigmail
error.photoPathNotReadable=Il percorso '%S' della foto non è leggibile
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Questa nuova versione di Enigmail apporta modifiche significative alla gestione delle preferenze e delle opzioni. Abbiamo provato a trasferire le vecchie impostazioni in questa nuova versione. Tuttavia, non siamo in grado di verificarle tutte automaticamente. Controlla le nuove preferenze e opzioni risultanti.
enigmailCommon.checkPreferences=Controlla preferenze...
preferences.defaultToPgpMime=Abbiamo modificato la cifratura predefinita del messaggio in Enigmail da PGP in linea a PGP/MIME. Ti consigliamo di mantenerla come predefinita.\n\nSe desideri utilizzare ancora PGP in linea in modo predefinito, puoi farlo nelle impostazioni dell'account sotto Sicurezza OpenPGP.
usingVersion=In esecuzione la versione %S di Enigmail
usingAgent=L'eseguibile di %S in uso per cifrare e decifrare è: %S
agentError=ERRORE: accesso al servizio Enigmime non riuscito!
accessError=Errore durante l'accesso al servizio Enigmail
onlyGPG=La creazione delle chiavi funziona solo con GnuPG (non con PGP)!
keygenComplete=Creazione della chiave completata! L'identità <%S> sarà utilizzata per la firma.
revokeCertRecommended=Ti consigliamo decisamente di creare un certificato di revoca per la tua chiave. Questo certificato può essere usato per invalidare la tua chiave, se ad esempio la tua chiave privata viene smarrita o compromessa. Vuoi creare un certificato di revoca adesso?
keyMan.button.generateCert=&Genera certificato
genCompleteNoSign=Creazione certificato completata!
genGoing=La creazione della chiave è già in corso!
passNoMatch=Le frasi segrete digitate non corrispondono; prova a reinserirle
passCheckBox=Marca la casella se non vuoi specificare una frase segreta per la chiave
passUserName=Specifica un nome utente per questa identitÃ
keygen.missingUserName=Non è stato specificato alcun nome per l'account/identità selezionato. Digita un valore nel campo "Il tuo nome" nelle impostazioni dell'account.
keygen.passCharProblem=Stai utilizzando caratteri speciali nella tua frase segreta. Sfortunatamente, ciò può causare problemi con altre applicazione. Ti consigliamo di scegliere una frase segreta che contenga solo i caratteri che seguono:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Due to technical reasons, your passphrase may not start or end with a space character.
changePassFailed=Cambiamento della frase segreta non riuscito.
keyConfirm=Creare chiave pubblica e privata per '%S'?
keyMan.button.generateKey=&Genera chiave
keyAbort=Interrompere la creazione della chiave?
keyMan.button.generateKeyAbort=&Interrompi la creazione della chiave
keyMan.button.generateKeyContinue=&Continua la creazione della chiave
expiryTooLong=Non puoi creare una chiave che scadrà tra più di 100 anni.
expiryTooLongShorter=You cannot create a key that expires in more than 90 years.
expiryTooShort=La tua chiave deve essere valida per almeno un giorno.
dsaSizeLimit=DSA signing keys are limited to 3072 bits. The key size will be reduced accordingly.
keyGenFailed=Creazione della chiave non riuscita. Controlla la console di Enigmail (Menu Enigmail -> Debug di Enigmail) per maggiori dettagli.
setKeyExpirationDateFailed=La data di scadenza non dovrebbe essere modificata
# Strings in enigmailMessengerOverlay.js
securityInfo=Informazioni di sicurezza Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Gli allegati di questo messaggio non sono stati firmati o cifrati*\n\n
possiblyPgpMime=Il messaggio potrebbe essere firmato o cifrato nel formato PGP/MIME; fai clic sul pulsante Decifra per verificare
noDecrypted=Nessun messaggio decifrato da salvare!\nUsa il comando Salva dal menu File
noMessage=Nessun messaggio da salvare!
useButton=Fai clic sul pulsante Decifra per decifrare il messaggio
saveHeader=Enigmail: salva messaggio decifrato
saveAttachmentHeader=Enigmail: salva allegato decifrato
noTempDir=Impossibile trovare una cartella temporanea in cui poter scrivere\nImposta la variabile di ambiente TEMP
attachmentPgpKey=L'allegato '%S' che stai aprendo sembra essere un file contenente chiavi OpenPGP.\n\nFai clic su 'Importa' per importare le chiavi contenute al suo interno oppure 'Visualizza' per visualizzare il file in una finestra del browser
beginPgpPart=********* *INIZIO PARTE CIFRATA o FIRMATA* *********
endPgpPart=********** *FINE PARTE CIFRATA o FIRMATA* **********
notePartEncrypted=Enigmail: *Alcune parti del messaggio NON sono state cifrate o firmate*
noteCutMessage=Enigmail: *Sono stati trovati blocchi di messaggio multipli -- decifratura/verifica interrotta*
decryptOkNoSig=Attenzione\n\nLa decifratura è riuscita, ma non è stato possibile verificare correttamente la firma
msgOvl.button.contAnyway=&Continua comunque
signature.verifiedOK=La firma per l'allegato %S è stata verificata correttamente
signature.verifyFailed=La firma per l'allegato %S non può essere verificata
attachment.noMatchToSignature=L'allegato '%S' non corrisponde a un file di firma
attachment.noMatchFromSignature=Il file di firma '%S' non corrisponde a un allegato
fixBrokenExchangeMsg.failed=La riparazione del messaggio non è riuscita.
keysToExport=Scegli le chiavi OpenPGP da inserire
keysToUse=Scegli la/le chiave/i OpenPGP da usare per %S
pubKey=Chiave pubblica per %S\n
windowLocked=La finestra di composizione è bloccata; invio annullato
sendUnencrypted=Inizializzazione di Enigmail non riuscita.\nInviare il messaggio non cifrato?
composeSpecifyEmail=Specifica il tuo indirizzo email principale, che sarà  usato per scegliere la chiave che firmerà  i messaggi in uscita.\n Se lasci in bianco, l'indirizzo del mittente nel campo DA di ogni messaggio sarà  usato per scegliere la chiave per la firma.
sendingHiddenRcpt=Questo messaggio ha destinatari in CCN (copia nascosta). Se questo messaggio verrà  cifrato, sarà possibile tenere nascosti i destinatari in CCN, ma gli utenti di alcuni programmi (come PGP Corp.) non saranno in grado di decifrare il messaggio. Pertanto, consigliamo di evitare di spedire messaggi cifrati a destinatari in CCN.
sendWithHiddenBcc=Nascondi i destinatari in CCN
sendWithShownBcc=Cifra normalmente
sendingNews=Operazione di invio cifrato interrotta.\n\nQuesto messaggio non può essere cifrato perché il destinatario è un gruppo di discussione. Invia nuovamente il messaggio senza cifratura.
sendToNewsWarning=Attenzione: stai per inviare un messaggio cifrato a un gruppo di discussione.\n\nCiò è altamente sconsigliabile, perché ha senso solo se tutti i membri del gruppo sono in grado di decifrare il messaggio, cioè se il messaggio viene cifrato con le chiavi di tutti i membri del gruppo. Invia questo messaggio solo se sai perfettamente cosa stai facendo.\n\nVuoi continuare?
hasHTML=Attenzione, email in formato HTML:\nQuesto messaggio potrebbe contenere parti in formato HTML, che potrebbero impedire la firma/cifratura. Per evitare questo in futuro, dovrai tenere premuto il tasto MAIUSC mentre fai clic sul pulsante Componi/Rispondi per inviare messaggi firmati.\nSe hai scelto di firmare le email in modo predefinito, deseleziona l'opzione 'Componi messaggi in HTML' per disabilitare permanentemente la creazione di email in HTML per questo account.
strippingHTML=Il messaggio contiene una formattazione in HTML che andrà  persa con la conversione in testo semplice per la firma/cifratura. Desideri continuare?
msgCompose.button.sendAnyway=&Invia il messaggio comunque
attachWarning=Gli allegati di questo messaggio non sono locali e non possono essere cifrati. Per cifrare gli allegati, salvali prima come file locali e allega di nuovo questi ultimi. Vuoi inviare il messaggio comunque?
quotedPrintableWarn=Hai abilitato la codifica 'quoted-printable' per l'invio dei messaggi. Questo può provocare errori nella decifratura e/o nella verifica del messaggio.\nVuoi disattivare ora l'invio di messaggi 'quoted-printable'?
minimalLineWrapping=Hai impostato l'interruzione di riga automatica ogni %S caratteri. Per una corretta cifratura e/o firma, questo valore deve essere almeno 68.\nVuoi impostare subito l'interruzione di riga dopo 68 caratteri?
warning=Attenzione
signIconClicked=Hai modificato manualmente la firma. Pertanto, durante la composizione di questo messaggio, (dis)attivare la firma non dipende più dalla (dis)attivazione della cifratura.
pgpMime_sMime.dlg.text=Hai abilitato sia PGP/MIME che S/MIME. Sfortunatamente non è possibile supportare i due protocolli contemporaneamente. Seleziona PGP/MIME o S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Usa &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Usa &S/MIME
errorKeyUnusable=L'indirizzo email o l'ID della chiave '%S' non corrisponde a una chiave OpenPGP valida, non scaduta.\nAssicurati di avere una chiave OpenPGP valida, e che le impostazioni dell'account si riferiscano a tale chiave.
errorOwnKeyUnusable=L'ID della chiave '%S' configurato per l'identità corrente non fornisce una chiave OpenPGP utilizzabile.\n\nAssicurati di avere una chiave OpenPGP valida e non scaduta e che le impostazioni del tuo account puntino a tale chiave.\nSe la tua chiave non è scaduta, controlla se hai impostato la fiducia nel proprietario a completa o definitiva.
msgCompose.cannotSaveDraft=Errore durante il salvataggio della bozza
msgCompose.internalEncryptionError=Errore interno: cifratura promessa disabilitata
msgCompose.internalError=Si è verificato un errore interno.
msgCompose.toolbarTxt.signAndEncrypt=Questo messaggio sarà firmato e cifrato
msgCompose.toolbarTxt.signOnly=Questo messaggio sarà firmato
msgCompose.toolbarTxt.encryptOnly=Questo messaggio sarà cifrato
msgCompose.toolbarTxt.noEncryption=Questo messaggio non sarà né firmato, né cifrato
msgCompose.toolbarTxt.disabled=Enigmail è disabilitato per l'identità selezionata
msgCompose.toolbarTxt.smime=S/MIME è abilitato - è potenzialmente in conflitto con Enigmail
msgCompose.toolbarTxt.smimeOff=- S/MIME perciò non è utilizzato
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME è abilitato - Enigmail perciò non è utilizzato
msgCompose.toolbarTxt.smimeNoDraftEncryption=- le bozze non saranno cifrate
msgCompose.toolbarTxt.smimeConflict=Enigmail non è utilizzato poiché S/MIME è attualmente abilitato. Disabilita la firma e/o la cifratura S/MIME e abilita quindi la cifratura di Enigmail
msgCompose.encryptedSubjectStub=Messaggio cifrato
msgCompose.detailsButton.label=Dettagli...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Operazione di invio interrotta.\n\n
# details:
keyNotTrusted=La chiave '%S' non è sufficientemente affidabile
keyNotFound=Chiave '%S' non trovata
keyRevoked=Chiave '%S' revocata
keyExpired=Chiave '%S' scaduta
statPGPMIME=PGP/MIME
statSigned=FIRMATO
statEncrypted=CIFRATO
statPlain=NON FIRMATO E IN CHIARO
offlineSave=Salvo il messaggio %S destinato a %S nella cartella 'Da inviare'?
onlineSend=Invio il messaggio %S destinato a %S?
encryptKeysNote=Nota: il messaggio è cifrato con i seguenti ID utente / chiavi: %S
hiddenKey=
signFailed=Errore in Enigmail; Cifratura/firma non riuscita; spedire il messaggio in chiaro?
msgCompose.button.sendUnencrypted=&Invia messaggio in chiaro
recipientsSelectionHdr=Scegli i destinatari per la cifratura
configureNow=Non hai ancora configurato le impostazioni di sicurezza Enigmail per questa identità . Vuoi farlo adesso?
# encryption/signing status and associated reasons:
encryptMessageAuto=Cifra messaggio (auto)
encryptMessageNorm=Cifra messaggio
signMessageAuto=Firma messaggio (auto)
signMessageNorm=Firma messaggio
encryptOff=Cifratura: DISATTIVA
encryptOnWithReason=Cifratura: ATTIVA (%S)
encryptOffWithReason=Cifratura: DISATTIVA (%S)
encryptOn=Cifratura: ATTIVA
signOn=Firma: ATTIVA
signOff=Firma: DISATTIVA
signOnWithReason=Firma: ATTIVA (%S)
signOffWithReason=Firma: DISATTIVA (%S)
reasonEnabledByDefault=abilitato in modo predefinito
reasonManuallyForced=forzato manualmente
reasonByRecipientRules=forzato dalle regole per destinatario
reasonByAutoEncryption=forzato dalla cifratura automatica
reasonByConflict=a causa di un conflitto nelle regole per destinatario
reasonByEncryptionMode=a causa della modalità di cifratura
reasonSmimeConflict=poiché S/MIME è invece abilitato
# should not be used anymore:
encryptYes=Il messaggio sarà  cifrato
encryptNo=Il messaggio non sarà  cifrato
# should not be used anymore:
signYes=Il messaggio sarà  firmato
signNo=Il messaggio non sarà  firmato
# PGP/MIME status:
pgpmimeNormal=Protocollo: PGP/MIME
inlinePGPNormal=Protocollo: PGP in linea
pgpmimeAuto=Protocollo: PGP/MIME (auto)
inlinePGPAuto=Protocollo: PGP in linea (auto)
# should not be used anymore
pgpmimeYes=Sarà utilizzato PGP/MIME
pgpmimeNo=Sarà utilizzato PGP in linea
# Attach own key status (tooltip strings):
attachOwnKeyNo=La tua chiave non sarà allegata
attachOwnKeyYes=La tua chiave sarà allegata
attachOwnKeyDisabled=La tua chiave non può essere allegata. Devi selezionare una chiave specifica\nnella sezione OpenPGP delle impostazioni account per abilitare questa funzionalità .
rulesConflict=Alcune delle regole impostate per i destinatari sono in conflitto fra di loro\n%S\n\nInviare il messaggio con queste impostazioni?
msgCompose.button.configure=&Configura
msgCompose.button.send=&Invia messaggio
msgCompose.button.save=&Salva messaggio
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Chiave pubblica %S richiesta per verificare la firma
keyUsed=Chiave pubblica %S utilizzata per verificare la firma
clickDecrypt=; fai clic sul pulsante 'Decifra'
clickDecryptRetry=; fai clic sul pulsante 'Decifra' per riprovare
clickDetailsButton=; fai clic sul pulsante 'Dettagli' per ulteriori informazioni
clickImportButton=; fai clic sul pulsante 'Importa chiave' per scaricare la chiave
keyTypeUnsupported=; il tipo di chiave non è supportato dalla tua versione di GnuPG
msgPart=Parte del messaggio %S
msgSigned=firmato
msgSignedUnkownKey=firmato con una chiave sconosciuta
msgEncrypted=cifrato
msgSignedAndEnc=firmato e cifrato
unverifiedSig=Firma non verificata
incompleteDecrypt=Decifratura incompleta
needKey=Errore - serve la chiave segreta per decifrare il messaggio
failedDecrypt=Errore - decifratura non riuscita
badPhrase=Errore - frase segreta non valida
failedDecryptVerify=Errore - decifratura/verifica non riuscita
viewInfo=; Visualizza > Informazioni di sicurezza messaggio per i dettagli
decryptedMsg=Messaggio decifrato
decryptedMsgWithFormatError=Messaggio decifrato (ripristinato formato dell'email PGP danneggiata, probabilmente a causa di un server Exchange datato. Il risultato potrebbe non essere perfettamente leggibile)
usedAlgorithms=Algoritmi utilizzati: %S e %S
# strings in pref-enigmail.js
oldGpgVersion14=Inizializzazione di Enigmail non riuscita.\n\nStai utilizzando la versione %S di GnuPG, che non è più supportata.\nEnigmail richiede GnuPG versione 2.0.7 o successiva. Aggiorna la tua installazione di GnuPG, o Enigmail non funzionerà .
locateGpg=Trova l'eseguibile di GnuPG
invalidGpgPath=GnuPG non può essere eseguito dal percorso impostato. Enigmail rimarrà quindi disattivato fino a quando non imposterai di nuovo il percorso di GnuPG o non riavvierai l'applicazione.
warningsAreReset=Tutti gli avvisi sono stati riattivati.
prefs.gpgFound=GnuPG è stato trovato in %S
prefs.gpgNotFound=Impossibile trovare GnuPG
prefs.warnAskNever=Attenzione: l'attivazione di questa opzione implica l'invio automatico di email in chiaro senza nessuna ulteriore comunicazione in mancanza di chiavi disponibili per anche uno solo dei destinatari -- Enigmail non mostrerà nessun messaggio di avvertimento nel caso in cui questa eventualità si verifichi!
prefs.warnIdleTimeForUnknownAgent=Impossibile connettersi a gpg-agent. Il tuo sistema utilizza uno strumento specializzato per la gestione della chiave segreta come gnome-keyring o seahorse-agent. Sfortunatamente, Enigmail non può controllare il timeout della frase segreta per lo strumento utilizzato. Perciò le relative impostazioni di timeout in Enigmail sono ignorate.
prefEnigmail.oneKeyserverOnly=Errore - puoi specificare un solo server per lo scaricamento automatico delle chiavi OpenPGP mancanti.
enterAdminPin=Inserisci l'Admin PIN della tua smartcard
enterCardPin=Inserisci il PIN della tua smartcard
notInit=Errore - servizio Enigmail non ancora inizializzato
badCommand=Errore - comando di cifratura non riuscito
cmdLine=riga di comando e risultato:
notRequired=Errore - cifratura non richiesta
notComplete=Errore - la creazione della chiave non è ancora completata
invalidEmail=Errore - indirizzo/i email non valido/i
noPassphrase=Errore - passphrase non inserita
noPGPblock=Errore - non è stato trovato nessun blocco valido di dati OpenPGP
unverifiedReply=La parte di messaggio citata (in risposta) è stata probabilmente modificata
keyInMessageBody=Trovata chiave nel corpo del messaggio. Fai clic su 'Importa chiave' per importare la chiave
sigMismatch=Errore - firma non corrispondente
cantImport=Errore nell'importazione della chiave pubblica\n\n
doImportOne=Vuoi importare %1$S (%2$S)?
doImportMultiple=Vuoi importare le seguenti chiavi?\n\n%S
previewFailed=Impossibile leggere il file della chiave pubblica.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=La smartcard %S trovata nel lettore non può essere utilizzata per elaborare il messaggio.\nInserisci la smartcard %S e ripeti l'operazione.
sc.insertCard=L'operazione richiede la tua smartcard %S.\nInserisci la smartcard richiesta e ripeti l'operazione.
sc.removeCard=L'operazione richiede che non ci siano smartcard nel lettore.\nRimuovi la tua smartcard e ripeti l'operazione.
sc.noCardAvailable=Nessuna smartcard trovata nel lettore\nInserisci la smartcard e ripeti l'operazione.
sc.noReaderAvailable=Impossibile accedere al lettore di smartcard \nCollega il lettore, inserisci la scheda e ripeti l'operazione.
keyError.keySpecNotFound=L'indirizzo email "%S" non può corrisponde a una chiave nel tuo portachiavi.
keyError.keyIdNotFound=L'ID della chiave configurata "%S" non può essere trovato nel tuo portachiavi.
keyError.resolutionAction=Seleziona un chiave valida nella sezione OpenPGP delle impostazioni del tuo account.
missingPassphrase=Frase segreta mancante
errorHandling.gpgAgentInvalid=Il tuo sistema esegue una versione di gpg-agent non appropriata alla tua versione di GnuPG.
errorHandling.gpgAgentError=GnuPG ha segnalato un errore nella comunicazione con gpg-agent (un componente di GnuPG).
errorHandling.dirmngrError=GnuPG ha segnalato un errore nella comunicazione con dirmngr (un componente di GnuPG).
errorHandling.pinentryError=GnuPG non è in grado di interrogare la tua frase segreta tramite pinentry.
errorHandling.readFaq=Questa è una configurazione di sistema o un errore di configurazione che impedisce a Enigmail di funzionare correttamente e non può essere corretta automaticamente.\n\nTi consigliamo di consultare il nostro sito web di supporto su https://enigmail.net/faq.
gpgNotFound=Impossibile trovare l'eseguibile di GnuPG '%S'.\nAssicurati di aver impostato correttamente il percorso dell'eseguibile di GnuPG nelle impostazioni di Enigmail.
gpgNotInPath=Impossibile trovare l'eseguibile di GnuPG nel PATH.\nAssicurati di aver impostato correttamente il percorso dell'eseguibile di GnuPG nelle impostazioni di Enigmail.
enigmailNotAvailable=Il servizio principale di Enigmail non è disponibile
gpgAgentNotStarted=Impossibile avviare il programma gpg-agent che è necessario per la tua versione di GnuPG %S.
prefUntrusted=SENZA FIDUCIA
prefRevoked=CHIAVE REVOCATA
prefExpiredKey=CHIAVE SCADUTA
prefExpired=SCADUTA
prefGood=Firma autentica per %S
prefBad=Firma NON autentica per %S
failCancel=Errore - ricezione chiave annullata dall'utente
failNoServer=Errore - nessun server specificato da cui ricevere la chiave
failNoID=Errore - non è stato specificato nessun ID chiave per cui scaricare la chiave
failKeyExtract=Errore - comando di estrazione chiave non riuscito
notFirstBlock=Errore - il primo blocco di dati OpenPGP non è una chiave pubblica
importKeyConfirm=Importare la/e chiave/i pubblica/he inserita/e nel messaggio?
failKeyImport=Errore - importazione chiave non riuscita
fileWriteFailed=Impossibile scrivere nel file %S
importKey=Importa la chiave pubblica %S dal server:
uploadKey=Invia la chiave pubblica %S al server:
keyId=ID chiave
keyAndSigDate=ID chiave: 0x%S / Firmata il: %S
keyFpr=Impronta della chiave: %S
noEmailProvided=Non hai fornito nessun indirizzo email!
keyAlreadySigned=La chiave è già firmata, non puoi firmarla due volte.
gnupg.invalidKey.desc=Chiave %S non trovata o non valida. La (sotto)chiave potrebbe essere scaduta.
selKeyExpired=scaduta %S
createdHeader=Creata
atLeastOneKey=Nessuna chiave selezionata! Devi selezionare almeno una chiave per proseguire
fewerKeysThanRecipients=Hai selezionato un numero di chiavi inferiore a quello dei destinatari. Sei sicuro che l'elenco delle chiavi con cui cifrare sia completo?
userSel.button.goBack=Seleziona altre chiavi
userSel.secretKeySel.title=Seleziona una chiave segreta OpenPGP per firmare i messaggi
userSel.problemNoKey=Nessuna chiave valida
userSel.problemMultipleKeys=Chiavi multiple
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Invia più tardi
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOTA: PGP/MIME è supportato solamente da un numero limitato di client email! Sotto Windows, solo Mozilla/Thunderbird, Sylpheed, Pegasus e Mulberry supportano con certezza questo standard; sotto Linux/UNIX e Mac OS X lo supportano invece i più comuni client email. Se hai dei dubbi su cosa fare, seleziona il %S dei tre punti qui sopra.
first=primo
second=secondo
# Strings used in am-enigprefs.js
encryptKeyHeader=Scegli la chiave OpenPGP per la cifratura
identityName=Identità : %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Hai attivato la cifratura, ma non hai selezionato nessuna chiave. Per cifrare i messaggi inviati a %S, devi specificare una o più chiavi valide dalla tua lista delle chiavi. Vuoi disattivare la cifratura per %S?
noKeyToUse=(nessuna - nessuna cifratura)
noEmptyRule=La regola non può essere vuota! Specifica un indirizzo email nel campo della regola.
invalidAddress=Gli indirizzi email che hai specificato non sono validi. Non devi digitare anche il nome dei destinatari, ma solo gli indirizzi email. Ad es.:\nNon valido: Nome Cognome \nValido: nome.cognome@indirizzo.net
noCurlyBrackets=Le parentesi graffe {} hanno un significato speciale e non dovrebbero essere usate negli indirizzi email. Se vuoi modificare il comportamento di questa regola, usa l'opzione 'Applica la regola se il destinatario...'.\nUlteriori informazioni sono disponibili con il pulsante Aiuto.
# Strings used in enigmailRulesEditor.js
never=Mai
always=Sempre
possible=Possibile
deleteRule=Vuoi davvero eliminare la regola selezionata?
nextRcpt=(Destinatario successivo)
negateRule=Non
addKeyToRule=Aggiungi la chiave %S (%S) a una regola per destinatario
# Strings used in enigmailSearchKey.js
needOnline=La funzione che hai selezionato non è disponibile nella modalità non in linea. Vai in linea e riprova.
protocolNotSupported=Il protocollo '%S://' che hai selezionato non è supportato per lo scaricamento delle chiavi OpenPGP.
gpgkeysDisabled=Potrebbe aiutare abilitare l'opzione 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Impossibile collegarsi al server delle chiavi a %S.
keyDownloadFailed=Scaricamento della chiave dal server non riuscito. Il messaggio di stato è:\n%S
internalError=Si è verificato un errore interno. Non è stato possibile né scaricare le chiavi, né importarle.
noKeyFound=Spiacenti, non è stata trovata alcuna chiave che corrisponda ai criteri di ricerca specificati.\nRicorda che l'ID della chiave deve essere preceduto da "0x" (ad es. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Impossibile cercare o scaricare la chiave dal server: non è stato possibile eseguire gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Impostazione della fiducia nel proprietario non riuscita
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Firma della chiave non riuscita
alreadySigned.label=Nota: la chiave %S è già stata firmata con la chiave segreta selezionata.
alreadySignedexportable.label=Nota: la chiave %S è già firmata come esportabile con la chiave privata selezionata. Una firma locale non ha senso.
partlySigned.label=Nota: alcuni ID utente della chiave %S sono già firmati con la chiave segreta selezionata.
noTrustedOwnKeys=Non è stata trovata alcuna chiave idonea per firmare! Hai bisogno almeno di una chiave privata definitivamente affidabile per firmare le chiavi.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Caricamento delle chiavi in corso, attendere...
keyValid.unknown=sconosciuta
keyValid.invalid=non valida
keyValid.disabled=disabilitata
keyValid.revoked=revocata
keyValid.expired=scaduta
keyValid.noSubkey=non ci sono sottochiavi valide
keyTrust.untrusted=senza fiducia
keyTrust.marginal=marginale
keyTrust.full=fidata
keyTrust.ultimate=definitiva
keyTrust.group=(gruppo)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Abilita chiave
keyMan.disableKey=Disabilita chiave
userAtt.photo=Attributo dell'utente (immagine JPEG)
asciiArmorFile=File con armatura ASCII (*.asc)
importKeyFile=Importa file di chiave OpenPGP
gnupgFile=File di GnuPG
saveRevokeCertAs=Crea e salva certificato di revoca
revokeCertOK=Il certificato di revoca è stato creato correttamente. Puoi usarlo per togliere validità alla tua chiave pubblica, come nel caso in cui tu perda la tua chiave privata.\n\nTrasferiscilo su un supporto in cui possa essere conservato al sicuro, come un CD o un floppy. Se qualcuno dovesse avere accesso a questo certificato, potrebbe usarlo per rendere la tua chiave inutilizzabile.
revokeCertFailed=Il certificato di revoca non può essere creato.
addUidOK=ID utente aggiunto correttamente
addUidFailed=Aggiunta dello ID utente non riuscita
noKeySelected=Devi selezionare almeno una chiave per poter eseguire l'operazione selezionata
exportToFile=Esporta la chiave pubblica in un file
exportKeypairToFile=Esporta chiave privata e pubblica su file
exportSecretKey=Vuoi includere anche la chiave privata nel file di chiave OpenPGP che viene salvato?
saveKeysOK=Le chiavi sono state salvate correttamente
saveKeysFailed=Salvataggio delle chiavi non riuscito
importKeysFailed=Importazione delle chiavi non riuscita
enableKeyFailed=Abilitazione/disabilitazione delle chiavi non riuscita
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Chiavi-pubbliche-esportate
defaultPubSecKeyFilename=Chiavi-pubbliche-e-private-esportate
noSecretKeys=Non sono state trovate chiavi segrete.\n\nVuoi generare la tua chiave ora?
sendKeysOk=Chiave/i inviata/e correttamente
sendKeysFailed=Invio delle chiavi non riuscito
receiveKeysOk=Chiave/i aggiornata/e correttamente
receiveKeysFailed=Scaricamento della/e chiave/i non riuscito
importFromClip=Vuoi importare alcune chiavi dagli appunti?
importFromUrl=Scarica la chiave pubblica da questo URL:
copyToClipbrdFailed=Impossibile copiare le chiavi selezionate negli appunti.
copyToClipbrdOK=Chiave/i copiata/e negli appunti
deleteSecretKey=ATTENZIONE: stai per eliminare una chiave privata!\nSe elimini la tua chiave privata, non sarai più in grado di decifrare alcun messaggio cifrato per quella chiave.\n\nVuoi veramente eliminarle ENTRAMBE, sia la chiave privata che la chiave pubblica\n'%S'?
deleteMix=ATTENZIONE: Stai per eliminare delle chiavi private!\nSe elimini la tua chiave privata, non sarai più in grado di decifrare alcun messaggio cifrato per quella chiave.\n\nVuoi davvero eliminarle TUTTE, sia le chiavi private che le chiavi pubbliche?
deletePubKey=Vuoi eliminare la chiave pubblica\n'%S'?
deleteSelectedPubKey=Vuoi eliminare le chiavi pubbliche?
deleteKeyFailed=La chiave non può essere eliminata.
revokeKeyQuestion=Stai per revocare la chiave '%S'.\n\nNon sarai più in grado di firmare con questa chiave, e, una volta distribuita, gli altri non saranno in grado di cifrare con la tale chiave. Puoi ancora utilizzare la chiave per decifrare i vecchi messaggi.\n\nVuoi continuare?
revokeKeyOk=La chiave è stata revocata. Se la tua chiave è disponibile su un server, è consigliabile spedirgliela di nuovo, così che tutti possano vedere la revoca.
revokeKeyFailed=La chiave non può essere revocata.
refreshAllQuestion=Non hai selezionato nessuna chiave. Vuoi ricaricare TUTTE le chiavi?
refreshKey.warn=Attenzione: in base al numero delle chiavi e alla velocità di connessione, ricaricare tutte le chiavi può essere un processo molto lungo!
downloadContactsKeys.warn=Avviso: in base al numero di contatti e alla velocità di connessione, lo scaricamento di tutte le chiavi potrebbe risultare un processo molto lungo.
downloadContactsKeys.importFrom=Vuoi importare i contatti dalla rubrica '%S'?
keyMan.button.exportSecKey=Esporta chiavi &segrete
keyMan.button.exportPubKey=Esporta solo le chiavi &pubbliche
keyMan.button.import=&Importa
keyMan.button.refreshAll=&Ricarica tutte le chiavi
keyMan.button.revokeKey=&Revoca chiave
keyMan.button.skip=&Salta chiave
keylist.noOtherUids=Non ha altre identitÃ
keylist.hasOtherUids=Noto anche come
keylist.noPhotos=Non ci sono fotografie disponibili
keylist.hasPhotos=Fotografie
keyMan.addphoto.filepicker.title=Seleziona foto da aggiungere
keyMan.addphoto.warnLargeFile=Il file scelto è più grande di 25 kB.\nNon è consigliato aggiungere file molto grandi per non rendere eccessivamente pesanti le chiavi.
keyMan.addphoto.noJpegFile=Il file selezionato non sembra essere un file JPEG. Scegli un altro file.
keyMan.addphoto.failed=La foto non può essere aggiunta.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Cambiamento dell'ID utente primario non riuscito
changePrimUidOK=L'ID utente primario è stato cambiato correttamente
deleteUidFailed=Eliminazione dell'ID utente %S non riuscita
deleteUidOK=L'ID utente %S è stato eliminato correttamente
revokeUidFailed=Revoca dell'ID utente %S non riuscita
revokeUidOK=L'ID utente %S è stato revocato con successo. Se la tua chiave è disponibile su un server delle chiavi, è consigliabile caricarla di nuovo, così che tutti possano vedere la revoca.
revokeUidQuestion=Vuoi veramente revocare l'ID utente %S?
deleteUidQuestion=Vuoi veramente eliminare l'ID utente %S?\n\nNota: se hai inviato la tua chiave a un server delle chiavi, eliminare un ID utente non serve a nulla. In tal caso devi usare 'Revoca ID utente'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=SUCCESSO! Chiavi importate
importInfoSuccess=✅
importInfoBits=Bit
importInfoCreated=Creato il
importInfoFpr=Impronta digitale
importInfoDetails=(Dettagli)
importInfoNoKeys=Nessuna chiave importata.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=chiave pubblica
keyTypePrimary=chiave principale
keyTypeSubkey=sottochiave
keyTypePair=coppia di chiavi
keyExpiryNever=mai
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Cifra
keyUsageSign=Firma
keyUsageCertify=Certifica
keyUsageAuthentication=Autenticazione
keyDoesNotExpire=La chiave non scade
# Strings in enigmailGenCardKey.xul
keygen.started=Attendi mentre la chiave viene generata...
keygen.completed=Chiave generata. Il nuovo ID chiave è: 0x%S
keygen.keyBackup=La copia della chiave viene salvata in %S
keygen.passRequired=Inserisci una frase segreta se vuoi creare una copia di sicurezza della tua chiave al di fuori della tua smartcard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Il PIN che hai inserito non corrisponde; digitalo nuovamente
cardPin.minLength=Il PIN deve avere almeno %S caratteri o numeri
cardPin.processFailed=Cambiamento di PIN non riuscito
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Aggiornamento chiavi in corso, attendere...
keyserverProgress.uploading=Invio chiavi in corso, attendere...
keyserverTitle.refreshing=Ricarica le chiavi
keyserverTitle.uploading=Invia la chiave
# Strings in enigmailSetupWizard
passphrase.min8keys=La tua frase segreta deve contenere almeno 8 caratteri!
setupWizard.reallyCancel=Vuoi veramente chiudere la procedura guidata di configurazione di Enigmail?
setupWizard.invalidGpg=Il file specificato non è un eseguibile GnuPG. Scegli un altro file.
setupWizard.specifyFile=Devi specificare almeno un file di chiave pubblica per continuare.
setupWizard.installFailed=Sembra che l'installazione non sia avvenuta correttamente. Prova nuovamente l'installazione o installa GnuPG manualmente e individua l'eseguibile utilizzando il pulsante Sfoglia.
setupWizard.downloadForbidden=Per la tua sicurezza, non scaricheremo GnuPG. Visita http://www.gnupg.org/ per scaricare GnuPG.
setupWizard.downloadImpossible=Non è possibile scaricare GnuPG al momento. Prova più tardi o visita http://www.gnupg.org/ per scaricare GnuPG.
setupWizard.hashSumError=La procedura guidata non è in grado di verificare l'integrità del file scaricato. Il file potrebbe essere danneggiato o manipolato. Vuoi continuare comunque l'installazione?
setupWizard.importSettingsFile=Specifica il file di backup da caricare
setupWizard.invalidSettingsFile=Il file specificato non è un file di backup delle impostazioni di Enigmail corretto.
setupWizard.gpgConfExists=Il file di configurazione di GnuPG esiste già . Vuoi sovrascriverlo con quello della tua vecchia installazione?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Si è verificato un errore durante il tentativo di scaricamento di GnuPG. Controlla il log per ulteriori dettagli.
installGnuPG.installFailed=Si è verificato un errore durante l'installazione di GnuPG. Controlla il log per ulteriori dettagli.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Devi inserire un nome e un indirizzo email
addUidDlg.nameMinLengthError=Il nome deve contenere almeno 5 caratteri
addUidDlg.invalidEmailError=Devi specificare un indirizzo email valido
addUidDlg.commentError=I commenti non possono contenere parentesi
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Le smartcard OpenPGP supportano solo caratteri ASCII in Nome/Cognome.
# network error types
errorType.SecurityCertificate=Il certificato di sicurezza presentato dal servizio web non è valido.
errorType.SecurityProtocol=Il protocollo di sicurezza utilizzato dal servizio web è sconosciuto.
errorType.Network=Si è verificato un errore di rete.
# filter stuff
filter.folderRequired=Devi selezionare una cartella di destinazione.
filter.decryptMove.label=Decifra permanentemente (Enigmail)
filter.decryptCopy.label=Crea copia decifrata (Enigmail)
filter.decryptMove.warnExperimental=Avviso - l'azione di filtraggio "Decifra permanentemente" potrebbe provocare il danneggiamento dei messaggi.\n\nTi consigliamo vivamente di provare prima il filtro "Crea copia decifrata", verificare attentamente il risultato e iniziare a utilizzare questo filtro solo quando sei soddisfatto del risultato.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Impossibile decifrare il messaggio con oggetto con oggetto\n"%S".\nVuoi riprovare con una frase segreta diversa o vuoi saltare il messaggio?
converter.decryptAtt.failed=Impossibile decifrare l'allegato "%1$S"\ndel messaggio con oggetto\n"%2$S".\nVuoi riprovare con una frase segreta diversa o vuoi saltare il messaggio?
saveLogFile.title=Salva file di registro
# strings in gpg.jsm
unknownSigningAlg=Algoritmo di firma sconosciuto (ID: %S)
unknownHashAlg=Hash crittografico sconosciuto (ID: %S)
# strings in keyRing.jsm
keyring.photo=Foto
keyRing.pubKeyRevoked=La chiave %1$S (ID chiave %2$S) è revocata.
keyRing.pubKeyExpired=La chiave %1$S (ID chiave %2$S) è scaduta.
keyRing.pubKeyNotForSigning=La chiave %1$S (ID chiave %2$S) non può essere utilizzata per firmare.
keyRing.pubKeyNotForEncryption=La chiave %1$S (ID chiave %2$S) non può essere utilizzata per cifrare.
keyRing.keyDisabled=La chiave %1$S (ID chiave %2$S) è disabilitata; non può essere utilizzata.
keyRing.keyNotTrusted=La chiave %1$S (ID chiave %2$S) non è abbastanza affidabile. Imposta il livello di fiducia a "definitiva" per utilizzarla per firmare.
keyRing.keyInvalid=La chiave %1$S (ID chiave %2$S) non è valida (ad es. non è autofirmata)
keyRing.signSubKeysRevoked=Tutte le sottochiavi di firma della chiave %1$S (ID chiave %2$S) sono scadute.
keyRing.signSubKeysExpired=Tutte le sottochiavi di firma della chiave %1$S (ID chiave %2$S) sono scadute.
keyRing.signSubKeysUnusable=Tutte le sottochiavi di firma della chiave %1$S (ID chiave %2$S) sono revocate, scadute o altrimenti non utilizzabili.
keyRing.encSubKeysRevoked=Tutte le sottochiavi di cifratura della chiave %1$S (ID chiave %2$S) sono revocate.
keyRing.encSubKeysExpired=Tutte le sottochiavi di cifratura della chiave %1$S (ID chiave %2$S) sono scadute.
keyRing.noSecretKey=Sembra che tu non abbia una chiave segreta per %1$S (ID chiave %2$S) nel tuo portachiavi; non puoi utilizzare la chiave per firmare.
keyRing.encSubKeysUnusable=Tutte le sottochiavi di cifratura della chiave %1$S (ID chiave %2$S) sono revocate, scadute o altrimenti non utilizzabili.
#strings in exportSettingsWizard.js
cannotWriteToFile=Impossibile salvare sul file '%S'. Seleziona un altro file.
dataExportError=Si è verificato un errore durante l'esportazione dei tuoi dati.
enigmailSettings=Impostazioni di Enigmail
defaultBackupFileName=Esportazione di Enigmail
specifyExportFile=Specifica il nome del file per l'esportazione
homedirParamNotSUpported=I parametri aggiuntivi che configurano i percorsi come --homedir e --keyring non sono supportati per l'esportazione/ripristino delle tue impostazioni. Usa metodi alternativi come l'impostazione della variabile d'ambiente GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=La chiave %1$S scadrà in meno di %2$S giorni.\n\nTi consigliamo di creare una nuova coppia di chiavi e configurare gli account corrispondenti per usare la nuova chiave.
expiry.keysExpireSoon=Le seguenti chiavi scadranno in meno di %1$S giorni:\n%2$S. Ti consigliamo di creare delle nuove chiavi e configurare i tuoi account per usare le nuove chiavi.
enigmail/lang/it/help/ 0000775 0000000 0000000 00000000000 12667016244 0015140 5 ustar 00root root 0000000 0000000 enigmail/lang/it/help/compose.html 0000664 0000000 0000000 00000010404 12667016244 0017472 0 ustar 00root root 0000000 0000000
Enigmail Help: Composizione del Messaggio
Enigmail Help
Usare Enigmail durante la composizione dei messaggi
- Menu di Enigmail nella finestra di Composizione dei messaggi
- Firma il messaggio: Abilita/disabilita l'invio del messaggio firmato. L'utente viene avvertito se l'operazione di firma fallisce.
- Cifra il messaggio: Abilita/disabilita la cifratura per tutti i destinatari prima dell'invio. L'utente viene avvertito se l'operazione di cifratura fallisce.
Se in Impostazioni -> Scelta della chiave è stato impostato Mostra la finestra di selezione solo quando è necessario, e tra i destinatari del messaggio figurano indirizzi a cui non corrisponde nessuna delle chiavi pubbliche in tuo possesso, al momento dell'invio verrà mostrata una lista di chiavi tra cui scegliere.
Se in Impostazioni -> Scelta della chiave è stato impostato Non mostrare mai la finestra di selezione delle chiavi OpenPGP, e tra i destinatari del messaggio figurano indirizzi a cui non corrisponde nessuna delle chiavi pubbliche in tuo possesso, il messaggio sarà inviato come testo in chiaro, senza venire cifrato.
- Usa PGP/MIME per questo messaggio: Abilita/disabilita l'uso del formato PGP/MIME
per il messaggio corrente.
Se sai che i destinatari sono in grado di ricevere messaggi in formato PGP/MIME, allora faresti meglio ad usarlo.
La possibilità di attivare questa funzione dipende dall'avere impostato o meno Consenti l'uso di PGP/MIME, o Usa sempre PGP/MIME, in Impostazioni -> PGP/MIME.
- Impostazioni predefinite per la composizione: Sotto-menu.
- Impostazioni di firma/cifratura...: scorciatoia per Configurazione account posta ->
OpenPGP.
- Impostazioni di invio...: scorciatoia per Impostazioni ->
invio.
- Impostazioni per la scelta della chiave...: scorciatoia per Impostazioni ->
Scelta della chiave.
- Impostazioni PGP/MIME...: scorciatoia per Impostazioni ->
PGP/MIME.
- Annulla cifratura: Se si verifica un problema durante l'invio
del messaggio, se ad esempio il server rifiuta la richiesta, Enigmail non
avrà modo di saperlo e il messaggio continuerà ad
essere mostrato in formato cifrato nella finestra di composizione. Scegliendo
questa voce di menu, la firma/cifratura verranno annullate e nella
finestra di composizione apparirà nuovamente il testo in chiaro.
Come soluzione temporanea, questa opzione può anche essere usata per
decifrare il testo quotato quando si risponde a un messaggio cifrato. Enigmail
dovrebbe decifrare automaticamente il messaggio quotato, ma se cioò non
dovesse funzionare per qualche ragione, puoi usare questa voce di menu.
- Inserisci chiave pubblica: inserisci una chiave pubblica in formato
ASCII-armored a partire dalla posizione corrente del cursore nella finestra di
composizione. Ti verranno chiesti gli indirizzi email delle chiavi da inserire.
Le chiavi inserite in questo modo saranno automaticamente riconosciute da
Enigmail sul computer del destinatario. Dopo l'inserimento della chiave,
puoi ancora scegliere di cifrare/firmare il messaggio, se necessario. Attenzione
a non inserire più di un blocco di chiavi pubbliche in un messaggio;
specifica nel caso più indirizzi email, separati da virgole o spazi, per
lo stesso blocco.
- Cancella la passphrase memorizzata: Cancella la passphrase salvata in memoria. Utile se hai più di una passphrase.
- Aiuto: Mostra le informazioni di aiuto (questa pagina).
Ulteriore aiuto è disponibile sul
sito web di Enigmail
enigmail/lang/it/help/editRcptRule.html 0000664 0000000 0000000 00000013402 12667016244 0020434 0 ustar 00root root 0000000 0000000
Enigmail Help: Modifica regole OpenPGP
Enigmail Help
Usare l'editor delle regole di Enigmail: Modifica di una regola OpenPGP
Nell'editor delle regole puoi specificare le impostazioni predefinite per ogni
destinatario per abilitare la cifratura, la firma, il formato PGP/MIME e per definire
quali chiavi OpenPGP usare. In questa finestra di dialogo, puoi specificare le regole
per un singolo destinatario o per un gruppo di destinatari con caratteristiche simili.
- Imposta regole OpenPGP per : Contiene gli
indirizzi email dei destinatari (senza i nomi, ovvero solo indirizzi del tipo
nome.cognome@indirizzo.email). Puoi specificare indirizzi multipli,
separati sa spazi.
Gli indirizzi specificati qui possono consistere anche del solo dominio, in modo da
comprendere tutti i destinatari di quel dominio, ad esempio @indirizzo.email
corrisponderà sia a nome@indirizzo.email,
nome2@indirizzo.email, nome3@indirizzo.email, ecc.
- Applica la regola se il destinatario ...:
Questo modifica la corrispondenza dell'indirizzo email.
Se sono stati specificati indirizzi multipli, l'impostazione si applica a tutti.
Gli esempi qui sotto assumono che si stato immesso l'indirizzo nome@indirizzo.email
nel campo Regole OpenPGP sopra.
- È esattamente: con questa impostazione, la regola viene
applicata solo ai messaggi indirizzati a nome@indirizzo.email
(corrispondenza esatta, maiuscole/minuscole ignorate).
- Contiene: con questa impostazione, la regola si applica a ogni
indirizzo contenente quello specificato,
ad esempio tuo.nome@indirizzo.email o altro.nome@indirizzo.email.suo
- Comincia con: con questa impostazione, la regola viene applicata a
ogni indirizzo che inizia con quello specificato, ad esempio
nome@indirizzo.email.suo, nome@indirizzo.email-2.suo.
- Finisce con: Con questa impostazione la regola viene applicata a
ogni indirizzo che finisce con quello specificato, ad esempio
tuonome@indirizzo.email o altro.nome@indirizzo.email
- Continua con la regola successiva per l'indirizzo corrispondente
Abilitare questa funzione ti permette di definire una regola senza dover specificare
un ID chiave nel campo Usa le seguenti chiavi OpenPGP:. In tal caso la
chiave da usare sarà scelta al momento dell'invio in base all'indirizzo email
del destinatario. Inoltre, saranno anche applicate le eventuali ulteriori regole per
lo stesso indirizzo.
- Non controllare le regole successive per l'indirizzo corrispondente
Abilitando questa funzione si impedisce l'applicazione di qualunque altra regola per
gli indirizzi corrispondenti, se questa regola viene applicata; il controllo delle
regole passa al destinatario seguente.
- Usa le seguenti chiavi OpenPGP:
Usa il pulsante Seleziona chiave/i.. per scegliere la chiave pubblica del
destinatario da usare per la cifratura. Come nel caso precedente, nessuna ulteriore
regola viene applicata allo stesso indirizzo.
- Impostazioni predefinite per... Firma:
abilita o disabilita
l'invio di messaggi firmati. Questa impostazione usa o ha la precedenza su
quella specificata nella finestra di composizione del messaggio. I valori
possibili sono:
- Mai: disabilita la firma, anche se è attivata nella
finestra di composizione del messaggio (ha la precedenza sulle altre
impostazioni)
- Sì, se selezionato durante la composizione del messaggio:
usa l'impostazione specificata nella finestra
di composizione del messaggio
- Sempre: abilita la firma, anche se essa non è abilitata nella
finestra di composizione del messaggio
Le impostazioni sulla firma vengono
applicate per tutte le regole che corrispondono. Se una regola disabilita
la firma, il messaggio non verrà firmato, indipendentemente dalle
altre eventuali regole che specificano Sempre.
- Impostazioni predefinite per... Cifratura: abilita o disabilita
la cifratura del messaggio. Le possibili impostazioni sono le stesse della
firma e hanno lo stesso significato.
- Impostazioni predefinite per...
PGP/MIME:abilita o disabilita
l'uso della codifica PGP/MIME (RFC 3156) per il messaggio.
Se PGP/MIME è disabilitato, i messaggi saranno codificati
usando "inline PGP". Le possibili impostazioni sono le stesse della
firma e hanno lo stesso significato.
Le regole sono elaborate nell'ordine in cui appaiono nella lista
dell'Editor delle regole OpenPGP.
Se una regola è applicabile a un destinatario e contiene un ID chiave
OpenPGP, il destinatario, oltre a usare l'ID specificato, sarà ignorato
nell'elaborazione delle altre regole.
Ulteriore aiuto è disponibile sulla
pagina web di Enigmail sulle regole per singolo destinatario
enigmail/lang/it/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020013 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/it/help/messenger.html 0000664 0000000 0000000 00000010100 12667016244 0020006 0 ustar 00root root 0000000 0000000
Enigmail Help: Lettura dei messaggi
Enigmail Help
Usare Enigmail durante la lettura dei messaggi
- Pulsante Decifra nella finestra principale della posta
Questo pulsante può essere usato per molti scopi: decifrare,
verificare, o importare chiavi pubbliche. Di solito, la decifratura/verifica
dei messaggi viene fatta automaticamente, anche se questo può essere
disabilitato nelle impostazioni. Tuttavia, in caso di errori, apparirebbe
solo un breve messaggio nella barra di stato di Enigmail. Se premi il pulsante
Decifra, verrà mostrato un messaggio di errore più dettagliato,
che include anche l'output esatto di GnuPG.
- Icone della penna e della chiave tra le intestazioni del messaggio
Le icone Penna e Chiave tra le intestazioni del messaggio
indicano se esso è stato cifrato/firmato e se la firma è valida,
cioè se il messaggio non è stato modificato dopo la firma. Se ci
sono state modifiche, l'icona Penna apparirà come una Penna
spezzata per indicare che la firma non è valida. Premendo con il tasto
destro sulla penna o sulla chiave si visualizzerà un menu con le
seguenti opzioni:
- Informazioni di sicurezza OpenPGP: mostra l'output di GnuPG per il
messaggio.
- Copia le informazioni di sicurezza OpenPGP: copia l'output di GnuPG
negli appunti, ad esempio per incollarlo in un messaggio, ecc.
- Mostra la foto-ID OpenPGP: Visualizza la Foto-ID del
mittente del messaggio, se una foto è presente nella sua chiave pubblica.
(Questa opzione è attiva solo se c'è una foto nella chiave
pubblica.)
- Informazioni di sicurezza S/MIME: mostra le informazioni di sicurezza
S/MIME per il messaggio.
Se non hai impostato keyserver-options auto-key-retrieve nel file
gpg.conf file e visualizzi un messaggio firmato e/o cifrato, vedrai una
icona Penna tra le intestazioni del messaggio con un Punto
interrogativo su di essa, la riga di stato di Enigmail mostrerà la
scritta Parte del messaggio firmata; premi sull'icona della penna per i
dettagli e il messaggio nella finestra mostrerà tutte le
intestazioni OpenPGP e la firma in calce.
Puoi vedere questo messaggio anche se hai impostato keyserver-options
auto-key-retrieve nel file gpg.conf e la chiave OpenPGP richiesta
non è disponibile sul server della chiavi predefinito.
Premendo sull'icona Penna e punto interrogativo apparirà
una finestra che avverte che la chiave pubblica richiesta non è disponibile nel
tuo portachiavi. Premendo su OK apparirà un'altra finestra con una lista
di server di chiavi da cui potrai scegliere di scaricare la chiave pubblica del
mittente.
Per configurare la lista dei server di chiavi che vuoi usare, vai su
Enigmail ->
Impostazioni -> Generali e inserisci gli indirizzi dei server nella riga
Keyserver:, separati da una virgola. Il primo server sarà
considerato il predefinito.
- Apertura di allegati cifrati / importazioni di chiavi OpenPGP allegate
Gli allegati con estensioni *.pgp, *.asc e *.gpg sono riconosciuti da Enigmail
come allegati da trattare in modo speciale. Premendo con il tasto destro su tali
allegati, appariranno due speciali voci del menu contestuale: Decifra e
apri e Decifra e salva. Usa queste due voci se vuoi che Enigmail
decifri un allegato prima di aprirlo o salvarlo. Se un allegato è riconosciuto
essere una chiave OpenPGP, ti sarà offerta la possibilità di importarla
nel tuo portachiavi.
Ulteriore aiuto è disponibile sul
sito web di Enigmail
enigmail/lang/it/help/rulesEditor.html 0000664 0000000 0000000 00000006434 12667016244 0020336 0 ustar 00root root 0000000 0000000
Enigmail Help: Editor delle regole
Enigmail Help
Usare l'editor delle regole di Enigmail
Nell'Editor delle regole, puoi specificare le impostazioni predefinite per ogni destinatario sull'abilitazione della cifratura, della firma del formato PGP/MIME, e sulla scelta della chiave OpenPGP da usare. Ogni regole è composta da 5 campi ed è rappresentata su una singola linea:
- Email: L'indirizzo email che
compare nei campi A:, Cc: e Bcc:. La corrispondenza funziona anche per
sottostringhe (Ulteriori dettagli
possono essere trovati nella finestra di dialogo Modifica regola)
- Chiave/i OpenPGP: una lista di ID
chiave OpenPGP da usare per il destinatario
- Firma: abilita o disabilita
l'invio di messaggi firmati. Questa impostazione usa o ha la precedenza su
quella specificata nella finestra di composizione del messaggio. I valori
possibili sono:
- Mai: disabilita la firma, anche se è attivata nella
finestra di composizione del messaggio (ha la precedenza sulle altre
impostazioni)
- Possibile: usa l'impostazione specificata nella finestra
di composizione del messaggio
- Sempre: abilita la firma, anche se essa non è abilitata nella
finestra di composizione del messaggio
Le impostazioni sulla firma vengono
applicate per tutte le regole che corrispondono. Se una regola disabilita
la firma, il messaggio non verrà firmato, indipendentemente dalle
altre eventuali regole che specificano Sempre.
- Cifra: abilita o disabilita
la cifratura del messaggio. Le possibili impostazioni sono le stesse della
firma e hanno lo stesso significato.
- PGP/MIME: abilita o disabilita
l'uso della codifica PGP/MIME (RFC 3156) per il messaggio.
Se PGP/MIME è disabilitato, i messaggi saranno codificati
usando "inline PGP". Le possibili impostazioni sono le stesse della
firma e hanno lo stesso significato.
Le regole sono elaborate nell'ordine in cui appaiono nella lista.
Se una regola è applicabile a un destinatario e contiene un ID chiave
OpenPGP, il destinatario, oltre a usare l'ID specificato, sarà ignorato
nell'elaborazione delle altre regole.
Nota: L'editor delle regole non è ancora completo. Regole
più avanzate possono essere create modificando direttamente il file
delle regole (tali regole non dovranno essere più modificate
con l'editor delle regole). Ulteriori informazioni sulla modifica diretta del file delle regole sono disponibili sulla home page di Enigmail.
Ulteriore aiuto è disponibile sul
sito web di Enigmail
enigmail/lang/it/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020474 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/ja/ 0000775 0000000 0000000 00000000000 12667016244 0014166 5 ustar 00root root 0000000 0000000 enigmail/lang/ja/am-enigprefs.properties 0000664 0000000 0000000 00000000133 12667016244 0020656 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP ã‚»ã‚ュリティ
enigmail/lang/ja/enigmail.dtd 0000664 0000000 0000000 00000153552 12667016244 0016463 0 ustar 00root root 0000000 0000000
注æ„:éµç”Ÿæˆã«ã¯æ•°åˆ†ã‹ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚生æˆé€”ä¸ã§ã‚¢ãƒ—リケーションを終了ã—ãªã„ã§ãã ã•ã„。生æˆé€”ä¸ã§ãƒ–ラウザを使用ã™ã‚‹ã€ã‚‚ã—ãã¯ãƒ‡ã‚£ã‚¹ã‚¯ã‚¢ã‚¯ã‚»ã‚¹ãŒæ¿€ã—ã„処ç†ã‚’行ã†ã¨ã€Œä¹±æ•°ãƒ—ールã€ãŒæº€ãŸã•れã€å‡¦ç†ãŒæ—©ã終ã‚りã¾ã™ã€‚éµã®ç”ŸæˆãŒçµ‚了ã™ã‚‹ã¨é€šçŸ¥ã—ã¾ã™ã€‚">
注æ„: éµç”Ÿæˆã«ã¯æ•°åˆ†ã‹ã‹ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚éµç”Ÿæˆä¸ã¯ã‚¢ãƒ—リケーションを終了ã—ãªã„ã§ãã ã•ã„。終了時ã«ã¯ãŠçŸ¥ã‚‰ã›ã—ã¾ã™ã€‚">
注æ„: Enigmail ã¯ã€æœ‰åŠ¹ç„¡åŠ¹ã«é–¢ã‚らãš
ã™ã¹ã¦ã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã‚‚ã—ã㯠ID å®›ã®ãƒ¡ãƒ¼ãƒ«ã®ç½²åを検証ã—ã¾ã™ã€‚">
å…¬é–‹éµ ã¯ã€ã‚ãªãŸå®›ã«æš—å·åŒ–メッセージをé€ã‚‹ã¨ããŠã‚ˆã³ã€ã‚ãªãŸã«ã‚ˆã‚‹ç½²åメッセージを検証ã™ã‚‹ã¨ã㫠第三者ã«ã‚ˆã£ã¦ 使用ã•れã¾ã™ã€‚公開éµã¯ç¬¬ä¸‰è€…ã«é…布ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚">
ç§˜å¯†éµ ã¯ã€æš—å·åŒ–メッセージを復å·ã™ã‚‹ã¨ããŠã‚ˆã³ç½²åメッセージをé€ã‚‹ã¨ãã« ã‚ãªãŸè‡ªèº«ã«ã‚ˆã£ã¦ 使用ã•れã¾ã™ã€‚
秘密éµã‚’第三者ã«å…¬é–‹ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。">
ç§˜å¯†éµ ã¯ã€ã‚ãªãŸå®›ã«é€ã‚‰ã‚ŒãŸæš—å·åŒ–メッセージを復å·ã™ã‚‹ã¨ããŠã‚ˆã³ã€ã‚ãªãŸãŒç½²åメッセージをé€ã‚‹ã¨ãã« ã‚ãªãŸè‡ªèº«ã«ã‚ˆã£ã¦ 使用ã•れã¾ã™ã€‚
秘密éµã‚’第三者ã«å…¬é–‹ã—ã¦ã¯ã„ã‘ã¾ã›ã‚“。
秘密éµã®å®‰å…¨æ€§ã‚’ä¿ã¤ãŸã‚ã«ã€ãƒ‘スフレーズをè¨å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚以下㮠2 ã¤ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã«ãƒ‘スフレーズを入力ã—ã¦ãã ã•ã„。">
パスフレーズ ã¯ã€ç§˜å¯†éµã‚’ä¿è·ã™ã‚‹ãŸã‚ã®ãƒ‘スワードã§ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚ãªãŸè‡ªèº«ã«ã‚ˆã‚‹ç§˜å¯†éµã®èª¤ä½¿ç”¨ã‚„ã€ç¬¬ä¸‰è€…ã«ã‚ˆã‚‹ä¸æ£ä½¿ç”¨ãŒé˜²æ¢ã•れã¾ã™ã€‚">
推奨ã•れã¾ã›ã‚“。">
失効証明書ã®ç”Ÿæˆã®ãŸã‚パスフレーズを入力ã—ã¦ãã ã•ã„。">
å¤ã„環境ã§ã€ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’ä¿å˜ã™ã‚‹
æ–°ã—ã„環境ã§ã€ã“ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’èªã¿è¾¼ã‚€
">
ã“ã®åº¦ã¯ã€Enigmail ã‚’ã”利用ã„ãŸã ãã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚">
å¤ã„環境ã§ã€ã“ã®ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’ä¿å˜ã™ã‚‹
æ–°ã—ã„環境ã§ã€ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã‹ã‚‰ãƒ‡ãƒ¼ã‚¿ã‚’èªã¿è¾¼ã‚€
">
enigmail/lang/ja/enigmail.properties 0000664 0000000 0000000 00000132360 12667016244 0020076 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail è¦å‘Š
enigConfirm=Enigmail 確èª
enigError=Enigmail エラー
enigPrompt=Enigmail プãƒãƒ³ãƒ—ト
dlgYes=ã¯ã„(&Y)
dlgNo=ã„ã„ãˆ(&N)
dlgKeepSetting=è¨å®šã‚’ä¿å˜ã—ã€æ¬¡å›žã‹ã‚‰å°‹ããªã„
dlgNoPrompt=次回ã‹ã‚‰ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã‚’表示ã—ãªã„
dlg.button.delete=削除(&D)
dlg.button.cancel=ã‚ャンセル(&C)
dlg.button.close=é–‰ã˜ã‚‹(&C)
dlg.button.continue=続行(&T)
dlg.button.skip=スã‚ップ(&S)
dlg.button.overwrite=上書ã(&O)
dlg.button.view=表示(&V)
dlg.button.retry=å†è©¦è¡Œ(&R)
dlg.button.ignore=無視(&I)
repeatPrefix=\n\nã“ã®è¦å‘Šã¯ %S
repeatSuffixSingular=回繰り返ã•れã¾ã™
repeatSuffixPlural=回繰り返ã•れã¾ã™
noRepeat=\n\nEnigmail をアップグレードã™ã‚‹ã¾ã§ã€ã“ã®è¦å‘Šã¯ç¹°ã‚Šè¿”ã•れã¾ã›ã‚“
pgpNotSupported=Enigmail ã‚’ PGP 6.x ã¨å…±ã«ä½¿ç”¨ã—ã¦ã„ã¾ã™\n\n残念ãªãŒã‚‰ã€PGP 6.x 㯠Enigmail を誤動作ã•ã›ã‚‹å•題を多数抱ãˆã¦ã„ã¾ã™ã€‚ãã®ãŸã‚ã€Enigmail 㯠PGP 6.x をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“。GnuPG (GPG) を代ã‚りã«ä½¿ç”¨ã—ã¦ãã ã•ã„\nã‚‚ã—ã€GnuPG ã¸ã®åˆ‡ã‚Šæ›¿ãˆã«ãƒ˜ãƒ«ãƒ—ãŒå¿…è¦ã§ã—ãŸã‚‰ã€Enigmail ã®ãƒ›ãƒ¼ãƒ ページã®ãƒ˜ãƒ«ãƒ—ã‚’å‚ç…§ã—ã¦ãã ã•ã„
initErr.howToFixIt=Enigmail ã®ä½¿ç”¨ã«ã¯ GnuPG ãŒå¿…è¦ã§ã™ã€‚GnuPG ã‚’ã¾ã インストールã—ã¦ã„ãªã„å ´åˆã«ã¯ã€ä¸‹ã®ã€Œã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ウィザードã€ãƒœã‚¿ãƒ³ã‹ã‚‰ GnuPG をインストールã™ã‚‹ã“ã¨ãŒã§ãã¾ã™
initErr.setupWizard.button=セットアップウィザード(&S)
passphraseCleared=パスフレーズを消去ã—ã¾ã—ãŸ
cannotClearPassphrase=パスフレーズã®ç®¡ç†ã« gnome-keyring ãªã©ã®éžæ¨™æº–ã®ãƒ„ールを使用ã—ã¦ã„ã‚‹ãŸã‚ã€Enigmail ã¯ãƒ‘スフレーズを消去ã§ãã¾ã›ã‚“
noPhotoAvailable=写真ãŒã‚りã¾ã›ã‚“
debugLog.title=Enigmail デãƒãƒƒã‚°ãƒã‚°
error.photoPathNotReadable=写真ã¸ã®ãƒ‘ス '%S' ã¯èªã¿è¾¼ã‚ã¾ã›ã‚“
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=ã“ã®æ–°ã—ã„ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® Enigmail ã§ã¯ã€è¨å®šé …ç›®ãŒä»¥å‰ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‹ã‚‰å¤§ãã変化ã—ã¦ã„ã¾ã™ã€‚å¤ã„è¨å®šã¯è‡ªå‹•çš„ã«ç§»è¡Œã•れã¦ã„ã¾ã™ãŒã€ã™ã¹ã¦ã®ã‚±ãƒ¼ã‚¹ã«ã¤ã„ã¦æ£å¸¸ã«ç§»è¡Œã§ãã¦ã„ã‚‹ã“ã¨ã¯ä¿è¨¼ã§ãã¾ã›ã‚“ã€‚ç§»è¡Œå¾Œã®æ–°ã—ã„è¨å®šã‚’改ã‚ã¦ç¢ºèªã™ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™
enigmailCommon.checkPreferences=è¨å®šã‚’確èªã™ã‚‹...
preferences.defaultToPgpMime=Enigmail ã§ã®æ—¢å®šã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–¹æ³•ã¯ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ PGP ã‹ã‚‰ PGP/MIME ã¸å¤‰æ›´ã•れã¾ã—ãŸã€‚ã“ã®è¨å®šã‚’ç¶æŒã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™\n\n既定ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–¹æ³•をインライン PGP ã¸å¤‰æ›´ã—ãŸã„å ´åˆã«ã¯ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆè¨å®š → OpenPGP ã‚»ã‚ュリティã‹ã‚‰å¤‰æ›´ã§ãã¾ã™
usingVersion=実行ä¸ã® Enigmail ã¯ã€ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %S ã§ã™
usingAgent=%1$S ã¯å®Ÿè¡Œãƒ•ァイル %2$S を用ã„ã¦æš—å·åŒ–・復å·ã‚’ã—ã¦ã„ã¾ã™
agentError=エラー: Enigmail コアサービスã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“ã§ã—ãŸï¼
accessError=Enigmail サービスã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“ã§ã—ãŸ
onlyGPG=éµã®ç”Ÿæˆã¯ GnuPG ã§ã®ã¿åˆ©ç”¨ã§ãã¾ã™ (PGP ã§ã¯å‹•作ã—ã¾ã›ã‚“ï¼)
keygenComplete=éµã®ç”ŸæˆãŒçµ‚了ã—ã¾ã—ãŸã€‚<%S> ãŒç½²åã«åˆ©ç”¨ã•れã¾ã™
revokeCertRecommended=失効証明書を作æˆã™ã‚‹ã“ã¨ã‚’å¼·ãæŽ¨å¥¨ã—ã¾ã™ã€‚失効証明書ã¯éµã‚’無効ã«ã—ãŸã„時ã€ä¾‹ãˆã°ã€ç§˜å¯†éµã‚’ãªãã—ãŸã‚Šãƒ‘ã‚¹ãƒ•ãƒ¬ãƒ¼ã‚ºã‚’å¿˜ã‚ŒãŸæ™‚ã‚„ã€ãƒ‘スフレーズãŒç¬¬ä¸‰è€…ã«æ¼æ´©ã™ã‚‹ãªã©ç§˜å¯†éµã®ä¿¡ç”¨ãŒå¤±ã‚ã‚ŒãŸæ™‚ã«åˆ©ç”¨ã§ãã¾ã™ã€‚ãã®ã‚ˆã†ãªå¤±åŠ¹è¨¼æ˜Žæ›¸ã‚’ä»Šä½œæˆã—ã¾ã™ã‹ï¼Ÿ
keyMan.button.generateCert=証明書を生æˆ(&G)
genCompleteNoSign=éµã®ç”ŸæˆãŒçµ‚了ã—ã¾ã—ãŸ
genGoing=éµã®ç”ŸæˆãŒæ—¢ã«å®Ÿè¡Œä¸ã§ã™
passNoMatch=パスフレーズãŒä¸€è‡´ã—ã¾ã›ã‚“ã§ã—ãŸã€‚å†åº¦å…¥åŠ›ã—ã¦ãã ã•ã„
passCheckBox=éµã«å¯¾ã—ã¦ãƒ‘スフレーズをè¨å®šã—ãªã„å ´åˆã¯ã€ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„
passUserName=ユーザåã‚’ã“ã® ID ã«æŒ‡å®šã—ã¦ãã ã•ã„
keygen.missingUserName=é¸æŠžã•れãŸã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«é–¢é€£ä»˜ã‘られãŸåå‰ãŒå˜åœ¨ã—ã¾ã›ã‚“。アカウントè¨å®šã®ã€Œåå‰ã€æ¬„ã«é©åˆ‡ãªå€¤ã‚’入力ã—ã¦ãã ã•ã„
keygen.passCharProblem=パスフレーズã«ç‰¹æ®Šè¨˜å·ã‚’使用ã—ã¦ã„ã¾ã™ã€‚残念ãªãŒã‚‰ã€ä»–ã®ã‚¢ãƒ—リケーションã§ãƒˆãƒ©ãƒ–ルã®å…ƒã¨ãªã‚Šã¾ã™ã€‚パスフレーズã«ã¯ã€æ¬¡ã®æ–‡å—ã®ã¿ã‚’使用ã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=技術的制é™ã«ã‚ˆã‚Šã€ãƒ‘スフレーズã¯ã‚¹ãƒšãƒ¼ã‚¹è¨˜å·ã§é–‹å§‹ã‚ã‚‹ã„ã¯çµ‚了ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“
changePassFailed=パスフレーズã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ
keyConfirm='%S' ã®å…¬é–‹éµã¨ç§˜å¯†éµã‚’生æˆã—ã¾ã™ã‹ï¼Ÿ
keyMan.button.generateKey=éµã‚’生æˆ(&G)
keyAbort=éµã®ç”Ÿæˆã‚’䏿¢ã—ã¾ã™ã‹ï¼Ÿ
keyMan.button.generateKeyAbort=éµç”Ÿæˆã‚’䏿¢(&A)
keyMan.button.generateKeyContinue=éµç”Ÿæˆã‚’継続(&C)
expiryTooLong=100 年より長ã„間有効ãªéµã¯ç”Ÿæˆã§ãã¾ã›ã‚“
expiryTooLongShorter=90 年より長ã„間有効ãªéµã¯ç”Ÿæˆã§ãã¾ã›ã‚“
expiryTooShort=éµã¯å°‘ãªãã¨ã‚‚ 1 æ—¥é–“ã¯æœ‰åйã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“
dsaSizeLimit=DSA ç½²åéµã®ã‚µã‚¤ã‚ºã¯ 3072 ビットã¾ã§ã«åˆ¶é™ã•れã¦ã„ã¾ã™ã€‚éµã®ã‚µã‚¤ã‚ºã¯ç¸®å°ã•れã¾ã™
keyGenFailed=éµã®ç”Ÿæˆã«å¤±æ•—ã—ã¾ã—ãŸã€‚詳細ã¯ã€Enigmail ã®ã‚³ãƒ³ã‚½ãƒ¼ãƒ« (メニュー Enigmail -> Enigmail ã®ãƒ‡ãƒãƒƒã‚°) を確èªã—ã¦ãã ã•ã„
setKeyExpirationDateFailed=有効期é™ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£æƒ…å ±\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Attachments to this message have not been signed or encrypted*\n\n
possiblyPgpMime=ãŠãらã PGP/MIME ã§æš—å·åŒ–ã‚‚ã—ãã¯ç½²åã•れã¦ã„ã¾ã™ã€‚「復å·/æ¤œè¨¼ã€æ©Ÿèƒ½ã‚’使用ã—ã¦ãã ã•ã„
noDecrypted=ä¿å˜ã™ã¹ã復å·ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã‚りã¾ã›ã‚“ï¼\nファイルメニューã‹ã‚‰ä¿å˜ã‚’é¸æŠžã—ã¦ãã ã•ã„
noMessage=ä¿å˜ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒã‚りã¾ã›ã‚“ï¼
useButton=復å·ã™ã‚‹ã«ã¯ã€Œå¾©å·/æ¤œè¨¼ã€æ©Ÿèƒ½ã‚’使用ã—ã¦ãã ã•ã„
saveHeader=Enigmail: 復å·ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä¿å˜
saveAttachmentHeader=Enigmail: 復å·ã—ãŸæ·»ä»˜ãƒ•ァイルをä¿å˜
noTempDir=書ãè¾¼ã¿å¯èƒ½ãªãƒ†ãƒ³ãƒãƒ©ãƒªãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n環境変数 TEMP ã‚’é©åˆ‡ãªå ´æ‰€ã«è¨å®šã—ã¦ãã ã•ã„
attachmentPgpKey=é–‹ã“ã†ã¨ã—ãŸæ·»ä»˜ãƒ•ァイル '%S' ã¯ã€OpenPGP éµãƒ•ァイルã®ã‚ˆã†ã§ã™\n\néµã‚’インãƒãƒ¼ãƒˆã™ã‚‹ã«ã¯ã€Œã‚¤ãƒ³ãƒãƒ¼ãƒˆã€ã‚’クリックã—ã¦ãã ã•ã„。「表示ã€ã‚’クリックã™ã‚‹ã¨ãƒ–ラウザウインドウã§ä¸èº«ã‚’確èªã§ãã¾ã™
beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* *********
endPgpPart=********** *END ENCRYPTED or SIGNED PART* **********
notePartEncrypted=Enigmail: * Parts of the message have NOT been signed or encrypted*
noteCutMessage=Enigmail: *Multiple message blocks found -- decryption/verification aborted*
decryptOkNoSig=è¦å‘Š\n\n復å·ã«æˆåŠŸã—ã¾ã—ãŸãŒã€ç½²åã¯æ£ã—ãæ¤œè¨¼ã§ãã¾ã›ã‚“ã§ã—ãŸ
msgOvl.button.contAnyway=ãれã§ã‚‚続行ã—ã¾ã™ã‹ï¼Ÿ(&C)
signature.verifiedOK=添付ファイル %S ã®ç½²åã®æ¤œè¨¼ã«æˆåŠŸã—ã¾ã—ãŸ
signature.verifyFailed=添付ファイル %S ã®ç½²åã®æ¤œè¨¼ã«å¤±æ•—ã—ã¾ã—ãŸ
attachment.noMatchToSignature=添付ファイル '%S' ã¯ç½²åファイルã«é©åˆã—ã¾ã›ã‚“ã§ã—ãŸ
attachment.noMatchFromSignature=ç½²åファイル '%S' ã¯æ·»ä»˜ãƒ•ァイルã«é©åˆã—ã¾ã›ã‚“ã§ã—ãŸ
fixBrokenExchangeMsg.failed=メッセージを修復ã§ãã¾ã›ã‚“ã§ã—ãŸ
keysToExport=エクスãƒãƒ¼ãƒˆã™ã‚‹ OpenPGP éµã®ãƒ¦ãƒ¼ã‚¶ ID (メールアドレス)
keysToUse=%S ã«ä½¿ç”¨ã™ã‚‹ OpenPGP éµã‚’é¸æŠžã—ã¦ãã ã•ã„
pubKey=%Sã®å…¬é–‹éµ \n
windowLocked=作æˆç”»é¢ãŒãƒãƒƒã‚¯ã•れã¦ã„ã¾ã™ã€‚é€ä¿¡ã¯ã‚ャンセルã•れã¾ã—ãŸ
sendUnencrypted=Enigmail ã®åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ\n何もã—ãªã„ã§å¹³æ–‡ã‚’é€ä¿¡ã—ã¾ã™ã‹ï¼Ÿ
composeSpecifyEmail=主ã«ä½¿ã†ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’決ã‚ã¦ãã ã•ã„。ãれã¯é€ä¿¡ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ç½²åã™ã‚‹éš›ã«ä½¿ç”¨ã•れã¾ã™\n空白ã«ã—ãŸå ´åˆã€å·®å‡ºäººã‚¢ãƒ‰ãƒ¬ã‚¹ãŒç½²åã‚’ã™ã‚‹éš›ã®éµã® ID ã¨ã—ã¦ä½¿ç”¨ã•れã¾ã™
sendingHiddenRcpt=ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ BCC (blind carbon copy) ã§ã®å—å–人ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æš—å·åŒ–ã—ãŸå ´åˆã€BCC å—ä¿¡è€…ã‚’éš è”½ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ãŒ PGP Corp. ã®è£½å“ã®ã‚ˆã†ã«å¾©å·ã§ããªã„製å“ãŒã‚りã¾ã™ã€‚ã“ã®ã‚ˆã†ãªã“ã¨ã‹ã‚‰æš—å·åŒ–メッセージã«ã¯ BCC ã®ä½¿ç”¨ã‚’é¿ã‘ã‚‹ã“ã¨ã‚’ãŠå‹§ã‚ã—ã¾ã™
sendWithHiddenBcc=BCC å—ä¿¡è€…ã‚’éš è”½ã™ã‚‹
sendWithShownBcc=BCC å—ä¿¡è€…ã‚’éš è”½ã—ãªã„
sendingNews=æš—å·åŒ–é€ä¿¡ã¯ä¸æ–ã—ã¾ã—ãŸ\n\nニュースグループã®å—å–人ãŒå«ã¾ã‚Œã¦ã„ã‚‹ãŸã‚æš—å·åŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚æš—å·åŒ–ã›ãšã«å†åº¦ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã—ã¦ãã ã•ã„
sendToNewsWarning=è¦å‘Š: ã‚ãªãŸã¯ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚°ãƒ«ãƒ¼ãƒ—ã«é€ä¿¡ã™ã‚‹ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æš—å·åŒ–ã—よã†ã¨ã—ã¦ã„ã¾ã™\n\nã“れã¯ã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ¡ãƒ³ãƒãƒ¼å…¨å“¡ãŒå¾©å·å¯èƒ½ã¨åˆ¤æ–ã§ãã‚‹å ´åˆä»¥å¤–ã¯ãŠå‹§ã‚ã§ãã¾ã›ã‚“。ã™ãªã‚ã¡ã€ã‚°ãƒ«ãƒ¼ãƒ—å‚åŠ è€…å…¨å“¡ã®å…¬é–‹éµãŒå¿…è¦ã ã¨ã„ã†ã“ã¨ã§ã™ã€‚何をã—よã†ã¨ã—ã¦ã„ã‚‹ã‹ã‚’判ã£ã¦ã„ã‚‹å ´åˆã ã‘é€ä¿¡ã—ã¦ä¸‹ã•ã„\n\nç¶šã‘ã¾ã™ã‹ï¼Ÿ
hasHTML=HTML メールã®è¦å‘Š:\nã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ HTML ã‚’å«ã‚€ã¨æ€ã‚れã¾ã™ãŒã€ãã®å ´åˆã€ç½²å/æš—å·åŒ–ã«å¤±æ•—ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚今後ã«ã‚ãŸã‚Šå›žé¿ã™ã‚‹ãŸã‚ã«ã¯ã€ç½²å付ãメールをé€ã‚‹ã¨ãã«ã¯ä½œæˆ/返信ボタンを SHIFT ã‚ーを押ã—ãªãŒã‚‰ã‚¯ãƒªãƒƒã‚¯ã—ã¦ãã ã•ã„\nã‚‚ã—æ—¢å®šã§ç½²åã™ã‚‹è¨å®šã®å ´åˆã¯ã€ã“ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã®è¨å®šã§ã€ŒHTML å½¢å¼ã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’作æˆã™ã‚‹ã€ã®ãƒã‚§ãƒƒã‚¯ãƒœãƒƒã‚¯ã‚¹ã‹ã‚‰ãƒã‚§ãƒƒã‚¯ã‚’ã¯ãšã—ã€æ’久的㫠HTML メールを作æˆã—ãªã„よã†ã«ã—ã¦ãã ã•ã„
strippingHTML=メッセージã«å«ã¾ã‚Œã‚‹ HTML å½¢å¼ã¯ã€ç½²å/æš—å·åŒ–ã™ã‚‹æ™‚ã«ãƒ—レーンテã‚ストã«å¤‰æ›ã•れるãŸã‚ã«ã€å¤±ã‚れã¾ã™ã€‚ãれã§ã‚‚ç¶šã‘ã¾ã™ã‹ï¼Ÿ
msgCompose.button.sendAnyway=ã¨ã«ã‹ãé€ä¿¡ã™ã‚‹(&S)
attachWarning=ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«æ·»ä»˜ã—よã†ã¨ã—ã¦ã„ã‚‹ã®ã¯ãƒãƒ¼ã‚«ãƒ«ãƒ•ァイルã§ã¯ãªã„ã®ã§ã€æš—å·åŒ–ã§ãã¾ã›ã‚“。添付ファイルを暗å·åŒ–ã™ã‚‹ãŸã‚ã«ã¯ã€ã¾ãšãƒãƒ¼ã‚«ãƒ«ãƒ•ァイルã¨ã—ã¦ä¿å˜ã—ã¦ã‹ã‚‰æ·»ä»˜ã—ã¦ãã ã•ã„。構ã‚ãšæ¬¡ã¸é€²ã¿ã¾ã™ã‹ï¼Ÿ
quotedPrintableWarn=Quoted-Printable エンコーディングãŒé€ä¿¡ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«å¯¾ã—ã¦æœ‰åйã«ãªã£ã¦ã„ã¾ã™ã€‚ ã“れã«ã‚ˆã‚Šã€æš—å·åŒ–ã‚„ã€ç½²åã®æ¤œè¨¼ã®å‹•ä½œã«æ‚ªå½±éŸ¿ã‚’åŠã¼ã™å¯èƒ½æ€§ãŒã‚りã¾ã™\n今ã™ã Quoted-Printable エンコーディングを無効ã«ã—ã¾ã™ã‹ï¼Ÿ
minimalLineWrapping=%S æ–‡å—ã§æ”¹è¡Œã™ã‚‹è¨å®šã«ãªã£ã¦ã„ã¾ã™ã€‚æ£ã—ã„æš—å·åŒ–åŠã³ç½²åã«ã¯ã€å°‘ãªãã¨ã‚‚ 68 æ–‡å—ã§æ”¹è¡Œã™ã‚‹å¿…è¦ãŒã‚りã¾ã™\n今ã™ãæ”¹è¡Œæ–‡å—æ•°ã‚’ 68 ã¸å¤‰æ›´ã—ã¾ã™ã‹ï¼Ÿ
warning=è¦å‘Š
signIconClicked=ç½²åã®è¨å®šã‚’手動ã§å¤‰æ›´ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ä½œæˆä¸ã¯ã€ç½²åã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) を無視ã—ã¾ã™
pgpMime_sMime.dlg.text=PGP/MIME 㨠S/MIME ã‚’åŒæ™‚ã«æœ‰åйã«ã—ã¾ã—ãŸãŒã€ã“れらã®ãƒ—ãƒãƒˆã‚³ãƒ«ã‚’åŒæ™‚ã«ã‚µãƒãƒ¼ãƒˆã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。ã©ã¡ã‚‰ã‚’利用ã™ã‚‹ã‹é¸æŠžã—ã¦ãã ã•ã„
pgpMime_sMime.dlg.pgpMime.button=&PGP/MIME を利用ã™ã‚‹
pgpMime_sMime.dlg.sMime.button=&S/MIME を利用ã™ã‚‹
errorKeyUnusable=メールアドレスã‚ã‚‹ã„ã¯éµ ID '%S' ã¯æœ‰åйã‹ã¤æœŸé™åˆ‡ã‚Œã§ãªã„ OpenPGP éµã«é©åˆã—ã¾ã›ã‚“ã§ã—ãŸ\nアカウントè¨å®šã§æœ‰åŠ¹ãª OpenPGP éµãŒæŒ‡å®šã•れã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„
errorOwnKeyUnusable=ç¾åœ¨ã®å·®å‡ºäººã«æŒ‡å®šã•れã¦ã„ã‚‹éµ ID '%S' ã¯åˆ©ç”¨å¯èƒ½ãª OpenPGP éµã«é©åˆã—ã¾ã›ã‚“ã§ã—ãŸ\n\nアカウントè¨å®šã§æœ‰åйã‹ã¤æœŸé™åˆ‡ã‚Œã§ãªã„ OpenPGP éµãŒæŒ‡å®šã•れã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„\néµãŒæœŸé™åˆ‡ã‚Œã§ã¯ãªã„ã«ã‚‚ã‹ã‹ã‚らãšã“ã®ã‚¨ãƒ©ãƒ¼ãŒè¡¨ç¤ºã•ã‚Œã‚‹å ´åˆã«ã¯ã€æ‰€æœ‰è€…ã«ã‚ˆã‚‹ä¿¡ç”¨åº¦ãŒã€Œå®Œå…¨ã«ä¿¡ç”¨ã€ã‚ã‚‹ã„ã¯ã€Œçµ¶å¯¾çš„ã«ä¿¡ç”¨ã€ã«ãªã£ã¦ã„ã‚‹ã‹ç¢ºèªã—ã¦ãã ã•ã„
msgCompose.cannotSaveDraft=下書ãã‚’æš—å·åŒ–ã—ã¦ä¿å˜ã™ã‚‹éš›ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ:
msgCompose.internalEncryptionError=内部エラー: 期待ã•ã‚ŒãŸæš—å·åŒ–ã¯ç„¡åŠ¹åŒ–ã•れã¾ã—ãŸ
msgCompose.internalError=内部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸ
msgCompose.toolbarTxt.signAndEncrypt=ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯æš—å·åŒ–ãŠã‚ˆã³ç½²åã•れã¾ã™
msgCompose.toolbarTxt.signOnly=ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ç½²åã•れã¾ã™
msgCompose.toolbarTxt.encryptOnly=ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯æš—å·åŒ–ã•れã¾ã™
msgCompose.toolbarTxt.noEncryption=ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯æš—å·åŒ–ã‚‚ç½²åã‚‚ã•れã¾ã›ã‚“
msgCompose.toolbarTxt.disabled=é¸æŠžã—ãŸå·®å‡ºäººã«ã¤ã„㦠Enigmail ã¯ç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™
msgCompose.toolbarTxt.smime=S/MIME ãŒæœ‰åŠ¹åŒ–ã•れã¦ã„ã¾ã™ - Enigmail ã¨è¡çªã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™
msgCompose.toolbarTxt.smimeOff=- S/MIME ã¯ä½¿ç”¨ã•れã¾ã›ã‚“
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME ãŒæœ‰åŠ¹åŒ–ã•れã¦ã„ã¾ã™ - Enigmail ã¯ä½¿ç”¨ã•れã¾ã›ã‚“
msgCompose.toolbarTxt.smimeNoDraftEncryption=- 下書ãã¯æš—å·åŒ–ã•れã¾ã›ã‚“
msgCompose.toolbarTxt.smimeConflict=S/MIME ãŒæœ‰åŠ¹åŒ–ã•れã¦ã„ã‚‹ãŸã‚ã€Enigmail ã¯ä½¿ç”¨ã•れã¾ã›ã‚“。S/MIME ã«ã‚ˆã‚‹ç½²å/æš—å·åŒ–を無効化ã—ã¦ã‹ã‚‰ Enigmail ã«ã‚ˆã‚‹æš—å·åŒ–を有効化ã—ã¦ãã ã•ã„
msgCompose.encryptedSubjectStub=æš—å·åŒ–ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
msgCompose.detailsButton.label=詳細...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=é€ä¿¡ãŒä¸æ–ã•れã¾ã—ãŸ\n\n
# details:
keyNotTrusted=éµ '%S' ã«ã¯å分ãªä¿¡ç”¨åº¦ãŒã‚りã¾ã›ã‚“
keyNotFound=éµ '%S' ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
keyRevoked=éµ '%S' ã¯å¤±åйã—ã¦ã„ã¾ã™
keyExpired=éµ '%S' ã¯æœŸé™åˆ‡ã‚Œã§ã™
statPGPMIME=PGP/MIME
statSigned=ç½²åã•れãŸ
statEncrypted=æš—å·åŒ–ã•れãŸ
statPlain=ç½²åã‚‚æš—å·åŒ–ã‚‚ã•れã¦ã„ãªã„
offlineSave=%2$S 宛㮠%1$S メッセージを未é€ä¿¡ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãƒ•ォルダã¸ä¿å˜ã—ã¾ã™ã‹ï¼Ÿ
onlineSend=%2$S 宛㮠%1$S メッセージをé€ä¿¡ã—ã¾ã™ã‹ï¼Ÿ
encryptKeysNote=注æ„: ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯æ¬¡ã®ãƒ¦ãƒ¼ã‚¶ ID/éµã«å¯¾ã—ã¦æš—å·åŒ–ã•れã¦ã„ã¾ã™: %S
hiddenKey=<éš è”½ã•れãŸéµ>
signFailed=Enigmail エラー; ç½²å/æš—å·åŒ–ã«å¤±æ•—ã—ã¾ã—ãŸã€‚æš—å·åŒ–ã›ãšã«å¹³æ–‡ã‚’é€ä¿¡ã—ã¾ã™ã‹ï¼Ÿ
msgCompose.button.sendUnencrypted=æš—å·åŒ–ã›ãšã«å¹³æ–‡ã‚’é€ä¿¡ã™ã‚‹(&S)
recipientsSelectionHdr=æš—å·åŒ–ã®ãŸã‚ã®å—å–人を指定ã—ã¦ãã ã•ã„
configureNow=ã“ã® ID ã«å¯¾ã—㦠Enigmail ã‚»ã‚ュリティ ãŒã¾ã è¨å®šã•れã¦ã„ã¾ã›ã‚“。今ã™ãè¨å®šã—ã¾ã™ã‹ï¼Ÿ
# encryption/signing status and associated reasons:
encryptMessageAuto=æš—å·åŒ–: 有効 (自動)
encryptMessageNorm=æš—å·åŒ–: 有効
signMessageAuto=ç½²å: 有効 (自動)
signMessageNorm=ç½²å: 有効
encryptOff=æš—å·åŒ–: 無効
encryptOnWithReason=æš—å·åŒ–: 有効 (%S)
encryptOffWithReason=æš—å·åŒ–: 無効 (%S)
encryptOn=æš—å·åŒ–: 有効
signOn=ç½²å: 有効
signOff=ç½²å: 無効
signOnWithReason=ç½²å: 有効 (%S)
signOffWithReason=ç½²å: 無効 (%S)
reasonEnabledByDefault=æ—¢å®šã§æœ‰åй
reasonManuallyForced=æ‰‹å‹•ã§æŒ‡å®š
reasonByRecipientRules=å—å–人ã”ã¨ã®è¨å®šã«ã‚ˆã‚‹æŒ‡å®š
reasonByAutoEncryption=é€ä¿¡æ™‚ã®è¨å®šã«ã‚ˆã‚‹æŒ‡å®š
reasonByConflict=å—å–人ã”ã¨ã®è¨å®šã«çŸ›ç›¾ãŒå˜åœ¨
reasonByEncryptionMode=æš—å·åŒ–モードã«ã‚ˆã‚‹æŒ‡å®š
reasonSmimeConflict=S/MIME ãŒæœ‰åŠ¹åŒ–ã•れã¦ã„ã¾ã™
# should not be used anymore:
encryptYes=æš—å·åŒ–ã™ã‚‹
encryptNo=æš—å·åŒ–ã—ãªã„
# should not be used anymore:
signYes=ç½²åã™ã‚‹
signNo=ç½²åã—ãªã„
# PGP/MIME status:
pgpmimeNormal=プãƒãƒˆã‚³ãƒ«: PGP/MIME
inlinePGPNormal=プãƒãƒˆã‚³ãƒ«: インライン PGP
pgpmimeAuto=プãƒãƒˆã‚³ãƒ«: PGP/MIME (自動)
inlinePGPAuto=プãƒãƒˆã‚³ãƒ«: インライン PGP (自動)
# should not be used anymore
pgpmimeYes=PGP/MIME
pgpmimeNo=インライン PGP
# Attach own key status (tooltip strings):
attachOwnKeyNo=ã‚ãªãŸã®å…¬é–‹éµã¯æ·»ä»˜ã•れã¾ã›ã‚“
attachOwnKeyYes=ã‚ãªãŸã®å…¬é–‹éµãŒæ·»ä»˜ã•れã¾ã™
attachOwnKeyDisabled=ã‚ãªãŸã®å…¬é–‹éµã‚’添付ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。éµã‚’添付ã™ã‚‹ãŸã‚ã«ã¯ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆè¨å®š → OpenPGP ã‚»ã‚ュリティ\nã«ãŠã„ã¦ã“ã®æ©Ÿèƒ½ã‚’有効化ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™
rulesConflict=å—å–人ã”ã¨ã®è¨å®šã«çŸ›ç›¾ãŒã‚りã¾ã™\n%S\n\nã“れらã®è¨å®šã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ä¿¡ã—ã¾ã™ã‹ï¼Ÿ
msgCompose.button.configure=è¨å®šã™ã‚‹(&C)
msgCompose.button.send=メッセージをé€ä¿¡ã™ã‚‹(&S)
msgCompose.button.save=メッセージをä¿å˜ã™ã‚‹(&S)
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=ç½²åã®æ¤œè¨¼ã«ã¯å…¬é–‹éµ %S ãŒå¿…è¦ã§ã™
keyUsed=ç½²åã®æ¤œè¨¼ã«ã¯å…¬é–‹éµ %S ãŒä½¿ã‚れã¾ã—ãŸ
clickDecrypt=; 「復å·/æ¤œè¨¼ã€æ©Ÿèƒ½ã‚’使用ã—ã¦ãã ã•ã„
clickDecryptRetry=; å†åº¦è©¦ã™ã«ã¯ã€ã€Œå¾©å·/æ¤œè¨¼ã€æ©Ÿèƒ½ã‚’使用ã—ã¦ãã ã•ã„
clickDetailsButton=; 詳ã—ãã¯ã€Œè©³ç´°ã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦ãã ã•ã„
clickImportButton=; 「éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã€ãƒœã‚¿ãƒ³ã‚’クリックã—ã¦éµã‚’インãƒãƒ¼ãƒˆã—ã¦ãã ã•ã„
keyTypeUnsupported=; ã“ã®å½¢å¼ã®éµã¯ãŠä½¿ã„ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® GnuPG ã§ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“
msgPart=メッセージã®ä¸€éƒ¨åˆ†ãŒ %S ã•れã¦ã„ã¾ã™
msgSigned=ç½²å
msgSignedUnkownKey=䏿˜Žãªéµã§ç½²å
msgEncrypted=æš—å·åŒ–
msgSignedAndEnc=ç½²åã‹ã¤æš—å·åŒ–
unverifiedSig=検証ã§ããªã„ç½²åã§ã™
incompleteDecrypt=復å·ãŒä¸å®Œå…¨ã§ã™
needKey=エラー - メッセージã®å¾©å·ã«é©åˆã™ã‚‹ç§˜å¯†éµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
failedDecrypt=エラー - 復å·ã«å¤±æ•—ã—ã¾ã—ãŸ
badPhrase=エラー - 無効ãªãƒ‘スフレーズã§ã™
failedDecryptVerify=エラー - 復å·/検証ã«å¤±æ•—ã—ã¾ã—ãŸ
viewInfo=; 詳細ã¯ã€Œãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£æƒ…å ±ã€ã‚’確èªã—ã¦ãã ã•ã„
decryptedMsg=復å·ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
decryptedMsgWithFormatError=復å·ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ (å¤ã„ Exchange サーãƒã«ã‚ˆã‚‹ PGP フォーマットã®ç ´æã‚’修復ã—ã¦ã„ã‚‹ãŸã‚ã€å¾©å·çµæžœã‚’æ£ã—ãèªã‚€ã“ã¨ãŒã§ããªã„å¯èƒ½æ€§ãŒã‚りã¾ã™)
usedAlgorithms=使用アルゴリズム: %S ãŠã‚ˆã³ %S
# strings in pref-enigmail.js
oldGpgVersion14=Enigmail ã®åˆæœŸåŒ–ã«å¤±æ•—ã—ã¾ã—ãŸ\n\nGnuPG ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %S ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã¾ã™ãŒã€ã“ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã® GnuPG 㯠Enigmail ã§ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。Enigmail ã®å‹•作ã«ã¯ GnuPG ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.0.7 以é™ãŒå¿…è¦ã§ã™ã€‚GnuPG をアップグレードã—ã¦ãã ã•ã„
locateGpg=GnuPG プãƒã‚°ãƒ©ãƒ を指定ã™ã‚‹
invalidGpgPath=GnuPG ã¯è¨å®šã•れã¦ã„るパスã§ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。Enigmail 㯠GnuPG ã®ãƒ‘スをå†è¨å®šã™ã‚‹ã‹ã€ã‚¢ãƒ—リケーションをå†èµ·å‹•ã™ã‚‹ã¾ã§ç„¡åйã¨ãªã‚Šã¾ã™
warningsAreReset=ã™ã¹ã¦ã®è¦å‘Šã¯ãƒªã‚»ãƒƒãƒˆã•れã¾ã—ãŸ
prefs.gpgFound=GnuPG 実行ファイル:%S
prefs.gpgNotFound=GnuPG ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ
prefs.warnAskNever=è¦å‘Š: ã“ã®è¨å®šã‚’有効ã«ã™ã‚‹ã¨ã€å—å–人ã®ä¸€äººã«ã§ã‚‚éµãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã«ã€ä¸€åˆ‡ã®é€šçŸ¥ã‚‚ãªãæš—å·åŒ–ã•れãªããªã‚Šã¾ã™ã€‚Enigmail ã¯ã“ã®ã‚ˆã†ãªã“ã¨ãŒèµ·ã“ã£ã¦ã‚‚一切通知ã—ã¾ã›ã‚“
prefs.warnIdleTimeForUnknownAgent=gpg-agent ã«æŽ¥ç¶šã§ãã¾ã›ã‚“。ã“ã®ã‚·ã‚¹ãƒ†ãƒ ã§ã¯ãƒ‘スフレーズã®ç®¡ç†ã« gpg-agent ã§ã¯ãªã特別ãªãƒ„ール (例:gnome-keyringã€seahorse-agentã€KDE wallet manager ãªã©) ãŒä½¿ã‚れã¦ã„るよã†ã§ã™ã€‚Enigmail ã¯ã“れらã®ãƒ„ールã«ã‚ˆã‚‹ãƒ‘スフレーズã®è¨˜æ†¶æ™‚間を制御ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“。ãã®ãŸã‚ã€Enigmail ã§ã®ãƒ‘スフレーズã®è¨˜æ†¶æ™‚é–“ã®è¨å®šã¯ç„¡è¦–ã•れã¾ã™
prefEnigmail.oneKeyserverOnly=エラー - OpenPGP éµã®è‡ªå‹•çš„ãªãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã®ãŸã‚ã®å…¬é–‹éµã‚µãƒ¼ãƒã¯ 1 ã¤ã—ã‹æŒ‡å®šã§ãã¾ã›ã‚“
enterAdminPin=スマートカードã®ç®¡ç†è€… PIN を入力ã—ã¦ãã ã•ã„
enterCardPin=スマートカード㮠PIN を入力ã—ã¦ãã ã•ã„
notInit=エラー - Enigmail サービスã¯ã¾ã åˆæœŸåŒ–ã•れã¦ã„ã¾ã›ã‚“
badCommand=エラー - æš—å·åŒ–コマンドã¯å¤±æ•—ã—ã¾ã—ãŸ
cmdLine=コマンドラインã¨å‡ºåŠ›:
notRequired=エラー - æš—å·åŒ–ã¯å¿…è¦ã‚りã¾ã›ã‚“
notComplete=エラー - éµã®ç”ŸæˆãŒçµ‚了ã—ã¦ã„ã¾ã›ã‚“
invalidEmail=エラー - 無効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã™
noPassphrase=エラー - パスフレーズãŒå…¥åŠ›ã•れã¦ã„ã¾ã›ã‚“
noPGPblock=エラー - 有効㪠OpenPGP データブãƒãƒƒã‚¯ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
unverifiedReply=インデントã•れ㟠(返信) 部分ãŒãŠãらãä¿®æ£ã•れã¦ã„ã¾ã™
keyInMessageBody=メッセージä¸ã«éµãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚「éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã€ã‚’クリックã—ã¦éµã‚’インãƒãƒ¼ãƒˆã—ã¦ãã ã•ã„
sigMismatch=エラー - ç½²åãŒä¸æ£ã§ã™
cantImport=公開éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ\n\n
doImportOne=éµ %1$S (%2$S) をインãƒãƒ¼ãƒˆã—ã¾ã™ã‹ï¼Ÿ
doImportMultiple=ã“れらã®éµã‚’インãƒãƒ¼ãƒˆã—ã¾ã™ã‹ï¼Ÿ\n\n%S
previewFailed=公開éµã®èªã¿è¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ
# Strings used in errorHandling.jsm
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=指定ã•れãŸéµ ID "%S" ãŒéµæŸã®ä¸ã«ã‚りã¾ã›ã‚“
keyError.resolutionAction=アカウントè¨å®š → OpenPGP ã‚»ã‚ュリティã«ãŠã„ã¦æ£å½“ãªéµã‚’指定ã—ã¦ãã ã•ã„
missingPassphrase=パスフレーズãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
errorHandling.gpgAgentInvalid=システムã§åˆ©ç”¨ã•れã¦ã„ã‚‹ gpg-agent ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ã€GnuPG ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¨äº’æ›æ€§ãŒã‚りã¾ã›ã‚“
errorHandling.gpgAgentError=GnuPG ãŒã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®ä¸€éƒ¨ã§ã‚ã‚‹ gpg-agent ã¨ã®ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã«é–¢ã™ã‚‹ã‚¨ãƒ©ãƒ¼ã‚’å ±å‘Šã—ã¦ã„ã¾ã™
errorHandling.dirmngrError=GnuPG ãŒã‚³ãƒ³ãƒãƒ¼ãƒãƒ³ãƒˆã®ä¸€éƒ¨ã§ã‚ã‚‹ dirmngr ã¨ã®ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã«é–¢ã™ã‚‹ã‚¨ãƒ©ãƒ¼ã‚’å ±å‘Šã—ã¦ã„ã¾ã™
errorHandling.pinentryError=GnuPG ã¯ã‚ãªãŸã®ãƒ‘スフレーズを pinentry 経由ã§å•ã„åˆã‚ã›ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ
errorHandling.readFaq=ã“れã¯ã‚·ã‚¹ãƒ†ãƒ ã®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã‚ã‚‹ã„ã¯è¨å®šã®ã‚¨ãƒ©ãƒ¼ã§ã‚りã€Enigmail ãŒè‡ªå‹•çš„ã«ä¿®æ£ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“\n\n以下ã®ã‚¦ã‚§ãƒ–サイトをå‚ç…§ã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™: https://enigmail.net/faq
gpgNotFound=GnuPG プãƒã‚°ãƒ©ãƒ ã‚’ '%S' ã«è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ\nEnigmail ã®è¨å®šã§ã€GnuPG 実行ファイルã®ãƒ‘ã‚¹ãŒæ£ã—ãè¨å®šã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ç¢ºèªã—ã¦ãã ã•ã„
gpgNotInPath=GnuPG 実行ファイルを PATH ã®ä¸ã‹ã‚‰è¦‹ã¤ã‘られã¾ã›ã‚“ã§ã—ãŸ\nEnigmail ã®è¨å®šã§ã€GnuPG 実行ファイルã®ãƒ‘ã‚¹ãŒæ£ã—ãè¨å®šã•れã¦ã„ã‚‹ã‹ã©ã†ã‹ç¢ºèªã—ã¦ãã ã•ã„
enigmailNotAvailable=Enigmail コアサービスを利用ã§ãã¾ã›ã‚“
gpgAgentNotStarted=使用ã—ã¦ã„ã‚‹ GnuPG ãƒãƒ¼ã‚¸ãƒ§ãƒ³ %S ã§å¿…è¦ãª gpg-agent ã‚’é–‹å§‹ã§ãã¾ã›ã‚“
prefUntrusted=ä¿¡é ¼ã—ã¦ã„ãªã„
prefRevoked=失効済ã¿ã®éµ
prefExpiredKey=期é™åˆ‡ã‚Œã®éµ
prefExpired=期é™åˆ‡ã‚Œ
prefGood=%S ã«ã‚ˆã‚‹æ£å½“ãªç½²åã§ã™
prefBad=%S ã«ã‚ˆã‚‹ä¸æ£ãªç½²åã§ã™
failCancel=エラー - ユーザーã«ã‚ˆã£ã¦éµã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ãŒä¸æ¢ã•れã¾ã—ãŸ
failNoServer=エラー - éµã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ãŸã‚ã®éµã‚µãƒ¼ãƒãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“
failNoID=エラー - éµã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ãŸã‚ã® ID ãŒæŒ‡å®šã•れã¦ã„ã¾ã›ã‚“
failKeyExtract=エラー - éµã®å±•開コマンドã«å¤±æ•—ã—ã¾ã—ãŸ
notFirstBlock=エラー - 最åˆã® OpenPGP ブãƒãƒƒã‚¯ã¯å…¬é–‹éµã§ã¯ã‚りã¾ã›ã‚“
importKeyConfirm=メッセージä¸ã«åŸ‹ã‚è¾¼ã¾ã‚ŒãŸéµã‚’インãƒãƒ¼ãƒˆã—ã¾ã™ã‹ï¼Ÿ
failKeyImport=エラー - éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ
fileWriteFailed=ファイル %S ã¸ã®æ›¸ãè¾¼ã¿ã«å¤±æ•—ã—ã¾ã—ãŸ
importKey=å…¬é–‹éµ %S ã‚’éµã‚µãƒ¼ãƒã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™:
uploadKey=å…¬é–‹éµ %S ã‚’éµã‚µãƒ¼ãƒã¸ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ã¾ã™:
keyId=éµ ID
keyAndSigDate=éµ ID: 0x%1$S / ç½²åæ—¥æ™‚: %2$S
keyFpr=フィンガープリント: %S
noEmailProvided=メールアドレスãŒå…¥åŠ›ã•れã¦ã„ã¾ã›ã‚“ï¼
keyAlreadySigned=ã“ã®éµã¯æ—¢ã«ç½²åã•れã¦ã„ã¾ã™ã€‚2 度ã¯ç½²åã§ãã¾ã›ã‚“
gnupg.invalidKey.desc=éµ %S ã¯æœ‰åйã§ã¯ãªã„ã€ã‚ã‚‹ã„ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“。期é™åˆ‡ã‚Œã®å¯èƒ½æ€§ãŒã‚りã¾ã™
selKeyExpired=期é™åˆ‡ã‚Œã® %S
createdHeader=生æˆã•れã¾ã—ãŸ
atLeastOneKey=éµãŒ 1 ã¤ã‚‚é¸æŠžã•れã¦ã„ã¾ã›ã‚“。少ãªãã¨ã‚‚ 1 ã¤ã®éµã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™
fewerKeysThanRecipients=å—å–人より少ãªã„æ•°ã®éµã—ã‹é¸æŠžã•れã¦ã„ã¾ã›ã‚“。éµã®é¸æŠžã‚’終了ã—ã¦ã‚‚よã‚ã—ã„ã§ã™ã‹ï¼Ÿ
userSel.button.goBack=éµã®é¸æŠžã«æˆ»ã‚‹
userSel.secretKeySel.title=ç½²å用ã®ç§˜å¯†éµã‚’é¸æŠžã™ã‚‹
userSel.problemNoKey=有効ãªéµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“
userSel.problemMultipleKeys=複数ã®éµãŒã‚りã¾ã™
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=後ã§é€ä¿¡
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=注æ„: PGP/MIME ã¯é™ã‚‰ã‚ŒãŸãƒ¡ãƒ¼ãƒ©ã§ã—ã‹ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“ï¼Windows ã§ã‚れã°ã€Thunderbird + Enigmailã€Sylpheedã€Pegasusã€Mulberryã€Becky! Internet Mailã€QMAIL3ã€Edmax ãªã©ãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã‚‹ã“ã¨ã§çŸ¥ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚Linux/UNIX 㨠Mac OS X ã®ãƒãƒ”ュラーãªãƒ¡ãƒ¼ãƒ©ã¯ PGP/MIME をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ã€‚よãã‚ã‹ã‚‰ãªã„å ´åˆã¯ã€%S è¨å®šã‚’é¸æŠžã—ã¦ãã ã•ã„
first=1 番目ã®
second=2 番目ã®
# Strings used in am-enigprefs.js
encryptKeyHeader=æš—å·åŒ–ã®ãŸã‚ã® OpenPGP éµã®é¸æŠž
identityName=ID: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=æš—å·åŒ–を有効ã«ã—ã¾ã—ãŸãŒã€éµã‚’é¸æŠžã—ã¦ã„ã¾ã›ã‚“。%1$S ã¸é€ä»˜ã™ã‚‹ãƒ¡ãƒ¼ãƒ«ã‚’æš—å·åŒ–ã™ã‚‹ãŸã‚ã«ã¯ã€æœ‰åйãªéµã‚’éµãƒªã‚¹ãƒˆã‹ã‚‰é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚%2$S ã¸ã®æš—å·åŒ–を無効ã«ã—ã¾ã™ã‹ï¼Ÿ
noKeyToUse=(ç„¡ã— - æš—å·åŒ–ã—ãªã„)
noEmptyRule=空ã®ãƒ«ãƒ¼ãƒ«ã¯ç„¡åйã§ã™ã€‚ルール欄ã«ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’è¨å®šã—ã¦ãã ã•ã„
invalidAddress=入力ã—ãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒç„¡åйã§ã™ã€‚å—å–人ã®åå‰ã¯è¨å®šã§ãã¾ã›ã‚“。メールアドレスã ã‘ã«ã—ã¦ãã ã•ã„。例:\n 無効ãªä¾‹: 日本 花å \næ£ã—ã„例: hanako.nippon@address.net
noCurlyBrackets=䏿‹¬å¼§ {} ã¯ç‰¹åˆ¥ãªæ„味をæŒã¡ã¾ã™ã®ã§ã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«ä½¿ç”¨ã—ãªã„ã§ãã ã•ã„。ã“ã®ãƒ«ãƒ¼ãƒ«ã«å½“ã¦ã¯ã¾ã‚‹æ™‚ã®å‹•作を修æ£ã—ãŸã„ã™ã‚‹å ´åˆã¯ã€'å—å–人ãŒä¸Šè¨˜ã‚¢ãƒ‰ãƒ¬ã‚¹...' オプションを使用ã—ã¦ãã ã•ã„\nè©³ç´°ãªæƒ…å ±ã¯ãƒ˜ãƒ«ãƒ—ボタンを押ã—ã¦ãã ã•ã„
# Strings used in enigmailRulesEditor.js
never=無効
always=有効
possible=返信時ã®ã¿
deleteRule=é¸æŠžã—ãŸãƒ«ãƒ¼ãƒ«ã‚’本当ã«å‰Šé™¤ã—ã¾ã™ã‹ï¼Ÿ
nextRcpt=(次ã®å—å–人)
negateRule=Not
addKeyToRule=éµ %1$S (%2$S) ã‚’å—å–人ã”ã¨ã®è¨å®šã«è¿½åŠ ã™ã‚‹
# Strings used in enigmailSearchKey.js
needOnline=é¸æŠžã•ã‚ŒãŸæ©Ÿèƒ½ã¯ã‚ªãƒ•ラインモードã§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“。オンラインã®ã¨ãã«ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„
protocolNotSupported=é¸æŠžã—ãŸãƒ—ãƒãƒˆã‚³ãƒ« '%S://' ã¯ã€OpenPGP éµã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ç”¨ã«ã¯ã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“
gpgkeysDisabled=次ã®ã‚ªãƒ—ションを有効ã«ã™ã‚‹ã¨è‰¯ã„ã‹ã‚‚ã—れã¾ã›ã‚“。'extensions.enigmail.useGpgKeysTool'
noKeyserverConn=éµã‚µãƒ¼ãƒ %S ã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸ
keyDownloadFailed=éµã‚µãƒ¼ãƒã‹ã‚‰éµã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ã«å¤±æ•—ã—ã¾ã—ãŸã€‚ステータスメッセージã¯ä»¥ä¸‹ã®é€šã‚Šã§ã™:\n%S
internalError=内部エラーãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚éµã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ
noKeyFound=残念ãªãŒã‚‰ã€æŒ‡å®šã•ã‚ŒãŸæ¤œç´¢æ¡ä»¶ã«é©åˆã™ã‚‹éµã‚’見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=éµã‚µãƒ¼ãƒã§ã®æ¤œç´¢ã‚‚ã—ãã¯ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ: gpgkeys_%S ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“ã§ã—ãŸ
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=所有者ã®ä¿¡ç”¨åº¦ã‚’è¨å®šã§ãã¾ã›ã‚“ã§ã—ãŸ
# Strings in enigmailSignKeyDlg.js
signKeyFailed=éµã¸ã®ç½²åã«å¤±æ•—ã—ã¾ã—ãŸ
alreadySigned.label=注æ„: éµ ID %S ã¯é¸æŠžã•れãŸç§˜å¯†éµã«ã‚ˆã£ã¦æ—¢ã«ç½²åã•れã¦ã„ã¾ã™
alreadySignedexportable.label=注æ„: éµ ID %S ã¯é¸æŠžã•れãŸç§˜å¯†éµã«ã‚ˆã£ã¦æ—¢ã«ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆå¯èƒ½ãªç½²åãŒã•れã¦ã„ã¾ã™ã€‚ã“れã«åŠ ãˆã¦ãƒãƒ¼ã‚«ãƒ«ç½²åã‚’è¡Œã†æ„味ã¯ã‚りã¾ã›ã‚“
partlySigned.label=注記: éµ ID %S ã®ä¸€éƒ¨ã®ãƒ¦ãƒ¼ã‚¶ ID ã¯é¸æŠžã•れãŸç§˜å¯†éµã«ã‚ˆã£ã¦æ—¢ã«ç½²åã•れã¦ã„ã¾ã™
noTrustedOwnKeys=ç½²åã«åˆ©ç”¨å¯èƒ½ãªéµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚éµã«ç½²åã™ã‚‹ãŸã‚ã«ã¯ã€çµ¶å¯¾çš„ã«ä¿¡ç”¨ã—ã¦ã„る秘密éµã‚’最低ã§ã‚‚ä¸€ã¤æ‰€æœ‰ã—ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=éµã‚’èªã¿è¾¼ã¿ä¸ã§ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„...
keyValid.unknown=䏿˜Ž
keyValid.invalid=無効
keyValid.disabled=無効化
keyValid.revoked=失効
keyValid.expired=期é™åˆ‡ã‚Œ
keyValid.noSubkey=有効ãªå‰¯éµãªã—
keyTrust.untrusted=信用ã—ã¦ã„ãªã„
keyTrust.marginal=ã‚る程度ã®ä¿¡ç”¨
keyTrust.full=完全ã«ä¿¡ç”¨
keyTrust.ultimate=絶対的ã«ä¿¡ç”¨
keyTrust.group=(グループ)
keyType.public=公開éµ
keyType.publicAndSec=公開éµ/秘密éµ
keyMan.enableKey=éµã‚’有効化
keyMan.disableKey=éµã‚’無効化
userAtt.photo=ユーザー属性 (JPEG イメージ)
asciiArmorFile=ASCII å½¢å¼ (*.asc)
importKeyFile=OpenPGP éµãƒ•ァイルã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ
gnupgFile=GnuPG ファイル
saveRevokeCertAs=失効証明書を生æˆã—ã¦ä¿å˜
revokeCertOK=失効証明書を生æˆã—ã¾ã—ãŸã€‚ã“れã¯ç§˜å¯†éµã‚’ãªãã—ã¦ã—ã¾ã£ãŸã¨ããªã©ã«å…¬é–‹éµã‚’無効ã«ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã§ãã¾ã™\n\nã“れをã€CD-R ã‚„ USB メモリã®ã‚ˆã†ãªã‚ªãƒ•ラインã§å®‰å…¨ã«ä¿å˜ã§ãるメディアã«ç§»ã—ã¦ãã ã•ã„。もã—ã€èª°ã‹ãŒã“ã®å¤±åŠ¹è¨¼æ˜Žæ›¸ã‚’æ‰‹ã«å…¥ã‚ŒãŸå ´åˆã€ã‚ãªãŸã®éµã‚’使ãˆãªãã•れるæã‚ŒãŒã‚りã¾ã™
revokeCertFailed=失効証明書ã®ä½œæˆã«å¤±æ•—ã—ã¾ã—ãŸ
addUidOK=ユーザ ID ã®è¿½åŠ ã«æˆåŠŸã—ã¾ã—ãŸ
addUidFailed=ユーザ ID ã®è¿½åŠ ã«å¤±æ•—ã—ã¾ã—ãŸ
noKeySelected=é¸æŠžã—ãŸæ“作を実行ã™ã‚‹ã«ã¯ã€å°‘ãªãã¨ã‚‚ 1 ã¤ã®éµã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™
exportToFile=公開éµã‚’ファイルã¸ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ
exportKeypairToFile=公開éµ/秘密éµã®ãƒšã‚¢ã‚’ファイルã¸ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ
exportSecretKey=エクスãƒãƒ¼ãƒˆã™ã‚‹ OpenPGP éµãƒ•ァイルã«ç§˜å¯†éµã‚’å«ã‚ã¾ã™ã‹ï¼Ÿ
saveKeysOK=éµã‚’ä¿å˜ã—ã¾ã—ãŸ
saveKeysFailed=éµã®ä¿å˜ã«å¤±æ•—ã—ã¾ã—ãŸ
importKeysFailed=インãƒãƒ¼ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ
enableKeyFailed=éµã®æœ‰åŠ¹åŒ–/無効化ã«å¤±æ•—ã—ã¾ã—ãŸ
specificPubKeyFilename=%1$S (0x%2$S) pub
specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec
defaultPubKeyFilename=Exported-public-keys
defaultPubSecKeyFilename=Exported-public-and-secret-keys
noSecretKeys=秘密éµãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“\n\n今ã‚ãªãŸã®éµã‚’生æˆã—ã¾ã™ã‹ï¼Ÿ
sendKeysOk=éµã®é€ä¿¡ã«æˆåŠŸã—ã¾ã—ãŸ
sendKeysFailed=éµã®é€ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸ
receiveKeysOk=éµã®å—ä¿¡ã«æˆåŠŸã—ã¾ã—ãŸ
receiveKeysFailed=éµã®å—ä¿¡ã«å¤±æ•—ã—ã¾ã—ãŸ
importFromClip=éµã‚’クリップボードã‹ã‚‰ã‚¤ãƒ³ãƒãƒ¼ãƒˆã—ã¾ã™ã‹ï¼Ÿ
importFromUrl=公開éµã‚’次㮠URL ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã—ã¾ã™:
copyToClipbrdFailed=é¸æŠžã—ãŸéµã‚’クリップボードã¸ã‚³ãƒ”ーã§ãã¾ã›ã‚“ã§ã—ãŸ
copyToClipbrdOK=éµã‚’クリップボードã«ã‚³ãƒ”ーã—ã¾ã—ãŸ
deleteSecretKey=è¦å‘Š: ã‚ãªãŸã¯ç§˜å¯†éµã‚’削除ã—よã†ã¨ã—ã¦ã„ã¾ã™ï¼\nã‚‚ã—秘密éµã‚’削除ã—ãŸå ´åˆã€ã‚ãªãŸå®›ã«æš—å·åŒ–ã•れãŸã™ã¹ã¦ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’復å·ã§ããªããªã‚Šã€éµã‚’失効ã™ã‚‹ã“ã¨ã‚‚ã§ããªããªã‚Šã¾ã™\n\n本当ã«ç§˜å¯†éµã¨å…¬é–‹éµã®ä¸¡æ–¹ã‚’削除ã—ã¾ã™ã‹ï¼Ÿ\n'%S'?
deleteMix=è¦å‘Š: ã‚ãªãŸã¯ç§˜å¯†éµã‚’削除ã—よã†ã¨ã—ã¦ã„ã¾ã™ï¼\n秘密éµã‚’削除ã™ã‚‹ã¨ã‚ãªãŸå®›ã«æš—å·åŒ–ã•れãŸãƒ¡ãƒ¼ãƒ«ã‚’復å·ã§ããªããªã‚Šã¾ã™\n\n本当ã«é¸æŠžã—ãŸç§˜å¯†éµã¨å…¬é–‹éµã‚’削除ã—ã¾ã™ã‹ï¼Ÿ
deletePubKey=公開éµã‚’削除ã—ã¾ã™ã‹ï¼Ÿ "%S"
deleteSelectedPubKey=é¸æŠžã—ãŸå…¬é–‹éµã‚’削除ã—ã¾ã™ã‹ï¼Ÿ
deleteKeyFailed=éµã‚’削除ã§ãã¾ã›ã‚“ã§ã—ãŸ
revokeKeyQuestion=éµ '%S' を失効ã•ã›ã‚ˆã†ã¨ã—ã¦ã„ã¾ã™\n\n失効ã•ã›ã‚‹ã¨ã€ã‚ãªãŸãŒã“ã®éµã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ç½²åã‚’ã™ã‚‹ã“ã¨ãŒã§ããªããªã‚‹ã»ã‹ã€éµã‚µãƒ¼ãƒãªã©ã§é…布後ã¯ä»–ã®åˆ©ç”¨è€…ãŒã“ã®éµã§ã‚ãªãŸå®›ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æš—å·åŒ–ã™ã‚‹ã“ã¨ãŒã§ããªããªã‚Šã¾ã™ã€‚失効後もã€ã‚ãªãŸå®›ã®æ—¢å˜ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å¾©å·ã‚’行ã†ã“ã¨ã¯ã§ãã¾ã™\n\n本当ã«å¤±åйã•ã›ã¾ã™ã‹ï¼Ÿ
revokeKeyOk=éµã¯æ£å¸¸ã«å¤±åйã—ã¾ã—ãŸã€‚ã‚‚ã—ã‚ãªãŸã®å…¬é–‹éµãŒéµã‚µãƒ¼ãƒã§åˆ©ç”¨å¯èƒ½ã§ã‚れã°ã€å†ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã™ã‚‹äº‹ã‚’推奨ã—ã¾ã™ã€‚ãã†ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã‚ãªãŸã®éµãŒå¤±åйã—ã¦ã„ã‚‹ã“ã¨ãŒå‘¨çŸ¥ã•れã¾ã™
revokeKeyFailed=éµã‚’失効ã§ãã¾ã›ã‚“ã§ã—ãŸ
refreshAllQuestion=éµãŒ 1 ã¤ã‚‚é¸æŠžã•れã¦ã„ã¾ã›ã‚“。ã™ã¹ã¦ã®éµã‚’æ›´æ–°ã—ã¾ã™ã‹ï¼Ÿ
refreshKey.warn=è¦å‘Š: éµã®æ•°ã‚„回線速度ã«ã‚ˆã£ã¦ã¯ã€ã™ã¹ã¦ã®éµã®æ›´æ–°ã«éžå¸¸ã«æ™‚é–“ãŒã‹ã‹ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ï¼
downloadContactsKeys.warn=注æ„ï¼šé€£çµ¡å…ˆã®æ•°ã‚„接続速度ã«ã‚ˆã£ã¦ã¯ã€ã™ã¹ã¦ã®éµã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã«éžå¸¸ã«æ™‚é–“ãŒã‹ã‹ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ï¼
downloadContactsKeys.importFrom=アドレス帳 '%S' ã®é€£çµ¡å…ˆã®éµã‚’検索ã—ã¾ã™ã‹ï¼Ÿ
keyMan.button.exportSecKey=秘密éµã‚’å«ã‚ã¦ã‚¨ã‚¯ã‚¹ãƒãƒ¼ãƒˆ(&S)
keyMan.button.exportPubKey=公開éµã®ã¿ã‚’エクスãƒãƒ¼ãƒˆ(&P)
keyMan.button.import=インãƒãƒ¼ãƒˆ(&I)
keyMan.button.refreshAll=ã™ã¹ã¦ã®éµã‚’æ›´æ–°(&R)
keyMan.button.revokeKey=éµã®å¤±åй(&R)
keyMan.button.skip=éµã‚’スã‚ップ(&S)
keylist.noOtherUids=ä»–ã® ID ã¯ã‚りã¾ã›ã‚“
keylist.hasOtherUids=別å
keylist.noPhotos=写真ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“
keylist.hasPhotos=写真
keyMan.addphoto.filepicker.title=è¿½åŠ ã™ã‚‹å†™çœŸã®é¸æŠž
keyMan.addphoto.warnLargeFile=é¸æŠžã—ãŸãƒ•ァイルã®ã‚µã‚¤ã‚ºãŒ 25 kB ã‚’è¶…ãˆã¦ã„ã¾ã™\néµã®ã‚µã‚¤ã‚ºãŒå¤§ãããªã‚‹ãŸã‚ã€å¤§ããªå†™çœŸã®è¿½åŠ ã¯æŽ¨å¥¨ã•れã¦ã„ã¾ã›ã‚“
keyMan.addphoto.noJpegFile=é¸æŠžã—ãŸãƒ•ァイル㯠JPEG å½¢å¼ã§ã¯ãªã„よã†ã§ã™ã€‚é•ã†ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„
keyMan.addphoto.failed=å†™çœŸã‚’è¿½åŠ ã§ãã¾ã›ã‚“ã§ã—ãŸ
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=主ã«ä½¿ã†ãƒ¦ãƒ¼ã‚¶ ID ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ
changePrimUidOK=主ã«ä½¿ã†ãƒ¦ãƒ¼ã‚¶ ID を変更ã—ã¾ã—ãŸ
deleteUidFailed=ユーザ ID %S ã®å‰Šé™¤ã«å¤±æ•—ã—ã¾ã—ãŸ
deleteUidOK=ユーザ ID %S を削除ã—ã¾ã—ãŸ
revokeUidFailed=ユーザ ID %S ã®å¤±åйã«å¤±æ•—ã—ã¾ã—ãŸ
revokeUidOK=ユーザ ID %S を失効ã•ã›ã¾ã—ãŸã€‚ã‚‚ã—ã‚ãªãŸã®å…¬é–‹éµãŒéµã‚µãƒ¼ãƒã§åˆ©ç”¨å¯èƒ½ã§ã‚れã°ã€å†ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã™ã‚‹äº‹ã‚’推奨ã—ã¾ã™ã€‚ãã†ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã‚ãªãŸã®ãƒ¦ãƒ¼ã‚¶ ID ãŒå¤±åйã—ã¦ã„ã‚‹ã“ã¨ãŒå‘¨çŸ¥ã•れã¾ã™
revokeUidQuestion=本当ã«ãƒ¦ãƒ¼ã‚¶ ID %S を失効ã•ã›ã¾ã™ã‹ï¼Ÿ
deleteUidQuestion=本当ã«ãƒ¦ãƒ¼ã‚¶ ID %S を削除ã—ã¾ã™ã‹ï¼Ÿ\n\n注æ„:公開éµã‚’éµã‚µãƒ¼ãƒã¸é€ä¿¡ã—ã¦ã„ã‚‹ã®ã§ã‚れã°ã€ãƒ¦ãƒ¼ã‚¶ ID を削除ã—ãŸã ã‘ã§ã¯æ„味ãŒã‚りã¾ã›ã‚“。ã“ã®å ´åˆã€"ユーザ ID ã®å¤±åй"を使用ã—ã¦ãã ã•ã„
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆã«æˆåŠŸã—ã¾ã—ãŸï¼
importInfoSuccess=✅
importInfoBits=ビット
importInfoCreated=ä½œæˆæ—¥æ™‚
importInfoFpr=フィンガープリント
importInfoDetails=(詳細)
importInfoNoKeys=éµã¯ã‚¤ãƒ³ãƒãƒ¼ãƒˆã•れã¾ã›ã‚“ã§ã—ãŸ
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=公開éµ
keyTypePrimary=主éµ
keyTypeSubkey=副éµ
keyTypePair=公開éµ/秘密éµã®ãƒšã‚¢
keyExpiryNever=無期é™
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
keyUsageEncrypt=æš—å·åŒ–
keyUsageSign=ç½²å
keyUsageCertify=証明
keyUsageAuthentication=èªè¨¼
keyDoesNotExpire=無期é™
# Strings in enigmailGenCardKey.xul
keygen.started=éµã‚’生æˆä¸ã§ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ãã ã•ã„...
keygen.completed=éµã‚’生æˆã—ã¾ã—ãŸã€‚æ–°ã—ã„éµ ID ã¯æ¬¡ã®é€šã‚Šã§ã™: 0x%S
keygen.keyBackup=%S ã¨ã—ã¦éµã‚’ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã—ã¾ã—ãŸ
keygen.passRequired=スマートカード以外ã®å ´æ‰€ã«ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã‚’ã¨ã‚‹ã®ã§ã‚れã°ã€ãƒ‘スフレーズを指定ã—ã¦ãã ã•ã„
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=入力ã•れ㟠PIN ãŒä¸€è‡´ã—ã¾ã›ã‚“。å†å…¥åŠ›ã—ã¦ãã ã•ã„
cardPin.minLength=PIN ã¯å°‘ãªãã¨ã‚‚ %S æ–‡å—以上ã®è‹±æ•°å—ã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“
cardPin.processFailed=PIN ã®å¤‰æ›´ã«å¤±æ•—ã—ã¾ã—ãŸ
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=éµã®æ›´æ–°ä¸ã§ã™ã€‚ã—ã°ã‚‰ããŠå¾…ã¡ä¸‹ã•ã„
keyserverProgress.uploading=éµã®ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ä¸ã§ã™ã€ã—ã°ã‚‰ããŠå¾…ã¡ä¸‹ã•ã„
keyserverTitle.refreshing=éµã®æ›´æ–°
keyserverTitle.uploading=éµã®ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰
# Strings in enigmailSetupWizard
passphrase.min8keys=パスフレーズã«ã¯å°‘ãªãã¨ã‚‚ 8 æ–‡å—æŒ‡å®šã—ã¦ãã ã•ã„
setupWizard.reallyCancel=本当㫠Enigmail ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã‚¦ã‚£ã‚¶ãƒ¼ãƒ‰ã‚’ä¸æ¢ã—ã¾ã™ã‹ï¼Ÿ
setupWizard.invalidGpg=指定ã•れãŸãƒ•ァイル㯠GnuPG ã®å®Ÿè¡Œãƒ•ァイルã§ã¯ã‚りã¾ã›ã‚“。他ã®ãƒ•ァイルを指定ã—ã¦ãã ã•ã„
setupWizard.specifyFile=å°‘ãªãã¨ã‚‚公開éµãƒ•ァイルを指定ã—ã¦ãã ã•ã„
setupWizard.installFailed=インストールã«å¤±æ•—ã—ãŸã‚ˆã†ã§ã™ã€‚ã‚‚ã†ä¸€åº¦ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’試ã¿ã‚‹ã‹ã€GnuPG を手動ã§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ãŸå¾Œã§ã€Œé¸æŠžã€ãƒœã‚¿ãƒ³ã‹ã‚‰æŒ‡å®šã—ã¦ãã ã•ã„
setupWizard.downloadForbidden=ã‚»ã‚ュリティ上ã®ç†ç”±ã‹ã‚‰ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã¯è¡Œã‚れã¾ã›ã‚“。http://www.gnupg.org/ ã«ã‚¢ã‚¯ã‚»ã‚¹ã—㦠GnuPG をダウンãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„
setupWizard.downloadImpossible=GnuPG ã‚’æ£å¸¸ã«ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚時間をãŠã„ã¦ã‹ã‚‰ã‚‚ã†ä¸€åº¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã‚’試ã¿ã‚‹ã‹ã€http://www.gnupg.org/ ã«ã‚¢ã‚¯ã‚»ã‚¹ã—㦠GnuPG をダウンãƒãƒ¼ãƒ‰ã—ã¦ãã ã•ã„
setupWizard.hashSumError=ダウンãƒãƒ¼ãƒ‰ã—ãŸãƒ•ァイルã®å®Œå…¨æ€§ã‚’検証ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚ファイルãŒç ´æã—ã¦ã„ã‚‹ã‹ã€æ”¹ç«„ã•れã¦ã„ã‚‹æã‚ŒãŒã‚りã¾ã™ã€‚ã“ã®ã¾ã¾ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã‚’続行ã—ã¾ã™ã‹ï¼Ÿ
setupWizard.importSettingsFile=èªã¿è¾¼ã‚€ãƒ•ã‚¡ã‚¤ãƒ«ã®æŒ‡å®š
setupWizard.invalidSettingsFile=指定ã•れãŸãƒ•ァイル㯠Enigmail ã®è¨å®šæƒ…å ±ãƒ•ã‚¡ã‚¤ãƒ«ã§ã¯ã‚りã¾ã›ã‚“
setupWizard.gpgConfExists=GnuPG ã®è¨å®šãƒ•ã‚¡ã‚¤ãƒ«ã¯æ—¢ã«å˜åœ¨ã—ã¾ã™ã€‚å¤ã„環境ã®è¨å®šãƒ•ァイルã§ä¸Šæ›¸ãã—ã¾ã™ã‹ï¼Ÿ
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=GnuPG ã®ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚詳細ã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ãƒã‚°ã‚’確èªã—ã¦ãã ã•ã„
installGnuPG.installFailed=GnuPG ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚詳細ã¯ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ãƒã‚°ã‚’確èªã—ã¦ãã ã•ã„
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=åå‰ã¨ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã—ã¦ä¸‹ã•ã„
addUidDlg.nameMinLengthError=åå‰ã¯ 5 æ–‡å—以上必è¦ã§ã™
addUidDlg.invalidEmailError=有効ãªãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã§ã¯ã‚りã¾ã›ã‚“
addUidDlg.commentError=ã‚³ãƒ¡ãƒ³ãƒˆã«æ‹¬å¼§ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP スマートカードã§ã¯ã€åå‰ã« ASCII æ–‡å—ã®ã¿åˆ©ç”¨å¯èƒ½ã§ã™
# network error types
errorType.SecurityCertificate=ウェブサービスã§ä½¿ç”¨ã•れã¦ã„ã‚‹ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£è¨¼æ˜Žæ›¸ã¯æ£å½“ãªã‚‚ã®ã§ã¯ã‚りã¾ã›ã‚“
errorType.SecurityProtocol=ウェブサービスã§ä½¿ç”¨ã•れã¦ã„ã‚‹ã‚»ã‚ュリティプãƒãƒˆã‚³ãƒ«ã¯æœªçŸ¥ã®ã‚‚ã®ã§ã™
errorType.Network=ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ
# filter stuff
filter.folderRequired=ãƒ•ã‚©ãƒ«ãƒ€ã‚’é¸æŠžã—ã¦ãã ã•ã„
filter.decryptMove.label=メッセージをæ’ä¹…çš„ã«å¾©å·ã™ã‚‹ (Enigmail)
filter.decryptCopy.label=復å·ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ã‚³ãƒ”ーを作æˆã™ã‚‹ (Enigmail)
filter.decryptMove.warnExperimental=è¦å‘Šï¼šã€Œãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æ’ä¹…çš„ã«å¾©å·ã™ã‚‹ã€ãƒ•ィルタã¯ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’ç ´æã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™\n\nã¯ã˜ã‚ã«ã€Œå¾©å·ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®ã‚³ãƒ”ーを作æˆã™ã‚‹ã€ãƒ•ィルタを試験的ã«åˆ©ç”¨ã—ã€ãã®çµæžœã«å•題ãŒãªã„ã“ã¨ã‚’確èªã—ãŸã†ãˆã§ã€Œãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æ’ä¹…çš„ã«å¾©å·ã™ã‚‹ã€ãƒ•ィルタを使用ã™ã‚‹ã“ã¨ã‚’å¼·ãæŽ¨å¥¨ã—ã¾ã™
# strings in enigmailConvert.jsm
converter.decryptBody.failed=以下ã®ä»¶åã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’復å·ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ\nä»¶å: "%S"\nç•°ãªã‚‹ãƒ‘スフレーズã§å†è©¦è¡Œã™ã‚‹ã‹ã€å¾©å·ã‚’スã‚ップã™ã‚‹ã‹é¸æŠžã—ã¦ãã ã•ã„
converter.decryptAtt.failed=以下ã®ä»¶åã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®æ·»ä»˜ãƒ•ァイル "%1$S" を復å·ã™ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ\n"ä»¶å: %2$S"\nç•°ãªã‚‹ãƒ‘スフレーズã§å†è©¦è¡Œã™ã‚‹ã‹ã€å¾©å·ã‚’スã‚ップã™ã‚‹ã‹é¸æŠžã—ã¦ãã ã•ã„
saveLogFile.title=ãƒã‚°ã‚’ファイルã«ä¿å˜
# strings in gpg.jsm
unknownSigningAlg=未知ã®ç½²åアルゴリズム(ID: %S)
unknownHashAlg=未知ã®ãƒãƒƒã‚·ãƒ¥é–¢æ•° (ID: %S)
# strings in keyRing.jsm
keyring.photo=写真
keyRing.pubKeyRevoked=éµ %1$S (éµ ID %2$S) ã¯å¤±åйã—ã¦ã„ã¾ã™
keyRing.pubKeyExpired=éµ %1$S (éµ ID %2$S) ã¯æœ‰åŠ¹æœŸé™åˆ‡ã‚Œã§ã™
keyRing.pubKeyNotForSigning=éµ %1$S (éµ ID %2$S) ã¯ç½²åã«ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“
keyRing.pubKeyNotForEncryption=éµ %1$S (éµ ID %2$S) ã¯æš—å·åŒ–ã«ã¯åˆ©ç”¨ã§ãã¾ã›ã‚“
keyRing.keyDisabled=éµ %1$S (éµ ID %2$S) ã¯ç„¡åŠ¹åŒ–ã•れã¦ã„ã¾ã™is disabled; it cannot be used.
keyRing.keyNotTrusted=éµ %1$S (éµ ID %2$S) ã¯å分ã«ä¿¡ç”¨ã•れã¦ã„ã¾ã›ã‚“。署åã«åˆ©ç”¨ã™ã‚‹ãŸã‚ã«ã¯ä¿¡ç”¨åº¦ã‚’「絶対的ã«ä¿¡ç”¨ã€ã«è¨å®šã™ã‚‹å¿…è¦ãŒã‚りã¾ã™
keyRing.keyInvalid=éµ %1$S (éµ ID %2$S) ã¯æ£å½“ã§ã¯ã‚りã¾ã›ã‚“ (例:自己署åãŒå˜åœ¨ã—ãªã„)
keyRing.signSubKeysRevoked=éµ %1$S (éµ ID %2$S) ã®ã™ã¹ã¦ã®ç½²å用ã®å‰¯éµã¯å¤±åйã—ã¦ã„ã¾ã™
keyRing.signSubKeysExpired=éµ %1$S (éµ ID %2$S) ã®ã™ã¹ã¦ã®ç½²å用ã®å‰¯éµã¯æœ‰åŠ¹æœŸé™åˆ‡ã‚Œã§ã™
keyRing.signSubKeysUnusable=éµ %1$S (éµ ID %2$S) ã®ã™ã¹ã¦ã®ç½²å用ã®å‰¯éµã¯å¤±åŠ¹ã€æœ‰åŠ¹æœŸé™åˆ‡ã‚Œãªã©ã®ç†ç”±ã«ã‚ˆã‚Šåˆ©ç”¨ã§ãã¾ã›ã‚“
keyRing.encSubKeysRevoked=éµ %1$S (éµ ID %2$S) ã®ã™ã¹ã¦ã®æš—å·åŒ–用ã®å‰¯éµã¯å¤±åйã—ã¦ã„ã¾ã™
keyRing.encSubKeysExpired=éµ %1$S (éµ ID %2$S) ã®ã™ã¹ã¦ã®æš—å·åŒ–用ã®å‰¯éµã¯æœ‰åŠ¹æœŸé™åˆ‡ã‚Œã§ã™
keyRing.noSecretKey=éµ %1$S (éµ ID %2$S) ã®ç§˜å¯†éµãŒå˜åœ¨ã—ãªã„ãŸã‚ã€ã“ã®éµã‚’ç½²åã«åˆ©ç”¨ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“
keyRing.encSubKeysUnusable=éµ %1$S (éµ ID %2$S) ã®ã™ã¹ã¦ã®æš—å·åŒ–用ã®å‰¯éµã¯å¤±åŠ¹ã€æœ‰åŠ¹æœŸé™åˆ‡ã‚Œãªã©ã®ç†ç”±ã«ã‚ˆã‚Šåˆ©ç”¨ã§ãã¾ã›ã‚“
#strings in exportSettingsWizard.js
cannotWriteToFile=Cannot save to fileファイル '%S' ã‚’ä¿å˜ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚é•ã†ãƒ•ã‚¡ã‚¤ãƒ«ã‚’é¸æŠžã—ã¦ãã ã•ã„
dataExportError=データã®ä¿å˜ä¸ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ
enigmailSettings=EnigmailSettings
defaultBackupFileName=Enigmail-export
specifyExportFile=ä¿å˜ã™ã‚‹ãƒ•ァイルåを指定
homedirParamNotSUpported=--homedir ã‚„ --keyring ãªã©ã®ã€ãƒ‘スを指定ã™ã‚‹è¿½åŠ ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿ã®ä¿å˜/èªã¿è¾¼ã¿ã«ã¯å¯¾å¿œã—ã¦ã„ã¾ã›ã‚“ã€‚ãƒ‘ã‚¹ã®æŒ‡å®šã«ã¯ã€ç’°å¢ƒå¤‰æ•° GNUPGHOME ã®è¨å®šãªã©ä»–ã®æ–¹æ³•を利用ã—ã¦ãã ã•ã„
#strings in expiry.jsm
expiry.keyExpiresSoon=ã‚ãªãŸã®éµ %1$S 㯠%2$S æ—¥ä»¥å†…ã«æœŸé™åˆ‡ã‚Œã¨ãªã‚Šã¾ã™\n\næ–°ã—ã„éµãƒšã‚¢ã‚’作æˆã—ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆè¨å®šã‚’é©åˆ‡ã«æ›´æ–°ã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™
expiry.keysExpireSoon=以下ã®éµã¯ %1$S æ—¥ä»¥å†…ã«æœŸé™åˆ‡ã‚Œã¨ãªã‚Šã¾ã™:\n%2$S\n\næ–°ã—ã„éµãƒšã‚¢ã‚’作æˆã—ã€ã‚¢ã‚«ã‚¦ãƒ³ãƒˆè¨å®šã‚’é©åˆ‡ã«æ›´æ–°ã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™
enigmail/lang/ja/help/ 0000775 0000000 0000000 00000000000 12667016244 0015116 5 ustar 00root root 0000000 0000000 enigmail/lang/ja/help/compose.html 0000664 0000000 0000000 00000013370 12667016244 0017455 0 ustar 00root root 0000000 0000000
Enigmail ヘルプ: メールã®ä½œæˆ
Enigmail ヘルプ
メールを作æˆã™ã‚‹ã¨ãã® Enigmail ã®ä½¿ç”¨æ–¹æ³•
- メール作æˆç”»é¢ã§ã® Enigmail メニュー
-
- ç½²å
-
- 有効 (自動): ç½²åã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) ã«å¾“ã£ã¦ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ç½²åã™ã‚‹ã‚ˆã†è‡ªå‹•çš„ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€‚
- 無効 (自動): ç½²åã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) ã«å¾“ã£ã¦ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«ç½²åã—ãªã„よã†è‡ªå‹•çš„ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€‚
- 有効: メッセージã«ç½²åã™ã‚‹ã‚ˆã†è¨å®šã‚’上書ãã—ã¦ã„ã¾ã™ã€‚
- 無効: メッセージã«ç½²åã—ãªã„よã†è¨å®šã‚’上書ãã—ã¦ã„ã¾ã™ã€‚
- æš—å·åŒ–
-
- 有効 (自動): æš—å·åŒ–ã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) ã«å¾“ã£ã¦ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æš—å·åŒ–ã™ã‚‹ã‚ˆã†è‡ªå‹•çš„ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€‚
- 無効 (自動): æš—å·åŒ–ã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) ã«å¾“ã£ã¦ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’æš—å·åŒ–ã—ãªã„よã†è‡ªå‹•çš„ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€‚
- 有効: メッセージを暗å·åŒ–ã™ã‚‹ã‚ˆã†è¨å®šã‚’上書ãã—ã¦ã„ã¾ã™ã€‚
- 無効: メッセージを暗å·åŒ–ã—ãªã„よã†è¨å®šã‚’上書ãã—ã¦ã„ã¾ã™ã€‚
- PGP/MIME
-
- PGP/MIME (自動): PGP/MIME ã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) ã«å¾“ã£ã¦ã€PGP/MIME ã§é€ä¿¡ã™ã‚‹ã‚ˆã†è‡ªå‹•çš„ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€‚
- インライン PGP (自動): PGP/MIME ã«é–¢ã™ã‚‹è¨å®š (アカウントã”ã¨ã®è¨å®šã€å—å–人ã”ã¨ã®è¨å®šã€é€ä¿¡æ™‚ã®è¨å®šãªã©) ã«å¾“ã£ã¦ã€ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ PGP ã§é€ä¿¡ã™ã‚‹ã‚ˆã†è‡ªå‹•çš„ã«æŒ‡å®šã•れã¦ã„ã¾ã™ã€‚
- PGP/MIME: PGP/MIME ã§é€ä¿¡ã™ã‚‹ã‚ˆã†è¨å®šã‚’上書ãã—ã¦ã„ã¾ã™ã€‚
- インライン PGP: インライン PGP ã§é€ä¿¡ã™ã‚‹ã‚ˆã†è¨å®šã‚’上書ãã—ã¦ã„ã¾ã™ã€‚
- ã™ã¹ã¦ã®å—å–人ã®éµã‚’ä¿¡é ¼ã™ã‚‹
- å®›å…ˆã«æŒ‡å®šã•れãŸå—å–人ã®éµã‚’ã™ã¹ã¦ä¿¡é ¼ã—ã¾ã™ã€‚
- 標準è¨å®šã«æˆ»ã™
- ã‚‚ã—ã€ãƒ¡ãƒ¼ãƒ«ã®é€ä¿¡ã«å¤±æ•—ã—ãŸæ™‚ã€ãŸã¨ãˆã° POP サーãƒãŒè¦æ±‚ã‚’æ‹’å¦ã—ãŸæ™‚ãªã©ã€Enigmail ã¯ãã®ã“ã¨ãŒåˆ†ã‹ã‚‰ãªã„ã®ã§ã€æš—å·åŒ–ã•れãŸãƒ¡ãƒ¼ãƒ«ã‚’メール作æˆã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã«ãã®ã¾ã¾è¡¨ç¤ºã—ç¶šã‘ã¾ã™ã€‚ã“ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’é¸ã¶ã“ã¨ã«ã‚ˆã‚Šæš—å·åŒ–・署åã‚’å…ƒã«æˆ»ã—ã€ãƒ¡ãƒ¼ãƒ«ä½œæˆã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã«å…ƒã®æ–‡æ›¸ã‚’表示ã—ã¾ã™ã€‚
暫定回é¿ç–ã¨ã—ã¦ã€ã“ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã¯æš—å·åŒ–ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«å¯¾ã—ã¦è¿”ä¿¡ã™ã‚‹æ™‚ã«ã€å¼·åˆ¶çš„ã«å¾©å·ã™ã‚‹ã“ã¨ã«ã‚‚使用ã§ãã¾ã™ã€‚
- 自分ã®å…¬é–‹éµã®æ·»ä»˜
- ASCII å½¢å¼ã®è‡ªåˆ†ã®å…¬é–‹éµã‚’添付ã—ã¾ã™ã€‚ã“ã®æ–¹æ³•ã«ã‚ˆã£ã¦æŒ¿å…¥ã•れãŸå…¬é–‹éµã¯ã€å—ã‘å–りå´ã® Enigmail ã«ã‚ˆã£ã¦è‡ªå‹•çš„ã«èªè˜ã•れã¾ã™ã€‚公開éµã‚’添付ã—ãŸå¾Œã§ã‚‚ã€å¿…è¦ã«å¿œã˜ã¦ãã®ãƒ¡ãƒ¼ãƒ«ã‚’ç½²åãŠã‚ˆã³æš—å·åŒ–ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- 公開éµã®æ·»ä»˜
- ASCII å½¢å¼ã®å…¬é–‹éµã‚’添付ã—ã¾ã™ã€‚挿入ã™ã‚‹å…¬é–‹éµã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’é¸æŠžã™ã‚‹ãƒãƒƒãƒ—アップ画é¢ãŒã§ã¾ã™ã€‚ã“ã®æ–¹æ³•ã«ã‚ˆã£ã¦æŒ¿å…¥ã•れãŸå…¬é–‹éµã¯ã€å—ã‘å–りå´ã® Enigmail ã«ã‚ˆã£ã¦è‡ªå‹•çš„ã«èªè˜ã•れã¾ã™ã€‚公開éµã‚’添付ã—ãŸå¾Œã§ã‚‚ã€å¿…è¦ã«å¿œã˜ã¦ãã®ãƒ¡ãƒ¼ãƒ«ã‚’ç½²åãŠã‚ˆã³æš—å·åŒ–ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- パスフレーズã®ã‚¯ãƒªã‚¢
- ã‚ャッシュã•れã¦ã„るパスフレーズをクリアã—ã¾ã™ã€‚複数ã®ãƒ‘スフレーズを使用ã—ã¦ã„ã‚‹ã¨ãã«ä¾¿åˆ©ã§ã™ã€‚
- è¨å®š
-
- ç½²å/æš—å·åŒ–è¨å®š...: アカウントè¨å®š -> OpenPGP オプション ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã§ã™ã€‚
- é€ä¿¡è¨å®š...: Enigmail è¨å®š -> é€ä¿¡ ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã§ã™ã€‚
- éµé¸æŠžè¨å®š...: Enigmail è¨å®š -> éµã®é¸æŠž ã¸ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆã§ã™ã€‚
æ›´ãªã‚‹ãƒ˜ãƒ«ãƒ—ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã§åˆ©ç”¨ã§ãã¾ã™ (英語): Enigmail Help web page
enigmail/lang/ja/help/editRcptRule.html 0000664 0000000 0000000 00000012735 12667016244 0020422 0 ustar 00root root 0000000 0000000
Enigmail ヘルプ: å—å–人ã”ã¨ã®è¨å®šã®ç·¨é›†
Enigmail ヘルプ
å—å–人ã”ã¨ã®è¨å®šã®ç·¨é›†
å—å–人ã”ã¨ã®è¨å®šã®ç·¨é›†ã§ã€å—å–人ã”ã¨ã«ç½²åã€æš—å·åŒ–ã€PGP/MIME ã®å¯å¦ãŠã‚ˆã³ä½¿ç”¨ã™ã‚‹ OpenPGP éµã‚’指定ã§ãã¾ã™ã€‚ã“ã®ãƒ€ã‚¤ã‚¢ãƒã‚°ã§ 1 人ã®å—å–人ã€ãŠã‚ˆã³åŒæ§˜ãªæ–¹æ³•ã§ã‚°ãƒ«ãƒ¼ãƒ—ã«å¯¾ã—ã¦è¨å®šã§ãã¾ã™ã€‚
- メールアドレス
- å—å–人ã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒè¡¨ç¤ºã•れã¾ã™ (åå‰ã¯è¡¨ç¤ºã•れãšã‚¢ãƒ‰ãƒ¬ã‚¹ã ã‘ã§ã™ 例: somebody@email.domain)。åŠè§’スペースã§åŒºåˆ‡ã£ã¦è¤‡æ•°ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’入力ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã“ã“ã§æŒ‡å®šã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ã€ãƒ‰ãƒ¡ã‚¤ãƒ³ã‚»ã‚¯ã‚·ãƒ§ãƒ³ (@ ã®å³å´) ã ã‘を指定ã§ãã¾ã™ã€‚ãã†ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€åŒã˜ãƒ‰ãƒ¡ã‚¤ãƒ³ã® (@ マークã®å³å´ãŒåŒã˜) ã©ã‚“ãªã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã‚‚ルールをé©ç”¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚例ãˆã° @email.domain ã¨å…¥åŠ›ã—ãŸå ´åˆã€body@email.domain, somebody@email.domain, anybody@email.domain ãªã©ã«ã‚‚ルールãŒé©ç”¨ã•れã¾ã™ã€‚
- å—å–人ãŒä¸Šè¨˜ã‚¢ãƒ‰ãƒ¬ã‚¹ ... ã¨ãã€ãƒ«ãƒ¼ãƒ«ã‚’é©ç”¨
- é›»åメールアドレスã®é©ç”¨æ–¹æ³•を指定ã—ã¾ã™ã€‚ã‚‚ã—ã€è¤‡æ•°ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒå…¥åŠ›ã•れã¦ã„ã‚‹å ´åˆã€ã“ã®è¨å®šã¯å…¨å“¡ã«å¯¾ã—ã¦é©ç”¨ã•れã¾ã™ã€‚以下㯠body@email.domain ㌠メールアドレス 欄ã«å…¥åŠ›ã•れãŸå ´åˆã®ä¾‹ã§ã™ã€‚
- ã¨åŒä¸€ã®: 指定ã—ãŸãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã¨åŒä¸€ã®å ´åˆã®ã¿ãƒžãƒƒãƒã—ã¾ã™ã€‚body@email.domain (大文å—å°æ–‡å—ã®é•ã„ã¯ç„¡è¦–ã•れã¾ã™)
- ã‚’å«ã‚€: 指定ã—ãŸæ–‡å—列をå«ã‚€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒƒãƒã—ã¾ã™ã€‚例: anybody@email.domain, body@email.domain.net
- ã‹ã‚‰å§‹ã¾ã‚‹: 指定ã—ãŸæ–‡å—列ã‹ã‚‰å§‹ã¾ã‚‹ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒƒãƒã—ã¾ã™ã€‚例: body@email.domain.net, body@email.domain-name.com
- ã§çµ‚ã‚ã‚‹: 指定ã—ãŸæ–‡å—列ã§çµ‚ã‚るメールアドレスãŒãƒžãƒƒãƒã—ã¾ã™ã€‚例: anybody@email.domain, somebody@email.domain.
- 当ã¦ã¯ã¾ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã¤ã„ã¦ã¯ã€æ¬¡ã®ãƒ«ãƒ¼ãƒ«ã‚’ç¶šã„ã¦é©ç”¨
- ã“れã«ãƒã‚§ãƒƒã‚¯ã‚’ã™ã‚‹ã¨ã€ä»¥ä¸‹ã® OpenPGP éµã‚’使用ã™ã‚‹ ã®æ¬„ã§éµ ID ã®æŒ‡å®šã‚’ã™ã‚‹å¿…è¦ãŒãªããªã‚Šã¾ã™ã€‚メールアドレスã¯ã€é€ä¿¡æ™‚ã«ãƒã‚§ãƒƒã‚¯ã•れã€ãã®ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã¤ã„ã¦ã®ãƒ«ãƒ¼ãƒ«ãŒç¶šã„ã¦é©ç”¨ã•れã¾ã™ã€‚
- 当ã¦ã¯ã¾ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã¤ã„ã¦ã¯ã€ã“れ以上ã®ãƒ«ãƒ¼ãƒ«ã‚’é©ç”¨ã—ãªã„
- ã“れã«ãƒã‚§ãƒƒã‚¯ã‚’ã™ã‚‹ã¨ã€ã“ã®ãƒ«ãƒ¼ãƒ«ã«ãƒžãƒƒãƒã—ãŸã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã¤ã„ã¦ã¯ä»–ã®ãƒ«ãƒ¼ãƒ«ã‚’é©ç”¨ã—ãªããªã‚Šã¾ã™ã€‚ルール処ç†ã¯æ¬¡ã®å—å–人ã‹ã‚‰è¡Œã‚れるã“ã¨ã«ãªã‚Šã¾ã™ã€‚
- 以下㮠OpenPGP éµã‚’使用ã™ã‚‹:
- éµã®é¸æŠž(s)... ボタンをクリックã—ã€æš—å·åŒ–ã«ä½¿ç”¨ã™ã‚‹å—å–人ã®éµã‚’é¸æŠžã—ã¦ãã ã•ã„。既ã«è¿°ã¹ãŸã‚ˆã†ã«ã€ãƒžãƒƒãƒã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã«å¯¾ã—ã¦ã“れ以上ã®ãƒ«ãƒ¼ãƒ«å‡¦ç†ã¯ã•れã¾ã›ã‚“。
- ç½²åã®æ—¢å®šã®è¨å®š
- ç½²åã™ã‚‹/ã—ãªã„を決定ã—ã¾ã™ã€‚ã“れã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ä½œæˆç”»é¢ã®ã®å€‹åˆ¥ã®è¨å®šã«ã‚ˆã£ã¦ä¸Šæ›¸ãã•れã¾ã™ã€‚
- 無効: メッセージã«ç½²åã—ã¾ã›ã‚“。
- 返信時ã®ã¿æœ‰åй: ç½²åã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«è¿”ä¿¡ã™ã‚‹ã¨ãã®ã¿ç½²åã—ã¾ã™ã€‚
- 有効: メッセージã«ç½²åã—ã¾ã™ã€‚
ã“ã®ç½²åã«é–¢ã™ã‚‹è¨å®šã¯ãƒžãƒƒãƒã™ã‚‹ã™ã¹ã¦ã®ãƒ«ãƒ¼ãƒ«ã«å¯¾ã—ã¦é©ç”¨ã•れã¾ã™ã€‚ã‚‚ã—ç½²åã‚’ã—ãªã„ルール㌠1 ã¤ã§ã‚‚ã‚れã°ã€ä»–ã®ç½²åã‚’ã™ã‚‹ãƒ«ãƒ¼ãƒ«ãŒãƒžãƒƒãƒã—ã¦ã‚‚ã€ç½²åã¯ã•れã¾ã›ã‚“。
- æš—å·åŒ–ã®æ—¢å®šã®è¨å®š
- æš—å·åŒ–ã™ã‚‹/ã—ãªã„を決定ã—ã¾ã™ã€‚è¨å®šå¯èƒ½ãªé …ç›®ã¨æ„味ã¯ã€ç½²åã¨åŒä¸€ã§ã™ã€‚
- PGP/MIME ã®æ—¢å®šã®è¨å®š
- PGP/MIME (RFC 3156) を用ã„ã¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’エンコードã™ã‚‹ã‹ã©ã†ã‹ã‚’決定ã—ã¾ã™ã€‚PGP/MIME ãŒç„¡åйã®å ´åˆã€ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ PGP ãŒä½¿ã‚れã¾ã™ã€‚è¨å®šå¯èƒ½ãªé …ç›®ã¨æ„味ã¯ã€ç½²åã¨åŒä¸€ã§ã™ã€‚
ã“れらã®ãƒ«ãƒ¼ãƒ«ã¯ å—å–人ã”ã¨ã®è¨å®š ã«è¡¨ç¤ºã•れã¦ã„ã‚‹é †ã«å‡¦ç†ã•れã¾ã™ã€‚ルールã«å—å–人ãŒãƒžãƒƒãƒã—ã€OpenPGP éµã® ID ã‚’å«ã¿ã€åŠ ãˆã¦è¨å®šã•れãŸéµ ID を使用ã—ã¦ã„ã‚‹å ´åˆã«ã¯ã€ãã®å—å–人ã«é–¢ã—ã¦ã¯ãれ以上ã®ãƒ«ãƒ¼ãƒ«ã¯è€ƒæ…®ã•れã¾ã›ã‚“。
æ›´ãªã‚‹ãƒ˜ãƒ«ãƒ—ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã§åˆ©ç”¨ã§ãã¾ã™ (英語): Enigmail Per-Recipient Settings page
enigmail/lang/ja/help/initError.html 0000664 0000000 0000000 00000005632 12667016244 0017767 0 ustar 00root root 0000000 0000000
Enigmail ヘルプ: Enigmail ã®åˆæœŸåŒ–ã«é–¢ã™ã‚‹å•題を解決ã™ã‚‹ã«ã¯
Enigmail ヘルプ
Enigmail ã®åˆæœŸåŒ–ã«é–¢ã™ã‚‹å•題を解決ã™ã‚‹ã«ã¯
Enigmail ã®åˆæœŸåŒ–ãŒæˆåŠŸã—ãªã„ã“ã¨ã«ã¯ã„ãã¤ã‹ã®åŽŸå› ãŒã‚りã¾ã™ã€‚よãã‚ã‚‹åŽŸå› ã¯ä»¥ä¸‹ã®ã‚ˆã†ãªã‚‚ã®ã§ã™ã€‚
æ›´ãªã‚‹ãƒ˜ãƒ«ãƒ—ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã§åˆ©ç”¨ã§ãã¾ã™ (英語): Enigmail Help web page
- GnuPG ãŒè¦‹ã¤ã‹ã‚‰ãªã„
-
Enigmail を利用ã™ã‚‹ãŸã‚ã«ã¯ã€GnuPG ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
GnuPG ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã«ã¯ã€ã¾ãšã¯ã˜ã‚ã« GnuPG ã®å®Ÿè¡Œãƒ•ァイルã§ã‚ã‚‹ gpg.exe (Windows ã®å ´åˆã€‚ä»–ã®ãƒ—ラットフォームã®å ´åˆã«ã¯ gpg) ãŒãŠä½¿ã„ã®ã‚³ãƒ³ãƒ”ュータã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
GnuPG ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã«ã‚‚ã‹ã‹ã‚ら㚠Enigmail ãŒãれを検出ã§ããªã„å ´åˆã«ã¯ã€GnuPG ã®å®Ÿè¡Œãƒ•ァイルã¸ã®ãƒ‘スを手動ã§è¨å®šã—ã¦ãã ã•ã„ (Enigmail > è¨å®š)
- Enigmail コアサービス ã®åˆæœŸåŒ–ã«å¤±æ•—ã™ã‚‹
-
Enigmail ã¯ã€ãŠä½¿ã„ã® Thunderbird ã‚„ SeaMonkey ãŒãƒ“ルドã•れãŸç’°å¢ƒã¨åŒã˜ç’°å¢ƒã§ãƒ“ルドã•れãŸã‚‚ã®ã—ã‹å‹•作ã—ã¾ã›ã‚“。ã™ãªã‚ã¡ã€Enigmail ã®å…¬å¼ãƒªãƒªãƒ¼ã‚¹ã¯ mozilla.org ã‹ã‚‰ãƒªãƒªãƒ¼ã‚¹ã•れる Thunderbird ã‚„ SeaMonkey ã§ã—ã‹å‹•作ã—ã¾ã›ã‚“。
Linux ディストリビューションãªã©ã€mozilla.org 以外ã‹ã‚‰ãƒªãƒªãƒ¼ã‚¹ã•れる Thunderbird ã‚„ SeaMonkey ã‚’ãŠä½¿ã„ã®å ´åˆã‚„ã”自分ã§ãƒ“ルドã—㟠Thunderbird ã‚„ SeaMonkey ã‚’ãŠä½¿ã„ã®å ´åˆã«ã¯ã€åŒã˜æä¾›å…ƒã‹ã‚‰ãƒªãƒªãƒ¼ã‚¹ã•れる Enigmail を利用ã™ã‚‹ã‹ã€ã”自分ã§ãƒ“ルドã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚Enigmail ã®ãƒ“ルドã«ã¤ã„ã¦ã¯ã€Source Code section ã‚’å‚ç…§ã—ã¦ãã ã•ã„。ã“ã®ã‚ˆã†ãªãƒ“ルド環境ã®é•ã„ã«èµ·å› ã™ã‚‹å•題を Enigmail ã®ãƒã‚°ã¨ã—ã¦å ±å‘Šã—ãªã„ã§ãã ã•ã„。
æ›´ãªã‚‹ãƒ˜ãƒ«ãƒ—ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã§åˆ©ç”¨ã§ãã¾ã™ (英語): Enigmail Support Web Site.
enigmail/lang/ja/help/messenger.html 0000664 0000000 0000000 00000011625 12667016244 0020001 0 ustar 00root root 0000000 0000000
Enigmail ヘルプ: メッセージをèªã‚€
Enigmail ヘルプ
メッセージをèªã‚€æ™‚ã® Enigmail ã®ä½¿ç”¨æ–¹æ³•
- メインウインドウã®å¾©å·ãƒœã‚¿ãƒ³
- ã“ã®ãƒœã‚¿ãƒ³ã‚’ã¯ã„ãã¤ã‹ã®ç”¨é€”ã§ä½¿ã‚れã¾ã™ã€‚: æš—å·åŒ–ã€æ¤œè¨¼ã€ã¾ãŸã¯å…¬é–‹éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆãªã©ã§ã™ã€‚é€šå¸¸ã€æš—å·åŒ–/検証ã¯è‡ªå‹•çš„ã«è¡Œã‚れã¾ã™ã€‚è¨å®šã«ã‚ˆã£ã¦ç„¡åйã«ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã€‚ã—ã‹ã—ã€å¤±æ•—ã—ãŸæ™‚ã«ã¯ã€çŸã„エラーメッセージ㌠Enigmail ã«è¡¨ç¤ºã•れるã ã‘ã§ã™ã€‚ã“ã®ãƒœã‚¿ãƒ³ã‚’クリックã™ã‚‹ã“ã¨ã§ã€GnuPG コマンドã®å‡ºåŠ›çµæžœã‚’å«ã‚ã¦è©³ç´°ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’表示ã—ã¾ã™ã€‚
- メッセージヘッダã®å°ç’ã¨éµã®ã‚¢ã‚¤ã‚³ãƒ³
-
メッセージヘッダã«è¡¨ç¤ºã•れã¦ã„ã‚‹ å°ç’ ã¨ éµ ã®ã‚¢ã‚¤ã‚³ãƒ³ã¯ã€ã‚ãªãŸãŒèªã‚“ã§ã„るメッセージã®ç½²åãŒæ£ã—ã„ã‹ã€æš—å·åŒ–ã•れã¦ã„ã‚‹ã‹ã‚’示ã—ã¦ã„ã¾ã™ã€‚ã‚‚ã—ãã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒç½²åã•れãŸå¾Œã«æ”¹ã–ã‚“ã•れã¦ã„ã‚‹å ´åˆã€å°ç’ã®ã‚¢ã‚¤ã‚³ãƒ³ã¯Ã—å°ã¤ãã®å°ç’ã®ã‚¢ã‚¤ã‚³ãƒ³ã¨ã—ã¦è¡¨ç¤ºã•れå•題を示ã—ã¾ã™ã€‚å°ç’ã‚„éµã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’å³ã‚¯ãƒªãƒƒã‚¯ã™ã‚‹ã“ã¨ã§ã€ä»¥ä¸‹ã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ãŒè¡¨ç¤ºã•れã¾ã™ã€‚
- Enigmail ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£æƒ…å ±: GnuPG ãŒãã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«å¯¾ã—ã¦å‡ºåŠ›ã—ãŸçµæžœã‚’表示ã—ã¾ã™ã€‚
- Enigmail ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£æƒ…å ±ã‚’ã‚³ãƒ”ãƒ¼: GnuPG ã®å‡ºåŠ›ã‚’ã‚¯ãƒªãƒƒãƒ—ãƒœãƒ¼ãƒ‰ã«ã‚³ãƒ”ーã—ã¾ã™ã€‚返信ã«è²¼ã‚‹ãªã©ã«åˆ©ç”¨ã§ãã¾ã™ã€‚
- OpenPGP フォト ID を表示: 公開éµã«å†™çœŸãŒåŸ‹ã‚è¾¼ã¾ã‚Œã¦ã„れã°ã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®é€ä¿¡è€…㮠フォト ID を表示ã—ã¾ã™ã€‚(ã“ã®ã‚ªãƒ—ションã¯å†™çœŸãŒå…¬é–‹éµã«åŸ‹ã‚è¾¼ã¾ã‚Œã¦ã„ã‚‹å ´åˆã«æœ‰åйã§ã™ã€‚)
- S/MIME ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£æƒ…å ±: ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã® S/MIME ã‚»ã‚ãƒ¥ãƒªãƒ†ã‚£æƒ…å ±ã‚’è¡¨ç¤ºã—ã¾ã™ã€‚
ã‚‚ã—ã‚ãªãŸãŒ keyserver-options auto-key-retrieve ã‚’ gpg.conf ã«è¨å®šã—ã¦ã„ãªã„状態ã§ç½²åã‹æš—å·åŒ–ã•れã¦ã„るメッセージをèªã‚€ã¨ã€å°ç’ã®ã‚¢ã‚¤ã‚³ãƒ³ãŒï¼Ÿã¨å…±ã«è¡¨ç¤ºã•れã€ãƒ˜ãƒƒãƒ€ã®ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ãƒ©ã‚¤ãƒ³ã« メッセージã®ä¸€éƒ¨ãŒç½²åã•れã¦ã„ã¾ã™; å°ç’ã¾ãŸã¯éµã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’クリックã—ã¦ãã ã•ã„ ã¨è¡¨ç¤ºã•れã€ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãƒšã‚¤ãƒ³ã«ã¯ OpenPGP メッセージブãƒãƒƒã‚¯ã¨ç½²åブãƒãƒƒã‚¯ãŒè¡¨ç¤ºã•れã¾ã™ã€‚
keyserver-options auto-key-retrieve ㌠gpg.conf ã«è¨å®šã•れã¦ã„ã‚‹å ´åˆã§ã‚‚ã€OpenPGP éµãŒãƒ‡ãƒ•ォルトéµã‚µãƒ¼ãƒã«ç„¡ã„å ´åˆã¯åŒæ§˜ã®ã‚¢ã‚¤ã‚³ãƒ³ãŒè¡¨ç¤ºã•れã¾ã™ã€‚
å°ç’ã¨ï¼Ÿ ã®ã‚¢ã‚¤ã‚³ãƒ³ã‚’クリックã™ã‚‹ã¨ã€è©²å½“ã™ã‚‹å…¬é–‹éµã‚’æŒã£ã¦ã„ãªã„æ—¨ãŒè¡¨ç¤ºã•れã¾ã™ã€‚OK をクリックã™ã‚‹ã¨ã€éµã‚µãƒ¼ãƒã®ãƒªã‚¹ãƒˆãŒè¡¨ç¤ºã•れãŸåˆ¥ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒé–‹ãメールã®é€ä¿¡è€…ã®å…¬é–‹éµã‚’ダウンãƒãƒ¼ãƒ‰ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
ã‚ãªãŸãŒä½¿ã„ãŸã„公開éµã‚µãƒ¼ãƒã®ãƒªã‚¹ãƒˆã‚’編集ã™ã‚‹ã«ã¯ã€Enigmail -> è¨å®š -> éµã‚µãƒ¼ãƒ ã‚¿ãƒ–ã‚’é¸æŠžã—ã€å…¬é–‹éµã‚µãƒ¼ãƒ: ã®æ¬„ã«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’カンマ区切りã§å…¥åŠ›ã—ã¦ãã ã•ã„。リストã®ä¸€ç•ªä¸Šã®ã‚µãƒ¼ãƒãŒæ—¢å®šã§ä½¿ç”¨ã•れã¾ã™ã€‚
- æš—å·åŒ–ã•ã‚ŒãŸæ·»ä»˜ãƒ•ァイルを開ã/添付ã•れ㟠OpenPGP éµã®ã‚¤ãƒ³ãƒãƒ¼ãƒˆ
- 添付ファイルå㌠*.pgp, *.asc *.gpg ã®ãƒ•ァイル㯠Enigmail ã§è‡ªå‹•çš„ã«èªè˜ã•れã¾ã™ã€‚ ãã‚Œã‚‰ã®æ·»ä»˜ãƒ•ァイルをå³ã‚¯ãƒªãƒƒã‚¯ã™ã‚‹ã¨ã€ç‰¹åˆ¥ãªé¸æŠžè‚¢ãŒã‚³ãƒ³ãƒ†ã‚ストメニューã«è¡¨ç¤ºã•れã¾ã™ã€‚æš—å·åŒ–ã•ã‚ŒãŸæ·»ä»˜ãƒ•ァイルã®å ´åˆã«ã¯ã€å¾©å·ã—ã¦é–‹ã 㨠復å·ã—ã¦åå‰ã‚’ã¤ã‘ã¦ä¿å˜ ãŒè¡¨ç¤ºã•れã€é–‹ã„ãŸã‚Šä¿å˜ã™ã‚‹å‰ã«æ·»ä»˜ãƒ•ァイルを Enigmail ã§å¾©å·ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚添付ファイル㌠OpenPGP éµãƒ•ァイルã®å ´åˆã«ã¯ã€OpenPGP éµã‚’èªã¿è¾¼ã‚€ ãŒè¡¨ç¤ºã•れã€OpenPGP éµã‚’èªã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã™ã€‚
æ›´ãªã‚‹ãƒ˜ãƒ«ãƒ—ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã§åˆ©ç”¨ã§ãã¾ã™ (英語): Enigmail Help web page
enigmail/lang/ja/help/rulesEditor.html 0000664 0000000 0000000 00000006450 12667016244 0020312 0 ustar 00root root 0000000 0000000
Enigmail ヘルプ: å—å–人ã”ã¨ã®è¨å®š
Enigmail ヘルプ
Enigmail å—å–人ã”ã¨ã®è¨å®š
å—å–人ã”ã¨ã®è¨å®šã§ã¯ã€å—å–人ã”ã¨ã«æš—å·åŒ–ã€ç½²åã€PGP/MIME ã«é–¢ã™ã‚‹æ—¢å®šã®è¨å®šã¨ã€ã©ã® OpenPGP éµã‚’用ã„ã‚‹ã‹ã‚’è¨å®šã§ãã¾ã™ã€‚å„ルール㯠5 ã¤ã®ãƒ•ィールドã‹ã‚‰ãªã‚Šã€1 ã¤ã®æ–¹é‡ã‚’ã‚らã‚ã—ã¾ã™ã€‚:
- メールアドレス
- メールアドレスを To:, Cc: ãã—㦠Bcc: フィールドã§ãƒžãƒƒãƒã•ã›ã¾ã™ã€‚ マッãƒãƒ³ã‚°ã¯ã€éƒ¨åˆ†ä¸€è‡´ã§è¡Œã‚れã¾ã™ã€‚ (詳細㯠ルール編集 ダイアãƒã‚°ã«ã‚りã¾ã™ã€‚)
- OpenPGP éµ
- å—å–人ã”ã¨ã«ç”¨ã„ã‚‹ OpenPGP éµ ID ã‚’è¨å®šã—ã¾ã™ã€‚
- ç½²å
-
ç½²åã™ã‚‹/ã—ãªã„を決定ã—ã¾ã™ã€‚ã“れã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ä½œæˆç”»é¢ã®å€‹åˆ¥ã®è¨å®šã«ã‚ˆã£ã¦ä¸Šæ›¸ãã•れã¾ã™ã€‚
- 無効: メッセージã«ç½²åã—ã¾ã›ã‚“。
- 返信時ã®ã¿: ç½²åã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«è¿”ä¿¡ã™ã‚‹ã¨ãã®ã¿ç½²åã—ã¾ã™ã€‚
- 有効: メッセージã«ç½²åã—ã¾ã™ã€‚
ã“ã®ç½²åã«é–¢ã™ã‚‹è¨å®šã¯ãƒžãƒƒãƒã™ã‚‹ã™ã¹ã¦ã®ãƒ«ãƒ¼ãƒ«ã«å¯¾ã—ã¦é©ç”¨ã•れã¾ã™ã€‚ã‚‚ã—ç½²åã‚’ã—ãªã„ルール㌠1 ã¤ã§ã‚‚ã‚れã°ã€ä»–ã®ç½²åã‚’ã™ã‚‹ãƒ«ãƒ¼ãƒ«ãŒãƒžãƒƒãƒã—ã¦ã‚‚ã€ç½²åã¯ã•れã¾ã›ã‚“。
- æš—å·åŒ–
- æš—å·åŒ–ã™ã‚‹/ã—ãªã„を決定ã—ã¾ã™ã€‚è¨å®šå¯èƒ½ãªé …ç›®ã¨æ„味ã¯ã€ç½²åã¨åŒæ§˜ã§ã™ã€‚
- PGP/MIME
- PGP/MIME (RFC 3156) を用ã„ã¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’エンコードã™ã‚‹ã‹ã©ã†ã‹ã‚’決定ã—ã¾ã™ã€‚PGP/MIME ãŒç„¡åйã®å ´åˆã€ã‚¤ãƒ³ãƒ©ã‚¤ãƒ³ PGP ãŒä½¿ã‚れã¾ã™ã€‚è¨å®šå¯èƒ½ãªé …ç›®ã¨æ„味ã¯ã€ç½²åã¨åŒä¸€ã§ã™ã€‚
ルールã¯è¡¨ç¤ºã•れã¦ã„ã‚‹é †ã«å‡¦ç†ã•れã¾ã™ã€‚ã‚るルールãŒå—å–人ã«ã‚ã¦ã¯ã¾ã‚Šã€OpenPGP éµ IDã€ã•らã«ç‰¹å®šã•れãŸéµ ID ã‚’å«ã‚“ã§ã„ã‚‹å ´åˆã€ãã®å—å–人ã«ã¤ã„ã¦ã¯ã€ä»–ã®ãƒ«ãƒ¼ãƒ«ã¯è€ƒæ…®ã•れã¾ã›ã‚“。
注æ„: ルールエディタã¯ã¾ã 完æˆã—ã¦ã„ã¾ã›ã‚“。ルールファイルを直接編集ã™ã‚‹ã“ã¨ã§ã€ã‚ˆã‚Šè©³ç´°ãªãƒ«ãƒ¼ãƒ«ã‚’è¨å®šã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ (ã“れらã®ãƒ«ãƒ¼ãƒ«ã¯ãƒ«ãƒ¼ãƒ«ã‚¨ãƒ‡ã‚£ã‚¿ã§ç·¨é›†ã§ããªã‹ã£ãŸã‚‚ã®ã§ã™)。直接ファイルを編集ã™ã‚‹ã“ã¨ã«ã¤ã„ã¦ã® è©³ç´°ãªæƒ…å ± (英語) 㯠Enigmail Homepage ã«ã‚りã¾ã™ã€‚
æ›´ãªã‚‹ãƒ˜ãƒ«ãƒ—ã¯ä»¥ä¸‹ã®ã‚µã‚¤ãƒˆã§åˆ©ç”¨ã§ãã¾ã™ (英語): Enigmail Help web page
enigmail/lang/ja/help/sendingPrefs.html 0000664 0000000 0000000 00000005754 12667016244 0020446 0 ustar 00root root 0000000 0000000
Enigmail ヘルプ: é€ä¿¡æ™‚ã®æš—å·åŒ–è¨å®š
Enigmail ヘルプ
æš—å·åŒ–ã—ã¦é€ä¿¡ã™ã‚‹è¨å®š
é€ä¿¡è¨å®šã«ãŠã„ã¦ã€æš—å·åŒ–ã«é–¢ã™ã‚‹ä¸€èˆ¬çš„ãªãƒ¢ãƒ‡ãƒ«ã¨ãƒ«ãƒ¼ãƒ«ã‚’é¸æŠžã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- æ¨™æº–ã®æš—å·åŒ–è¨å®š
- ã“ã®è¨å®šã§ã¯ã€å¯èƒ½ã§ã‚れã°ç¢ºèªãªã—ã«è‡ªå‹•çš„ã«æš—å·åŒ–ã—ã¦é€ä¿¡ã—ã¾ã™ã€‚
å˜ã«æš—å·åŒ–ã™ã‚‹ã“ã¨ã§ãƒ—ライãƒã‚·ãƒ¼ã‚’強化ã—ãŸã„ã®ã§ã‚れã°ã€ã“ã®è¨å®šãŒé©ã—ã¦ã„ã¾ã™ã€‚
ã“れã¯ã€è‘‰æ›¸ã§ã¯ãªãå°æ›¸ã‚’用ã„ã‚‹ã“ã¨ã¨é¡žä¼¼ã—ã¦ã„ã¾ã™ã€‚葉書ã¨ã¯ç•°ãªã‚Šã€å°æ›¸ã§ã‚れã°é…é€ã®éŽç¨‹ã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å†…容ãŒç¬¬ä¸‰è€…ã®ç›®ã«è§¦ã‚Œã‚‹ã“ã¨ã¯ã‚りã¾ã›ã‚“。
ã—ã‹ã—ãªãŒã‚‰å°æ›¸ã‚’用ã„ãŸå ´åˆã¨åŒæ§˜ã«ã€ã“ã®è¨å®šã§ã¯é…é€éŽç¨‹ã§ç¬¬ä¸‰è€…ã«ã‚ˆã£ã¦ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å†…容ãŒè§£èªã•れるå¯èƒ½æ€§ã‚’完全ã«å¦å®šã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“ (ãã®ãŸã‚ã«ç‰¹åˆ¥ãªæŠ€è¡“ã‚’å¿…è¦ã¨ã™ã‚‹ã¨ã—ã¦ã‚‚)。
具体的ãªãƒªã‚¹ã‚¯ã¨ã—ã¦ã¯ã€æ£è¦ã®å—å–人を装ã£ãŸç¬¬ä¸‰è€…ã«ã‚ˆã‚‹ã€Œå½ç‰©ã®éµã€ã«å¯¾ã—ã¦æš—å·åŒ–ã—ã¦ã—ã¾ã†ã“ã¨ãŒæŒ™ã’られã¾ã™ã€‚ã“れをé¿ã‘ã‚‹ãŸã‚ã«ã¯ã€PGP ã®ä¿¡é ¼ãƒ¢ãƒ‡ãƒ«ã‚’利用ã™ã‚‹ã‹ (下記å‚ç…§)ã€å…¬é–‹éµã®ãƒ•ã‚£ãƒ³ã‚¬ãƒ¼ãƒ—ãƒªãƒ³ãƒˆãŒæ£ã—ã„ã‹å¸¸ã«ç¢ºèªã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
- è©³ç´°ãªæš—å·åŒ–è¨å®š
- ã“ã®è¨å®šã§ã¯ã€å¿…è¦ã«å¿œã˜ã¦æš—å·åŒ–ã®è¨å®šã‚’変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
- ç½²å/æš—å·åŒ–ã•れãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã«å¯¾ã—ã¦è‡ªåˆ†ã‚‚ç½²å/æš—å·åŒ–ã—ã¦è¿”ä¿¡ã™ã‚‹ã‹å¦ã‹
- æš—å·åŒ–ã®éš›ã«å—ã‘入れるéµã®é¸å®šã« OpenPGP ã®ä¿¡é ¼ãƒ¢ãƒ‡ãƒ« (Web of Trustã€è‡ªåˆ†è‡ªèº«ã«ã‚ˆã‚‹ç½²åã‚ã‚‹ã„ã¯ã€è‡ªåˆ†ãŒä¿¡ç”¨ã™ã‚‹éµã«ã‚ˆã‚‹ååˆ†ãªæ•°ã®ç½²åã‚’å¿…è¦ã¨ã—ã¾ã™) を用ã„ã‚‹ã‹å¦ã‹
- éµãŒå—ã‘å…¥ã‚Œã‚‰ã‚Œã‚‹å ´åˆã«ã€è‡ªå‹•çš„ã«æš—å·åŒ–ã—ã¦é€ä¿¡ã™ã‚‹ã‹å¦ã‹
- é€ä¿¡å‰ã«æš—å·åŒ–ã«ã¤ã„ã¦ç¢ºèªã™ã‚‹ã‹å¦ã‹
æ£è¦ã®å—å–人以外ã®ç¬¬ä¸‰è€…ã«ã‚ˆã£ã¦æš—å·åŒ–ã—ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã®å†…容ãŒè§£èªã•れるã“ã¨ã‚’防ããŸã‚ã«ã¯ã€è©³ç´°è¨å®šã§ã€Œä¿¡ç”¨ã§ãã‚‹éµã®ã¿ã€ã‚’é¸æŠžã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚OpenPGP ã®ä¿¡é ¼ãƒ¢ãƒ‡ãƒ« (Web of Trust) を用ã„ã‚‹ã“ã¨ã§ã€å½ç‰©ã®éµã«å¯¾ã™ã‚‹ãƒªã‚¹ã‚¯ã‚’軽減ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ãŒã€ã“ã®ãƒ¢ãƒ‡ãƒ«ã‚’é©åˆ‡ã«åˆ©ç”¨ã™ã‚‹ãŸã‚ã«ã¯ã€è‡ªåˆ†è‡ªèº«ã«ã‚ˆã‚‹ç½²åを行ã„ã€ã€Œæ‰€æœ‰è€…ã«ã‚ˆã‚‹ä¿¡ç”¨åº¦ã€ã‚’明示ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
enigmail/lang/ko/ 0000775 0000000 0000000 00000000000 12667016244 0014205 5 ustar 00root root 0000000 0000000 enigmail/lang/ko/am-enigprefs.properties 0000664 0000000 0000000 00000000117 12667016244 0020677 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP 보안
enigmail/lang/ko/enigmail.dtd 0000664 0000000 0000000 00000073115 12667016244 0016476 0 ustar 00root root 0000000 0000000
주ì˜ï¼ší‚¤ ìƒì„±ì€ 완료까지 몇 ë¶„ ì •ë„ ê±¸ë¦´ 수 있습니다. 키 ìƒì„±ì´ ì§„í–‰ë˜ëŠ” ë™ì•ˆ ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ì¢…ë£Œí•˜ì§€ 마ì‹ì‹œì˜¤. 키 ìƒì„± ë„ì¤‘ì— ë¸Œë¼ìš°ì €ë¥¼ 사용하거나 ë””ìŠ¤í¬ ì•¡ì„¸ìŠ¤ê°€ ë§Žì€ ìž‘ì—…ì„ ìˆ˜í–‰í•˜ë©´, '난수 í’€'ì´ ì±„ì›Œì ¸ 처리 ì†ë„ê°€ 빨ë¼ì§‘니다. 키 ìƒì„±ì´ 완료ë˜ë©´ ì•Œë ¤ë“œë¦½ë‹ˆë‹¤.">
'ì€ ìž˜ëª»ëœ ê²ƒìž…ë‹ˆë‹¤.">
주ì˜ï¼ší‚¤ ìƒì„±ì€ 완료까지 몇 ë¶„ ì •ë„ ê±¸ë¦´ 수 있습니다. 키 ìƒì„±ì´ ì§„í–‰ë˜ëŠ” ë™ì•ˆ ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ì¢…ë£Œí•˜ì§€ 마ì‹ì‹œì˜¤. 키 ìƒì„±ì´ 완료ë˜ë©´ ì•Œë ¤ë“œë¦½ë‹ˆë‹¤.">
주ì˜: Enigmail는 ëª¨ë“ ê³„ì • ë˜ëŠ” ì‹ ì›ì— 대하여, Enigmailê°€ ì„¤ì •ëœ ìƒíƒœì´ë“ ì•„ë‹ˆë“ ê´€ê³„ì—†ì´, ì „ìž ë©”ì¼ì— 있는 ì„œëª…ì„ ê²€ì¦í•˜ê²Œ ëœë‹¤ëŠ” ì ì„ ì£¼ì˜í•˜ì‹ì‹œì˜¤">
Enigmailì„ ì„ íƒí•´ì£¼ì…”서 ê°ì‚¬í•©ë‹ˆë‹¤.">
enigmail/lang/ko/enigmail.properties 0000664 0000000 0000000 00000057153 12667016244 0020123 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail ê²½ê³
enigConfirm=Enigmail 확ì¸
enigError=Enigmail ì—러
enigPrompt=Enigmail 프롬프트
dlgYes=예(&Y)
dlgNo=아니오(&N)
dlgKeepSetting=ì„¤ì •ì„ ì €ìž¥í•´, 다ìŒë¶€í„° 묻지 않ìŒ
dlgNoPrompt=다ìŒë¶€í„° ì´ ëŒ€í™”ìƒìžë¥¼ 표시하지 않ìŒ
dlg.button.delete=ì‚ì œ(&D)
dlg.button.cancel=취소(&C)
dlg.button.close=닫기(&C)
dlg.button.continue=계ì†(&T)
dlg.button.skip=건너뛰기(&S)
dlg.button.view=보기(&V)
repeatPrefix=\n\nì´ ê²½ê³ ëŠ” %S
repeatSuffixSingular=회 반복ë©ë‹ˆë‹¤.
repeatSuffixPlural=회 반복ë©ë‹ˆë‹¤.
noRepeat=\n\nEnigmail를 ì—…ê·¸ë ˆì´ë“œ í• ë•Œê¹Œì§€, ì´ ê²½ê³ ëŠ” 반복ë˜ì§€ 않습니다.
pgpNotSupported=Enigmail를 PGP 6.x와 함께 ì‚¬ìš©í•˜ê³ ê³„ì‹ ê²ƒ 같습니다.\n\n불행하게ë„, PGP 6.x는 Enigmailê°€ 올바르게 ë™ìž‘하지 못하게하는 ë§Žì€ ë¬¸ì œì ì„ ê°€ì§€ê³ ìžˆìŠµë‹ˆë‹¤. ë”°ë¼ì„œ, Enigmail는 PGP 6.x를 ë”ì´ìƒ ì§€ì›í•˜ì§€ 않습니다.. GnuPG (GPG)를 ëŒ€ì‹ ì— ì‚¬ìš©í•˜ì„¸ìš”.\n\n, GnuPG로 ì „í™˜í• ë•Œ ë„ì›€ì´ í•„ìš”í•˜ë‹¤ë©´, Enigmail 홈페ì´ì§€ì˜ Help ì„¹ì…˜ì„ ì°¸ì¡°í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.
passphraseCleared=íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆë¥¼ ì§€ì› ìŠµë‹ˆë‹¤
noPhotoAvailable=ì‚¬ì§„ì´ ì—†ìŠµë‹ˆë‹¤
debugLog.title=Enigmail Debug Log
usingVersion=Enigmail ë²„ì „ %S 실행 중
usingAgent=%S ì‹¤í–‰íŒŒì¼ %S 를 ì´ìš©í•´ 암호화/복호화를 í•˜ê³ ìžˆìŠµë‹ˆë‹¤.
agentError=ì—러: Enigmime ì„œë¹„ìŠ¤ì— ì•¡ì„¸ìŠ¤ í• ìˆ˜ 없습니다!
accessError=Enigmail ì„œë¹„ìŠ¤ì— ì•¡ì„¸ìŠ¤ í• ìˆ˜ 없습니다.
onlyGPG=키 ìƒì„±ì€ GnuPGì—서만 ì´ìš©í• 수 있습니다. (PGPì—서는 ë™ìž‘하지 않습니다! )
keygenComplete=키 ìƒì„± 완료! ì¦ëª…서 <%S>ê°€ ì„œëª…ì— ì´ìš©ë©ë‹ˆë‹¤.
revokeCertRecommended=사용ìžì˜ í‚¤ì— ëŒ€í•œ í기 ì¸ì¦ì„œ ìž‘ì„±ì„ ê°•ë ¥ížˆ 추천 합니다. ì´ ì¸ì¦ì„œëŠ” 키를 무효로 í•˜ê³ ì‹¶ì„ ë•Œ, 예를 들어, 비밀키를 ì½ì–´ë²„리거나 ì‹ ë¢°ì„±ì„ ë³´ìž¥í• ìˆ˜ ì—†ì„ ë•Œ ì´ìš©í• 수 있습니다. í기 ì¦ëª…서를 지금 작성합니까?
keyMan.button.generateCert=ì¸ì¦ì„œ ìƒì„±(&G)
genCompleteNoSign=키 ìƒì„± 완료!
genGoing=키 ìƒì„± ì´ë¯¸ 진행중!
passNoMatch=íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆê°€ ì¼ì¹˜í•˜ì§€ 않았습니다. 다시 ìž…ë ¥í•´ì£¼ì„¸ìš”
passCheckBox=í‚¤ì— ëŒ€í•´ íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆë¥¼ ì„¤ì •í•˜ì§€ 않는 경우 ì²´í¬
passUserName=ì´ ì¦ëª…ì„œì— ëŒ€í•œ ì‚¬ìš©ìž ëª…ì„ ì§€ì •í•˜ì„¸ìš”
changePassFailed=íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆ 변경 실패
keyConfirm='%S'ì˜ ê³µê°œí‚¤ì™€ ê°œì¸í‚¤ë¥¼ ìƒì„±í•©ë‹ˆê¹Œ?
keyMan.button.generateKey=키 ìƒì„±(&G)
keyAbort=키 ìƒì„±ì„ 중지합니까?
keyMan.button.generateKeyAbort=키 ìƒì„± 중단(&A)
keyMan.button.generateKeyContinue=키 ìƒì„± 계ì†(&C)
expiryTooLong=100ë…„ ì´ìƒì˜ ìœ íš¨ê¸°ê°„ì´ ìžˆëŠ” 키는 ìƒì„± í• ìˆ˜ 없습니다.
expiryTooShort=키는 ì ì–´ë„ 1ì¼ê°„ì€ ìœ íš¨í•˜ì§€ 않으면 안ë©ë‹ˆë‹¤.
keyGenFailed=키 ìƒì„±ì— 실패했습니다. ìžì„¸í•œ ë‚´ìš©ì€ Enigmail 콘솔(메뉴 Enigmail > Enigmail 디버그)ì—서 확ì¸í•˜ì„¸ìš”.
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail 보안 ì •ë³´ \n\n
enigHeader=Enigmail:
possiblyPgpMime=PGP/MIME 암호화 í˜¹ì€ ì„œëª…ëœ ë©”ì‹œì§€ 같습니다. 복호화화 ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”
noDecrypted=ì €ìž¥í• ë³µí˜¸í™”ëœ ë©”ì‹œì§€ê°€ 없습니다! \níŒŒì¼ ë©”ë‰´ë¡œì—서 ì €ìž¥ì„ ì‚¬ìš©í•˜ì„¸ìš”
noMessage=ì €ìž¥í• ë©”ì‹œì§€ê°€ ì—†ìŒ!
useButton=메시지 복호화를 í•˜ë ¤ë©´ 복호화 ë²„íŠ¼ì„ í´ë¦í•´ 주세요
saveHeader=Enigmail: 복호화한 메시지 ì €ìž¥
saveAttachmentHeader=Enigmail: 복호화 한 첨부 파ì¼ì„ ì €ìž¥
noTempDir=쓰기 가능한 임시 ë””ë ‰í† ë¦¬ë¥¼ ì°¾ì„ ìˆ˜ ì—†ìŒ\nTEMP 환경 변수를 ì„¤ì •í•´ 주세요
attachmentPgpKey=ì—´ë ¤ê³ í•œ 첨부 íŒŒì¼ '%S'는, OpenPGP키 파ì¼ìž…니다. \n\nì²¨ë¶€ëœ í‚¤ë¥¼ ê°€ì ¸ì˜¤ë ¤ë©´ 'ê°€ì ¸ì˜¤ê¸°'를 브ë¼ìš°ì € 윈ë„ìš°ì—서 íŒŒì¼ ë‚´ìš©ì„ ë³´ë ¤ë©´ '보기'를 í´ë¦í•˜ì„¸ìš”
beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* *********
endPgpPart=********** *END ENCRYPTED or SIGNED PART* **********
decryptOkNoSig=ê²½ê³ \n\në³µí˜¸í™”ì— ì„±ê³µí–ˆìœ¼ë‚˜ ì„œëª…ì€ ì˜¬ë°”ë¥´ê²Œ ê²€ì¦ë˜ì§€ 않았습니다
msgOvl.button.contAnyway=ìƒê´€ì—†ì´ ê³„ì† ì§„í–‰(&C)
keysToExport=ì‚½ìž…í• OpenPGP 키를 ì„ íƒí•˜ì„¸ìš”
keysToUse=%S ì‚¬ìš©í• OpenPGP키를 ì„ íƒí•˜ì„¸ìš”
pubKey=%S ì— ëŒ€í•œ 공개키\n
windowLocked=메시지 작성 í™”ë©´ì´ ìž ê¹€. 보내기 취소ë¨
sendUnencrypted=Enigmail 초기화를 실패했습니다.\n암호화ë˜ì§€ ì•Šì€ ë©”ì‹œì§€ë¥¼ ë³´ë‚´ì‹œê² ìŠµë‹ˆê¹Œ?
composeSpecifyEmail=외부로 나가는 ë©”ì‹œì§€ì— ëŒ€í•œ 서명 키를 ì„ íƒí•˜ëŠ”ë° ì‚¬ìš©í• ì£¼ë¡œ 사용하는 ì „ìž ë©”ì¼ ì£¼ì†Œë¥¼ ì§€ì •í•´ 주세요.\n 공백으로 ë‘ë©´, 해당 ë©”ì‹œì§€ì˜ ë³´ë‚´ëŠ” ì‚¬ëžŒì˜ ì£¼ì†Œê°€ 서명 키 ì„ íƒì— 사용ë©ë‹ˆë‹¤.
sendingHiddenRcpt=ì´ ë©”ì‹œì§€ì—는 BCC (ìˆ¨ì€ ì°¸ì¡°)로 받는 ì‚¬ëžŒì´ ìžˆìŠµë‹ˆë‹¤. ì´ ë©”ì‹œì§€ê°€ 암호화ë˜ë©´, BCC로 받는 ì‚¬ëžŒì„ ìˆ¨ê¸¸ 수는 있지만 몇몇 다른 PGP ì œí’ˆ (예를 들어, PGP Corp.) 사용ìžê°€ 메시지를 복호화 í• ìˆ˜ 없게 ë ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤. ì´ ê²½ìš°, 암호화한 BCC-ë©”ì¼ì„ 사용하지 않는게 좋습니다.
sendWithHiddenBcc=BCC 받는 사람 숨기기
sendWithShownBcc=ì¼ë°˜ì ì¸ ë°©ì‹ìœ¼ë¡œ 암호화
sendingNews=ì•”í˜¸í™”ëœ ë³´ë‚´ê¸° ìž‘ì—…ì´ ì¤‘ë‹¨ë습니다.\n\nì´ ë©”ì‹œì§€ëŠ” 뉴스 ê·¸ë£¹ì˜ ë°›ëŠ” ì‚¬ëžŒì´ í¬í•¨ë˜ì–´ 있기 ë•Œë¬¸ì— ì•”í˜¸í™”ë 수 없습니다. 암호화 하지ë§ê³ 다시 ì´ ë©”ì‹œì§€ë¥¼ 보내주세요.
sendToNewsWarning=ê²½ê³ : ë‰´ìŠ¤ê·¸ë£¹ì— ì•”í˜¸í™”í•œ ë©”ì¼ì„ ë³´ë‚´ë ¤í•˜ê³ ìžˆìŠµë‹ˆë‹¤.\n\nê·¸ë£¹ì˜ ëª¨ë“ êµ¬ì„±ì›ì´ ì´ ë©”ì‹œì§€ë¥¼ 복호화 í• ìˆ˜ 있어야 ì˜ë¯¸ê°€ 있기 ë•Œë¬¸ì— ì´ë ‡ê²Œ 하는 ê²ƒì€ ê¶Œìž¥í•˜ì§€ 않습니다. 예를 들어, 메시지는 ê·¸ë£¹ì— ì°¸ì—¬í•˜ê³ ìžˆëŠ” ëª¨ë“ ì‚¬ëžŒì˜ í‚¤ë¡œ 암호화 ë˜ì–´ì•¼ 합니다. 지금 ìˆ˜í–‰í•˜ê³ ìžˆëŠ” ì¼ì´ ì–´ë–¤ ì¼ì¸ì§€ ì •í™•ížˆ ì•Œê³ ìžˆëŠ” 경우ì—ë§Œ 메시지를 보내기 ë°”ëžë‹ˆë‹¤.\n\n계ì†í•˜ì‹œê² 습니까?
hasHTML=HTML ë©”ì¼ ê²½ê³ :\nì´ ë©”ì‹œì§€ì—는 서명/암호화 실패를 ì¼ìœ¼í‚¬ 수 있는 HTMLì´ í¬í•¨ë˜ì–´ 있는 것 같습니다. 앞으로 ì´ ë©”ì‹œì§€ë¥¼ ë¬´ì‹œí•˜ë ¤ë©´, 서명한 ë©”ì¼ì„ 보낼 때 SHIFT 키를 누르면서 작성/ë‹µì‹ ë²„íŠ¼ì„ í´ë¦í•˜ì‹œê¸° ë°”ëžë‹ˆë‹¤.\n만약 기본으로 ë©”ì¼ì— ì„œëª…ì„ í•˜ê³ ìžˆë‹¤ë©´, ì´ ë©”ì¼ ê³„ì •ì— ëŒ€í•´ HTML ë©”ì¼ì„ ê³„ì† ì‚¬ìš©í•˜ì§€ 않ë„ë¡í•˜ê¸° 위해 'HTML로 메시지를 작성하기' ì„¤ì •ì„ ì²´í¬ í•´ì œí•˜ì…”ì•¼ 합니다.
strippingHTML=서명/암호화를 위해 í…스트 형ì‹ìœ¼ë¡œ 변환하는 ê³¼ì •ì—서 ì†ì‹¤ë˜ëŠ” HTML í˜•ì‹ ì •ë³´ê°€ ë©”ì‹œì§€ì— í¬í•¨ë˜ì–´ 있습니다. ì •ë§ë¡œ ì§„í–‰í• ê¹Œìš”?
msgCompose.button.sendAnyway=ê·¸ëž˜ë„ ë©”ì‹œì§€ 보내기(&S)
attachWarning=ì´ ë©”ì‹œì§€ì˜ ì²¨ë¶€ë¬¼ì€ ë¡œì»¬ì— ìžˆëŠ” ê²ƒì´ ì•„ë‹ˆê¸° ë•Œë¬¸ì— ì•”í˜¸í™”ë 수 없습니다. ì²¨ë¶€ë¬¼ì„ ì•”í˜¸í™”í•˜ê¸° 위해서는, 해당 ì²¨ë¶€ë¬¼ì„ ë¡œì»¬ 파ì¼ë¡œ ìš°ì„ ì €ì •í•œ ë‹¤ìŒ ì´ íŒŒì¼ë“¤ì„ 다시 첨부하세요. ê·¸ëž˜ë„ ë©”ì‹œì§€ë¥¼ ë³´ë‚´ì‹œê² ìŠµë‹ˆê¹Œ?
quotedPrintableWarn=보내는 ë©”ì‹œì§€ì— 'quoted-printable' ì¸ì½”ë”©ì´ ì„¤ì •ë˜ì–´ 있습니다. ì´ ì„¤ì •ìœ¼ë¡œ ì¸í•´ ë©”ì‹œì§€ì˜ ë³µí˜¸í™” ê·¸ë¦¬ê³ /ë˜ëŠ” ê²€ì¦ì„ 올바로 í• ìˆ˜ 없게ë 소지가 있습니다. 지금 'quoted-printable' 메시지 보내기 ì„¤ì •ì„ ë„ì‹œê² ìŠµë‹ˆê¹Œ?
minimalLineWrapping=%S ìžê°€ ë 때마다 줄 바꾸기 ì„¤ì •ì´ ë˜ì–´ 있습니다. ì œëŒ€ë¡œ 암호화 ê·¸ë¦¬ê³ /ë˜ëŠ” ì„œëª…ì„ í•˜ë ¤ë©´, ì ì–´ë„ ì´ ê°’ì´ 68 ì€ ë˜ì–´ì•¼í•©ë‹ˆë‹¤. \n 지금 줄 바꿈 ë¬¸ìž ìˆ˜ë¥¼ 68ìžë¡œ 변경합니까?
warning=ê²½ê³
signIconClicked=ì„œëª…ì„ ìˆ˜ë™ìœ¼ë¡œ 변경했습니다. ë”°ë¼ì„œ ì´ ë©”ì‹œì§€ë¥¼ 작성하는 ë™ì•ˆ, 서명하기 활성/ë¹„í™œì„±ì€ ë”ì´ìƒ 암호화 활성/ë¹„í™œì„±í•˜ê¸°ì— ì˜ì¡´í•˜ì§€ 않습니다.
# note: should end with double newline:
sendAborted=보내기 중단ë¨.\n\n
statPGPMIME=PGP/MIME
statSigned=서명ë¨
statEncrypted=암호화ë¨
statPlain=서명ë˜ê³ 암호화ë¨
offlineSave=%S 메시지를 보낼 편지함 í´ë”ì— %S (으)로 ì €ìž¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?
onlineSend=%S 메시지를 %S (으)로 보냅니까?
encryptKeysNote=주ì˜: ì´ ë©”ì‹œì§€ëŠ” ë‹¤ìŒ ì‚¬ìš©ìž ì‹ ì› / 키로 암호화ë©ë‹ˆë‹¤: %S
signFailed=Enigmail ì—러; 암호화/서명하기 실패. 암호화ë˜ì§€ ì•Šì€ ë©”ì‹œì§€ë¥¼ 보낼까요?
msgCompose.button.sendUnencrypted=암호화ë˜ì§€ ì•Šì€ ë©”ì‹œì§€ 보내기(&S)
recipientsSelectionHdr=암호화하기 위해 받는 ì‚¬ëžŒì„ ì„ íƒ
configureNow=ì„ íƒí•œ 디지털 ì‹ ë¶„ì¦ì— 대한 Enigmail 보안 ì„¤ì •ì´ ì•„ì§ ë˜ì–´ìžˆì§€ 않습니다. 지금 ì„¤ì •í•˜ì‹œê² ìŠµë‹ˆê¹Œ?
# should not be used anymore:
encryptYes=메시지는 암호화ë©ë‹ˆë‹¤
encryptNo=메시지가 암호화ë˜ì§€ 않습니다
# should not be used anymore:
signYes=메시지는 서명ë©ë‹ˆë‹¤
signNo=메시지가 서명ë˜ì§€ 않습니다
rulesConflict=받는 사람 별 ê·œì¹™ë“¤ì´ ì„œë¡œ 모순ë©ë‹ˆë‹¤\n%S\n\nì´ë ‡ê²Œ ì„¤ì •í•´ì„œ 메시지를 보냅니까?
msgCompose.button.configure=ì„¤ì •(&C)
msgCompose.button.send=메시지 보내기(&S)
msgCompose.button.save=메시지 ì €ìž¥(&S)
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=공개키 %S ê°€ 서명 ê²€ì¦ì— 필요함
clickDecrypt=; 복호화 ë²„íŠ¼ì„ í´ë¦
clickDecryptRetry=; 다시 시ë„í•˜ë ¤ë©´ 복호화 ë²„íŠ¼ì„ í´ë¦
msgPart=%S ë©”ì‹œì§€ì˜ ì¼ë¶€ë¶„
msgSigned=서명ë¨
msgEncrypted=암호화ë¨
msgSignedAndEnc=서명ë˜ê³ 암호화ë¨
unverifiedSig=ê²€ì¦ë˜ì§€ì•Šì€ 서명
incompleteDecrypt=복호화 미완료
needKey=ì—러 - 메시지를 ë³µí˜¸í™”í•˜ë ¤ë©´ 비밀키가 필요함
failedDecrypt=ì—러 - 복호화 실패
badPhrase=ì—러 - 틀린 íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆ
failedDecryptVerify=ì—러 - 복호화/ê²€ì¦ ì‹¤íŒ¨
viewInfo=; 세부사í•ì€ ë³´ê¸° > 메시지 보안 ì •ë³´
decryptedMsg=ë³µí˜¸í™”ëœ ë©”ì‹œì§€
locateGpg=GnuPG 프로그램 위치 ì§€ì •
invalidGpgPath=GnuPGê°€ ì§€ì •ëœ ê²½ë¡œì—서 실행ë 수 없습니다. Enigmail는 GnuPG로 경로를 다시 ì§€ì •í• ë•Œê¹Œì§€ í˜¹ì€ ì‘ìš©í”„ë¡œê·¸ëž¨ì„ ë‹¤ì‹œ ì‹œìž‘í• ë•Œê¹Œì§€ 비활성 ìƒíƒœê°€ ë©ë‹ˆë‹¤.
warningsAreReset=ëª¨ë“ ê²½ê³ ê°€ 초기화 ë˜ì—ˆìŠµë‹ˆë‹¤.
prefs.gpgFound=%S ì—서 GnuPGê°€ 발견ë¨
prefs.gpgNotFound=GnuPG를 ì°¾ì„ ìˆ˜ ì—†ìŒ
prefs.warnAskNever=ê²½ê³ : ì´ ì˜µì…˜ì„ í™œì„±í™”í•˜ë©´ 받는 사람들 중 ì–´ëŠ í•œ 사람ì—게 키가 ì—†ë”ë¼ë„ ë”는 알리지않기 ë•Œë¬¸ì— ì „ìž ë©”ì¼ì´ 암호화ë˜ì§€ ì•Šì€ ìƒíƒœë¡œ 방치ë 수 있습니다 -- Enigmail ì´ëŸ° 경우가 ë°œìƒí•´ë„ ì•Œë ¤ë“œë¦¬ì§€ ì•Šì„ ê²ƒìž…ë‹ˆë‹¤!
prefEnigmail.oneKeyserverOnly=오류 - ë¹ ì§„ OpenPGP 키를 ìžë™ìœ¼ë¡œ 다운로드 하기위해 í•˜ë‚˜ì˜ í‚¤ 서버만 ì§€ì •í• ìˆ˜ 있습니다.
enterAdminPin=스마트 ì¹´ë“œì˜ ê´€ë¦¬ìž PINì„ ìž…ë ¥í•´ 주세요
enterCardPin=스마트 카드 PINì„ ìž…ë ¥í•´ 주세요
notInit=ì—러 - Enigmail 서비스가 ì•„ì§ ì´ˆê¸°í™” 안ë¨
badCommand=ì—러 - 암호화 ëª…ë ¹ 실패
cmdLine=ëª…ë ¹ í–‰ ì¶œë ¥:
notRequired=ì—러 - 암호화 í•„ìš” ì—†ìŒ
notComplete=ì—러 - 키 ìƒì„±ì´ ì•„ì§ ì™„ë£Œ 안ë¨
invalidEmail=ì—러 - ìž˜ëª»ëœ ì „ìž ë©”ì¼ ì£¼ì†Œ
noPassphrase=ì—러 - 주어진 íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆ ì—†ìŒ
noPGPblock=ì—러 - ìœ íš¨í•˜ì§€ ì•Šì€ ë³´í˜¸í˜• OpenPGP ë°ì´í„° 블ë¡ì´ 발견ë˜ì—ˆìŠµë‹ˆë‹¤
unverifiedReply=들여쓰기 ëœ ë¶€ë¶„ (답장)ì´ ë³€í˜•ëœ ê²ƒ 같습니다
sigMismatch=ì—러 - ì„œëª…ì´ ì¼ì¹˜í•˜ì§€ 않습니다
cantImport=공개키 ê°€ì ¸ì˜¤ê¸° 실패\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=리ë”ì— ë“¤ì–´ìžˆëŠ” %S 스마트카드가 메시지를 ì²˜ë¦¬í•˜ëŠ”ë° ì‚¬ìš©í• ìˆ˜ 없습니다.\n%S 스마트카드를 ì‚½ìž…í•˜ê³ ë‹¤ì‹œ 시ë„í•´ë³´ì‹ì‹œì˜¤.
sc.insertCard=해당 ìž‘ì—…ì€ ì‚¬ìš©ìžì˜ %S 스마트카드를 필요로합니다.\n필요한 스마트카드를 ì‚½ìž…í•˜ê³ ë‹¤ì‹œ 시ë„í•´ë³´ì‹ì‹œì˜¤.
sc.removeCard=해당 ìž‘ì—…ì€ ë¦¬ë”ì— ìŠ¤ë§ˆíŠ¸ì¹´ë“œê°€ ë“¤ì–´ìžˆì„ í•„ìš”ê°€ 없습니다.\n스마트카드를 ì œê±°í•œ 후 다시 시ë„í•´ë³´ì‹ì‹œì˜¤.
sc.noCardAvailable=리ë”ì—서 스마트 카드를 ì°¾ì„ ìˆ˜ 없습니다\n스마트 카드를 ì‚½ìž…í•˜ê³ ìž‘ì—…ì„ ë‹¤ì‹œ 해보세요
sc.noReaderAvailable=스마트 카드 리ë”ì— ì ‘ê·¼ì´ í—ˆìš©ë˜ì§€ 않습니다\n카드 리ë”를 ì—°ê²°í•˜ê³ , 스마트 카드를 삽입 후, ìž‘ì—…ì„ ë‹¤ì‹œ 해보세요
gpgNotFound=Unable to locate GnuPG program '%S'.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences
gpgNotInPath=Unable to locate GnuPG executable in the PATH.\nMake sure you have set the GnuPG executable path correctly in the Enigmail Preferences
gpgAgentNotStarted=ì‚¬ìš©í•˜ê³ ìžˆëŠ” GnuPG ë²„ì „ %S ì— í•„ìš”í•œ gpg-agentì„ ì‹œìž‘í• ìˆ˜ 없습니다.
prefUntrusted=ì‹ ë¢°í• ìˆ˜ 없는
prefRevoked=íê¸°ëœ í‚¤
prefExpiredKey=ë§Œë£Œëœ í‚¤
prefExpired=만료ëœ
prefGood=%S ì˜ ì˜¬ë°”ë¥¸ 서명
prefBad=%S ì˜ ìž˜ëª»ëœ ì„œëª…
failCancel=ì—러 - 사용ìžì— ì˜í•´ 키 받기가 취소 ë˜ì—ˆìŠµë‹ˆë‹¤
failNoServer=ì—러 - 키를 받아올 키 서버가 ì§€ì •ë˜ì§€ 않았습니다
failNoID=ì—러 - ë°›ì„ í‚¤ì˜ IDê°€ ì§€ì •ë˜ì§€ 않았습니다
failKeyExtract=ì—러 - 키 추출 ëª…ë ¹ 실패
notFirstBlock=ì—러 - 첫 OpenPGP 블ë¡ì´ 공개키가 아닙니다
importKeyConfirm=ë©”ì‹œì§€ì— ë“¤ì–´ìžˆëŠ” 키를 ê°€ì ¸ì˜¤ê² ìŠµë‹ˆê¹Œ?
failKeyImport=ì—러 - 키 ê°€ì ¸ì˜¤ê¸° 실패
fileWriteFailed=íŒŒì¼ %S 로 쓰기 실패
importKey=키 서버ì—서 공개키 %S 를 ê°€ì ¸ì˜¤ê¸°:
uploadKey=키 ì„œë²„ì— ê³µê°œí‚¤ %S 를 보내기:
keyId=키 ID
keyAndSigDate=키 ID: 0x%S / %S ì— ì„œëª…ë¨
keyFpr=키 지문: %S
noEmailProvided=ì „ìž ë©”ì¼ ì£¼ì†Œë¥¼ ìž…ë ¥í•˜ì§€ 않았습니다!
keyAlreadySigned=해당 키는 ì´ë¯¸ 서명ë˜ì–´ 있습니다. 중복 ì„œëª…í• ìˆ˜ 없습니다.
selKeyExpired=ë§Œë£Œëœ %S
createdHeader=ìƒì„±ë¨:
atLeastOneKey=키가 ì„ íƒë˜ì§€ 않았ìŒ! ì ì–´ë„ í•˜ë‚˜ì˜ í‚¤ëŠ” ì„ íƒí•´ì£¼ì…”야 합니다
fewerKeysThanRecipients=받는 사람 수 보다 ì ì€ ìˆ˜ì˜ í‚¤ë¥¼ ì„ íƒí–ˆìŠµë‹ˆë‹¤. ì •ë§ë¡œ 암호화 í• í‚¤ ëª©ë¡ ì„ íƒì„ ë내셨습니까?
userSel.button.goBack=키를 ë” ì„ íƒ
userSel.secretKeySel.title=ë©”ì‹œì§€ì— ì„œëª…í• ë¹„ë°€ OpenPGP 키를 ì„ íƒ
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=주ì˜: PGP/MIME는 í•œì •ëœ ìˆ˜ì˜ ë©”ì¼ í´ë¼ì´ì–¸íЏì—서만 ì§€ì›ë©ë‹ˆë‹¤! Windowsì—서는 ì˜¤ì§ Mozilla/Thunderbird, Sylpheed, Pegasus ê·¸ë¦¬ê³ Mulberry ë§Œì´ ì´ í‘œì¤€ì„ ì§€ì›í•˜ëŠ” 것으로 ì•Œë ¤ì ¸ìžˆìŠµë‹ˆë‹¤. Linux/UNIX 와 Mac OS X ì—서는 가장 ë§Žì´ ì“°ì´ëŠ” ë©”ì¼ í´ë¼ì´ì–¸íŠ¸ë§Œì´ ì§€ì›í•©ë‹ˆë‹¤. 잘 ëª¨ë¥´ê² ìœ¼ë©´, %S ì˜µì…˜ì„ ì„ íƒí•˜ì„¸ìš”.
first=1번째
second=2번째
# Strings used in am-enigprefs.js
encryptKeyHeader=ì•”í˜¸í™”ì— ì‚¬ìš©í• OpenPGP 키 ì„ íƒ
identityName=디지털 ì‹ ë¶„ì¦: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=암호화를 활성화 했으나, 키를 ì„ íƒí•˜ì§€ 않으셨습니다. %S ì—게 보낼 ë©”ì¼ì„ 암호화하기 위해서는 키 목ë¡ì—서 키를 ì„ íƒí•´ì£¼ì…”야합니다. %S ì— ëŒ€í•˜ì—¬ 암호화를 비활성 ìƒíƒœë¡œ í•˜ì‹œê² ìŠµë‹ˆê¹Œ?
noKeyToUse=(ì—†ìŒ - 암호화하지 않ìŒ)
noEmptyRule=ê·œì¹™ì€ ë¹„ì–´ìžˆì„ ìˆ˜ 없습니다! 규칙 í•„ë“œì— ì „ìž ë©”ì¼ ì£¼ì†Œë¥¼ ì„¤ì •í•´ì£¼ì„¸ìš”.
invalidAddress=ìž…ë ¥í•œ ì „ìžë©”ì¼ ì£¼ì†Œê°€ 잘못ë˜ì–´ 있습니다. 받는 ì‚¬ëžŒì˜ ì´ë¦„으로 ì„¤ì •í•´ì„œëŠ” 안ë˜ê³ ì „ìž ë©”ì¼ ì£¼ì†Œë§Œ 가능합니다. 예:\n 잘못ë¨: Some Name \n올바름: some.name@address.net
noCurlyBrackets=중괄호 {} 는 특별한 ì˜ë¯¸ë¥¼ 가지기 ë•Œë¬¸ì— ì „ìž ë©”ì¼ ì£¼ì†Œì—서 사용ë 수 없습니다. ì´ ê·œì¹™ì— ì˜í•´ ì¼ì¹˜ë˜ëŠ” 다른 í•ëª©ì„ ì°¾ìœ¼ë ¤ë©´, '받는 ì‚¬ëžŒì´ ìœ„ì˜ ì£¼ì†Œì™€ ...' ì˜µì…˜ì„ ì‚¬ìš©í•˜ì„¸ìš”.\në„ì›€ë§ ë²„íŠ¼ì„ ëˆ„ë¥´ë©´ ë” ìƒì„¸í•œ ì •ë³´ë¥¼ 보실 수 있습니다.
# Strings used in enigmailRulesEditor.js
never=하지않ìŒ
always=í•ìƒ
possible=가능
deleteRule=ì •ë§ë¡œ ì„ íƒí•œ ë£°ì„ ì‚ì œí•©ë‹ˆê¹Œ?
nextRcpt=(ë‹¤ìŒ ë°›ëŠ” 사람으로)
negateRule=안
# Strings used in enigmailSearchKey.js
needOnline=ì„ íƒí•œ ê¸°ëŠ¥ì€ ì˜¤í”„ë¼ì¸ 모드ì—서는 ì‚¬ìš©í• ìˆ˜ 없습니다. 온ë¼ì¸ì—서 다시 시ë„í•´ 주ì‹ì‹œì˜¤.
protocolNotSupported=ì„ íƒí•œ í”„ë¡œí† ì½œ '%S://'는 OpenPGP 키 다운로드를 ì§€ì›í•˜ì§€ 않습니다.
gpgkeysDisabled='extensions.enigmail.useGpgKeysTool' ì˜µì…˜ì„ í™œì„±í™” 하면 ë„ì›€ì´ ë 것 같습니다.
noKeyserverConn=키 서버 %S ì— ì ‘ì† í• ìˆ˜ 없습니다.
keyDownloadFailed=키 서버ì—서 키 다운로드를 실패했습니다. ìƒíƒœ 메시지:\n%S
internalError=ë‚´ë¶€ 오류가 ë°œìƒí–ˆìŠµë‹ˆë‹¤. 키가 다운로드ë˜ê±°ë‚˜ ê°€ì ¸ì˜¤ê¸°í• ìˆ˜ 없었습니다.
noKeyFound=죄송합니다. ì§€ì •ëœ ê²€ìƒ‰ ê¸°ì¤€ì— ì¼ì¹˜í•˜ëŠ” 키를 ì°¾ì„ ìˆ˜ 없었습니다.\n키 ID는 ì•žìª½ì— \\"0x\\"ê°€ 붙어야만 함 (예:0xABCDEF12)ì„ ì£¼ì˜í•´ì£¼ì„¸ìš”.
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=키 서버ì—서 검색 í˜¹ì€ ë‹¤ìš´ë¡œë“œì— ì‹¤íŒ¨: gpgkeys_%S 는 실행ë 수 없었습니다.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=ì†Œìœ ìž ì‹ ë¢° ì„¤ì • 실패
# Strings in enigmailSignKeyDlg.js
signKeyFailed=키 서명 실패
alreadySigned.label=주ì˜: %S 키는 ì´ë¯¸ ì„ íƒí•œ 비밀키로 서명ë˜ì–´ 있습니다.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=키를 불러오는 중, ìž ì‹œë§Œ ê¸°ë‹¤ë ¤ì£¼ì„¸ìš” ...
keyValid.unknown=알수없ìŒ
keyValid.invalid=무효
keyValid.disabled=비활성
keyValid.revoked=í기ë¨
keyValid.expired=만료ë¨
keyValid.noSubkey=ìœ íš¨í•œ 서브키 ì—†ìŒ
keyTrust.untrusted=ì‹ ë¢°ì•ˆí•¨
keyTrust.marginal=최소
keyTrust.full=ì¶©ë¶„
keyTrust.ultimate=ì™„ì „
keyTrust.group=(그룹)
keyType.public=공개
keyType.publicAndSec=공개/비밀
keyMan.enableKey=키 활성
keyMan.disableKey=키 비활성
userAtt.photo=ì‚¬ìš©ìž ì†ì„± (JPEG ì´ë¯¸ì§€)
asciiArmorFile=보호형 ASCII íŒŒì¼ (*.asc)
gnupgFile=GnuPG 파ì¼
saveRevokeCertAs=í기 ì¦ëª…서 ìƒì„± & ì €ìž¥
revokeCertOK=í기 ì¦ëª…서가 성공ì 으로 ìƒì„±ë¬ìŠµë‹ˆë‹¤. ì´ ì¦ëª…서는 공개키를 무효로 í•˜ë ¤ëŠ” 경우, 예를 들어 비밀 키를 잃어버리게 ë˜ëŠ” 경우, ì‚¬ìš©í• ìˆ˜ 있습니다.\n\nì´ ì¦ëª…서를 CD나 플로피 디스í¬ì™€ ê°™ì´ ì•ˆì „í•˜ê²Œ ì €ìž¥í•´ ë†“ì„ ìˆ˜ 있는 미디어로 옮겨놓아 주시기 ë°”ëžë‹ˆë‹¤. 만약 누군가가 ì´ í기 ì¦ëª…ì„œì— ì ‘ê·¼í• ìˆ˜ 있게ë˜ë©´ ì´ë¥¼ 사용해서 키를 ì‚¬ìš©í• ìˆ˜ 없는 ìƒíƒœë¡œ 만들어버릴 수 있습니다.
revokeCertFailed=í기 ì¦ëª…서가 ìƒì„±ë˜ì§€ 않았습니다.
addUidOK=ì‚¬ìš©ìž ID 추가 성공
addUidFailed=ì‚¬ìš©ìž ID 추가 실패
noKeySelected=ì„ íƒí•œ ìž‘ì—…ì„ ì‹¤í–‰í•˜ë ¤ë©´ ì ì–´ë„ í•˜ë‚˜ì˜ í‚¤ë¥¼ ì„ íƒí•´ 주셔야 합니다
exportToFile=파ì¼ë¡œ 공개키 내보내기
exportSecretKey=ì €ìž¥í•œ OpenPGP 키 파ì¼ì— 비밀키를 í¬í•¨ì‹œí‚¤ê² 습니까?
saveKeysOK=키가 성공ì 으로 ì €ìž¥ë˜ì—ˆìŠµë‹ˆë‹¤
saveKeysFailed=키 ì €ìž¥í•˜ê¸° 실패
importKeysFailed=키 ê°€ì ¸ì˜¤ê¸°ì— ì‹¤íŒ¨
enableKeyFailed=키 활성화/비활성화 실패
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
noSecretKeys=비밀키가 발견ë˜ì§€ 않습니다.\n\n지금 ë³¸ì¸ ì†Œìœ ê°€ ë 키를 ìƒì„±í•˜ì‹œê² 습니까?
sendKeysOk=키 보내기 성공
sendKeysFailed=키 보내기 실패
receiveKeysOk=키 ì—…ë°ì´íЏ 성공
receiveKeysFailed=키 다운로드 실패
importFromClip=í´ë¦½ë³´ë“œì—서 키를 ê°€ì ¸ì˜¤ì‹œê² ìŠµë‹ˆê¹Œ?
copyToClipbrdFailed=ì„ íƒí•œ 키를 í´ë¦½ë³´ë“œì— ë³µì‚¬í• ìˆ˜ 없습니다.
copyToClipbrdOK=í´ë¦½ë³´ë“œì— 키 복사ë¨
deleteSecretKey=ê²½ê³ ï¼šë‹¹ì‹ ì€ ë¹„ë°€í‚¤ë¥¼ ì‚ì œí•˜ë ¤ê³ í•˜ê³ ìžˆìŠµë‹ˆë‹¤!\në‹¹ì‹ ì˜ ë¹„ë°€í‚¤ë¥¼ ì‚ì œí–ˆì„ ê²½ìš°, 해당 키로 ì•”í˜¸í™”ëœ ëª¨ë“ ë©”ì‹œì§€ë¥¼ 복호화 í• ìˆ˜ 없으며, ë‹¹ì‹ í‚¤ë¥¼ íì§€í•˜ëŠ”ë° í•„ìš”í•œ íì§€ ì¸ì¦ì„œë„ ë”는 만들 수 없습니다.\n\nì •ë§ë¡œ 비밀키와 공개키 양쪽 모ë‘를 ì‚ì œí•©ë‹ˆê¹Œ?\n'%S'
deleteMix=ê²½ê³ ï¼šë‹¹ì‹ ì€ ë¹„ë°€í‚¤ë¥¼ ì‚ì œí•˜ë ¤ê³ í•˜ê³ ìžˆìŠµë‹ˆë‹¤!\në‹¹ì‹ ì˜ ë¹„ë°€í‚¤ë¥¼ ì‚ì œí–ˆì„ ê²½ìš°, 해당 키로 ì•”í˜¸í™”ëœ ëª¨ë“ ë©”ì‹œì§€ë¥¼ 복호화 í• ìˆ˜ 없습니다.\n\nì •ë§ë¡œ 비밀키와 공개키 양쪽 모ë‘를 ì‚ì œí•©ë‹ˆê¹Œ?
deletePubKey=공개키를 ì‚ì œí•©ë‹ˆê¹Œ?\n'%S'
deleteSelectedPubKey=공개키를 ì‚ì œí•©ë‹ˆê¹Œ?
deleteKeyFailed=키가 ì‚ì œë˜ì§€ 않았습니다.
revokeKeyOk=키가 íì§€ë˜ì—ˆìŠµë‹ˆë‹¤. 만약 키 ì„œë²„ì— ë‹¹ì‹ ì˜ ê³µê°œí‚¤ê°€ 있다면, 다시 업로드하시기를 권장합니다. ê·¸ë ‡ê²Œ 해주면 다른 ì‚¬ëžŒë“¤ì´ í•´ë‹¹ 키가 íì§€ëœ ê²ƒì„ ì•Œ 수 있습니다.
revokeKeyFailed=키가 íì§€ë 수 없습니다.
refreshAllQuestion=키를 í•˜ë‚˜ë„ ì„ íƒí•˜ì§€ 않았습니다. ëª¨ë“ í‚¤ë¥¼ ìƒˆë¡œê³ ì¹ ê¹Œìš”?
refreshKey.warn=ê²½ê³ : í‚¤ì˜ ê°¯ìˆ˜ë‚˜ íšŒì„ ì†ë„ì—ë”°ë¼, ëª¨ë“ í‚¤ ìƒˆë¡œê³ ì¹¨ì€ ìƒë‹¹í•œ ì‹œê°„ì´ ê±¸ë¦¬ëŠ” ìž‘ì—…ì´ ë 수 있습니다!
keyMan.button.exportSecKey=비밀키 내보내기(&E)
keyMan.button.exportPubKey=공개키만 내보내기(&P)
keyMan.button.import=ê°€ì ¸ì˜¤ê¸°(&I)
keyMan.button.refreshAll=ëª¨ë“ í‚¤ ìƒˆë¡œê³ ì¹¨(&R)
keyMan.button.revokeKey=키 í기(&R)
keylist.noOtherUids=다른 ì‹ ì›ì´ ì—†ìŒ
keylist.hasOtherUids=별명:
keylist.noPhotos=사진 ì—†ìŒ
keylist.hasPhotos=사진
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=주 ì‚¬ìš©ìž ID 변경 실패
changePrimUidOK=주 ì‚¬ìš©ìž ID 변경 성공
deleteUidFailed=ì‚¬ìš©ìž ID %S ì‚ì œ 실패
deleteUidOK=ì‚¬ìš©ìž ID %S ì‚ì œ 성공
revokeUidFailed=ì‚¬ìš©ìž ID %S íì§€ 실패
revokeUidOK=ì‚¬ìš©ìž ID %S íì§€ 성공. 만약 키 ì„œë²„ì— ë‹¹ì‹ ì˜ ê³µê°œí‚¤ê°€ 있다면, 다시 업로드하시기를 권장합니다. ê·¸ë ‡ê²Œ 해주면 다른 ì‚¬ëžŒë“¤ì´ í•´ë‹¹ 키가 íì§€ëœ ê²ƒì„ ì•Œ 수 있습니다.
revokeUidQuestion=ì •ë§ë¡œ ìœ ì € ID %S 를 í지합니까?
deleteUidQuestion=ì •ë§ë¡œ ìœ ì € ID %S 를 ì‚ì œí•©ë‹ˆê¹Œ?\n\nì£¼ì˜ ë°”ëžë‹ˆë‹¤: 공개키를 키 ì„œë²„ì— ë³´ëƒˆë‹¤ë©´, ì‚¬ìš©ìž ID ì‚ì œëŠ” 아무런 ë³€í™”ë„ ì¼ìœ¼í‚¤ì§€ 않습니다. ì´ëŸ´ 경우ì—는 'ì‚¬ìš©ìž ID í지하기\\"를 사용하셔야 합니다.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=공개 키
keyTypePrimary=주 키
keyTypeSubkey=서브키
keyTypePair=키 ìŒ
keyExpiryNever=무기한
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
# Strings in enigmailGenCardKey.xul
keygen.started=ìž ì‹œ ê¸°ë‹¤ë ¤ 주ì‹ì‹œì˜¤. 키가 ìƒì„±ë˜ê³ 있습니다...
keygen.completed=키가 ìƒì„±ë˜ì—ˆìŠµë‹ˆë‹¤. 새로운 키 ID: 0x%S
keygen.keyBackup=%S 로 키를 백업 ë¨
keygen.passRequired=스마트 카드가 아닌 다른 ì €ìž¥ìž¥ì¹˜ì— ë°±ì—…ì„ ìƒì„±í•˜ë ¤ë©´, íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆë¥¼ ì§€ì •í•´ 주세요.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=ìž…ë ¥í•œ PINì´ ì¼ì¹˜í•˜ì§€ 않습니다. 다시 ìž…ë ¥í•´ 주세요.
cardPin.minLength=PINì€ ì ì–´ë„ %S ë¬¸ìž ì´ìƒì˜ ì˜ë¬¸ìž ë˜ëŠ” 숫ìžì—¬ì•¼ë§Œ 합니다.
cardPin.processFailed=PIN 변경 실패
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=키 ìƒˆë¡œê³ ì¹¨ 중, ìž ì‹œ ê¸°ë‹¤ë ¤ 주ì‹ì‹œì˜¤ ...
keyserverProgress.uploading=키 업로드 중, ìž ì‹œ ê¸°ë‹¤ë ¤ 주ì‹ì‹œì˜¤ ...
keyserverTitle.refreshing=키 ìƒˆë¡œê³ ì¹¨
keyserverTitle.uploading=키 업로드
# Strings in enigmailSetupWizard
passphrase.min8keys=íŒ¨ìŠ¤í”„ë ˆì´ì¦ˆê°€ 최소 8 ìžëŠ” ë˜ì–´ì•¼í•©ë‹ˆë‹¤!
setupWizard.reallyCancel=ì •ë§ë¡œ Enigmail ì„¤ì • 마법사를 ë‹«ìœ¼ì‹œê² ìŠµë‹ˆê¹Œ?
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=ì´ë¦„ê³¼ ì „ìž ë©”ì¼ ì£¼ì†ŒëŠ” 반드시 ìž…ë ¥í•´ì•¼ 함
addUidDlg.nameMinLengthError=ì´ë¦„ì€ ìµœì†Œí•œ 5글ìž(5 bytes)ì´ìƒ ì´ì–´ì•¼ 함
addUidDlg.invalidEmailError=ìœ íš¨í•œ ì „ìž ë©”ì¼ ì£¼ì†Œë¥¼ ì§€ì •í•´ì•¼ 함
addUidDlg.commentError=주ì„ì— ê°ì§„ 괄호는 ì‚¬ìš©í• ìˆ˜ ì—†ìŒ
enigmail/lang/ko/help/ 0000775 0000000 0000000 00000000000 12667016244 0015135 5 ustar 00root root 0000000 0000000 enigmail/lang/ko/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017473 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/ko/help/editRcptRule.html 0000664 0000000 0000000 00000014007 12667016244 0020433 0 ustar 00root root 0000000 0000000
Enigmail ë„움ë§: OpenPGP 규칙 편집하기
Enigmail ë„움ë§
Enigmail 규칙 편집기 사용하기: OpenPGP 규칙 편집하기
규칙 편집기ì—서는 받는 사람별로 암호화, 서명 ê·¸ë¦¬ê³ PGP/MIME í™œì„±í™”ì— ëŒ€í•œ 기본 ë°©ì¹¨ì„ ì •í• ìˆ˜ 있으며, ì–´ë–¤ OpenPGP 키를 ì‚¬ìš©í• ì§€ë¥¼ ì§€ì •í• ìˆ˜ 있습니다. ì´ ëŒ€í™”ìƒìžì—서는 한 ì‚¬ëžŒì˜ ë°›ëŠ” 사람 ê·¸ë¦¬ê³ ë§¤ìš° ìœ ì‚¬í•œ 방법으로 받는 사람 ê·¸ë£¹ì— ëŒ€í•˜ì—¬ ê·œì¹™ì„ ì§€ì •í• ìˆ˜ 있습니다.
- OpenPGP 규칙 ì„¤ì • 대ìƒ
-
받는 ì‚¬ëžŒì˜ ì „ìž ë©”ì¼ ì£¼ì†Œê°€ (ì´ë¦„ì„ ì œì™¸í•˜ê³ , 예를 들어, somebody@email.domainê³¼ ê°™ì´ ì£¼ì†Œë§Œ) 들어갑니다. 여러 ê°œì˜ ì „ìž ë©”ì¼ ì£¼ì†Œë¥¼ 공백 문ìžë¡œ 구분하여 ì§€ì •í• ìˆ˜ 있습니다. 주소는 ë„ë©”ì¸ ë§Œìœ¼ë¡œë„ êµ¬ì„±í• ìˆ˜ 있습니다. ì´ë ‡ê²Œ 하면 ë„ë©”ì¸ì— ì†í•˜ëŠ” ì–´ë–¤ ì£¼ì†Œì™€ë„ ì¼ì¹˜í•©ë‹ˆë‹¤. 예를 들어, @email.domain ì€ body@email.domain, somebody@email.domain, anybody@emaildomain, 등과 ì¼ì¹˜í•˜ê²Œ ë©ë‹ˆë‹¤.
- 받는 ì‚¬ëžŒì´ ìœ„ì˜ ì£¼ì†Œì™€ ... ì¼ì¹˜í•˜ë©´ ê·œì¹™ì„ ì 용합니다
-
ì´ ì˜µì…˜ì€ ì „ìž ë©”ì¼ ì£¼ì†Œì˜ ëŒ€ì¡°ë²•ì„ ë³€ê²½í•©ë‹ˆë‹¤. 만약 ë‹¤ìˆ˜ì˜ ì£¼ì†Œê°€ ìž…ë ¥ë˜ë©´ ì„¤ì •ì€ ìž…ë ¥ëœ ëª¨ë‘ì— ëŒ€í•´ ì ìš©ë©ë‹ˆë‹¤. ì•„ëž˜ì˜ ì˜ˆëŠ” ìœ„ì˜ í•„ë“œì— OpenPGP 규칙으로 ìž…ë ¥ëœ body@email.domain 를 기준으로 한 예시입니다.
- ì •í™•ížˆ: ì´ë ‡ê²Œ ì„¤ì •ë˜ë©´, ê·œì¹™ì€ ì „ìž ë©”ì¼ body@email.domain (ì™„ì „ížˆ ì¼ì¹˜, ëŒ€ì†Œë¬¸ìž êµ¬ë¶„ 안함)ì— ëŒ€í•´ì„œë§Œ íš¨ë ¥ì„ ë°œìƒí•©ë‹ˆë‹¤.
- ì¼ë¶€ë¶„: ì´ë ‡ê²Œ ì„¤ì •ë˜ë©´, ì§€ì •ëœ ë¬¸ìžì—´ì´ ì¼ë¶€ë¶„ í¬í•¨ë˜ì–´ 있는 ì–´ë–¤ ì „ìž ë©”ì¼ ì£¼ì†Œê°€ ì¼ì¹˜ ë©ë‹ˆë‹¤. 예를 들어, anybody@email.domain ë˜ëŠ” body@email.domain.net
- 시작부분ì´: ì´ë ‡ê²Œ ì„¤ì •ë˜ë©´, ì§€ì •ëœ ë¬¸ìžì—´ë¡œ 시작하는 ì–´ë–¤ ì „ìž ë©”ì¼ ì£¼ì†Œê°€ ì¼ì¹˜ë©ë‹ˆë‹¤. 예를 들어, body@email.domain.net, body@email.domain-name.com.
- ë부분ì´: ì´ë ‡ê²Œ ì„¤ì •ë˜ë©´, ì§€ì •ëœ ë¬¸ìžì—´ë¡œ ë나는 ì–´ë–¤ ë©”ì¼ ì£¼ì†Œê°€ ì¼ì¹˜ë©ë‹ˆë‹¤. 예를 들어, anybody@email.domain, somebody@email.domain.
- ì¼ì¹˜í•˜ëŠ” ì£¼ì†Œì— ëŒ€í•´ ì´ë‹¤ìŒ 규칙으로 ê³„ì† ì§„í–‰
-
ì´ ê¸°ëŠ¥ì„ í™œì„±í™”í•˜ë©´ ê·œì¹™ì„ ì •ì˜í•˜ê¸´ 하지만 ë‹¤ìŒ OpenPGP í‚¤ë“¤ì„ ì‚¬ìš©: í•„ë“œì— í‚¤ ID를 ì§€ì •í•˜ì§€ ì•Šì•„ë„ ë˜ë¯€ë¡œ, ì „ìž ë©”ì¼ ì£¼ì†ŒëŠ” 메시지를 보낼 때 키를 검사하는 ìš©ë„로 사용ë©ë‹ˆë‹¤. ê·¸ë¦¬ê³ ê°™ì€ ì£¼ì†Œì— ëŒ€í•´ ì¼ì¹˜í•˜ëŠ” ê·œì¹™ì´ ê³„ì† ì ìš©ë©ë‹ˆë‹¤.
- ì¼ì¹˜í•˜ëŠ” ì£¼ì†Œì— ëŒ€í•´ ë”는 ê·œì¹™ì„ ê³ ë ¤í•˜ì§€ 않ìŒ
-
ì´ ê¸°ëŠ¥ì„ í™œì„±í™”í•˜ë©´ ì´ ê·œì¹™ì´ ì¼ì¹˜í•˜ëŠ” ì£¼ì†Œì— ëŒ€í•´ 다른 ê·œì¹™ì´ ë”는 ì ìš©ë˜ì§€ 않습니다. 다시 ë§í•´, 규칙 처리 ìž‘ì—…ì€ ë‹¤ìŒ ë°›ëŠ” 사람으로 넘어갑니다.
- ë‹¤ìŒ OpenPGP í‚¤ë“¤ì„ ì‚¬ìš©:
-
ì•”í˜¸í™”í•˜ëŠ”ë° ì‚¬ìš©í• ë°›ëŠ” 사람 키를 ì„ íƒí•˜ë ¤ë©´ 키 ì„ íƒ (S)... ë²„íŠ¼ì„ ì‚¬ìš©í•©ë‹ˆë‹¤. 바로 ìœ„ì˜ ë™ìž‘ê³¼ 마찬가지로 것처럼, ì¼ì¹˜ë˜ëŠ” ì£¼ì†Œì— ëŒ€í•´ ì´í›„ 다른 ê·œì¹™ì´ ì¶”ê°€ì 으로 ì ìš©ë˜ì§€ 않게ë©ë‹ˆë‹¤.
- ì„œëª…ì— ëŒ€í•œ 기본 ì •ì±…
-
메시지 서명를 활성화 ë˜ëŠ” 비활성화 합니다. 메시지 작성 윈ë„ìš°ì—서 ì§€ì •í•œ 대로 í• ì§€, ë¬´ì‹œí•˜ê³ ì´ ê·œì¹™ì— ì„¤ì •ëœ ì •ì±…ì„ ì ìš©í• ì§€ë¥¼ ê²°ì •í•©ë‹ˆë‹¤. ì„ íƒ ê°€ëŠ¥í•œ ì •ì±…ì€ ë‹¤ìŒê³¼ 같습니다:
- 하지 않ìŒ: 메시지 작성 윈ë„ìš°ì—서 ì„œëª…ì„ í•˜ë„ë¡ ì„ íƒ ë˜ì–´ìžˆì–´ë„ ì„œëª…ì„ í•˜ì§€ 않습니다 (다른 ëª¨ë“ ì •ì±…ì— ìš°ì„ í•©ë‹ˆë‹¤)
- 예, 메시지 ìž‘ì„±ì‹œì— ì„ íƒë˜ì–´ 있는 경우: 메시지 작성 윈ë„ìš°ì—서 ì„ íƒí•œëŒ€ë¡œ 놔둡니다
- í•ìƒ: 메시지 작성 윈ë„ìš°ì—서 ì„œëª…ì„ í•˜ë„ë¡ ì„ íƒë˜ì–´ìžˆì§€ 않아ë„, 서명합니다
ì´ ì„œëª… ì„¤ì •ì€ ì¼ì¹˜í•˜ëŠ” ëª¨ë“ ê·œì¹™ì— ì ìš©ë©ë‹ˆë‹¤. 규칙들 중 하나가 서명하기를 비활성화하면, í•ìƒìœ¼ë¡œ ì„¤ì •í•´ë†“ì€ ë‹¤ë¥¸ ê·œì¹™ì´ ìžˆë”ë¼ë„, 메시지는 서명ë˜ì§€ 않습니다.
- 암호화
-
메시지 암호화를 활성화 ë˜ëŠ” 비활성화 합니다. ì œê³µí•˜ëŠ” ì •ì±…ê³¼ ê·¸ ì˜ë¯¸ëŠ” 메시지 ì„œëª…ì— ëŒ€í•œ 기본 ì •ì±…ì— ì„¤ëª…ëœ ê²ƒê³¼ 같습니다.
- PGP/MIME
-
PGP/MIME (RFC 2156) 메시지 ì¸ì½”ë”©ì˜ ì‚¬ìš©ì—¬ë¶€ë¥¼ 활성화 ë˜ëŠ” 비활성화 합니다. PGP/MIMEê°€ 비활성화ë˜ë©´ 메시지는 "ì¸ë¼ì¸ 형ì‹"으로 ì¸ì½”딩ë©ë‹ˆë‹¤. ì œê³µí•˜ëŠ” ì •ì±…ê³¼ ê·¸ ì˜ë¯¸ëŠ” 메시지 ì„œëª…ì— ëŒ€í•œ 기본 ì •ì±…ì— ì„¤ëª…ëœ ê²ƒê³¼ 같습니다.
ê·œì¹™ë“¤ì€ OpenPGP 규칙 편집기 ë‚´ 목ë¡ì—서 í‘œì‹œëœ ìˆœì„œë¡œ 처리ë©ë‹ˆë‹¤. ì–´ë–¤ 한 ê·œì¹™ì´ ë°›ëŠ” 사람과 ì¼ì¹˜í•˜ê³ OpenPGP 키 ID를 í¬í•¨í•˜ëŠ” 경우, 추가ì 으로 키 ID를 ì‚¬ìš©í•˜ë ¤ê³ ì§€ì •í•´ë„, ì´í›„ ê·œì¹™ì„ ì²˜ë¦¬í• ë•Œ ê·¸ 받는 ì‚¬ëžŒì€ ë” ê³ ë ¤ë˜ì§€ 않습니다.
추가 ë„움ë§ì€
Enigmail 받는 사람별 ì„¤ì • 페ì´ì§€ì—서 ì–»ì„ ìˆ˜ 있습니다.
enigmail/lang/ko/help/initError.html 0000664 0000000 0000000 00000004424 12667016244 0020004 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/ko/help/messenger.html 0000664 0000000 0000000 00000011201 12667016244 0020006 0 ustar 00root root 0000000 0000000
Enigmail ë„움ë§
Enigmail ë„움ë§
메시지를 ì½ì„ 때 Enigmail 사용하기
- ë©”ì¸ ë©”ì¼ ìœˆë„ìš°ì˜ ë³µí˜¸í™” 버튼
-
ì´ ë²„íŠ¼ì€ ì—¬ëŸ¬ê°€ì§€ ìš©ë„로 사용ë 수 있습니다: 복호화, ê²€ì¦, ë˜ëŠ” 공개키 ê°€ì ¸ì˜¤ê¸°. ì¼ë°˜ì 으로 복화화/ê²€ì¦ì€ ìžë™ìœ¼ë¡œ ì´ë¤„지지만, ì„¤ì •ì„ í†µí•´ 비활성화 í• ìˆ˜ 있습니다. 그러나 ì‹¤íŒ¨í• ê²½ìš°, Enigmail ìƒíƒœ í‘œì‹œì¤„ì— ì§§ì€ ì˜¤ë¥˜ 메시지로 나타나게 ë©ë‹ˆë‹¤. 복호화 ë²„íŠ¼ì„ ëˆ„ë¥´ë©´, GnuPG ëª…ë ¹ í–‰ì—서 ë°œìƒë˜ëŠ” ì¶œë ¥ 메시지를 í¬í•¨í•œ ë” ìžì„¸í•œ 오류 메시지를 ë³¼ 수 있습니다.
- ë¨¸ë¦¬ë§ í‘œì‹œë¶€ì˜ íŽœê³¼ 키 ì•„ì´ì½˜
-
메시지 ë¨¸ë¦¬ë§ í‘œì‹œë¶€ì˜ íŒ¬ê³¼ 키 ì•„ì´ì½˜ì€ ì½ê³ 있는 메시지가 서명 ê·¸ë¦¬ê³ /ë˜ëŠ” 암호화ë˜ì—ˆëŠ”ì§€ ê·¸ë¦¬ê³ ì„œëª…ì´ ì˜¬ë°”ë¥¸ ìƒíƒœì¸ì§€ë¥¼ (예를 들어, ì„œëª…ëœ í›„ 메시지가 변형ë˜ì§€ 않았는지 등) 나타냅니다. 만약 메시지가 변형ë˜ì—ˆìœ¼ë©´ 팬 ì•„ì´ì½˜ì€ ì„œëª…ì´ ì˜¬ë°”ë¥´ì§€ ì•Šì€ ìƒíƒœìž„ì„ í‘œì‹œí•˜ê¸° 위해 깨진 팬으로 ë°”ë€ë‹ˆë‹¤. 팬ì´ë‚˜ 키 ì•„ì´ì½˜ì—서 오른쪽 ë²„íŠ¼ì„ í´ë¦í•˜ë©´ 다ìŒê³¼ ê°™ì€ ì˜µì…˜ì˜ ë©”ë‰´ê°€ 나타납니다:
- OpenPGP 보안 ì •ë³´: ë©”ì‹œì§€ì— ëŒ€í•˜ì—¬ GnuPG ì¶œë ¥ ìƒíƒœë¥¼ ë³¼ 수 있습니다.
- OpenPGP 보안 ì •ë³´ 복사: GnuPG ì¶œë ¥ ìƒíƒœë¥¼ í´ë¦½ë³´ë“œì— 복사합니다. íšŒì‹ ë©”ì‹œì§€ì— ë¶™ì—¬ë„£ê¸° 등ì˜
ìž‘ì—…ì— í™œìš©í• ìˆ˜ 있습니다.
- OpenPGP Photo ID 보기: 공개 í‚¤ì— ì‚¬ì§„ì´ ë“¤ì–´ 있으면 메시지를 보낸 ì‚¬ëžŒì˜ Photo ID를
ë³¼ 수 있습니다. (ì´ ì˜µì…˜ì€ í‚¤ì— Photo IDê°€ 있는 경우ì—ë§Œ 활성화 ë©ë‹ˆë‹¤.)
- S/MIME 보안 ì •ë³´: ë©”ì‹œì§€ì— ëŒ€í•œ S/MIME 보안 ì •ë³´ë¥¼ ë³¼ 수 있습니다.
만약 gpg.conf 파ì¼ì— keyserver-options auto-key-retrieve ì„¤ì •ì„ í•´ë†“ì§€ ì•Šì€ ìƒíƒœì—서 서명ë˜ê±°ë‚˜ ì•”í˜¸í™”ëœ ë©”ì‹œì§€ë¥¼ ì½ì–´ ë¨¸ë¦¬ë§ í‘œì‹œ ì˜ì—ì˜ íŒ¬ ì•„ì´ì½˜ì— 물ìŒí‘œê°€ 표시ë˜ëŠ” ê²ƒì„ ë³¼ 수 있는 경우, ë¨¸ë¦¬ë§ ì˜ì—ì˜ Enigmail ìƒíƒœ í‘œì‹œì¤„ì€ ì„œëª…ëœ ë©”ì‹œì§€ì˜ ì¼ë¶€ë¶„; 세부사í•ì„ ë³´ë ¤ë©´ 펜 ì•„ì´ì½˜ì„ í´ë¦ìœ¼ë¡œ 표시하여 사용ìžì—게 ì•Œë¦¬ê³ ë©”ì‹œì§€ 구ì—ì˜ ë©”ì‹œì§€ëŠ” ëª¨ë“ OpenPGP 메시지 ë¸”ë¡ í‘œì‹œìžì™€ 서명 블ë¡ì„ 보여줄 것 입니다.
gpg.conf 파ì¼ì— keyserver-options auto-key-retrieve ì„¤ì •ì„ í•´ë†“ì€ ìƒíƒœì—서 기본 키 ì„œë²„ì— OpenPGP 키가 없는 경우ì—ë„ ì´ë ‡ê²Œ ë˜ëŠ” ê²ƒì„ ë³¼ 수 있습니다.
팬과 물ìŒí‘œ ì•„ì´ì½˜ì„ í´ë¦í•˜ë©´ 키 ë§ì— 해당 키가 없다는 ê²ƒì„ ì•Œë ¤ì£¼ëŠ” ì°½ì´ ë‚˜íƒ€ë‚ ê²ƒìž…ë‹ˆë‹¤. 확ì¸ì„ 누르면 보낸 ì‚¬ëžŒì˜ ê³µê°œí‚¤ë¥¼ 다운로드 í• í‚¤ 서버를 ì„ íƒí• 수 있는 키 서버 ëª©ë¡ ìœˆë„ìš°ê°€ ë‚˜íƒ€ë‚ ê²ƒ 입니다.
ì‚¬ìš©í•˜ê³ ìží•˜ëŠ” 키 서버를 목ë¡ì„ ì„¤ì •í•˜ë ¤ë©´, Enigmail → ì„¤ì • → 기본 íƒìœ¼ë¡œ 가셔서 키 서버 ì§€ì •: ë°•ìŠ¤ì— ì½¤ë§ˆ(,)로 êµ¬ë¶„ëœ í‚¤ 서버 주소를 ìž…ë ¥í•´ì£¼ì‹œê¸° ë°”ëžë‹ˆë‹¤. 목ë¡ì˜ 처ìŒì— 있는 키 서버가 기본으로 사용ë©ë‹ˆë‹¤.
- ì•”í˜¸í™”ëœ ì²¨ë¶€ íŒŒì¼ / ì²¨ë¶€ëœ OpenPGP 키 ê°€ì ¸ì˜¤ê¸°
-
*.pgp, *.asc ê·¸ë¦¬ê³ *.gpg 확장ìžë¡œ ë˜ì–´ 있는 첨부 파ì¼ì€ Enigmailê°€ 특별히 ì·¨ê¸‰í• ìˆ˜ 있는 첨부파ì¼ë¡œì„œ ì¸ì‹ë©ë‹ˆë‹¤. 해당 첨부파ì¼ì— 오른쪽 í´ë¦ì„ 하면 컨í…스트 ë©”ë‰´ì— ë‘ ê°€ì§€ 특수 메뉴가 활성화 ë©ë‹ˆë‹¤: 복호화 후 열기와 복호화 후 다른 ì´ë¦„으로 ì €ìž¥. 메시지를 열거나 ì €ìž¥í•˜ê¸° ì „ì— ì²¨ë¶€íŒŒì¼ì„ Enigmailì´ ë³µí˜¸í™”í•˜ê¸°ë¥¼ ì›í•˜ëŠ” 경우, ì´ ë‘ ë©”ë‰´ë¥¼ 사용하ì‹ì‹œì˜¤. 첨부파ì¼ì´ OpenPGP 키 파ì¼ë¡œ ì¸ì‹ë˜ë©´, 사용ìžê°€ 키를 키 ë§ìœ¼ë¡œ ê°€ì ¸ì˜¤ê¸° í• ìˆ˜ 있ë„ë¡ í• ê²ƒìž…ë‹ˆë‹¤.
ì´í›„ ë„움ë§ì€ Enigmail OpenPGP ë„ì›€ë§ ì›¹ 페ì´ì§€ì—서 ì–»ì„ ìˆ˜ 있습니다.
enigmail/lang/ko/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020324 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/ko/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020471 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/lt/ 0000775 0000000 0000000 00000000000 12667016244 0014213 5 ustar 00root root 0000000 0000000 enigmail/lang/lt/am-enigprefs.properties 0000664 0000000 0000000 00000000121 12667016244 0020700 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP saugumas
enigmail/lang/lt/enigmail.dtd 0000664 0000000 0000000 00000111734 12667016244 0016504 0 ustar 00root root 0000000 0000000
PASTABA: Rakto generavimas gali užtrukti kelias minutes. Neuždarykite programos kol vyksta rakto generavimas. Aktyviai naršant ar atliekant operacijas kurios reikalauja intensyvaus disko naudojimo, rakto generavimo metu padės sukurti atsitiktinesnį raktą ir pagreitins procesą. Jūs būsite įspėtas kai rakto generavimas bus baigtas.">
“ yra netinkamas">
PASTABA: Rakto generavimas gali užtrukti kelias minutes. Neuždarykite programos kol generuojamas raktas. Jums bus pranešta kai raktas bus sugeneruotas.">
Pastaba: Enigmail visada patikrins visų paskyrų ir tapatybių parašus
nepaisant ar įjungta ar išjungta">
DÄ—kui jog naudojate Enigmail.">
enigmail/lang/lt/enigmail.properties 0000664 0000000 0000000 00000063344 12667016244 0020130 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail pranešti
enigConfirm=Enigmail patvirtinti
enigError=Enigmail klaida
enigPrompt=Enigmail įvedimas
dlgYes=&Taip
dlgNo=&Ne
dlgKeepSetting=Prisiminti atsakymÄ… ir daugiau nebeklausti
dlgNoPrompt=Daugiau neberodyti šio pranešimo
dlg.button.delete=&Pašalinti
dlg.button.cancel=&Atšaukti
dlg.button.close=&Užverti
dlg.button.continue=&Tęsti
dlg.button.skip=&Praleisti
dlg.button.view=&Peržiūra
repeatPrefix=\n\nŠis įspėjimas bus kartojamas %S
repeatSuffixSingular=kartÄ….
repeatSuffixPlural=kartus.
noRepeat=\n\nŠis įspėjimas nebus rodomas kol neatnaujinsite Enigmail.
pgpNotSupported=Atrodo jūs naudojate Enigmail kartu su PGP 6.x\n\nDeja, PGP 6.x turi daug problemų kurios neleidžia Enigmail teisingai veikti. Be to, Enigmail daugiau nepalaiko PGP 6.x; vietoj to naudokite GnuPG(GPG).\n\nJei reikia pagalbos pradedant naudoti GnuPG, pažiūrėkite Enigmail namų puslapio žinyne.
passphraseCleared=Slaptafrazė išvalyta.
noPhotoAvailable=NÄ—ra nuotraukos
debugLog.title=Enigmail derinimo žurnalas
error.photoPathNotReadable=Kelias iki nuotraukos „%S“ neperskaitomas
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Å i nauja Enigmaio versija turi daug pakeitimų nustatymuose ir parinktyse. Mes bandÄ—me perkelti senus nustatymus į Å¡iÄ… naujÄ… versijÄ…. TaÄiau negalime apraÅ¡yti visų situacijų. PeržiÅ«rÄ—kite visus nustatymus ir parinktis.
enigmailCommon.checkPreferences=Tikrinti nustatymus...
usingVersion=Enigmail versija %S
usingAgent=Šifravimui ir iššifravimui naudojamas %S sukompiliuotas failas %S
agentError=KLAIDA: Nepavyko pasiekti Enigmime tarnybos!
accessError=Klaida bandant pasiekti Enigmail tarnybÄ…
onlyGPG=Rakto generavimas veikia tik su GnuPG (ne su PGP)!
keygenComplete=Raktas sugeneruotas! Pasirašymui bus naudojama <%S> tapatybė.
revokeCertRecommended=Mes primygtinai rekomenduojame savo raktui sukurti atstatymo sertifikatÄ…. Å¡is sertifikatas galÄ—s bÅ«ti naudojamas paversti jÅ«sų raktÄ… negaliojanÄiu, pvz. jei pamesite savo slaptÄ… raktÄ… ar jis bus sukompromituotas. Ar norite dabar sukurti tokį sertifikatÄ…?
keyMan.button.generateCert=&Generuoti sertifikatÄ…
genCompleteNoSign=Raktas sÄ—kmingai sugeneruotas!
genGoing=Raktas generuojamas!
passNoMatch=Slaptafrazės nesutampa; įveskite dar kartą
passCheckBox=Pažymėkite žymimąjį langelį jei raktui nenurodote slaptafrazės
passUserName=Nurodykite naudotojo vardą, šiai tapatybei
passSpaceProblem=DÄ—l techninių priežasÄių, jÅ«sų slaptafrazÄ— negali prasidÄ—ti ar baigtis tarpu.
changePassFailed=Nepavyko pakeisti slaptafrazÄ—s.
keyConfirm=Sugeneruoti viešą ir privatų raktus skirtus „%S“?
keyMan.button.generateKey=&Generuoti raktÄ…
keyAbort=Nutraukti raktų generavimą?
keyMan.button.generateKeyAbort=&Nutraukti raktų generavimą?
keyMan.button.generateKeyContinue=&Tęsti raktų generavimą?
expiryTooLong=Negalite sukurti rakto kurio galiojimas baigsis daugiau nei po 100 metų.
expiryTooLongShorter=Negalite sukurti rakto kuris galioja daugiau nei 90 metų.
expiryTooShort=Jūsų raktas turi galioti bent vieną dieną.
dsaSizeLimit=DSA pasirašymo raktai ribojami iki 3072 bitų. Rakto dydis bus atitinkamai sumažintas.
keyGenFailed=Sugeneruoti rakto nepavyko. Patikrinkite Enigmail terminalÄ… (Meniu Enigmail > Enigmail derinimas) jei norite gauti daugiau informacijos.
setKeyExpirationDateFailed=Nepavyko pakeisti galiojimo datos
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail saugumo informacija\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Šio laiško priedai nebuvo pasirašyti ar šifruoti*\n\n
possiblyPgpMime=Galimai PGP/MIME šifruotas ar pasirašytas laiškas; Norėdami patikrinti, paspauskite „Iššifruoti“ mygtuką
noDecrypted=Nėra iššifruoto laiško kurį galima būtų išsaugoti!\nNaudokite saugojimo komandą iš Failo meniu
noMessage=Nėra laiško saugojimui!
useButton=Paspauskite „Iššifruoti“ mygtuką norėdami iššifruoti laišką
saveHeader=Enigmail: Išsaugoti iššifruotą laišką
saveAttachmentHeader=Enigmail: išsaugoti iššifruotą priedą
noTempDir=Nepavyko rasti laikino aplanko į kurį galima būtų rašyti\nNustatykite TEMP aplinkos kintamąjį
attachmentPgpKey=Priedas „%S“ kurį bandote atverti yra OpenPGP rakto failas.\n\nPaspauskite „Importuoti“ ir bus importuoti visi jame esantys raktai arba „Rodymas“ ir naršyklės lange bus parodytas failo turinys
beginPgpPart=**********ŠIFRUOTOS ar PASIRAŠYTOS DALIES PRADŽIA**********
endPgpPart=**********Å IFRUOTOS ar PASIRAÅ YTOS DALIES PABAIGA**********
notePartEncrypted=Enigmail: *Laiško dalys NEBUVO pasirašytos ar užšifruotos*
noteCutMessage=Enigmail: *Rastos kelios laiško dalys -- iššifravimas/tikrinimas nutrauktas*
decryptOkNoSig=Įspėjimas\n\nIššifravimas sėkmingas, bet nepavyko patikrinti parašo
msgOvl.button.contAnyway=&Vis tiek tęsti
signature.verifiedOK=Priedo %S parašas sėkmingai patikrintas
signature.verifyFailed=Priedo %S parašas nepatvirtintas
attachment.noMatchToSignature=Parašo faile nepavyko surasti atitikmens priedui „%S“
attachment.noMatchFromSignature=Nepavyko surasti parašo failo „%S“ priedui
keysToExport=Pasirinkite OpenPGP raktus kuriuos įterpti
keysToUse=Pasirinkite kurį OpenPGP raktą(-us) naudoti %S
pubKey=Viešas raktas skirtas %S\n
windowLocked=Rašymo langas užrakintas; siuntimas atšauktas
sendUnencrypted=Nepavyko paleisti Enigmail.\nSiųsti nešifruotą pranešimą?
composeSpecifyEmail=Nurodykite savo pagrindinį el. paÅ¡to adresÄ…, kuris bus naudojamas pasirenkant raktÄ… iÅ¡einantiems laiÅ¡kams.\nJei paliksite tuÅ¡ÄiÄ…, NUO laukelio adresas bus naudojamas pasirinkti raktÄ….
sendingHiddenRcpt=Šis laiškas turi BCC(nematomą kopiją) gavėjų. Jei šis laiškas šifruotas, įmanoma paslėpti BCC gavėjus, bet kai kurių programų naudotojai (pvz. PGP Corp) negalės iššifruoti laiško. Mes rekomenduojame vengti BCC laiškų su šifruotais pranešimais.
sendWithHiddenBcc=PaslÄ—pti BCC gavÄ—jus
sendWithShownBcc=Šifruoti įprastai
sendingNews=Užšifruoto siuntimo operacija atšaukta.\n\nšis laiškas negali būti užšifruotas, nes yra naujienų grupių gavėjų. Persiųskite šį laišką nešifruojant.
sendToNewsWarning=Įspėjimas: jūs tuoj išsiųsite užšifruotą laišką naujienų grupei.\n\nTai nepatartina, nes toks veiksmas turi prasmę tik tada jei visi nariai gali iššifruoti laišką t.y. laiškas turi būti šifruotas su visų grupės narių raktais. šį laišką siųskite tik tada jei žinote ką darote.\n\nTęsti?
hasHTML=HTML laiško įspėjimas:\nšiame laiške gali būti HTML, kuri gali sukelti problemų pasirašant/šifruojant. Norint to išvengti ateityje, jūs turėtumėte laikyti SHIFT kai spaudžiate „Rašyti/Atsakyti“ mygtuką, pasirašytam laiškui išsiųsti.\nJei visada pasirašote laišką, nustatymuose turėtumėte atžymėti „Kurti laiškus su HTML“, norint visam laikui išjungti HTML laiškus šiai pašto paskyrai.
strippingHTML=Laiške yra HTML formatavimo informacija, kuri bus prarasta konvertuojant į paprastą tekstą, pasirašymo/šifravimo metu. Tęsti?
msgCompose.button.sendAnyway=&Vistiek siųsti
attachWarning=Šio laiško priedai nėra vietiniai, jie negali būti užšifruoti. Norėdami užšifruoti šiuos priedus, išsaugokite juos savo kompiuteryje ir pridėkite šiuos failus. Ar vistiek norite siųsti šį laišką?
quotedPrintableWarn=JÅ«s įjungÄ—te „quoted-printable“ kodavimÄ… siunÄiamiems laiÅ¡kams. Tai gali įtakoti neteisingÄ… jÅ«sų laiÅ¡ko iššifravimÄ… ir/ar patikrinimÄ….\nAr norite dabar iÅ¡jungti „quoted-printable“ siunÄiamiems laiÅ¡kams?
minimalLineWrapping=JÅ«s nustatÄ—te eiluÄių laužymÄ… %S simboliais. Norint teisingai užšifruoti ar/ir pasiraÅ¡yti, Å¡i vertÄ— turi bÅ«ti bent 68.\nAr norite dabar nustatyti eiluÄių laužymÄ… ties 68 simboliais?
warning=Įspėjimas
signIconClicked=Jūs pakeitėte pasirašymą. Nepaisant to, kol jūs rašote šį laišką, pasirašymo (de)aktyvavimas daugiau nepriklauso nuo šifravimo (de)aktyvacijos.
pgpMime_sMime.dlg.text=Jūs įjungėte PGP/MIME ir S/MIME kartu. Deja vienu metu neįmanoma naudoti abiejų protokolų. Pasirinkite arba PGP/MIME arba S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Naudoti &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Naudoti &S/MIME
errorKeyUnusable=Å is el. paÅ¡to adresas ar rakto ID „%S“ neatitinka jokio galiojanÄio ir tinkamo OpenPGP rakto.\nÄ®sitikinkite jog turite tinkamÄ… OpenPGP raktÄ… ir jÅ«sų nustatymai nurodo bÅ«tent šį raktÄ….
# note: should end with double newline:
sendAborted=Siuntimo operacija nutraukta.\n\n
statPGPMIME=PGP/MIME
statSigned=PASIRAÅ YTAS
statEncrypted=Å IFRUOTAS
statPlain=NEPASIRAÅ YTAS ir NEÅ IFRUOTAS
offlineSave=Išsaugoti %S laišką %S neišsiųstų laiškų aplanke?
onlineSend=Išsiųsti %S laišką į %S?
encryptKeysNote=Pastaba: laiškas užšifruotas su šio naudotojo ID/Raktu: %S
signFailed=Klaida Enigmail; Nepavyko užšifruoti/pasirašyti; siųsti nešifruotą laišką?
msgCompose.button.sendUnencrypted=&Siųsti nešifruotą laišką
recipientsSelectionHdr=Pasirinkite gavėjus šifravimui
configureNow=Pasirinktai tapatybei jūs nenustatėte Enigmail saugumo. Ar norite tai padaryti dabar?
# should not be used anymore:
encryptYes=Laiškas bus užšifruotas
encryptNo=Laiškas nebus užšifruotas
# should not be used anymore:
signYes=Laiškas bus pasirašytas
signNo=Laiškas nebus pasirašytas
# should not be used anymore
pgpmimeYes=Bus naudojama PGP/MIME
pgpmimeNo=Bus naudojama „Inline PGP“
rulesConflict=Aptiktos nesuderinamos kiekvienam-gavėjui taisyklės\n%S\n\nSiųsti laišką su šiais nustatymais?
msgCompose.button.configure=&Konfigūruoti
msgCompose.button.send=&Siųsti laišką
msgCompose.button.save=&Išsaugoti laišką
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Viešas rakto %S parašas turi būti patikrintas
clickDecrypt=; paspauskite „Iššifruoti“ mygtuką
clickDecryptRetry=; paspauskite „Iššifruoti“ mygtuką, jei norite pabandyti dar kartą
msgPart=Laiško dalis %s
msgSigned=pasirašytas
msgEncrypted=užšifruotas
msgSignedAndEnc=pasirašyta ir užšifruota
unverifiedSig=Nepatvirtintas parašas
incompleteDecrypt=Nepilnas iššifravimas
needKey=Klaida - reikia slapto rakto norint iššifruoti laišką
failedDecrypt=Klaida - nepavyko iššifruoti
badPhrase=Klaida - bloga slaptafrazÄ—
failedDecryptVerify=Klaida - iššifravimas/patikrinimas nepavyko
viewInfo=; Rodymas > Laiško saugumo informacija, detalesnei informacijai
decryptedMsg=Iššifruotas laiškas
decryptedMsgWithFormatError=Iššifruotas laiÅ¡kas (atstatytas sugadintas PGP laiÅ¡ko formatas, jį greiÄiausiai sugadino senas Exchange serveris, gali bÅ«ti neįmanoma perskaityti laiÅ¡ko)
locateGpg=Surasti GnuPG programÄ…
invalidGpgPath=Nurodytam kelyje GnuPG negali būti įvykdyta. Enigmail išjungta kol jūs pakeisite kelią iki GnuPG arba iš naujo paleisite programą.
warningsAreReset=Visi įspėjimai atstatyti.
prefs.gpgFound=GnuPG rasta %S
prefs.gpgNotFound=Nepavyko rasti GnuPG
prefs.warnAskNever=Įspėjimas: įjungus šią parinkty nebus pranešama jei vienam iš gavėjų nėra rakto ir laiškas nešifruotas!
prefs.warnIdleTimeForUnknownAgent=Nepavyko prisijungti prie gpg-agent. Gal jūsų sistema slaptafrazės įvedimui naudoja specialų įrankį, tokį kaip gnome-keyring ar seahorse-agent. Dėja Enigmail negali valdyti įvedimo laiko jūsų įrankyje. Laiko nustatymai Enigmail programoje yra ignoruojami.
prefEnigmail.oneKeyserverOnly=Klaida - galite nurodyti tik vieną raktų serverį, automatiniam trūkstamų OpenPGP raktų parsiuntimui.
enterAdminPin=Įveskite SmartCard ADMIN PIN
enterCardPin=Įveskite SmartCard PIN
notInit=Klaida - Enigmail tarnyba nepaleista
badCommand=Klaida - šifravimo komanda nepavyko
cmdLine=komandinė eilutė ir išvestis:
notRequired=Klaida - šifravimas nereikalingas
notComplete=Klaida - rakto generavimas dar nebaigtas
invalidEmail=Klaida - netinkamas el. pašto adresas(-ai)
noPassphrase=Klaida - nepateikta slaptafrazÄ—
noPGPblock=Klaida - nerastas tinkamas „armored OpenPGP“ duomenų blokas
unverifiedReply=Cituojama laiško dalis (atsakyme) turbūt buvo pakeista
sigMismatch=Klaida - parašas nesutampa
cantImport=Klaida importuojant viešą raktą\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Rasta SmartCard %S jūsų įrenginyje negali būti panaudota skaitant laišką.\nĮdėkite savo SmartCard %S ir pakartokite operaciją.
sc.insertCard=Operacijai atlikti reikia SmartCard %S.\nĮdėkite reikalingą SmartCard ir pakartokite operaciją.
sc.removeCard=Operacijai atlikti reikia jog SmartCard nebūtų įrenginyje.\nIšimkite SmartCard ir pakartokite operaciją.
sc.noCardAvailable=Jūsų įrenginyje SmartCard nerasta\nĮdėkite jūsų SmartCard ir pakartokite operaciją.
sc.noReaderAvailable=Jūsų SmartCard įrenginys nepasiekiamas\nPrijunkite SmartCard įrenginį, įdėkite kortelę ir pakartokite operaciją.
gpgNotFound=Nepavyko rasti GnuPG programos „%S“.\nĮsitikinkite jog Enigmail nustatymuose nurodėte teisingą GnuPG kelią.
gpgNotInPath=Nepavyko rasti GnuPG vykdomojo failo PATH.\nĮsitikinkite jog Enigmail nustatymuose nurodėte teisingą GnuPG kelią.
gpgAgentNotStarted=Nepavyko paleisti gpg-agent programos, kuri reikalinga jūsų GnuPG %S versijai.
prefUntrusted=NEPATIKIMAS
prefRevoked=ATÅ AUKTAS RAKTAS
prefExpiredKey=NEGALIOJANTIS RAKTAS
prefExpired=PASIBAIGĘS
prefGood=GERAS parašas iš %S
prefBad=BLOGAS parašas iš %S
failCancel=Klaida - rakto gavimą atšaukė naudotojas
failNoServer=Klaida - nenurodytas raktų serveris iš kurio reikia gauti raktą
failNoID=Klaida - nenurodyta rakto ID kurį reikia gauti
failKeyExtract=Klaida - rakto išgavimo komanda nepavyko
notFirstBlock=Klaida - pirmas OpenPGP blokas nėra viešas raktas
importKeyConfirm=Importuoti viešą(-us) raktą(-us) įterptus laiške?
failKeyImport=Klaida - nepavyko importuoti rakto
fileWriteFailed=Nepavyko įrašyti į failą %S
importKey=Importuoti viešą raktą %S iš raktų serverio:
uploadKey=Siųsti viešą raktą %S į raktų serverį:
keyId=Rakto ID
keyAndSigDate=Rakto ID: 0x%S / Pasirašyta: %S
keyFpr=Rakto piršto antspaudas: %S
noEmailProvided=Jūs nepateikėte el. pašto adreso!
keyAlreadySigned=Raktas jau pasirašytas, negalite jo pasirašyti antrą kartą.
gnupg.invalidKey.desc=Raktas %S nerastas arba netinkamas. Papildomas raktas gali būti nebegaliojantis.
selKeyExpired=pasibaigęs galiojimas %S
createdHeader=Sukurtas
atLeastOneKey=Nepasirinktas raktas! Turite pasirinkti bent vieną raktą patvirtinant šį dialogą
fewerKeysThanRecipients=Jūs pasirinkote mažiau raktų nei yra gavėjų. Ar jūs įsitikinę jog raktų, kuriuos reikia užšifruoti, sąrašas pilnas?
userSel.button.goBack=Pasirinkti daugiau raktų
userSel.secretKeySel.title=Pasirinkite slaptą OpenPGP raktą laiškų pasirašymui
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Siųsti vėliau
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=PASTABA: PGP/MIME palaikoma riboto paÅ¡to klientų skaiÄiaus! Ant Windows tik Mozilla/Thunderbird, Sylpheed, Pegasus ir Mulberry palaiko šį standartÄ…; ant Linux/UNIX ir MAC OS X populiariausi klientai palaiko jį. Jei esate neįsitikinÄ™, pasirinkite %S parinkty.
first=pirmas
second=antras
# Strings used in am-enigprefs.js
encryptKeyHeader=Pasirinkite OpenPGP raktą šifravimui
identityName=TapatybÄ—: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=JÅ«s įjungÄ—te Å¡ifravimÄ…, bet nepasirinkote rakto. Norint užšifruoti laiÅ¡kus siunÄiamus %S, jÅ«s turite nurodyti vienÄ… ar kelis tinkamus raktus iÅ¡ jÅ«sų raktų sÄ…raÅ¡o. Ar norite iÅ¡jungti Å¡ifravimÄ… skirtÄ… %S?
noKeyToUse=(nėra - be šifravimo)
noEmptyRule=TaisyklÄ— negali bÅ«ti tuÅ¡Äia! Nurodykite el. paÅ¡to adresÄ… taisyklÄ—s laukelyje.
invalidAddress=El. pašto adresas(-ai) kuriuos įvedėte netinkami. Jūs neturėtumėte nurodyti gavėjų vardų, tik el. pašto adresus. Pvz.:\nNetinkamas: Vardenis Pavardenis \nTinkamas: vardenis.pavardenis@adresas.lt
noCurlyBrackets=Laužtiniai skliaustai {} turi specialią reikšmę ir neturėtų būti naudojami el. pašto adresuose. Jei norite pakeisti atitinkamą elgesį šiai taisyklei, naudokite „Pritaikyti taisyklę jei gavėjas ...“ parinkty.\nDaugiau informacijos žinyne.
# Strings used in enigmailRulesEditor.js
never=Niekada
always=Visada
possible=Įmanoma
deleteRule=Tikrai ištrinti pasirinktą taisyklę?
nextRcpt=(Sekantis gavÄ—jas)
negateRule=Ne
addKeyToRule=Pridėti raktą %S (%S) į kiekvienam-gavėjui taisyklę
# Strings used in enigmailSearchKey.js
needOnline=Pasirinkta funkcija neprieinama dirbant atsijungus. Prisijunkite ir bandykite dar kartÄ….
protocolNotSupported=Jūsų pasirinktas protokolas „%S://“ netinkamas parsiųsti OpenPGP raktus.
gpgkeysDisabled=Turėtų pagelbėti „extensions.enigmail.useGpgKeysTool“ parinkties įjungimas.
noKeyserverConn=Nepavyko prisijungti prie raktų serverio %S.
keyDownloadFailed=Nepavyko parsiųsti rakto iš raktų serverio. Būsenos pranešimas:\n%S
internalError=Kilo vidinė klaida. Raktų importuoti ar parsiųsti nepavyko.
noKeyFound=Apgailestaujame, nepavyko rasti rakto kuris atitiktų jūsų nurodytus kriterijus.\nTurėkite omeny jog rakto ID turi prasidėti „0x“ (pvz. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Nepavyko surasti ar parsiųsti rakto iš raktų serverio: gpgkeys_%S neįvykdyta.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nepavyko nustatyti savininko patikimumo
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Rakto pasirašyti nepavyko
alreadySigned.label=Pastaba: raktas %S jau pasirašytas pasirinktu slaptu raktu.
partlySigned.label=Pastaba: kai kurie rakto %S naudotojų ID jau pasirašyti su pasirinktu slaptu raktu.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Įkraunami raktai, prašome palaukti ...
keyValid.unknown=nežinomas
keyValid.invalid=netinkamas
keyValid.disabled=išjungtas
keyValid.revoked=atšauktas
keyValid.expired=nebegaliojantis
keyValid.noSubkey=nÄ—ra tinkamo papildomo rakto
keyTrust.untrusted=nepatikimas
keyTrust.marginal=dalinai patikimas
keyTrust.full=patikimas
keyTrust.ultimate=visiškas
keyTrust.group=(grupÄ—)
keyType.public=viešas
keyType.publicAndSec=viešas/saugus
keyMan.enableKey=Įjungti raktą
keyMan.disableKey=Išjungti raktą
userAtt.photo=Naudotojo savybÄ— (JPEG paveikslÄ—lis)
asciiArmorFile=ASCII Armored failai (*.asc)
importKeyFile=Importuoti OpenPGP rakto failÄ…
gnupgFile=GnuPG failai
saveRevokeCertAs=Sukurti ir išsaugoti atšaukimo sertifikatą
revokeCertOK=Atšaukimo sertifikatas sėkmingai sukurtas. Jūs galite jį naudoti paversti raktą netinkamu. pvz. jei pametėte slaptą raktą.\n\nPrašau perkelti jį į saugią laikmeną kuri gali būti saugiai saugoma, pvz. CD ar lankstusis diskelis. Jei kasnors įgyja prieigą prie šio sertifikato, jie gali paversti jūsų raktą nenaudojamu.
revokeCertFailed=Neįmanoma sukurti atšaukimo sertifikato.
addUidOK=Naudotojo ID sÄ—kmingai pridÄ—ta
addUidFailed=PridÄ—ti naudotojo ID nepavyko
noKeySelected=Pasirinktai operacijai atlikti jūs turite pasirinkti bent vieną raktą
exportToFile=Eksportuoti viešą raktą į failą
exportSecretKey=Ar norite įterpti slaptą raktą į išsaugotą OpenPGP rakto failą?
saveKeysOK=Raktai sėkmingai išsaugoti
saveKeysFailed=Raktų išsaugoti nepavyko
importKeysFailed=Raktų importuoti nepavyko
enableKeyFailed=Raktų įjungti/išjungti nepavyko
specificPubKeyFilename=%S (0x%S) viešas
specificPubSecKeyFilename=%S (0x%S) viešas-saugus
defaultPubKeyFilename=Eksportuoti-vieši-raktai
defaultPubSecKeyFilename=Eksportuoti-vieši-ir-slapti-raktai
noSecretKeys=Slaptų raktų nerasta.\n\nAr norite sugeneruoti savo raktą dabar?
sendKeysOk=Raktas(-ai) sėkmingai išsiųsti
sendKeysFailed=Raktų išsiųsti nepavyko
receiveKeysOk=Raktas(-ai) sÄ—kmingai atnaujinti
receiveKeysFailed=Raktų parsiųsti nepavyko
importFromClip=Ar norite importuoti raktą(-us) iš iškarpinės?
copyToClipbrdFailed=Nepavyko nukopijuoti pasirinkto rakto(-ų) į iškarpinę.
copyToClipbrdOK=Raktas(-ai) nukopijuoti į iškarpinę
deleteSecretKey=ĮSPĖJIMAS: Jūs ruošiatės ištrinti slaptą raktą!\nJei ištrinsite savo slaptą raktą, nebegalėsite iššifruoti laiškų užšifruotų tuo raktu ir nebegalėsite atšaukti to rakto.\n\nAr tikrai norite ABU(slaptą raktą ir viešą raktą) ištrinti\n„%S“?
deleteMix=ĮSPĖJIMAS: Jūs ruošiatės ištrinti slaptus raktus!\nJei ištrinsite savo slaptą raktą, nebegalėsite iššifruoti laiškų užšifruotų tuo raktu.\nAr tikrai norite ABU(pasirinktą slaptą raktą ir viešą raktą) ištrinti?
deletePubKey=Ar tikrai norite ištrinti viešą raktą\n„%S“?
deleteSelectedPubKey=Ar tikrai norite ištrinti viešą raktą?
deleteKeyFailed=Rakto ištrinti nepavyko
revokeKeyOk=Raktas atšauktas. Jei jūsų raktas prieinamas raktų serveryje, rekomenduojama jį dar kartą įkelti, kad kiti matytų jog jis atšauktas.
revokeKeyFailed=Rakto atšaukti nepavyko.
refreshAllQuestion=Nepasirinkote jokio rakto. Ar norite atnaujinti VISUS raktus?
refreshKey.warn=Ä®spÄ—jimas: priklausomai nuo raktų skaiÄiaus ir interneto greiÄio, raktų atnaujinimas gali užtrukti!
downloadContactsKeys.warn=Ä®spÄ—jimas: priklausomai nuo raktų skaiÄiaus ir interneto greiÄio, raktų atnaujinimas gali užtrukti!
downloadContactsKeys.importFrom=Importuoti kontaktus iš „%S“ adresų knygutės?
keyMan.button.exportSecKey=Eksportuoti &slaptus raktus
keyMan.button.exportPubKey=Eksportuoti tik &viešus raktus
keyMan.button.import=&Importuoti
keyMan.button.refreshAll=&Atnaujinti visus raktus
keyMan.button.revokeKey=&Atšaukti raktą
keyMan.button.skip=&Praleisti raktÄ…
keylist.noOtherUids=Neturi kitų tapatybių
keylist.hasOtherUids=Taip pat žinomas kaip
keylist.noPhotos=NÄ—ra nuotraukos
keylist.hasPhotos=Nuotraukos
keyMan.addphoto.filepicker.title=Pasirinkite nuotraukÄ… kuri bus pridÄ—ta
keyMan.addphoto.warnLargeFile=Jūsų pasirinktas failas yra didesnis nei 25 kB.\nNerekomenduotina pridėti didelių failų, nes raktai tampa labai dideli.
keyMan.addphoto.noJpegFile=Pasirinktas failas nÄ—ra JPEG failas. Pasirinkite kitÄ… failÄ….
keyMan.addphoto.failed=Nepavyko pridÄ—ti nuotraukos.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Nepavyko pakeisti pagrindinio naudotojo ID
changePrimUidOK=Pagrindinio naudotojo ID sÄ—kmingai pakeistas
deleteUidFailed=Ištrinti naudotojo ID %S nepavyko
deleteUidOK=Naudotojo ID %S sėkmingai ištrintas
revokeUidFailed=Atšaukti naudotojo ID %S nepavyko
revokeUidOK=Naudotojo ID %S sėkmingai atšauktas. Jei jūsų raktas prieinamas raktų serveryje, rekomenduojama jį įkelti pakartotinai, kad kiti žinotų jog jis atšauktas.
revokeUidQuestion=Ar tikrai norite atšaukti naudotojo ID %S?
deleteUidQuestion=Ar tikrai norite atšaukti naudotojo ID %S?\n\nTurėkite omeny: jei išsiuntėte savo viešą raktą į raktų serverį, ištrynus naudotojo ID niekas nepasikeis. šiuo atveju jūs turėtumėte naudoti „Atšaukti naudotojo ID“.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=viešas raktas
keyTypePrimary=pagrindinis raktas
keyTypeSubkey=subraktas
keyTypePair=raktų pora
keyExpiryNever=niekada
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Å ifravimas
keyUsageSign=Pasirašymas
keyUsageCertify=Sertifikavimas
keyUsageAuthentication=TapatybÄ—s patvirtinimas
# Strings in enigmailGenCardKey.xul
keygen.started=Palaukite kol bus sugeneruotas raktas...
keygen.completed=Raktas sugeneruotas. Naujas rakto ID yra: 0x%S
keygen.keyBackup=Rakto atsarginÄ— kopija padaryta kaip %S
keygen.passRequired=Nurodykite slaptafrazę jei norite sukurti savo rakto atsarginę kopiją už SmartCard ribų.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Jūsų įvestas PIN nesutampa; įveskite dar kartą
cardPin.minLength=PIN turi būti sudarytas bent iš %S simbolių
cardPin.processFailed=Nepavyko pakeisti PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Raktai atnaujinami, palaukite...
keyserverProgress.uploading=Raktai įkeliami, palaukite...
keyserverTitle.refreshing=Atnaujinti raktus
keyserverTitle.uploading=Įkelti raktą
# Strings in enigmailSetupWizard
passphrase.min8keys=Jūsų slaptafrazė turi būti sudaryta bent iš 8 simbolių!
setupWizard.reallyCancel=Ar tikrai norite uždaryti Enigmail diegimo vedlį?
setupWizard.invalidGpg=Jūsų pasirinktas failas nėra GnuPG vykdomasis failas. Pasirinkite kitą failą.
setupWizard.specifyFile=Norėdami tęsti, turite nurodyti bent jau viešą raktą.
setupWizard.installFailed=Atrodo diegimas nepavyko. Pabandykite iš naujo arba įdiekite GnuPG rankiniu būdu ir pasirinkite jį su naršymo mygtuku.
setupWizard.downloadForbidden=JÅ«sų paÄių saugumui, mes nesiųsime GnuPG. Aplankykite http://www.gnupg.org/ ir parsisiųskite GnuPG.
setupWizard.downloadImpossible=Šiuo metu negalime parsiųsti GnuPG. Pabandykite vėliau arba aplankykite http://www.gnupg.org/ ir parsisiųskite GnuPG.
setupWizard.hashSumError=Vedliui nepavyko patikrinti parsiųsto failo vietisumo. Failas gali būti netinkamai parsiųstas arba pakeistas. Ar vistiek norite tęsti diegimą?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=ParsiunÄiant GnuPG įvyko klaida. Klaidas galite pamatyti konsolÄ—je.
installGnuPG.installFailed=Diegiant GnuPG įvyko klaida. Klaidas galite pamatyti konsolėje.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Turite užpildyti vardą ir el. pašto adresą
addUidDlg.nameMinLengthError=VardÄ… turi sudaryti bent 5 simboliai
addUidDlg.invalidEmailError=Turite nurodyti teisingą el. pašto adresą
addUidDlg.commentError=Komentaruose laužtiniai skliaustai neleidžiami
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP SmartCards Varde/PavardÄ—je palaiko tik ASCII simbolius.
# network error types
errorType.SecurityCertificate=Saugumo sertifikatas kurį pateikė interneto tarnyba yra netinkamas.
errorType.SecurityProtocol=Saugumo protokolas kurį naudoja tarnyba yra nežinomas.
errorType.Network=Įvyko tinklo klaida.
enigmail/lang/lt/help/ 0000775 0000000 0000000 00000000000 12667016244 0015143 5 ustar 00root root 0000000 0000000 enigmail/lang/lt/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017501 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/lt/help/editRcptRule.html 0000664 0000000 0000000 00000011557 12667016244 0020450 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/lt/help/help.html 0000664 0000000 0000000 00000010515 12667016244 0016763 0 ustar 00root root 0000000 0000000
Enigmail Help
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail OpenPGP Help web page
If you have questions or comments about enigmail, please send a message to the Enigmail OpenPGP mailing list
Enigmail OpenPGP is open source and licensed under the Mozilla Public License and the GNU General Public License
enigmail/lang/lt/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020016 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/lt/help/messenger.html 0000664 0000000 0000000 00000010121 12667016244 0020014 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/lt/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020332 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/lt/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020477 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/make-lang.sh 0000664 0000000 0000000 00000006071 12667016244 0015770 0 ustar 00root root 0000000 0000000 #!/bin/sh
# make-lang.sh v1.0.10
# this script is used to create a language-specifi XPI for Enigmail
# if you want to debug this script, set DEBUG to something >0
DEBUG=0
if [ $# -ne 2 ]; then
echo "Usage: $0 xx-YY version"
echo " where: xx-YY is the language and country code representing the"
echo " translated language"
echo " version is the Enigmail version, e.g. 0.84.1"
exit 1
fi
ENIGLANG=$1
export ENIGLANG
ENIGVERSION=$2
export ENIGVERSION
LANGDIR=${ENIGLANG}/chrome/locale/${ENIGLANG}/enigmail
HELPDIR=${LANGDIR}/help
cwd=`pwd`
rm -rf ${LANGDIR} >/dev/null 2>&1
mkdir -p ${LANGDIR}
mkdir -p ${HELPDIR}
LANGHASH=`echo "${ENIGLANG}" | md5sum | awk '{ print substr($0,1,2)}'`
export LANGHASH
# create chrome.manifest for Thunderbird 3.1 and newer
cat > ${ENIGLANG}/chrome.manifest < ${ENIGLANG}/install.rdf <
enigmail-${ENIGLANG}@www.enigmail.net
${ENIGVERSION}
{3550f703-e582-4d05-9a08-453d09bdfdc6}
3.1
3.1.*
{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
2.0
2.1.*
Enigmail ${ENIGLANG}
Enigmail ${ENIGLANG} language package
Enigmail Team
http://www.enigmail.net/langpack.html
chrome://enigmail/content/pref-enigmail.xul
chrome://enigmail/content/enigmailAbout.xul
chrome://enigmail/skin/enigmail-about.png
EOT
for f in enigmail.dtd enigmail.properties am-enigprefs.properties upgrade_080.html ; do
cp ${f} ${LANGDIR}
done
if [ -d help ]; then
cd help
fi
pwd
for f in compose.html editRcptRule.html initError.html messenger.html rulesEditor.html sendingPrefs ; do
cp ${f} ${cwd}/${HELPDIR}
done
cd ${cwd}/${ENIGLANG}/chrome
zip -r -D enigmail-${ENIGLANG}.jar locale
cd ..
zip ../enigmail-${ENIGLANG}-${ENIGVERSION}.xpi install.rdf chrome.manifest chrome/enigmail-${ENIGLANG}.jar
cd ..
test $DEBUG -eq 0 && rm -rf ${ENIGLANG}
enigmail/lang/nb-NO/ 0000775 0000000 0000000 00000000000 12667016244 0014505 5 ustar 00root root 0000000 0000000 enigmail/lang/nb-NO/am-enigprefs.properties 0000664 0000000 0000000 00000000122 12667016244 0021173 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP Sikkerhet
enigmail/lang/nb-NO/enigmail.dtd 0000664 0000000 0000000 00000136227 12667016244 0017002 0 ustar 00root root 0000000 0000000
OpenPGP-sikkerhet)">
MERK: Nøkkelgenerering kan ta intill flere minutter å gjennomføre. Ikke avbryt programmet mens nøkkelgenerering pågår. Gjennomføring av harddisk-insentive oppgavevr mens nøkkelgenrerering pågår vil gjøre prosessen hurtigere. Du vil få beskjed når nøkkelgenerering er fullført.">
' er ugyldig">
MERK: Nøkkelgenerering kan ta flere minutter, ikke avslutt programmet, du vil få beskjed når det er fullført.">
MER: Enigmail vil alltid prøve å bekrefte signaturer i eposter, om det er aktivert for en konto eller ikke">
offentlige nøkkel brukes av andre for å sende deg krypterte eposter. Du kan dele denne med alle. ">
private nøkkel er kun for deg for å dekryptere motatte meldinger og for å sende signerte meldinger. Du bør ikke dele den med noen.">
private nøkkel er kun for deg for å dekryptere motatte meldinger og for å sende signerte meldinger. Du bør ikke dele den med noen.
For å beskytte den private nøkkelen din vil du bli bedt om angi en passfrase i de to følgende dialogboksene.">
Passfrasen er for å beskytte den private nøkkelen din. Den forhindrer misbruk av din private nøkkel.">
ikke">
Du vil bli bedt om å angi et passord for dette.">
eksporter dataene dine fra din gamle datamaskin ved hjelp av veiviseren for sikkerhetskopiering i Engimail-innstillinger
importer dataene til en annen maskin ved hjelp av denne veiviseren.
">
Takk for at du bruker Enigmail.">
eksporter dataene dine fra din gamle datamaskin ved hjelp av denne veiviseren
importer dataene til en annen maskin ved hjelp av konfigurasjonsveiviseren.
">
enigmail/lang/nb-NO/enigmail.properties 0000664 0000000 0000000 00000107244 12667016244 0020420 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail varsel
enigConfirm=Enigmail bekreftelse
enigError=Enigmail feil
enigPrompt=Enigmail forespørsel
dlgYes=&Ja
dlgNo=&Nei
dlgKeepSetting=Husk svaret og ikke spør igjen
dlgNoPrompt=Ikke vis meg denne dialogen igjen
dlg.button.delete=&Slett
dlg.button.cancel=&Avbryt
dlg.button.close=&Lukk
dlg.button.continue=&Fortsett
dlg.button.skip=&Hopp over
dlg.button.overwrite=&Overskriv
dlg.button.view=&Vis
dlg.button.retry=&Prøv igjen
dlg.button.ignore=&Ignorer
repeatPrefix=\n \n \nDenne meldingen vil gjentas %S
repeatSuffixSingular=gang til.
repeatSuffixPlural=ganger til.
noRepeat=\n \n \nDette varselet vil ikke gjentas før du oppgraderer Enigmail.
pgpNotSupported=Du ser ut til å bruke Enigmail sammen med with PGP 6.x\n\\Beklaglivis er ikke dette støttet da PGP 6.x har en rekke kompabilitetsproblemer med Enigmail. Hjelp for å endre til GnuPG finnes på websidene.
initErr.howToFixIt=For å kunne bruke Enigmail kreves GnuPG. Hvis du ikke har installert GnuPG ennå kan du gjøre dette ved hjelp av oppsettsveilederknappen under.
initErr.setupWizard.button=&Oppsettsveileder
passphraseCleared=Passfrasen har blitt nullstilt.
cannotClearPassphrase=Du bruker et ikke-standard verktøy (f.eks. gnome-keyring) for passfrasehåndtering. Det er derfor ikke mulig å tilbakestille passfrasen i Enigmail.
noPhotoAvailable=Intet bilde tilgjengelig
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Bildesti '%S' er ikke lesbar
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Denne versjonen av Enigmail har omfattende endringer i håndteringen av innstillinger. Vi har forsøkt å overføre dine gamle innstllinger til denne versjonen, men det fungerer ikke for alle typer innstillinger. Vennligst dobbeltsjekk de nye innstillingene dine.
enigmailCommon.checkPreferences=Sjekk innstillinger ...
preferences.defaultToPgpMime=Vi har endret standard meldingskoding i Enigmail fra Inline-PGP til PGP/MIME. Vi anbefaler at du beholder dette som standard. \n \nHvis du fortsatt vil bruke Inline-PGP som standard kan du sette dette i konto-innstillinger under OpenPGP-sikkerhet.
usingVersion=Kjører Enigmail versjon %S
usingAgent=Bruker %S filen %S til å kryptere og dekryptere
agentError=FEIL: Klarer ikke å få tilgang til enigmail!
accessError=Feil i tilgang til Enigmail-tjenesten
onlyGPG=Nøkkelgenerering fungerer kun med GnuPG (ikke med PGP)!
keygenComplete=Nøkkelgenerering fullført! Identitet <%S> vil bli brukt til signering.
revokeCertRecommended=Vi anbefaler på det sterkeste å lage et tilbaketrekkingssertifikat. F.eks. om du skulle miste den private nøkkelen eller passfrasen din kommer på avveie. Ønsker du å lage dette sertifikatet nå?
keyMan.button.generateCert=&Generer sertifikat
genCompleteNoSign=Nøkkelgenerering fullført!
genGoing=Nøkkelgenerering pågår allerede!
passNoMatch=Passfrasene stemmer ikke overens, vennligst prøv igjen.
passCheckBox=Kryss av for om nøkkelen ikke skal beskyttes med passfrase
passUserName=Angi brukernavn for denne identiteten
keygen.missingUserName=Det er ikke angitt noe navn for den valgte kontoen/identiteten. Angi en verdi i feltet "Ditt navn" i kontoinnstillinger.
keygen.passCharProblem=Du bruker spesialtegn i passfrasen din. Dessverre kan dette skape problemer for andre applikasjoner. Vi anbefaler at du kun benytter tegn fra følgende grupper: \na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Av tekniske årsaker kan ikke passfrasen din starte eller slutte med mellomromstegnet.
changePassFailed=Endring av passfrase mislyktes.
keyConfirm=Generer offentlige og private nøkler for '%S'?
keyMan.button.generateKey=&Genererer nøkkel
keyAbort=Avbryt nøkkelgenerering?
keyMan.button.generateKeyAbort=&Avbryt nøkkelgenerering
keyMan.button.generateKeyContinue=&Fortsett nøkkelgenerering
expiryTooLong=Du kan ikke lage en nøkkel som utløper om mer enn 100 år.
expiryTooLongShorter=Du kan ikke lage en nøkkel som utløper om mer enn 90 år.
expiryTooShort=Nøkkelen må være gyldig i minst én dag.
dsaSizeLimit=DSA-signeringsnøkler er begrenset til 3072 bits. Nøkkellengden vil bli redusert tilsvarende.
keyGenFailed=Nøkkelgenereringen feilet. Vennligst sjekk Enigmail konsollen(Meny Enigmail > feilsøk Enigmail) for mer detaljer.
setKeyExpirationDateFailed=Utløpsdatoen kunne ikke endres.
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail sikkerhetsinformasjon\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Vedleggene i denne eposten har ikke blitt signert eller kryptert*\n\n
possiblyPgpMime=Mulig PGP/MIME kryptert eller signert melding; klikk knapp for dekryptering for å bekrefte
noDecrypted=Ingen dekryptert melding å lagre!\nBruk Lagre fra fil-menyen
noMessage=Ingen melding å lagre!
useButton=Vennligst klikk dekrypter for å dekryptere melding.
saveHeader=Enigmail: Lagre dekryptert melding
saveAttachmentHeader=Enigmail: Lagre dekryptert vedlegg
noTempDir=Kunne ikke finne en midlertidig mappe å skrive til\nVennligst sett TEMP-miljøvariablen
attachmentPgpKey=Vedlegget '%S' du åpner tyder på å være en OpenPGP-nøkkel\n\nKlikk Ja for å importere nøklene eller Nei for å se hva de inneholder i et vindu.
beginPgpPart=********* *BEGYNN KRYPTERT ELLER SIGNERT DEL* *********
endPgpPart=********** *AVSLUTT KRYPTERT ELLER SIGNERT DEL* **********
notePartEncrypted=Enigmail: *Deler av meldignen har IKKE blitt krypert eller signert*
noteCutMessage=Enigmail: *Flere meldingsblokker funnet -- dekryptering/bekreftelse avsluttet*
decryptOkNoSig=Advarsel\n\nDekryptering var vellykket, men signaturen kunne ikke bekreftes.
msgOvl.button.contAnyway=&Fortsett uansett
signature.verifiedOK=Signaturen på vedlegg %S lot seg verifisere
signature.verifyFailed=Signaturen på vedlegg %S lot seg ikke verifisere
attachment.noMatchToSignature=Kunne ikke finne tilhørende signaturfil for vedlegg '%S'
attachment.noMatchFromSignature=Kunne ikke finne et vedlegg tilhørende signaturfil '%S'
fixBrokenExchangeMsg.failed=Klarte ikke å reparere meldingen
keysToExport=Velg OpenPGP nøkkel å sette inn
keysToUse=Velg OpenPGP Nøkkel/Nøkler å bruke for %S
pubKey=Offentlig nøkkel for %S\n
windowLocked=skrive-vindu er låst; sending avbrutt
sendUnencrypted=Feilet å starte enigmine.\nSend melding ukryptert?
composeSpecifyEmail=Vennligst spesifiser primær epostadresse, som vil bli brukt til å velge en signeringsnøkkel for utgående meldinger.\n Om blank vil FRA-adressen til meldingen bli brukt til å bestemme nøkkel.
sendingHiddenRcpt=Denne meldingen har BCC (blindkopi)-mottakere. Hvis meldingen krypteres er det mulig å skjule BCC-mottakere, men noen programmer (fra bla. PGP Corp.) vil ikke kunne dekryptere meldingen. På grunn av dette anbefaler vi å ikke bruke BCC-mottakere i krypterte meldinger.
sendWithHiddenBcc=Skjul BCC-mottakere
sendWithShownBcc=Krypter på normal måte
sendingNews=Kryptert sendingsoperasjon avbrutt.\n\nDenne meldingen kunne ikke sendes fordi der er meldingsgruppe-mottagere.
sendToNewsWarning=Advarsel: du er i ferd med å sende en kryptert epost til en nyhetsgruppe. \n \nDette er ikke anbefalt siden det kun gir mening om alle medlemmene av gruppen kan dekryptere meldingen, dvs. at meldingen må krypteres med nøklene til samtlige gruppemedlemmer. Vennligst send meldingen kun hvis du vet nøyaktig hva du gjør. \n \nFortsett?
hasHTML=HTML meldingsvarsel:\nDenne meldingen kan inneholde HTML, som kan forårsake signering/kryptering til å feile. Deaktiver HTML-meldinger om du ønsker å benytte denne funksjonen.
strippingHTML=Meldingen inneholder HTML-informasjon som vil bli tapt under konvertering til enkel tekst. Ønsker du å fortsette?
msgCompose.button.sendAnyway=&Send melding uansett
attachWarning=Vedlegg til denne meldingen er ikke lagret lokalt, og kan ikke bli kryptert. Om du ønsker å kryptere vedleggene, lagre dem lokalt og legg dem ved. Ønsker du likevel å fortsette?
quotedPrintableWarn=Du har aktivert 'quoted-printable' koding for sending av meldinger. dette kan resultare i ukorrekt kryptering og/eller verifisering av meldingen.\n Ønsker du å skru av 'quoted-printable' nå?
minimalLineWrapping=Du har angitt at tekstlinjer skal brytes ved %S tegn. For korrept kryptering og/eller signering må denne verdien være minst 68. \nVil du endre tekstbryting til 68 tegn?
warning=Advarsel
signIconClicked=Du har manuelt modifisert signering. Derfor vil ikke (de)aktivering av signering avhenge av (de)aktivering av kryptering.
pgpMime_sMime.dlg.text=Du har slått på både PGP/MIME og S/MIME. Dessverre er det ikke mulig benytte begge disse samtidig. Vennligst velg om du vil bruke PGP/MIME eller S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Bruk &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Bruk &S/MIME
errorKeyUnusable=Epostadressen eller nøkkel-IDen '%S' kan ikke koples til en gyldig, ikke utgått OpenPGP-nøkkel. \nVennligst forsikre deg om at du har en gyldig OpenPGP-nøkkel og at kontoinnstillingene dine peker til denne nøkkelen.
errorOwnKeyUnusable=Nøkkel-IDen '%S' konfigurert for den gjeldende identiteten gir ikke en anvendbar OpenPGP-nøkkel. \n \nForsikre deg om at du har en gyldig, ikke utløpt OpenPGP-nøkkel og at kontoinnstillingene dine peker til denne nøkkelen. \nHvis nøkkelen din ikke er utløpt sjekk om du har satt eiertillit til full eller ultimat.
msgCompose.cannotSaveDraft=Feil under lagring av utkast
msgCompose.internalEncryptionError=Intern feil: avtalt kryptering deaktivert
msgCompose.internalError=Det har oppstått en intern feil.
msgCompose.toolbarTxt.signAndEncrypt=Meldingen vil bli signert og kryptert
msgCompose.toolbarTxt.signOnly=Meldigen vil bli signert
msgCompose.toolbarTxt.encryptOnly=Meldigen vil bli kryptert
msgCompose.toolbarTxt.noEncryption=Meldingen vil ikke bli signert eller kryptert
msgCompose.toolbarTxt.disabled=Enigmail er deaktivert for den valgte identiteten
msgCompose.toolbarTxt.smime=S/MIME er aktivert - mulig konflikt med Enigmail
msgCompose.toolbarTxt.smimeOff=- S/MIME blir derfor ikke brukt
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME er aktivert - Enigmail blir derfor ikke brukt
msgCompose.toolbarTxt.smimeNoDraftEncryption=- utkast krypteres ikke
msgCompose.toolbarTxt.smimeConflict=Enigmail benyttes ikke fordi S/MIME er aktivert. Slå av S/MIME-signering og/eller kryptering og aktiver Enigmail-kryptering.
msgCompose.encryptedSubjectStub=Kryptert melding
msgCompose.detailsButton.label=Detaljer ...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Sendingsoperasjon.\n\n
# details:
keyNotTrusted=Ikke høyt nok tillitsnivå for nøkkel '%S'
keyNotFound=Nøkkel '%S' ble ikke funnet
keyRevoked=Nøkkel '%S' trukket tilbake
keyExpired=Nøkkel '%S' utgått på dato
statPGPMIME=PGP/MIME
statSigned=SIGNERT
statEncrypted=KRYPTERT
statPlain=REN TEKST
offlineSave=Lagre %S melding til %S mappe for usendte elementer?
onlineSend=Send %S melding til %S?
encryptKeysNote=Merk: meldingen er kryptert med de følgende brukerid-er / nøkler: %S
hiddenKey=
signFailed=Feil i Enigmail; Kryptering/signering feilet. Send ukryptert epost?
msgCompose.button.sendUnencrypted=&Send melding ukryptert
recipientsSelectionHdr=Velg mottakere for kryptering
configureNow=Du har enda ikke konfigurert Enigmail sikkerhet (Engimail) for denne identiteten. Ønsker du å gjøre dette nå?
# encryption/signing status and associated reasons:
encryptMessageAuto=Krypter melding (auto)
encryptMessageNorm=Krypter melding
signMessageAuto=Signert melding (auto)
signMessageNorm=Signer melding
encryptOff=Kryptering: AV
encryptOnWithReason=Kryptering: PÃ… (%S)
encryptOffWithReason=Kryptering: AV (%S)
encryptOn=Kryptering: PÃ…
signOn=Signering: PÃ…
signOff=Signering: AV
signOnWithReason=Signering: AV (%S)
signOffWithReason=Signering: AV (%S)
reasonEnabledByDefault=påslått som standard
reasonManuallyForced=manuelt tvunget
reasonByRecipientRules=tvunget av mottaker-regler
reasonByAutoEncryption=tvunget av automatisk kryptering
reasonByConflict=grunnet konflikt mellom mottakerregler
reasonByEncryptionMode=på grunn av krypteringsmodus
reasonSmimeConflict=fordi S/MIME er aktivert istedenfor
# should not be used anymore:
encryptYes=Melding vil bli kryptert
encryptNo=Melding vil ikke bli kryptert
# should not be used anymore:
signYes=Melding vil bli signert
signNo=Melding vil ikke bli signert
# PGP/MIME status:
pgpmimeNormal=Protokoll: PGP/MIME
inlinePGPNormal=Protokoll: Inline PGP
pgpmimeAuto=Protokoll: PGP/MIME (auto)
inlinePGPAuto=Protokoll: Inline PGP (auto)
# should not be used anymore
pgpmimeYes=PGP/MIME vil bli benyttet
pgpmimeNo=Inline PGP vil bli benyttet
# Attach own key status (tooltip strings):
attachOwnKeyNo=Din egen nøkkel vil ikke bli lagt ved
attachOwnKeyYes=Din egen nøkkel vil bli lagt ved
attachOwnKeyDisabled=Din egen nøkkel kan ikke legges ved. Du må angi en spesifikk nøkkel i OpenPGP-delen av Kontoinnstillinger for å aktivere denne funksjonen.
rulesConflict=Konflikt i mottakerrelaterte regler:\n%S\n\nSend melding med desse instillingene?
msgCompose.button.configure=&Konfigurere
msgCompose.button.send=&Send melding
msgCompose.button.save=&Lagre melding
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Offentlig nøkkel %S trengs for å verifisere melding
keyUsed=Offentlig nøkkel %S ble brukt for å verifisere signatur
clickDecrypt=; klikk Dekrypter-knappen
clickDecryptRetry=; klikk på dekrypter-knappen for å prøve igjen
clickDetailsButton=; klikk på detaljer-knappen for mer informasjon
clickImportButton=; klikk på importer nøkkel-knappen for å lasted ned nøkkelen
keyTypeUnsupported=; nøkkeltypen er ikke støttet av din versjon av GnuPG
msgPart=Del av meldingen %S
msgSigned=signert
msgSignedUnkownKey=signert med ukjent nøkkel
msgEncrypted=kryptert
msgSignedAndEnc=signert og kryptert
unverifiedSig=Ikke-verifisert signatur
incompleteDecrypt=Dekryptering ukomplett
needKey=Feil - privat nøkkel trengs til å dekryptere
failedDecrypt=Feil - Dekryptering feilet
badPhrase=Feil - Feil passfrase
failedDecryptVerify=Feil - Dekryptering / Verifisering feilet
viewInfo=; Vis -> Meldings sikkerhetsinfo for detaljer
decryptedMsg=Dekryptert melding
decryptedMsgWithFormatError=Dekryptert melding (reparert misformet PGP epostformat sannsynligvis pga en gammel MS Exchange-tjener. Resultatet kan være vanskelig å lese)
usedAlgorithms=Benyttede algoritmer: %S og %S
# strings in pref-enigmail.js
oldGpgVersion14=Enigmail kunne ikke starte. \n \nDu benytter GnuPG versjon %S, som ikke lenger er støttet.\nEnigmail krever GnuPG versjon 2.0.7 eller nyere. Oppgrader GnuPG-installasjonen din, eller vil ikke Enigmail fungere.
locateGpg=Lokaliser GnuPG-programmet
invalidGpgPath=GnuPG kan ikke kjøre fra banen som ble spesifisert. Enigmail er derfor deaktivert intill du endrer banen til GnuPG, eller til du starter programmet på nytt.
warningsAreReset=Alle advarsler har blitt nullstilt.
prefs.gpgFound=GnuPG ble funnet i %S
prefs.gpgNotFound=Kunne ikke finne GnuPG
prefs.warnAskNever=Advarsel: ved å aktivere dette valget resulterer det i en ukryptert melding uten noe videre informasjon om nøkkel ikke finnes for en av mottagerene -- Enigmail vil ikke informere deg om dette skjer!
prefs.warnIdleTimeForUnknownAgent=Kan ikke kople til gpg-agent. Dette kan skje om systemet ditt bruker et eget verktøy for passfrasehåndtering (f.eks. gnome-keyring, seahore-agent, KDE wallet manager,...) Dessverre kan ikke Enigmail kontrollere passfrasetimeout for verktøyet du bruker. Innstillinger for dette i Enigmail vil derfor ignoreres.
prefEnigmail.oneKeyserverOnly=Feil - du kan kun angi én nøkkeltjener for automatisk nedlasting av manglende OpenPGP-nøkler.
enterAdminPin=Skriv inn ADMIN PIN til ditt smartkort
enterCardPin=Skriv inn din smartkort PIN
notInit=Feil - Enigmail-tjenesten er ikke startet
badCommand=Feil - krypteringskommando feilet
cmdLine=kommandolinje og resultat:
notRequired=Feil - ingen kryptering er nødvendig
notComplete=Feil - nøkkelgenerering har ikke fullført
invalidEmail=Feil - ugyldig(e) epostadresse(r)
noPassphrase=Feil - ingen passfrase er oppgitt
noPGPblock=Feil - Ingen beskyttet OpenPGP data blokk er funnet
unverifiedReply=Innrykket meldingsdel (svar) er antageligvis endret
keyInMessageBody=Nøkkel funnet i meldingen. Klikk "Importer nøkkel" for å importere den.
sigMismatch=Feil - Signaturen stemmer ikke overens
cantImport=Feil i importering av offentlig nøkkel\n\n
doImportOne=Importer %1$S (%2$S)?
doImportMultiple=Importer følgende nøkeler? %S
previewFailed=Kan ikke lese offentlig nøkkel-fil.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Smartkortet %1$S i leseren kan ikke brukes for å behandle meldingen. \nVennligst sett i smartkort %S og gjenta operasjonen.
sc.insertCard=Denne operasjonen er avhengig av smartkortet %S. \nVennligst sett smartkoret i leseren og gjenta operasjonen.
sc.removeCard=Denne operasjonen krever at det ikke er noe smartkort i leseren. Vennligst fjern smartkortet fra leseren og gjenta operasjonen.
sc.noCardAvailable=Inget SmartCard ble funnet i leseren.\nVennligst sett inn et kort og gjenta operasjonen.
sc.noReaderAvailable=SmartCard-leseren ble ikke funnet.\n Vennligst kobl til leseren.
keyError.keySpecNotFound=E-postadressen "%S" kan ikke koples mot en nøkkel i nøkkelringen din.
keyError.keyIdNotFound=Den angitte nøkkel-IDen "%S" ble ikke funnet i nøkkelringen din.
keyError.resolutionAction=Velg en gyldig nøkkel i OpenPGP-delen av kontoinnstillingene dine.
missingPassphrase=Manglende passfrase
errorHandling.gpgAgentInvalid=Systemet ditt bruker en versjon av gpg-agent som ikke passer sammen med GnuPG-versjonen din.
errorHandling.gpgAgentError=GnuPG rapporterte en feil i kommunikasjonen med gpg-agent (en komponent i GnuPG).
errorHandling.dirmngrError=GnuPG rapporterte en feil i kommunikasjonen med dirmngr (en komponent i GnuPG).
errorHandling.pinentryError=GnuPG kan ikke be om passfrasen din via pinentry.
errorHandling.readFaq=Dette er en oppsetts- eller konfigurasjonsfeil som hindrer Enigmail i å fungere normalt, og som ikke kan rettes automatisk. \n \nVi anbefaler sterkt at du konsulterer supportnettsiden vår på https://enigmail.net/faq.
gpgNotFound=Klarte ikke å finne GnuPG-programmet '%S'\nKontroller banen.
gpgNotInPath=Kunne ikke finne GnuPG i PATH-variablen.\nKontroller at banen stemmer i Enigmail instillingene.
enigmailNotAvailable=Sentral Enigmail-tjeneste ikke tilgjengelig
gpgAgentNotStarted=Kunne ikke starte gpg-agent, som er påkrevd av din GnuPG versjon %S.
prefUntrusted=IKKE TIL Ã… STOLE PÃ…
prefRevoked=TRUKKET NØKKEL
prefExpiredKey=UTLØPT NØKKEL
prefExpired=UTLØPT
prefGood=God signatur fra %S
prefBad=DÃ¥rlig signatur fra %S
failCancel=Feil - Nøkkelhenting avbrutt av bruker
failNoServer=Feil - Ingen nøkkeltjener har blitt spesifisert
failNoID=Feil - Ingen NøkkelID å hente nøkkel for
failKeyExtract=Feil - Nøkkelutentings-kommando feilet
notFirstBlock=Feil - Første OpenPGP blokk tilhører ikke en offentlig nøkkel
importKeyConfirm=Importer offentlige nøkler fra meldignen?
failKeyImport=Feil - nøkkelimportering feilet
fileWriteFailed=Klarte ikke å skrive til filen %S
importKey=Importer offentlig nøkkel %S fra nøkkeltjener:
uploadKey=Send offentlig nøkkel %S til nøkkeltjener:
keyId=NøkkelID
keyAndSigDate=NøkkelID: 0x%S / Signert den: %S
keyFpr=Fingeravtrykk: %S
noEmailProvided=Du oppgav ikke en epostadresse
keyAlreadySigned=Denne nøkkelen har allerede blitt signert, du kan ikke signere den flere ganger
gnupg.invalidKey.desc=Nøkkel %S ble ikke funnet eller er ikke gyldig. (Under)nøkkelen kan være utgått på dato.
selKeyExpired=utløpt %S
createdHeader=Laget
atLeastOneKey=Ingen nøkkel valgt! Du må velge minst en nøkkel for å kunne akseptere denne dialogen
fewerKeysThanRecipients=Du har valgt færre nøkler enn mottakere. Er du sikker på at lista med nøkler du vil kryptere til er komplett?
userSel.button.goBack=Velg flere nøkler
userSel.secretKeySel.title=Velg en OpenPGP privatnøkkel for å signere meldingene dine
userSel.problemNoKey=Ingen gyldig nøkkel
userSel.problemMultipleKeys=Flere nøkler
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Send senere
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=MERK: PGP/MIME er bare støttet av et begrenset nummer av epostklienter! På Windows er det bare Enigmail,Sylpheed, Pegasus and Mulberry som er kjent for å støtte denne standarden; på GNU/Linux / UNIX og Mac OS X støtter de fleste populære klientene det. Om du er usikker velg %S valget.
first=første
second=andre
# Strings used in am-enigprefs.js
encryptKeyHeader=Velg OpenPGP-nøkkel til kryptering
identityName=Identitet: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Du har aktivert kryptering, men ikke valgt en nøkkel. For å kunne kryptere eposter sendt til %S må du velge en eller flere nøkler å kryptere til. Ønsker du å deaktivere kryptering til: %S?
noKeyToUse=(ingen - ingen kryptering)
noEmptyRule=Denne regelen kan ikke være tom! vennligst sett en epostadresse i regelfeletet.
invalidAddress=Epostadressen(e) du har skrevet er ikke gyldige. Du skal ikke skrive navnet på mottakeren, bare epostadressen. For eksempel:\nUgyldig: Some Name \nGyldig: some.name@address.net
noCurlyBrackets=De krøllete parantesene {} har en spesiell betydning, og kan ikke brukes i epostadresser. Om du ønsker å endre filteroppførselen for denne regelen, bruk 'Gjør regelen gjeldende om mottaker....' , mer info finnes i hjelp-menyen
# Strings used in enigmailRulesEditor.js
never=Aldri
always=Alltid
possible=Mulig
deleteRule=Virkelig slette den valgte regel?
nextRcpt=(neste mottaker)
negateRule=Ikke
addKeyToRule=Legg nøkkelen %1$S (%2$S) til per mottaker-regel
# Strings used in enigmailSearchKey.js
needOnline=Funksjonen du har valg er ikke tilgjengelig i frakoblet modus. Venngligst kobl til og prøv igjen.
protocolNotSupported=Protokollen '%S://' som du har valgt er ikke tilgjengelig for å laste ned OpenPGP nøkler
gpgkeysDisabled=Det vil kanskje hjelpe å aktivere valget: 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Kunne ikke koble til nøkkeltjener på %S.
keyDownloadFailed=Feilet i å laste ned nøkkel fra tjener. Status-meldingen er:\n%S
internalError=En intern feil oppstod. Nøklene kunne ikke bli lastet ned eller importert.
noKeyFound=Beklager, men kunne ikke finne en nøkkel som passet til søket. Vennligst merk at nøkkel-ider skal være prefikset med \\"0x\\" (f.eks. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Klarte ikke å søke eller laste ned nøkkel fra nøkkeltjener: gpgkeys_%S kunne ikke bli utført
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nøkkelpålitelighet kunne ikke bli satt
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Nøkkelsignering feilet
alreadySigned.label=Merk: nøkkelen %S er allerede singert med den valgte privatnøkkelen.
alreadySignedexportable.label=Merk: nøkkelen %S er allerede signert som eksporterbar med den valgte privatnøkkelen. En lokal signatur gir ikke mening.
partlySigned.label=Merk: noen bruker-IDer til nøkkelen %S er allerede signert med den valgte privatnøkkelen
noTrustedOwnKeys=Ingen kvalifisert nøkkel funnet for signering! Du trenger minst én fullt tiltrodd privatnøkkel for å signere nøkler.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Laster inn nøkler, vennligst vent...
keyValid.unknown=ukjent
keyValid.invalid=ugyldig
keyValid.disabled=deaktivert
keyValid.revoked=trukket
keyValid.expired=utløpt
keyValid.noSubkey=ingen gyldig undernøkkel
keyTrust.untrusted=ikke til å stole på
keyTrust.marginal=marginal
keyTrust.full=stolt på
keyTrust.ultimate=fullstendig
keyTrust.group=(gruppe)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Aktiver nøkkel
keyMan.disableKey=Deaktiver nøkkel
userAtt.photo=brukerattributt (JPEG bilde)
asciiArmorFile=ASCII armored-filer (*.asc)
importKeyFile=Importer OpenPGP nøkkelfil
gnupgFile=GnuPG Filer
saveRevokeCertAs=Lag og lagre tilbaketrekkingssertifikat
revokeCertOK=Tilbaketrekkingssertifikatetet har blitt laget vellykket. Du kan bruke det til å gjøre den offentlige nøkkelen ugyldig, f.eks. om du skulle miste den private nøkkelen.\n\nVennligst flytt det til et medium som kan lagres sikkert, som CD-ROM eller floppy og/eller print det ut og lagre det sikkert.Om noen får tak i dette sertifikatet kan de gjøre nøkkelen din ubrukelig.
revokeCertFailed=Tilbaketrekkingssertifikatet kunne ikke lages.
addUidOK=BrukerID lagt til vellykket.
addUidFailed=Kunne ikke legge til BrukerID.
noKeySelected=Du må velge minst en nøkkel å foreta operasjonen på.
exportToFile=Eksporter offentlig nøkkel til fil
exportKeypairToFile=Eksporter privat og offentlig nøkkel til fil
exportSecretKey=Ønsker du å inkludere den private nøkkelen i den lagrede OpenPGP-filen?
saveKeysOK=Nøklene ble lagret vellykket
saveKeysFailed=Kunne ikke lagre nøklene
importKeysFailed=Importering av nøkler feilet
enableKeyFailed=Aktivering/Deaktivering av nøkler feilet
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Eksporter offentlige nøkler
defaultPubSecKeyFilename=Eksporter offentlige og private nøkler
noSecretKeys=Ingen private nøkler funnet. Ønsker du å generere din egen nøkkel nå?
sendKeysOk=Nøkler sendt vellykket
sendKeysFailed=Sending av nøkler feilet
receiveKeysOk=Nøkler oppdatert vellykket
receiveKeysFailed=Nedlasting av nøkler feilet
importFromClip=Ønsker du å importere noen nøkler fra utklippstavlen?
importFromUrl=Last ned offentlig nøkkel fra denne URLen:
copyToClipbrdFailed=Kunne ikke kopiere de valgte nøkler til utklippstavlen
copyToClipbrdOK=Valgte nøkler kopiert til utklippstavle
deleteSecretKey=Advarsel: Du er i gang med å slette en privat nøkkel!\nOm du sletter en privat nøkkel, vil du ikke klare å dekryptere meldinger som er kryptert med den offentlige nøkkelen\n\nØnsker du virkelig å både slette den private og den offentlige nøkkelen?\n'%S'?
deleteMix=Advarsel: Du er i gang med å slette en privat nøkkel!\nOm du sletter en privat nøkkel, vil du ikke klare å dekryptere meldinger som er kryptert med den offentlige nøkkelen\n\nØnsker du virkelig å både slette den private og den offentlige nøkkelen?\n'%S'?
deletePubKey=Ønsker du å slette den offentlige nøkkelen\n'%S'?
deleteSelectedPubKey=Ønsker du å slette de offentlige nøklene?
deleteKeyFailed=Nøkkelen kunne ikke bli slettet
revokeKeyQuestion=Du er i ferd med å trekke tilbake nøkkel '%S'. \n \nDu vil ikke lenger kunne signere med denne nøkkelen, og når tilbaketrekkingen er distribuert vil andre ikke lenger kunne kryptere til denne nøkkelen. Du kan fortsatt bruke nøkkelen for å dekryptere gamle meldinger. \n \nVil du fortsette?
revokeKeyOk=Nøkkelen har blitt trukket tilbake. Om nøkkelen er tilgjengelig på en nøkkeltjener er det annbefalt å laste den opp igjen så andre kan se at den er trukket tilbake.
revokeKeyFailed=Nøkkelen kunne ikke bli trukket tilbake
refreshAllQuestion=Du valgte ikke noen nøkkel, nøsker du å oppdatere alle?
refreshKey.warn=Warning: Avhengig av antall nøkler og båndbredde kan det ta lang tid å oppdatere alle nøkler. Ønsker du å fortsette?
downloadContactsKeys.warn=Advarsel: avhengig av antall kontakter og tilkoplingshastighet kan det ta lang tid å laste ned alle nøklene!
downloadContactsKeys.importFrom=Importer kontakter fra adressebok '%S'?
keyMan.button.exportSecKey=&Export Secret Keys
keyMan.button.exportPubKey=Eksporter kun &Offentlige nøkler
keyMan.button.import=&Importer
keyMan.button.refreshAll=&&Oppdater alle nøkler
keyMan.button.revokeKey=&&Trekk tilbake nøkkel
keyMan.button.skip=&&Hopp over nøkkel
keylist.noOtherUids=Har ingen andre identiteter
keylist.hasOtherUids=Også kjent som
keylist.noPhotos=Ingen bilder tilgjengelig
keylist.hasPhotos=Bilder
keyMan.addphoto.filepicker.title=Velg bilde å legge til
keyMan.addphoto.warnLargeFile=Filen du har valgt er større en 25kB. \nNøklene blir veldig store om det legges til store filer, dette anbefales derfor ikke.
keyMan.addphoto.noJpegFile=Den valgte filen virker ikke å være en JPEG-fil. Vennligst velg en annen fil.
keyMan.addphoto.failed=Kunne ikke legge til bildet
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Feilet å endre den primære BrukerID-en
changePrimUidOK=Primær BrukerID endret vellykket.
deleteUidFailed=Fjerning av BrukerID %S feilet
deleteUidOK=BrukerID %S ble slettet.
revokeUidFailed=Tilbaketrekking av BrukerID %S feilet
revokeUidOK=BrukerID %S har blitt trukket tilbake, om nøkkelen er tilgjengelig på en nøkkeltjener bør du laste den opp igjen.
revokeUidQuestion=Ønsker du virkelig å trekke tilbake BrukerID %S?
deleteUidQuestion=Ønsker du virkelig å trekke tilbake BrukerID %S?\n\nvennligst merk: om du har lastet opp nøkkelen på en nøkkeltjener vil ikke sletting gjøre noe, i dette tilfellet bruk 'trekk tilbake'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=Suksess! Nøkler importert
importInfoSuccess=✅
importInfoBits=Biter
importInfoCreated=Laget
importInfoFpr=Fingeravtrykk
importInfoDetails=(Detaljer)
importInfoNoKeys=Ingen nøkler importert.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=offentlig nøkkel
keyTypePrimary=Primærnøkkel
keyTypeSubkey=undernøkkel
keyTypePair=nøkkelpar
keyExpiryNever=aldri
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Krypter
keyUsageSign=Signer
keyUsageCertify=Sertifiser
keyUsageAuthentication=Autentisering
keyDoesNotExpire=Nøkkel utløper ikke
# Strings in enigmailGenCardKey.xul
keygen.started=Vennligst vent mens nøkkel blir generert ....
keygen.completed=Nøkkelen har blitt generert. Den nye NøkkelID er: 0x%S
keygen.keyBackup=Backup av nøkkel er lagret som %S
keygen.passRequired=Vennligst spesifiser en passfrase om du ønsker å lagre en backup utenfor smartkortet ditt.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN-koden stemmer ikke overrens, vennligst prøv igjen.
cardPin.minLength=PIN-koden må ha minst %S bokstaver eller nummer
cardPin.processFailed=Klarte ikke å endre PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Oppdaterer nøkler, vennligst vent ...
keyserverProgress.uploading=Laster opp nøkler, vennligst vent...
keyserverTitle.refreshing=Oppdater nøkler
keyserverTitle.uploading=Nøkkelopplasting
# Strings in enigmailSetupWizard
passphrase.min8keys=Passfrasen må inneholde minst åtte tegn.
setupWizard.reallyCancel=Ønsker du virkelig å avbryte Enigmail hjelperen?
setupWizard.invalidGpg=Filen du anga er ikke GnuPG-programmet. Vennligst oppig en annen fil.
setupWizard.specifyFile=Du må angi en offentlig nøkkel-fil for å kunne fortsette
setupWizard.installFailed=Det virker som om installasjonen ikke gikk bra. Prøv igjen eller installer GnuPG manuelt og angi plassering med Bla igjennom-knappen.
setupWizard.downloadForbidden=For din egen sikkerhet laster vi ikke ned GnuPG automatisk. Besøk http://www.gnupg.org/ for å laste det ned.
setupWizard.downloadImpossible=Kan ikke laste ned GnuPG nå. Prøv igjen senere, eller gå til http://www.gnupg.org/ for å laste det ned.
setupWizard.hashSumError=Installasjonsveilederen kunne ikke verifisere integriteten til den nedlastede filen. Filen kan være ødelagt eller manipulert. Vil du fortsette installasjonen uansett?
setupWizard.importSettingsFile=Angi fil å hente sikkerhetskopi fra
setupWizard.invalidSettingsFile=Den angitte filen er ikke en gyldig sikkerhetskopi av Enigmail-innstillinger.
setupWizard.gpgConfExists=Konfigurasjonsfil for GnuPG finnes allerede. Vil du overskrive den med versjonen fra din gamle installasjon?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Det oppsto en feil under nedlasting av GnuPG. Sjekk konsolloggen for flere detaljer.
installGnuPG.installFailed=Det oppsto en feil under installasjon av GnuPG. Sjekk konsolloggen for flere detaljer.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Du må angi et navn og en e-postadresse
addUidDlg.nameMinLengthError=Navnet må innholdet minst fem tegn
addUidDlg.invalidEmailError=Du må angi en gyldig e-postadresse
addUidDlg.commentError=Parenteser er ikke tillatt i kommentarer
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP-smartkort støtter kun ASCII-tegn i Fornavn/Navn.
# network error types
errorType.SecurityCertificate=Sikkerhetssertifikatet til webtjenesten er ikke gyldig
errorType.SecurityProtocol=Sikkerhetsprotokollen brukt av webtjenesten er ikke kjent
errorType.Network=En nettverksfeil har oppstått
# filter stuff
filter.folderRequired=Du må velge en målkatalog
filter.decryptMove.label=Dekrypter permanent (Enigmail)
filter.decryptCopy.label=Lag dekryptert kopi (Enigmail)
filter.decryptMove.warnExperimental=Advarsel - filtreringshandlingen "Dekrypter permanent" kan føre til ødelagte meldinger. \n \nVi anbefaler på det sterkeste at du først prøver "Lag dekryptert kopi"-filteret, tester resultatet nøye, og at du ikke benytter "Dekryptert permanent" før du er fornøyd med resultatet av testingen.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Kunne ikke dekryptere melding med emne \n"%S". \nVil du prøve igjen med en annen passfrase eller vil du hoppe over meldingen?
converter.decryptAtt.failed=Kunne ikke dekryptere vedlegget "%1$S" \ntil meldingen med emne \n"%2$S" \nVil du prøve igjen med en annen passfrase eller vil du hoppe over meldingen?
saveLogFile.title=Lagre loggfil
# strings in gpg.jsm
unknownSigningAlg=Ukjent signeringsalgoritme (ID: %S)
unknownHashAlg=Ukjent kryptografisk hash (ID: %S)
# strings in keyRing.jsm
keyring.photo=Bilde
keyRing.pubKeyRevoked=Nøkkelen %1$S (nøkkel-ID %2$S) er trukket tilbake.
keyRing.pubKeyExpired=Nøkkelen %1$S (nøkkel-ID %2$S) er utløpt.
keyRing.pubKeyNotForSigning=Nøkkelen %1$S (nøkkel-ID %2$S) kan ikke brukes til signering.
keyRing.pubKeyNotForEncryption=Nøkkelen %1$S (nøkkel-ID %2$S) kan ikke brukes til kryptering.
keyRing.keyDisabled=Nøkkelen %1$S (nøkkel-ID %2$S) er deaktivert; den kan ikke brukes.
keyRing.keyNotTrusted=Nøkkelen %1$S (nøkkel-ID %2$S) er ikke tiltrodd nok. Sett tillitsnivået for nøkkelen din til "ultimat" for å bruke den til signering.
keyRing.keyInvalid=Nøkkelen %1$S (nøkkel-ID %2$S) er ugyldig (det kan for eksempel være den ikke er selvsignert).
keyRing.signSubKeysRevoked=Alle undernøkler for signering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er tilbakekalt.
keyRing.signSubKeysExpired=Alle undernøkler for signering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er utløpt.
keyRing.signSubKeysUnusable=Alle undernøkler for signering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er tilbakekalt, har løpt ut eller er av andre grunner ikke mulige å bruke.
keyRing.encSubKeysRevoked=Alle undernøkler for kryptering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er tilbakekalt.
keyRing.encSubKeysExpired=Alle undernøkler for kryptering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er utløpt.
keyRing.noSecretKey=Det virker ikke som du har privatnøkkelen til %1$S (nøkkel-ID %2$S) i nøkkelringen din. Du kan derfor ikke benytte denne nøkkelen for signering.
keyRing.encSubKeysUnusable=Alle undernøkler for kryptering tilhørende nøkkel %1$S (nøkkel-ID %2$S) er tilbakekalt, har løpt ut eller er av andre grunner ikke mulige å bruke.
#strings in exportSettingsWizard.js
cannotWriteToFile=Kan ikke lagre til filen '%S'. Angi en annen fil.
dataExportError=En feil oppsto under eksport av dataene dine.
enigmailSettings=Enigmail-innstillinger
defaultBackupFileName=Enigmail-eksport
specifyExportFile=Angi filnavn for eksport
homedirParamNotSUpported=Parametre som angir stier, som --homedir og --keyring, er ikke støttet ved eksport og import av innstillinger. Bruk andre metoder slik som å sette miljøvariabelen GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=Din nøkkel %1$S utløper om mindre enn %2$S dager. \n \nVi anbefaler at du lager et nytt nøkkelpar og konfigurerer de aktuelle kontoene til å benytte den nye nøkkelen.
expiry.keysExpireSoon=De følgende nøklene dine utløper om mindre enn %1$S dager: %2$S. Vi anbefaler at du lager nye nøkler og konfigurerer kontoene dine til å bruke de nye nøklene.
enigmail/lang/nb-NO/help/ 0000775 0000000 0000000 00000000000 12667016244 0015435 5 ustar 00root root 0000000 0000000 enigmail/lang/nb-NO/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017773 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/nb-NO/help/editRcptRule.html 0000664 0000000 0000000 00000011557 12667016244 0020742 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/nb-NO/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020310 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/nb-NO/help/messenger.html 0000664 0000000 0000000 00000010121 12667016244 0020306 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/nb-NO/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020624 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/nb-NO/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020771 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/nl/ 0000775 0000000 0000000 00000000000 12667016244 0014205 5 ustar 00root root 0000000 0000000 enigmail/lang/nl/am-enigprefs.properties 0000664 0000000 0000000 00000000124 12667016244 0020675 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP-beveiliging
enigmail/lang/nl/enigmail.dtd 0000664 0000000 0000000 00000143512 12667016244 0016475 0 ustar 00root root 0000000 0000000
OpenPGP)">
OPMERKING: Het maken van een sleutel kan meerdere minuten duren. Sluit het programma niet af tijdens dit proces. Het helpt om tegelijkertijd websites te bezoeken of acties uit te voeren die de harde schijf intensief gebruiken. Dit zorgt ervoor dat het ‘willekeurbuffer’ gevuld blijft en dat het aanmaken van de sleutel sneller verloopt. Zodra de sleutel klaar is wordt een melding getoond.">
’ is ongeldig">
LET OP: Het genereren van een sleutel kan enkele minuten duren. Sluit het programma niet tijdens het aanmaken van de sleutel. U zal gewaarschuwd worden als de sleutel aangemaakt is.">
Let op: Enigmail zal altijd de ondertekeningen van e-mails controleren, of Enigmail nu ingeschakeld is voor die account of niet.">
publieke sleutel kunnen andere personen u versleutelde berichten sturen. U kunt hem aan iedereen geven.">
geheime, privé sleutel is alleen voor uzelf en is nodig om e-mails te ontcijferen en om ondertekende e-mails te verzenden.
U moet deze sleutel geheim houden en aan niemand geven.">
geheime, privé sleutel is alleen voor uzelf en is nodig om e-mails te ontcijferen en om ondertekende e-mails te verzenden.
U moet deze sleutel geheim houden en aan niemand geven.
Om uw privésleutel te beschermen, wordt u in de volgende twee dialogen om een wachtwoordzin gevraagd.">
wachtwoordzin is een wachtwoord om uw privésleutel mee te beschermen. Het voorkomt misbruik van uw privésleutel.">
niet aanbevolen.">
U wordt gevraagd om hier een wachtwoord voor in te geven.">
exporteer uw gegevens van uw oude computer door middel van de backup-wizard in de Enigmail-instellingen
importeer de gegevens op uw nieuwe computer door middel van deze wizard.
">
Bedankt dat u voor Enigmail gekozen hebt.">
exporteer uw gegevens van uw oude computer door middel van deze wizard
importeer de gegevens op uw nieuwe computer door middel van de Installatiewizard.
">
enigmail/lang/nl/enigmail.properties 0000664 0000000 0000000 00000116313 12667016244 0020115 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Waarschuwing van Enigmail
enigConfirm=Bevestiging van Enigmail
enigError=Fout van Enigmail
enigPrompt=Vraag van Enigmail
dlgYes=&Ja
dlgNo=&Nee
dlgKeepSetting=Mijn antwoord onthouden en niet opnieuw vragen
dlgNoPrompt=Dit dialoogvenster niet opnieuw tonen
dlg.button.delete=&Verwijderen
dlg.button.cancel=&Annuleren
dlg.button.close=&Sluiten
dlg.button.continue=&Doorgaan
dlg.button.skip=&Overslaan
dlg.button.overwrite=&Overschrijven
dlg.button.view=&Bekijken
dlg.button.retry=&Opnieuw proberen
dlg.button.ignore=&Negeren
repeatPrefix=\n\nDeze waarschuwing zal zich %S
repeatSuffixSingular=keer herhalen.
repeatSuffixPlural=keren herhalen.
noRepeat=\n\nDeze waarschuwing zal niet herhaald worden tot u Enigmail bijwerkt.
pgpNotSupported=U gebruikt Enigmail samen met PGP 6.x\n\nJammer genoeg zijn er een aantal problemen met PGP 6.x die Enigmail weerhouden om correct te functioneren. Daarom ondersteunt Enigmail PGP 6.x niet meer; u kunt GnuPG (GPG) in de plaats gebruiken.\n\nAls u hulp nodig hebt om naar GnuPG over te schakelen, controleer dan de helpsectie op de website van Enigmail.
initErr.howToFixIt=Om Enigmail te gebruiken heeft u GnuPG nodig. Als u GnuPG nog niet heeft geïnstalleerd, kunt u op ‘Installatieassistent’ klikken.
initErr.setupWizard.button=&Installatieassistent
passphraseCleared=De wachtwoordzin is vergeten.
cannotClearPassphrase=U gebruikt een niet-standaard hulpmiddel (zoals gnome-keyring) voor het afhandelen van wachtwoorden. Het is daarom niet mogelijk om het wachtwoord vanuit Enigmail leeg te maken.
noPhotoAvailable=Geen foto beschikbaar
debugLog.title=Debuglogboek van Enigmail
error.photoPathNotReadable=Fotopad ‘%S’ is niet leesbaar
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Deze nieuwe versie van Enigmail heeft significante wijzigingen in de afhandeling van voorkeuren en opties. We hebben geprobeerd om de oude instellingen over te nemen in deze nieuwe versie, maar we kunnen dit niet in alle gevallen garanderen. Controleer de nieuwe voorkeuren en opties nogmaals voor de zekerheid.
enigmailCommon.checkPreferences=Voorkeuren controleren…
preferences.defaultToPgpMime=We hebben het standaard versleutel protocol in Enigmail veranderd van Inline-PGP naar PGP/MIME. We raden aan om deze standaardinstelling zo te laten.\n\nAls u toch standaard Inline-PGP wilt gebruiken, kunt u dit doen in Accountinstellingen onder OpenPGP-beveiliging.
usingVersion=Huidige versie van Enigmail %S
usingAgent=Uitvoerbaar bestand %2$S voor %1$S wordt gebruikt om te versleutelen en te ontcijferen
agentError=FOUT: bereiken van de Enigmime-service mislukt!
accessError=Fout in het bereiken van de Enigmail-service
onlyGPG=Sleutelgeneratie werkt enkel met GnuPG (niet met PGP)!
keygenComplete=Sleutelgeneratie afgerond! Identiteit <%S> zal gebruikt worden om te ondertekenen.
revokeCertRecommended=We raden u ten sterkste aan om een intrekkingscertificaat voor uw sleutel aan te maken. Dit certificaat kan gebruikt worden om uw sleutel ongeldig te maken, bijvoorbeeld als u uw geheime sleutel verloren bent of deze gestolen wordt. Wilt u nu een intrekkingscertificaat aanmaken?
keyMan.button.generateCert=Certificaat &aanmaken
genCompleteNoSign=Sleutelgeneratie afgerond!
genGoing=Sleutelgeneratie is al bezig!
passNoMatch=Wachtwoordzinnen komen niet overeen; geef ze opnieuw in
passCheckBox=Vink af als u geen wachtwoordzin gebruikt voor deze sleutel
passUserName=Specificeer een gebruikersnaam voor deze identiteit
keygen.missingUserName=Er is geen naam voor de gekozen account/identiteit opgegeven. Geef een waarde in in het veld ‘Uw naam’ in de Accountinstellingen.
keygen.passCharProblem=U gebruikt bijzondere tekens in uw wachtwoordzin. Helaas kan dit problemen veroorzaken met andere programma’s. Het is raadzaam een wachtwoordzin te kiezen die uitsluitend de volgende tekens bevat:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Om technische redenen is het niet mogelijk dat uw wachtwoordzin met een spatie begint of op een spatie eindigt.
changePassFailed=Wijzigen van wachtwoordzin mislukt.
keyConfirm=Publieke en geheime sleutel voor ‘%S’ aanmaken?
keyMan.button.generateKey=&Geheime sleutel aanmaken
keyAbort=Aanmaken sleutel afbreken?
keyMan.button.generateKeyAbort=&Aanmaken sleutel annuleren
keyMan.button.generateKeyContinue=&Doorgaan met aanmaken sleutel
expiryTooLong=Het is niet mogelijk om een sleutel te maken die over meer dan 100 jaar vervalt.
expiryTooLongShorter=Het is niet mogelijk om een sleutel te maken die over meer dan 90 jaar vervalt.
expiryTooShort=Uw sleutel moet voor minstens één dag geldig zijn.
dsaSizeLimit=DSA-ondertekensleutels kunnen maximaal 3072 bits lang zijn. De sleutelgrootte wordt overeenkomstig aangepast.
keyGenFailed=Sleutelgeneratie mislukt. Controleer de console van Enigmail voor details (Menu Enigmail > Enigmail debuggen).
setKeyExpirationDateFailed=De vervaldatum kon niet worden veranderd
# Strings in enigmailMessengerOverlay.js
securityInfo=Beveiligingsinformatie van Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Bijlagen bij dit bericht zijn niet ondertekend of versleuteld*\n\n
possiblyPgpMime=Mogelijk met PGP/MIME versleuteld of ondertekend bericht; klik op de knop Ontcijferen om te verifiëren
noDecrypted=Geen ontcijferd bericht om op te slaan!\nGebruik het commando Opslaan uit het Bestandsmenu
noMessage=Geen bericht om op te slaan!
useButton=Klik op Ontcijferen om het bericht te ontcijferen
saveHeader=Enigmail: Ontcijferd bericht opslaan
saveAttachmentHeader=Enigmail: Ontcijferde bijlage opslaan
noTempDir=Kon geen tijdelijke map vinden om naar te schrijven\nStel de omgevingsvariabele TEMP in
attachmentPgpKey=De bijlage ‘%S’ die u wilt openen blijkt een OpenPGP-sleutelbestand te zijn.\n\nKlik op Importeren om de ingesloten sleutels te importeren of klik op Bekijken om de inhoud van het bestand te bekijken in een browservenster
beginPgpPart=********* *BEGIN VERSLEUTELD of ONDERTEKEND DEEL* *********
endPgpPart=********** *EINDE VERSLEUTELD of ONDERTEKEND DEEL* **********
notePartEncrypted=Enigmail: *Delen van het bericht zijn NIET ondertekend of versleuteld*
noteCutMessage=Enigmail: *Meerdere berichtblokken gevonden -- ontcijferen/verifiëren afgebroken*
decryptOkNoSig=Waarschuwing\n\nOntcijfering was succesvol, maar de ondertekening kon niet correct geverifieerd worden
msgOvl.button.contAnyway=&Toch doorgaan
signature.verifiedOK=De ondertekening voor bijlage %S is met succes geverifieerd
signature.verifyFailed=De ondertekening voor bijlage %S kon niet worden geverifieerd
attachment.noMatchToSignature=Kon bijlage ‘%S’ niet koppelen aan een ondertekeningsbestand
attachment.noMatchFromSignature=Kon ondertekeningsbestand ‘%S’ niet koppelen aan een bijlage
fixBrokenExchangeMsg.failed=Berichtreparatie mislukt.
keysToExport=Selecteer OpenPGP sleutels om in te voegen
keysToUse=Selecteer OpenPGP-sleutel(s) om te gebruiken voor %S
pubKey=Publieke sleutel voor %S\n
windowLocked=Opstelvenster is geblokkeerd; verzending geannuleerd
sendUnencrypted=Initialiseren van Enigmail mislukt.\nNiet-versleuteld bericht verzenden?
composeSpecifyEmail=Geef uw primaire e-mailadres op. Dit zal gebruikt worden om de sleutel te kiezen om uitgaande berichten te ondertekenen.\nAls u dit niet invult, wordt het VAN-adres van het bericht gebruikt om de sleutel te kiezen.
sendingHiddenRcpt=Dit bericht heeft BCC-ontvangers (blind copy). Als dit bericht wordt versleuteld, is het mogelijk om de BCC-ontvangers te verbergen maar gebruikers van sommige producten (bv. PGP Corp.) zullen niet in staat zijn om het bericht te ontcijferen. Gezien dit feit, raden wij aan BCC-emails te vermijden bij versleutelde berichten.
sendWithHiddenBcc=BCC-ontvangers verbergen
sendWithShownBcc=Normaal versleutelen
sendingNews=Versleutelde verzending afgebroken.\n\nDit bericht kan niet versleuteld worden omdat er nieuwsgroepontvangers zijn. Verzend het bericht opnieuw zonder versleuteling.
sendToNewsWarning=u staat op het punt een versleutelde e-mail te versturen naar een nieuwsgroep.\n\nDit wordt afgeraden omdat dit alleen zin heeft als alle leden van de groep dit bericht kunnen ontcijferen, dus het bericht moet worden versleuteld met de sleutels van alle leden van de groep. Verstuur dit bericht alleen als u precies weet wat u doet.\n\nDoorgaan?
hasHTML=HTML-bericht-waarschuwing:\nDit bericht bevat vermoedelijk HTML en dit kan ervoor zorgen dat ondertekening of versleuteling mislukt. Houd de SHIFT-toets ingedrukt wanneer u op de Opstellen/Antwoorden-knop drukt om een ondertekend bericht te versturen en dit probleem in de toekomst te vermijden. Als u dit berichten standaard ondertekent, vink dan de optie ‘Berichten opstellen in HTML-formaat’ uit om het gebruik van HTML voor deze account definitief uit te schakelen.
strippingHTML=Het bericht bevat HTML-opmaakinformatie. Deze gaat verloren bij het converteren naar platte tekst voor ondertekening of versleuteling. Wilt u doorgaan?
msgCompose.button.sendAnyway=Bericht toch &versturen
attachWarning=Bijlagen bij dit bericht zijn niet lokaal, dus ze kunnen niet versleuteld worden. Om bijlagen te versleutelen dient u ze eerst lokaal op te slaan en dan toe te voegen. Bericht toch versturen?
quotedPrintableWarn=U hebt de ‘quoted-printable’-codering voor het verzenden van berichten ingeschakeld. Dit kan resulteren in een incorrecte ontcijfering of verificatie van uw bericht.\nWenst u de ‘quoted-printable’-optie nu uit te schakelen?
minimalLineWrapping=U hebt lijnafbreking ingesteld op %S karakters. Voor correcte versleuteling en/of ondertekening moet dit getal minstens 68 zijn.\nWilt u de lijnafbreking nu naar 68 karakters veranderen?
warning=Waarschuwing
signIconClicked=U hebt handmatig ondertekenen aangepast. Daarom zal, terwijl u dit bericht opstelt, het (de)activeren van de ondertekening niet meer afhangen van het (de)activeren van de versleuteling.
pgpMime_sMime.dlg.text=U heeft zowel PGP/MIME als S/MIME ingeschakeld. Het is helaas niet mogelijk om beide protocollen tegelijk te ondersteunen. Selecteer aub of u PGP/MIME of S/MIME wilt gebruiken.
pgpMime_sMime.dlg.pgpMime.button=Gebruik &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Gebruik &S/MIME
errorKeyUnusable=Het e-mailadres of de sleutel ID ‘%S’ kan niet gekoppeld worden aan een geldig, niet-verlopen OpenPGP sleutel.\nVerzeker uzelf er van dat u een geldige OpenPGP sleutel heeft en dat uw account instellingen naar deze sleutel wijzen.
errorOwnKeyUnusable=Het sleutel-ID ‘%S’ welke geconfigureerd is voor de huidige identiteit levert geen bruikbare OpenPGP-sleutel op.\n\nZorg ervoor dat u een geldige, niet vervallen OpenPGP-sleutel heeft en dat deze in uw accountinstellingen staat ingesteld.\nAls uw sleutel niet vervallen is, controleer dan of u het Eigenaarsvertrouwen op volledig of maximaal hebt ingesteld.
msgCompose.cannotSaveDraft=Fout bij opslaan van concept
msgCompose.internalEncryptionError=Interne fout: beloofde versleuteling uitgeschakeld
msgCompose.internalError=Er is een interne fout opgetreden.
msgCompose.toolbarTxt.signAndEncrypt=Dit bericht zal worden ondertekend en versleuteld
msgCompose.toolbarTxt.signOnly=Dit bericht zal worden ondertekend
msgCompose.toolbarTxt.encryptOnly=Dit bericht zal worden versleuteld
msgCompose.toolbarTxt.noEncryption=Dit bericht zal niet worden ondertekend en niet worden versleuteld
msgCompose.toolbarTxt.disabled=Enigmail is uitgeshakeld voor het gekozen profiel
msgCompose.toolbarTxt.smime=S/MIME is ingeschakeld. Dit kan problemen met Enigmail veroorzaken
msgCompose.toolbarTxt.smimeOff=- S/MIME wordt daarom niet gebruikt
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME is ingeschakeld - Enigmail wordt daarom niet gebruikt
msgCompose.toolbarTxt.smimeNoDraftEncryption=- concepten worden niet versleuteld
msgCompose.toolbarTxt.smimeConflict=Enigmail wordt niet gebruikt, omdat S/MIME momenteel is ingeschakeld. Schakel S/MIME ondertekening/versleuteling uit en schakel daarna Enigmail versleuteling in
msgCompose.encryptedSubjectStub=Versleuteld bericht
msgCompose.detailsButton.label=Details…
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Verzendhandeling afgebroken.\n\n
# details:
keyNotTrusted=Niet voldoende vertrouwensbasis voor sleutel ‘%S’
keyNotFound=Sleutel ‘%S’ niet gevonden
keyRevoked=Sleutel ‘%S’ ingetrokken
keyExpired=Sleutel ‘%S’ verlopen
statPGPMIME=PGP/MIME
statSigned=ONDERTEKEND
statEncrypted=VERSLEUTELD
statPlain=PLATTE TEKST
offlineSave=%S bericht opslaan naar %S in map Niet-verzonden berichten?
onlineSend=Verzend %S bericht naar %S?
encryptKeysNote=Let op: het bericht is versleuteld met het volgende gebruiker ID/sleutel: %S
hiddenKey=
signFailed=Fout in Enigmail; Versleuteling/ondertekening mislukt; niet versleuteld bericht verzenden?
msgCompose.button.sendUnencrypted=&Verstuur onversleuteld bericht
recipientsSelectionHdr=Selecteer ontvangers voor versleuteling
configureNow=U hebt Enigmail beveiliging nog niet ingesteld voor de geselecteerde identiteit. Wilt u dit nu doen?
# encryption/signing status and associated reasons:
encryptMessageAuto=Bericht versleutelen (auto)
encryptMessageNorm=Bericht versleutelen
signMessageAuto=Bericht ondertekenen (auto)
signMessageNorm=Bericht ondertekenen
encryptOff=Versleuteling: UIT
encryptOnWithReason=Versleuteling: AAN (%S)
encryptOffWithReason=Versleuteling: UIT (%S)
encryptOn=Versleuteling: AAN
signOn=Ondertekenen: AAN
signOff=Ondertekenen: UIT
signOnWithReason=Ondertekenen: AAN (%S)
signOffWithReason=Ondertekenen: UIT (%S)
reasonEnabledByDefault=standaard ingeschakeld
reasonManuallyForced=handmatig afgedwongen
reasonByRecipientRules=afgedwongen door ontvangerregels
reasonByAutoEncryption=afgedwongen door automatische versleuteling
reasonByConflict=vanwege een conflict in de ontvangerregels
reasonByEncryptionMode=vanwege de verlseutelingsmodus
reasonSmimeConflict=omdat S/MIME in plaats daarvan is ingesteld
# should not be used anymore:
encryptYes=Bericht zal versleuteld worden
encryptNo=Bericht zal niet versleuteld worden
# should not be used anymore:
signYes=Bericht zal ondertekend worden
signNo=Bericht zal niet ondertekend worden
# PGP/MIME status:
pgpmimeNormal=Protocol: PGP/MIME
inlinePGPNormal=Protocol: Inline PGP
pgpmimeAuto=Protocol: PGP/MIME (auto)
inlinePGPAuto=Protocol: Inline PGP (auto)
# should not be used anymore
pgpmimeYes=PGP/MIME zal worden gebruikt
pgpmimeNo=Inline PGP zal worden gebruikt
# Attach own key status (tooltip strings):
attachOwnKeyNo=Uw eigen publieke sleutel zal niet worden gekoppeld
attachOwnKeyYes=Uw eigen publieke sleutel zal worden gekoppeld
attachOwnKeyDisabled=Uw eigen publieke sleutel kan niet worden gekoppeld. U moet een specifieke sleutel opgeven\nbij OpenPGP-beveiliging van de Accountinstellingen om deze functie in te schakelen.
rulesConflict=Conflicterende per-ontvanger regels ontdekt\n%S\n\nBericht met deze instellingen verzenden?
msgCompose.button.configure=&Instellen
msgCompose.button.send=&Verstuur bericht
msgCompose.button.save=&Bewaar bericht
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Publieke sleutel %S is nodig om de ondertekening te verifiëren
keyUsed=Publieke sleutel %S gebruikt om handtekening te verifiëren
clickDecrypt=; klik op de Ontcijferen knop
clickDecryptRetry=; klik op de Ontcijferen knop om nogmaals te proberen
clickDetailsButton=; klik op ‘Details’ voor meer informatie
clickImportButton=; klik op ‘Sleutel Importeren’ om de sleutel te downloaden
keyTypeUnsupported=; het sleuteltype wordt niet door uw versie van GnuPG ondersteund
msgPart=Deel van het bericht %S
msgSigned=ondertekend
msgSignedUnkownKey=ondertekend met onbekende sleutel
msgEncrypted=versleuteld
msgSignedAndEnc=ondertekend en versleuteld
unverifiedSig=Ongeverifieerde ondertekening
incompleteDecrypt=Ontcijfering onvolledig
needKey=Fout - geheime sleutel nodig om het bericht te ontcijferen
failedDecrypt=Fout - ontcijfering mislukt
badPhrase=Fout - verkeerde wachtwoordzin
failedDecryptVerify=Fout - ontcijfering/verificatie mislukt
viewInfo=; Beeld > Beveiliginginfo voor details
decryptedMsg=Ontcijferd bericht
decryptedMsgWithFormatError=Ontcijfer bericht (hersteld kapotte PGP e-mailformaat veroorzaakt door een oude Exchange server, waardoor het resultaat misschien niet perfect leesbaar is)
usedAlgorithms=Gebruikte algoritmen: %S en %S
# strings in pref-enigmail.js
oldGpgVersion14=Initialisatie van Enigmail mislukt.\n\nU gebruikt GnuPG versie %S, welke niet meer ondersteund wordt. Enigmail vereist GnuPG versie 2.0.7 of nieuwer. Upgrade uw installie van GnuPG, anders zal Enigmail niet werken.
locateGpg=Localiseer GnuPG programma
invalidGpgPath=GnuPG kan niet starten met het pad dat u opgegeven hebt. Enigmail zal uitgeschakeld zijn totdat u het pad van GnuPG opnieuw veranderd of totdat u het programma herstart.
warningsAreReset=Alle waarschuwingen zijn gereset.
prefs.gpgFound=GnuPG is gevonden in %S
prefs.gpgNotFound=Kon GnuPG niet vinden
prefs.warnAskNever=Waarschuwing: het aanzetten van deze optie zal leiden tot onversleutelde emails zonder enig bericht als er geen sleutel is voor een van de ontvangers -- Enigmail zal u niet informeren als dit gebeurt!
prefs.warnIdleTimeForUnknownAgent=Kon geen verbinding met gpg-agent maken. Misschien gebruikt je systeem een aangepast programma voor het afhandelen van je wachtwoordzin (bv. gnome-keyring of seahorse-agent). Enigmail heeft helaas geen invloed op de geldigheidsduur van de wachtwoordzin van het programma dat je gebruikt. De instellingen in Enigmail worden daarom genegeerd.
prefEnigmail.oneKeyserverOnly=Fout - u kunt slechts één sleutelserver instellen voor automatisch downloaden van missende OpenPGP sleutels.
enterAdminPin=Typ de ADMIN PIN van uw SmartCard
enterCardPin=Typ de PIN van uw SmartCard
notInit=Fout - Enigmail service nog niet geïnitialiseerd
badCommand=Fout - versleutelcommando mislukt
cmdLine=commandolijn en uitvoer:
notRequired=Fout - geen versleuteling vereist
notComplete=Fout - sleutelgeneratie nog niet afgerond
invalidEmail=Fout - ongeldig(e) e-mailadres(sen)
noPassphrase=Fout - geen wachtwoordzin opgegeven
noPGPblock=Fout - Geen geldig gewapend OpenPGP gegevensblok gevonden
unverifiedReply=Ingesprongen berichtdeel (antwoord) is waarschijnlijk aangepast
keyInMessageBody=Sleutel in berichttekst gevonden. Klik ‘Sleutel importeren’ om de sleutel te importeren
sigMismatch=Fout - Ondertekeningen komen niet overeen
cantImport=Fout bij het importeren van publieke sleutel\n\n
doImportOne=%1$S (%2$S) importeren?
doImportMultiple=De volgende sleutels importeren?\n\n%S
previewFailed=Kan het bestand met de publieke sleutel niet importeren.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=De SmartCard %1$S, die in uw lezer is gevonden, kan niet worden gebruikt om dit bericht te verwerken.\nVoer SmartCard %S in en herhaal de handeling.
sc.insertCard=Deze handeling vereist uw SmartCard %S. \nVoer de vereiste kaart in en herhaal de handeling.
sc.removeCard=Deze handeling vereist geen SmartCard in de lezer. \nVerwijder uw kaart en herhaal de handeling.
sc.noCardAvailable=Geen SmartCard gevonden in de lezer.\nVoer uw kaart in en herhaal de handeling.
sc.noReaderAvailable=Uw SmartCardlezer kon niet gevonden worden.\nKoppel uw SmartCardreader aan, voer uw kaart in en herhaal de handeling.
keyError.keySpecNotFound=Het e-mailadres ‘%S’ komt niet overeen met een sleutel in uw keyring.
keyError.keyIdNotFound=De ingestelde sleutel-ID ‘%S’ kan niet in uw keyring worden gevonden.
keyError.resolutionAction=Kies een geldige sleutel in OpenPGP-beveiliging bij uw Accountinstellingen.
missingPassphrase=Ontbrekend wachtwoord
errorHandling.gpgAgentInvalid=Er draait een versie van gpg-agent op uw systeem die niet geschikt is voor uw GnuPG versie.
errorHandling.gpgAgentError=GnuPG rapporteerde een fout in de communicatie met gpg-agent (een component van GnuPG).
errorHandling.dirmngrError=GnuPG rapporteerde een fout in de communicatie met dirmngr (een component van GnuPG).
errorHandling.pinentryError=GnuPG kan niet om uw wachtwoord vragen via pinentry.
errorHandling.readFaq=Dit is een systeeminstallatie- of configuratiefout waardoor Enigmail niet goed kan werken en dit kan niet automatisch worden hersteld.\n\nWe raden ten zeerste aan om onze ondersteuningswebsite https://enigmail.net/faq te raadplegen.
gpgNotFound=Niet in staat om het GnuPG programma ‘%S’ te localiseren.\nZorg ervoor dat u het uitvoerbaar pad van GPG juist ingesteld hebt in uw Enigmail voorkeuren.
gpgNotInPath=Niet in staat om GnuPG te localiseren in het PATH.\nZorg ervoor dat u het uitvoerbaar pad van GPG juist ingesteld hebt in uw Enigmail voorkeuren.
enigmailNotAvailable=Enigmail core services is niet beschikbaar
gpgAgentNotStarted=Kon het gpg-agent programma niet starten dat vereist is voor uw versie van GnuPG, %S.
prefUntrusted=ONVERTROUWD
prefRevoked=INGETROKKEN SLEUTEL
prefExpiredKey=VERVALLEN SLEUTEL
prefExpired=VERVALLEN
prefGood=Goede ondertekening van %S
prefBad=VERKEERDE ondertekening van %S
failCancel=Fout - Sleutelontvangst geannuleerd door gebruiker
failNoServer=Fout - Geen sleutelserver opgegeven om sleutels van te ontvangen
failNoID=Fout - Geen sleutel ID opgegeven om een sleutel voor te ontvangen
failKeyExtract=Fout - sleutel extractiecommando mislukt
notFirstBlock=Fout - Eerste OpenPGP blok is geen publiek sleutel blok
importKeyConfirm=Publieke sleutel(s) die ingesloten zijn in het bericht importeren?
failKeyImport=Fout - sleutel importeren mislukt
fileWriteFailed=Schrijven naar bestand %S mislukt
importKey=Importeer publieke sleutel %S van sleutelserver:
uploadKey=Stuur publieke sleutel %S naar sleutelserver:
keyId=Sleutel ID
keyAndSigDate=Sleutel ID: 0x%1$S / Ondertekend op: %2$S
keyFpr=Vingerafdruk sleutel: %S
noEmailProvided=U vergat het e-mailadres!
keyAlreadySigned=De sleutel is reeds ondertekend. U kan het geen twee keer ondertekenen.
gnupg.invalidKey.desc=Sleutel %S niet gevonden of niet geldig. De (sub)sleutel is mogelijk vervallen.
selKeyExpired=vervallen %S
createdHeader=Aangemaakt
atLeastOneKey=Geen sleutel geselecteerd! U moet minstens één sleutel kiezen in dit dialoogvenster
fewerKeysThanRecipients=U heeft een kleiner aantal sleutels geselecteerd dan er ontvangers zijn. Weet u zeker dat de lijst van sleutels volledig is?
userSel.button.goBack=Selecteer meer sleutels
userSel.secretKeySel.title=Selecteer een Geheime OpenPGP sleutel om uw berichten te ondertekenen
userSel.problemNoKey=Geen geldige sleutel
userSel.problemMultipleKeys=Meerdere sleutels
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Later versturen
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=LET OP: PGP/MIME wordt maar door een beperkt aantal e-mailprogramma’s ondersteund! Op Windows ondersteunen alleen Mozilla/Thunderbird, Sylpheed, Pegasus en Mulberry deze standaard; op Linux/UNIX en Mac OS X ondersteunen de meest populaire e-mailprogramma’s deze standaard. Als u onzeker bent, kies dan de %S optie.
first=eerste
second=tweede
# Strings used in am-enigprefs.js
encryptKeyHeader=Selecteer OpenPGP sleutel voor versleuteling
identityName=Identiteit: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=U hebt versleuteling geactiveerd, maar u hebt geen sleutel geselecteerd. Om versleutelde mails naar %S te verzenden dient u een geldige sleutel op te geven uit uw sleutellijst. Wilt u versleuteling voor %S uitschakelen?
noKeyToUse=(geen - niet versleutelen)
noEmptyRule=De regel mag niet leeg zijn! Geef alstublieft een e-mailadres op in het Regelveld
invalidAddress=Het e-mailadres dat u ingeeft is niet geldig. U mag de naam van de ontvangers niet gebruiken, enkel hun e-mailadres. Bv.:\nOngeldig: Een Naam \nGeldig: een.naam@adres.net
noCurlyBrackets=De accolades {} hebben een speciale betekenis en zouden niet in het e-mailadres mogen gebruikt worden. Als u de de vergelijkingsfuncties wilt aanpassen voor deze regel, gebruik dan de ‘Pas regel toe als ontvanger ...’ optie.\nMeer informatie is beschikbaar als u op de Helpknop klikt.
# Strings used in enigmailRulesEditor.js
never=Nooit
always=Altijd
possible=Mogelijk
deleteRule=De geselecteerde regel echt verwijderen?
nextRcpt=(Volgende ontvanger)
negateRule=Niet
addKeyToRule=Voeg sleutel %1$S (%2$S) aan per ontvanger regel toe
# Strings used in enigmailSearchKey.js
needOnline=De functie die u geselecteerd hebt, is niet beschikbaar in de offline modus. Ga alstublieft online en probeer opnieuw.
protocolNotSupported=Het protocol ‘%S://’ dat u geselecteerd heeft, wordt niet ondersteund bij het downloaden van OpenPGP sleutels.
gpgkeysDisabled=Het zou helpen als u de optie ‘extensions.enigmail.useGpgKeysTool’ inschakelde.
noKeyserverConn=Kon niet met server verbinden op %S.
keyDownloadFailed=Downloaden sleutel van sleutelserver mislukt. Statusbericht is:\n%S
internalError=Interne fout opgetreden. De sleutels konden niet gedownload of geïmporteerd worden.
noKeyFound=Sorry, ik kon geen sleutel vinden die aan de zoekcriteria voldoet.\nOnthoud dat de sleutel ID’s voorafgegaan moeten worden door ‘0x’ (bv. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Zoeken of downloaden sleutel van sleutelserver mislukt: gpgkeys_%S kon niet uitgevoerd worden.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Instellen sleutelvertrouwen mislukt
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Ondertekenen van sleutel mislukt
alreadySigned.label=Let op: de sleutel %S is al ondertekend met de geselecteerde geheime sleutel.
alreadySignedexportable.label=Noot: de sleutel ‘%S’ is al exporteerbaar ondertekend met de gekozen geheime sleutel. Een lokale ondertekening heeft geen zin.
partlySigned.label=Let op: enkele gebruikers ID’s van sleutel %S zijn al ondertekend met de gekozen geheime sleutel.
noTrustedOwnKeys=Geen voor ondertekening in aamerking komende sleutel gevonden! U moet tenminste een volledig vertrouwde geheime sleutel hebben om sleutels te kunnen ondertekenen.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Sleutels worden geladen, wacht aub…
keyValid.unknown=onbekend
keyValid.invalid=ongeldig
keyValid.disabled=uitgeschakeld
keyValid.revoked=ingetrokken
keyValid.expired=vervallen
keyValid.noSubkey=geen geldige subsleutel
keyTrust.untrusted=onbetrouwbaar
keyTrust.marginal=weinig
keyTrust.full=betrouwbaar
keyTrust.ultimate=volledig
keyTrust.group=(groep)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Sleutel inschakelen
keyMan.disableKey=Sleutel uitschakelen
userAtt.photo=Gebruikerskenmerk (JPEG afbeelding)
asciiArmorFile=ASCII armored bestanden (*.asc)
importKeyFile=Importeer OpenPGP bestand
gnupgFile=GnuPG bestanden
saveRevokeCertAs=Intrekkingscertificaat aanmaken en opslaan
revokeCertOK=Het intrekkingscertificaat is met succes aangemaakt. U kan dit certificaat gebruiken om uw publieke sleutel ongeldig te maken, bijvoorbeeld als u uw geheime sleutel verloren bent.\n\nVerplaats het alstublieft naar een medium dat veilig opgeborgen kan worden (zoals een floppy of een cd). Als iemand toegang krijgt tot dit certificaat kan hij of zij uw sleutel onbruikbaar maken.
revokeCertFailed=Het intrekkingscertificaat kon niet aangemaakt worden.
addUidOK=Gebruikers-ID met succes toegevoegd
addUidFailed=Toevoegen van gebruikers-ID mislukt
noKeySelected=U dient tenminste één sleutel te selecteren om de gevraagde handeling uit te voeren
exportToFile=Exporteer publieke sleutel naar bestand
exportKeypairToFile=Exporteer Geheime en Publieke Sleutel Naar Bestand
exportSecretKey=Wilt u uw geheime sleutel in het opgeslagen OpenPGP bestand bijvoegen?
saveKeysOK=De sleutels zijn succesvol opgeslagen
saveKeysFailed=Opslaan van sleutels mislukt
importKeysFailed=Importeren van sleutels mislukt
enableKeyFailed=Sleutels in-/uitschakelen mislukt
specificPubKeyFilename=%1$S (0x%2$S) pub
specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec
defaultPubKeyFilename=Uitgevoerde-publieke-sleutels
defaultPubSecKeyFilename=Uitgevoerde-publieke-en-geheime-sleutels
noSecretKeys=Geen geheime sleutels gevonden.\n\nWilt u uw eigen sleutel nu aanmaken?
sendKeysOk=Sleutel(s) succesvol verzonden
sendKeysFailed=Verzenden van sleutels is mislukt
receiveKeysOk=Sleutel(s) succesvol geüpdated
receiveKeysFailed=Downloaden van sleutels mislukt
importFromClip=Wilt u de sleutel(s) van het klembord importeren?
importFromUrl=Publieke sleutel van deze URL downloaden:
copyToClipbrdFailed=Kopiëren van sleutels naar het klembord mislukt.
copyToClipbrdOK=Sleutel(s) naar het klembord gekopieerd
deleteSecretKey=WAARSCHUWING: U staat op het punt op een geheime sleutel te verwijderen!\nAls u uw geheime sleutel verwijderd, bent u niet langer in staat om versleutelde berichten voor die sleutel te ontcijferen en u kunt uw sleutel niet meer intrekken.\n\nWilt u echt zowel uw geheime als uw publieke sleutel ‘%S’ verwijderen?
deleteMix=WAARSCHUWING: U gaat geheime sleutels verwijderen!\nAls u uw geheime sleutel verwijdert, kan u niet langer uw berichten ontcijferen met die sleutel.\n\nBent u er zeker van dat u BEIDE sleutels wilt verwijderen, zowel de geheime als de publieke sleutel?
deletePubKey=Wilt u de publieke sleutel verwijderen?\n‘%S’
deleteSelectedPubKey=Wilt u de publieke sleutels verwijderen?
deleteKeyFailed=De sleutel kon niet verwijderd worden.
revokeKeyQuestion=U staat op het punt de sleutel ‘%S’ in te trekken.\n\nU kunt niet langer ondertekenen met deze sleutel, en zodra de sleutel verspreid wordt, kunnen anderen deze niet langer gebruiken voor het versleutelen. U kunt deze sleutel nog wel gebruiken voor het ontcijferen van oude berichten.\n\nWilt u doorgaan?
revokeKeyOk=De sleutel is ingetrokken. Als uw sleutel op een sleutelserver beschikbaar is, is het aangeraden om de sleutel opnieuw te uploaden zodat anderen de intrekking kunnen zien.
revokeKeyFailed=De sleutel kon niet ingetrokken worden.
refreshAllQuestion=U selecteerde geen sleutel. Wilt u ALLE sleutels verversen?
refreshKey.warn=Waarschuwing: afhankelijk van het aantal sleutels en de verbindingssnelheid kan het verversen van alle sleutels een langduring proces zijn!\n\nVerdergaan?
downloadContactsKeys.warn=Let op: Afhankelijk van het aantal contactpersonen en de verbindingssnelheid kan het downloaden van alle sleutels een langdurig proces zijn!
downloadContactsKeys.importFrom=Importeer contacten uit adresboek ‘%S’?
keyMan.button.exportSecKey=Exporteer &geheime sleutels
keyMan.button.exportPubKey=Exporteer &alleen publieke sleutels
keyMan.button.import=&Importeren
keyMan.button.refreshAll=&Ververs alle sleutels
keyMan.button.revokeKey=&Sleutel Intrekken
keyMan.button.skip=Sleutel &Overslaan
keylist.noOtherUids=Heeft geen andere identiteiten
keylist.hasOtherUids=Ook bekend als
keylist.noPhotos=Geen foto beschikbaar
keylist.hasPhotos=Foto’s
keyMan.addphoto.filepicker.title=Selecteer foto om toe te voegen
keyMan.addphoto.warnLargeFile=Het bestand dat u gekozen heeft is groter dan 25 kB.\nHet wordt niet aangeraden om grote bestanden toe te voegen, omdat de sleutels anders erg groot kunnen worden.
keyMan.addphoto.noJpegFile=Het geselecteerde bestand lijkt geen JPEG bestand te zijn. Kies aub een ander bestand.
keyMan.addphoto.failed=De foto kon niet worden toegevoegd.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Aanpassen primair gebruikers-ID mislukt
changePrimUidOK=Het primair gebruikers-ID is met succes aangepast
deleteUidFailed=Verwijderen van het gebruikers-ID ID %S mislukt
deleteUidOK=Verwijderen van gebruikers-ID %S succesvol.
revokeUidFailed=Intrekken van het gebruikers-ID %S mislukt
revokeUidOK=Gebruikers-ID %S werd succesvol ingetrokken. Als uw sleutel op een sleutelserver beschikbaar is, is het aangeraden om de sleutel opnieuw te uploaden zodat anderen de intrekking kunnen zien.
revokeUidQuestion=Wilt u echt het gebruikers-ID %S intrekken?
deleteUidQuestion=Wilt u echt gebruikers-ID %S verwijderen?\n\nOnthou: als u uw publieke sleutel op een sleutelserver geplaatst hebt, zal het verwijderen van het gebruikers-ID niets veranderen. In dat geval dient u ‘Gebruikers-ID intrekken’ te gebruiken.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=SUCCES! Sleutels geïmporteerd
importInfoSuccess=✅
importInfoBits=Bits
importInfoCreated=Gecreëerd
importInfoFpr=Vingerafdruk
importInfoDetails=(Details)
importInfoNoKeys=Geen sleutels geïmporteerd.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=publieke sleutel
keyTypePrimary=primaire sleutel
keyTypeSubkey=subsleutel
keyTypePair=sleutelpaar
keyExpiryNever=nooit
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Versleutelen
keyUsageSign=Ondertekenen
keyUsageCertify=Certificeren
keyUsageAuthentication=Authenticatie
keyDoesNotExpire=Sleutel vervalt nooit
# Strings in enigmailGenCardKey.xul
keygen.started=Even geduld terwijl de sleutel aangemaakt wordt…
keygen.completed=Sleutel aangemaakt. Het nieuwe sleutel-ID is: 0x%S
keygen.keyBackup=De back-up van de sleutel is opgeslagen als %S
keygen.passRequired=Geef een wachtwoordzin op als u een back-up van uw sleutel buiten uw SmartCard wilt bewaren.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=De PIN’s die u ingaf, kwamen niet overeen; probeer opnieuw
cardPin.minLength=De PIN moet uit ten minste %S tekens of nummers bestaan
cardPin.processFailed=Wijzigen van PIN mislukt
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Sleutels aan het verversen, even geduld…
keyserverProgress.uploading=Sleutels aan het uploaden, even geduld…
keyserverTitle.refreshing=Sleutels verversen
keyserverTitle.uploading=Sleutel uploaden
# Strings in enigmailSetupWizard
passphrase.min8keys=Uw wachtwoordzin moet ten minste 8 tekens bevatten!
setupWizard.reallyCancel=Bent u zeker dat u de installatiewizard van Enigmail wilt afsluiten?
setupWizard.invalidGpg=Het bestand dat u hebt opgegeven is geen GnuPG-programma. Kies een ander bestand.
setupWizard.specifyFile=U moet minstens één publieke sleutel selecteren om door te kunnen gaan.
setupWizard.installFailed=Het lijkt erop dat de installatie mislukt is. Probeer de installatie opnieuw of installeer GnuPG zelf en geef de plaats aan met de knop Bladeren.
setupWizard.downloadForbidden=Voor je eigen veiligheid downloaden we GnuPG niet. Bezoek http://www.gnupg.org/ om GnuPG te downloaden.
setupWizard.downloadImpossible=We kunnen GnuPG op dit moment niet downloaden. Probeer het later nog eens of ga naar http://www.gnupg.org/ om GnuPG te downloaden.
setupWizard.hashSumError=De wizard kon de integriteit van het gedownloade bestand niet controleren. Het bestand kan fout of gemanipuleerd zijn. Wil je toch doorgaan met de installatie?
setupWizard.importSettingsFile=Geef reservekopiebestand op waarvan geladen moet worden
setupWizard.invalidSettingsFile=Het opgegeven bestand is geen geldig Enigmail instellingen-reservekopiebestand.
setupWizard.gpgConfExists=Het GnuPG-configuratiebestand bestaat al. Wilt u deze overschrijven met degene uit uw oude installatie?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Er is een fout opgetreden bij het downloaden van GnuPG. Controleer de console-uitvoer voor nadere details.
installGnuPG.installFailed=Er is een fout opgetreden tijdens het installeren van GnuPG. Controleer de console-uitvoer voor nadere details.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=U moet een naam en e-mailadres invullen
addUidDlg.nameMinLengthError=De naam moet minstens 5 letters bevatten
addUidDlg.invalidEmailError=U moet een geldig e-mailadres opgeven
addUidDlg.commentError=Haakjes zijn niet toegestaan in opmerkingen
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP-Smartcards ondersteunen enkel ASCII-tekens in Voornaam/Achternaam.
# network error types
errorType.SecurityCertificate=Het veiligheidscertificaat aangeboden door de webservice is niet geldig.
errorType.SecurityProtocol=Het veiligheidsprotocol dat door de webservice gebruikt wordt is onbekend.
errorType.Network=Er is een netwerkfout opgetreden.
# filter stuff
filter.folderRequired=U moet een doelmap uitkiezen
filter.decryptMove.label=Permanent ontcijferen
filter.decryptCopy.label=Genereer ontcijferde Kopie (Enigmail)
filter.decryptMove.warnExperimental=Waarschuwing. ‘Permanent ontcijferen’ kan leiden tot beschadigde of kapotte berichten.\n\nHet wordt aangeraden om eerst ‘Genereer ontcijferde Kopie’ te proberen, het resultaat zorgvuldig te testen, en alleen dan de permanente actie uit te voeren.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Kon bericht met het volgende onderwerp niet ontcijferen:\n"%S"\nWilt u het nogmaals proberen met een andere wachtwoordzin, of wilt u dit bericht overslaan?
converter.decryptAtt.failed=Kon bijlage niet ontcijferen: ‘%1$S’\nvan bericht met onderwerp:\n‘%2$S’.\nWilt u het nogmaals proberen met een andere wachtwoordzin, of wilt u dit bericht overslaan?
saveLogFile.title=Logbestand opslaan
# strings in gpg.jsm
unknownSigningAlg=Onbekend ondertekeningsalgoritme (ID: %S)
unknownHashAlg=Onbekende cryptografische hash (ID: %S)
# strings in keyRing.jsm
keyring.photo=Foto
keyRing.pubKeyRevoked=De sleutel %1$S (sleutel-ID %2$S) is ingetrokken.
keyRing.pubKeyExpired=De sleutel %1$S (sleutel-ID %2$S) is vervallen.
keyRing.pubKeyNotForSigning=De sleutel %1$S (sleutel-ID %2$S) kan niet worden gebruikt om te ondertekenen.
keyRing.pubKeyNotForEncryption=De sleutel %1$S (sleutel-ID %2$S) kan niet worden gebruikt om te versleutelen.
keyRing.keyDisabled=De sleutel %1$S (sleutel-ID %2$S) is uitgeschakeld, hij kan niet worden gebruikt.
keyRing.keyNotTrusted=De sleutel %1$S (sleutel-ID %2$S) wordt niet voldoende vertrouwd. Stel het vertrouwensniveau van uw sleutel in op ‘maximaal’ om hem te kunnen gebruiken om te ondertekenen.
keyRing.keyInvalid=De sleutel %1$S (sleutel-ID %2$S) is ongeldig (bijvoorbeeld omdat hij niet door zichzelf ondertekend is).
keyRing.signSubKeysRevoked=Alle subsleutels om te ondertekenen van sleutel %1$S (sleutel-ID %2$S) zijn ingetrokken.
keyRing.signSubKeysExpired=Alle subsleutels om te ondertekenen van sleutel %1$S (sleutel-ID %2$S) zijn vervallen.
keyRing.signSubKeysUnusable=Alle subsleutels om te ondertekenen van sleutel %1$S (sleutel-ID %2$S) zijn ingetrokken, vervallen of anderszins onbruikbaar.
keyRing.encSubKeysRevoked=Alle subsleutels om te versleutelen van sleutel %1$S (sleutel-ID %2$S) zijn ingetrokken.
keyRing.encSubKeysExpired=Alle subsleutels om te versleutelen van sleutel %1$S (sleutel-ID %2$S) zijn vervallen.
keyRing.noSecretKey=Het lijkt er op dat u niet de geheime sleutel van %1$S (sleutel-ID %2$S) in uw keyring heeft; u kunt deze sleutel niet gebruiken om mee te ondertekenen.
keyRing.encSubKeysUnusable=Alle subsleutels om te versleutelen van sleutel %1$S (sleutel-ID %2$S) zijn ingetrokken, vervallen of anderszins onbruikbaar.
#strings in exportSettingsWizard.js
cannotWriteToFile=Kan niet opslaan naar bestand ‘%S’. Kies een ander bestand.
dataExportError=Er is een fout opgetreden tijdens het exporteren van uw gegevens.
enigmailSettings=Enigmail-instellingen
defaultBackupFileName=Enigmail-export
specifyExportFile=Geef bestandsnaam op om te exporteren
homedirParamNotSUpported=Extra parameters waarmee paden worden geconfigureerd, zoals --homedir en --keyring worden niet ondersteund bij het exporteren/herstellen van uw instellingen. Gebruik andere manieren, zoals het instellen van de GNUPGHOME variabele.
#strings in expiry.jsm
expiry.keyExpiresSoon=Uw sleutel %1$S zal binnen %2$S dagen vervallen.\n\nWe raden u aan om een nieuw sleutelpaar aan te maken en de overeenkomende accounts in te stellen om deze nieuwe sleutel te gebruiken.
expiry.keysExpireSoon=De volgende van uw sleutels zullen binnen %1$S dagen vervallen:\n%2$S. We raden u aan om een nieuw sleutelparen aan te maken en de overeenkomende accounts in te stellen om deze nieuwe sleutels te gebruiken.
enigmail/lang/nl/help/ 0000775 0000000 0000000 00000000000 12667016244 0015135 5 ustar 00root root 0000000 0000000 enigmail/lang/nl/help/compose.html 0000664 0000000 0000000 00000010573 12667016244 0017476 0 ustar 00root root 0000000 0000000
Enigmail help: Opstellen van een bericht
Enigmail help
Enigmail gebruiken bij het opstellen van een bericht
- Enigmail menu in het Mail/Opstellen venster
-
- Onderteken bericht
- Ondertekende mail verzenden in- of uitschakelen. De gebruiker wordt gewaarschuwd als het ondertekenen mislukt.
- Versleutel bericht
-
Versleuteling voor alle ontvanger(s) in- of uitschakelen. De gebruiker wordt gewaarschuwd als de versleuteling mislukt.
Als Selectie tonen wanneer nodig ingesteld is in de Voorkeuren -> Sleutelselectie tab, dan zal er een lijst van sleutel getoond worden als er ontvangers in de lijst staan van wie u geen publieke sleutel hebt.
Als Toon nooit het PGP dialoogvenster voor sleutelselectie ingesteld is in de Voorkeuren -> Sleutelselectie tab, en er zijn adressen in de lijst met ontvangers van wie u geen publieke sleutel hebt, dan wordt de mail onversleuteld verstuurd.
- Gebruik PGP/MIME voor dit bericht
-
Het gebruik van PGP/MIME voor dit bericht in- of uitschakelen.
Als u weet dat uw ontvanger mail kan lezen in het PGP/MIME formaat, dan gebruikt u dit best ook.
Deze mogelijkheid is afhankelijk van de instellingen in de Voorkeuren -> PGP/MIME tab. Deze moet ingesteld zijn op Sta het gebruik van PGP/MIME toe of Gebruik altijd PGP/MIME.
- Standaardopties voor berichtcompositie
-
- Ondertekening/versleuteling opties...: snelkoppeling naar de Accountinstellingen -> OpenPGP opties.
- Verzenden opties...: snelkoppeling naar de Voorkeuren -> Verzend tab.
- Sleutelselectie opties...: snelkoppeling naar de Voorkeuren -> Sleutelselectie tab.
- PGP/MIME opties...: snelkoppeling naar de Voorkeuren -> PGP/MIME tab.
- Versleuteling ongedaan maken
-
Als er een fout is bij het verzenden van de e-mail zoals wanneer de POP server de aanvraag niet accepteerd, zal Enigmail dit niet weten en het versleuteld bericht zal nog altijd getoond worden in het Opstelvenster. Bij het kiezen van dit menu-item wordt de versleuteling of ondertekening uit de mail verwijderd.
Deze optie kan ook gebruikt worden als een tijdelijke oplossing om de aangehaalde tekst in versleutelde berichten te ontcijferen bij het antwoorden. Enigmail zou het aangehaalde bericht automatisch moeten ontcijferen, maar als dat om één of andere reden mislukt, kan u dit menu-item gebruiken om het te forceren.
- Publieke sleutel invoegen
- Voegt een ASCII gewapende publieke sleutel in op de huidige cursorpositie in het Opstelvenster. U krijgt de vraag welk e-mailadres er gebruikt moet worden voor de in te voegen sleutel(s). Sleutels die op deze manier zijn ingevoegd, zullen automatisch herkend worden door Enigmail bij het ontvangen. Na sleutelinvoeging kan u nog steeds uw e-mail ondertekenen of versleutelen. Voeg niet meer dan één sleutelblok in in een bericht; specifieer gewoon meerdere e-mailadressen, gescheiden door komma's of spaties.
- Vergeet opgeslagen wachtwoord
- Verwijdert het opgeslagen wachtwoord. Dit is nuttig als u meerdere wachtwoorden gebruikt.
- Help
- Toont de helpinformatie van de website (deze pagina).
Verdere help kan u vinden op de Enigmail support website
enigmail/lang/nl/help/editRcptRule.html 0000664 0000000 0000000 00000012642 12667016244 0020436 0 ustar 00root root 0000000 0000000
Enigmail help: Bewerk PGP regels
Enigmail help
De Enigmail regeleditor gebruiken: PGP regels bewerken
In de Regeleditor kan u standaarden opgeven om versleuteling, ondertekening en PGP/MIME te gebruiken en om te definiëren welke OpenPGP sleutel(s) er gebruikt moeten worden. In dit dialoogvenster kan u de regels voor een enkele ontvanger opgeven en voor een groep van ontvangers met sterk vergelijkbare eigenschappen.
- Stel PGP regels in voor
- bevat de e-mailadressen van de ontvangers (zonder namen, d.w.z. enkel een adres zoals persoon@email.domain). U kan meerdere e-mailadressen opgeven, gescheiden door spaties. Het opgegeven e-mailadres kan bestaan uit enkel de domeinnaam zodat alle e-mailadressen van dit domein ermee overeenkomen. Bijvoorbeeld @email.domain zal overeenkomen met per@email.domain,soon@email.domain, persoon@email.domain, enz.
- Pas regel toe als ontvanger ...
-
Dit past de vergelijking van de e-mailadressen aan. Als er meerdere e-mailadressen opgegeven zijn, zal de instelling betrekking hebben op alle e-mailadressen. De voorbeelden hieronder zijn gebaseerd op persoon@email.domain ingegeven in het PGP regels veld erboven.
- Is exact met deze instelling heeft de regel enkel betrekking op e-mails naar persoon@email.domain (exact, niet hoofdlettergevoelig).
- Bevat met deze instelling zal de regel toegepast worden op elk e-mailadres dat deze tekenreeks bevat. B.v. persoon@email.domain or soon@email.domain.net
- Begint met met deze instelling wordt de regel toegepast op e-mailadressen die beginnen met de opgegeven tekenreeks. B.v. per@email.domain.net, per@email.domain-name.com.
- Eindigt met met deze instelling wordt de regel toegpast op e-mailadressen die eindigen met de opgegeven tekenreeks. B.v. persoon@email.domain, soon@email.domain.
- Ga verder met de volgende regel voor het overeenstemmende adres
- Het inschakelen van deze functie staat u toe om een regel te definiëren zonder een KeyID in het Gebruik de volgende OpenPGP sleutel: veld, zodat het e-mailadres gebruikt wordt om de sleutel te controleren op het moment van verzenden. Verdere regels voor hetzelfde adres zullen ook uitgevoerd worden.
- Controleer verdere regels voor het overeenstemmende adres niet
- Het inschakelen van deze functie zorgt ervoor dat andere regels niet uitgevoerd worden als het adres met deze regel overeenstemd. Er wordt dus direct naar de volgende ontvanger overgeschakeld.
- Gebruik de volgende OpenPGP sleutels
- Gebruik de Selecteer sleutel(s).. knop om de sleutel van de ontvanger te kiezen die u wilt gebruiken voor versleuteling. Net zoals bij de bovenstaande actie zullen er geen verdere regels voor het overeenstemmende adres uitgevoerd worden.
- Standaard voor ondertekening
-
Ondertekening in- of uitschakelen. Dit gebruikt of overschrijft datgene dat u opgegeven hebt in het berichtopstel venster. Mogelijke waarden zijn:
- Nooit: ondertekening uitschakelen, zelf al is het ingeschakeld in het berichtopstelvenster (overschrijft de andere waarden)
- Ja, als het geselecteerd is bij Berichtopstelling: laat ondertekening zoals opgegeven in het berichtopstelvenster
- Altijd: ondertekening inschakelen, zelfs al is het niet ingeschakeld in het berichtopstelvenster
Deze ondertekeningsregels worden toegepast op alle regels die ermee overeenkomen. Als één van de regesl ondertekening uitschakeld, dan word het bericht niet ondertekend, ook al hebt u een regel die Altijd opgeeft bij ondertekening.
- Versleuteling
- berichtversleuteling in- of uitschakelen. De toegestane instellingen en hun betekening zijn dezelfde als voor berichtondertekening.
- PGP/MIME
- Het gebruik van PGP/MIME (RFC 3156) berichtencodering in- of uitschakelen. Als PGP/MIME uitgeschakeld is, worden de berichten met "inline PGP) ondertekend of versleuteld. De toegestane waarden en hun betekenis zijn dezelfde als deze voor berichtondertekening.
De regels worden uitgevoerd in de volgorde waarin ze weergegeven worden in de PGP regeleditor. Wanneer een regel overeenstemt met een ontvanger en een PGP sleutel ID bevat, met daarbij nog een opgegeven sleutel ID, dan wordt de ontvanger niet meer gecontroleerd bij het uitvoeren van verdere regels.
Verdere help is beschikbaar op de Enigmail per-ontvanger instellingen pagina
enigmail/lang/nl/help/initError.html 0000664 0000000 0000000 00000005034 12667016244 0020002 0 ustar 00root root 0000000 0000000
Enigmail help: Het oplossen van problemen met de OpenPGP initialisatie
OpenPGP Help
Het oplossen van problemen met de OpenPGP initialisatie
Er zijn verschillende oorzaken voor het mislukken van de OpenPGP initialisatie. De bekendsten worden hieronder beschreven;
voor meer informatie kunt u de Enigmail help website bezoeken.
- Kon GnuPG niet vinden
-
Voor een goede werking van OpenPGP moet de applicatie GnuPG geïnstalleerd zijn.
Als GnuPG niet kan worden gevonden, moet u er eerst voor zorgen dat de applicatie gpg.exe (voor Windows; gpg voor andere platformen) op uw PC daadwerkelijk aanwezig is.
Als GnuPG (gpg.exe of gpg) daadwerkelijk geïnstalleerd is, maar OpenPGP kan het toch niet vinden, moet u het pad naar GnuPG in de OpenPGP instellingen ingeven (Menu OpenPGP) > Voorkeuren).
- Initialisatie van EnigMIME is mislukt
-
OpenPGP werkt alleen als deze in dezelfde ontwikkelomgeving als Thunderbird of SeaMonkey gecreëerd (gecompileerd) is. U kunt de officiële Enigmail samen met officiële versies van Thunderbird of SeaMonkey downloaden van mozilla.org.
Als u Thunderbird of SeaMonkey in een andere versie/variant van een andere bron download (bv. van een Linux distributie provider), of als u de applicatie zelf gecompileerd heeft, moet u ook een versie van Enigmail gebruiken die in dezelfde ontwikelomgeving gecompileerd is. Om Enigmail zelf te compileren moet u de instructies opvolgen op de Enigmail website in Gebied Source-Code. Gelieve geen eventuele foutmeldingen (bugs) over dit probleem te maken, omdat er daarvoor geen andere oplossing is.
Verdere hulp is beschikbaar op de Enigmail support website.
enigmail/lang/nl/help/messenger.html 0000664 0000000 0000000 00000010476 12667016244 0020023 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail help
Enigmail gebruiken bij het lezen van berichten
- Ontcijferknop in het hoofdvenster
- Deze knop kan gebruikt worden voor verschillende doelen: ontcijferen, verifiëren of publieke sleutels importeren. Normaalgesproken gebeurt ontcijfering/verificatie automatisch, maar dit kan uitgeschakeld worden door middel van een instelling. Hoewel, als dit mislukt, wordt er een kort foutbericht weergegeven in de Enigmail statusregel. Als u op de Ontcijferknop klikt, zal u een meer gedetailleerd foutbericht zien, samen met de uitvoer van het GPG commando.
- Pen- en sleuteliconen in de berichtkop
-
Het Pen en Sleutel icoon in de berichtkop toont of het bericht dat u aan het lezen bent ondertekend en/of versleuteld was en of de ondertekening goed is, d.w.z. als het bericht niet gewijzigd is sinds de ondertekening. Als het bericht toch gewijzigd is, zal het Pen icoon veranderen naar een Gebroken pen om aan te geven dat de ondertekening ongeldig is. Een rechtermuisklik op het Pen- of Sleutelicoon geeft een menu met de volgende opties:
- OpenPGP beveiligingsinfo: staat u toe de outputstatus van GPG voor het bericht te bekijken.
- Kopieer OpenPGP beveiligingsinfo: kopieert de output status van GPG naar het klembord; om in een antwoord te plakken, enz.
- Bekijk PGP foto ID: staat u toe om het Foto ID van de persoon die u het bericht gezonden heeft te bekijken, als er natuurlijk een foto ingebed zit in de publieke sleutel. (Deze optie is enkel beschikbaar als er een Foto ID bestaat in de gebruikte sleutel.)
- S/MIME beveilingsinfo: staat u toe om de S/MIME beveilingsinfo van het bericht te bekijken.
Als u keyserver-options auto-key-retrieve niet ingesteld hebt in uw gpg.conf bestand en u leest een bericht dat ondertekend of versleuteld is, dan zal u een Pen icoon in de hoofding zien met een Vraagteken er op. De Enigmail statusregel zal zeggen Gedeelte van het bericht getekend; klik op het pen icoon voor details en het bericht in het berichtvenster zal alle OpenPGP informatie, samen met de ondertekening tonen.
U kan dit ook zien als u keyserver-options auto-key-retrieve ingesteld hebt in uw gpg.conf bestand en als de OpenPGP key niet beschikbaar is op de standaard keyserver.
Een klik op het Pen en Vraagteken icoon zal een venster tonen met het bericht dat de sleutel niet in uw sleutelbos zit. Als u dan op OK klikt, krijgt u een ander venster met een lijst met publieke keyservers waaruit u kan kiezen om de publieke sleutel van de verzender te downloaden.
Ga naar Enigmail -> Voorkeuren -> Basis tab en geef het adres van de keyserver in in het Keyserver(s): vakje, gescheiden door een komma om een lijst van keyservers die u wilt gebruiken te configureren. De eerste keyserver uit de lijst zal als standaardserver gebruikt worden.
- Versleutelde bijlagen openen / bijgevoegde OpenPGP sleutels importeren
- Bijlagen met de extensie *.pgp, *.asc en *.gpg worden herkend door Enigmail en worden speciaal behandeld. Bij een rechtermuisklik op zo een bijlage krijg je twee speciale menu items in het contextmenu: Ontcijfer en open en Ontcijfer en sla op als.... Gebruik deze twee menu items als u wilt dat Enigmail de bijlage ontcijfert voor deze te openen of op te slaan. Als een bijlage herkend word als een OpenPGP sleutelbestand, krijg je de kans om de sleutels in je sleutelbos te importeren.
Verdere help is verkrijgbaar op de Enigmail Helppagina
enigmail/lang/nl/help/rulesEditor.html 0000664 0000000 0000000 00000006463 12667016244 0020335 0 ustar 00root root 0000000 0000000
Enigmail help: Regeleditor
Enigmail help
De regeleditor gebruiken
In de regeleditor kan u standaarden opgeven per ontvanger om versleuteling, ondertekening en PGP/MIME in- of uit te schakelen. U kan er ook OpenPGP sleutels definiëren. Elke regel bestaat uit 5 velden en wordt getoond op een enkele lijn:
- E-mail
- De e-mail(s) van de Aan:, Cc: and Bcc: velden om te controleren. De controle werkt op subreeksen (Verdere details kunnen gevonden worden in het Bewerk regel dialoogvenster).
- PGP sleutel(s)
- een lijst van PGP sleutel ID's om te gebruiken voor de ontvanger
- Onderteken
-
berichtondertekening in- of uitschakelen. Dit gebruikt of overschrijft de instelling die u gebruikt in het berichtenopstelvenster. De waarden zijn:
- Nooit: ondertekening uitschakelen, zelf al is het ingeschakeld in het berichtopstelvenster (overschrijft de andere waarden)
- Mogelijk: laat ondertekening als opgegeven in het berichtopstelvenster
- Altijd: ondertekening inschakelen, zelfs al is het niet ingeschakeld in het berichtopstelvenster
Deze ondertekeningsinstellingen worden toegepast op alle regels die ermee overeenstemmen. Als één van de regels ondertekening uitschakeld, zal het bericht niet ondertekend worden, ook al is er een regel die Altijd opgeeft.
- Versleutel
- berichtversleuteling in- of uitschakelen. De toegestane instellingen zijn dezelfde als voor berichtondertekening.
- PGP/MIME
- het gebruik van PGP/MIME (RFC 3156) in- of uitschakelen. Als PGP/MIME uitgeschakeld is, zullen de berichten versleuteld of ondertekend worden met "inline PGP". De toegestane waarden en hun betekenis zijn dezelfde als voor berichtondertekening.
De regels worden uitgevoerd in de volgorde waarin ze weergegeven worden in de PGP regeleditor. Wanneer een regel overeenstemt met een ontvanger en een PGP sleutel ID bevat, met daarbij nog een opgegeven sleutel ID, dan wordt de ontvanger niet meer gecontroleerd bij het uitvoeren van verdere regels.
Let op: De regeleditor is nog niet volledig. Het is mogelijk om meer geavanceerde regels te schrijven door het regelbestand direct te bewerken (deze regels zouden dan niet meer bewerkt mogen worden in de regeleditor). Verdere informatie voor het direct bewerken van het bestand is beschikbaar op de Enigmail homepage
Verdere help is beschikbaar op de Enigmail support website
enigmail/lang/nl/help/sendingPrefs.html 0000664 0000000 0000000 00000005545 12667016244 0020463 0 ustar 00root root 0000000 0000000
Enigmail help: OpenPGP regel bewerken
Enigmail help
Voorkeuren instellen om versleutelde e-mail te versturen
Bij de Verzenden voorkeuren kunt u het algemene model en de voorkeuren voor versleuteling kiezen.
- Handige versleuteling
- Met deze instellingen worden e-mails zonder bevestiging versleuteld, indien mogelijk.
Deze instelling is geschikt als u uw privacy wilt vergroten door versleutelde e-mails te versturen in plaats van onversleutelde e-mails als dat mogelijk is.
Het effect is alsof u vrieven stuurt in plaats van ansichtkaarten. In tegenstelling tot bij ansichtkaarten, kunnen brieven normaal gesproken niet gelezen worden tijdens het transport.
Het is echter net als bij brieven niet zeker, dat niemand de brief tijdens het transport opent (hoewel daar wel technische inspanning voor nodig is).
Een concreet risico is dat u per ongeluk ‘vervalste sleutels’ gebruikt, die u van iemand heeft gekregen die beweert dat de sleutel eigendom is van de persoon die u wilt e-mailen. Om dit risico te voorkomen kunt u ofwel het vertrouwensmodel van OpenPGP gebruiken (zie onder) of u moet altijd controleren of de vingerafdruk van de publieke sleutel juist is.
- Handmatige versleuteling
- Met deze instellingen kunt u de verschillende voorkeuren voor versleuteling handmatig aan uw behoefte aanpassen. U kunt opgeven:
- of antwoorden op versleutelde/ondertekende e-mails ook automatisch versleuteld/ondertekend moeten worden;
- of u het vertrouwensmodel van OpenPGP wilt gebruiken om sleutels te accepteren (dit betekent dat u om een sleutel te kunnen gebruiken, u deze sleutel moet ondertekenen, of dat er genoeg andere personen zijn die u vertrouwt die de sleutel ondertekend hebben);
- of u automatisch alle e-mails versleuteld wilt versturen als alle sleutels geaccepteerd zijn;
- of en wanneer u eindelijk wilt bevestigen dat u een e-mail wilt versturen.
Als u het belangrijk vindt dat inhoud die u versleutelt niet door andere personen of organisaties gelezen kan worden, dan dient u de handmatige instellingen te kiezen en op zijn minst de optie te selecteren om alleen sleutels te accepteren als u of andere mensen ze ondertekend hebben. Hoewel dit model het risico op vervalste sleutels vermindert, moet u wel actief sleutels ondertekenen en het eigenaarsvertrouwen aangeven via sleutelbeheer.
enigmail/lang/pl/ 0000775 0000000 0000000 00000000000 12667016244 0014207 5 ustar 00root root 0000000 0000000 enigmail/lang/pl/am-enigprefs.properties 0000664 0000000 0000000 00000000110 12667016244 0020672 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP
enigmail/lang/pl/enigmail.dtd 0000664 0000000 0000000 00000111631 12667016244 0016474 0 ustar 00root root 0000000 0000000
Konfiguracja kont -> OpenPGP).">
Uwaga! Tworzenie klucza może potrwać kilka minut. Nie zamykaj programu w trakcie działania generatora. Aktywne używanie przeglądarki lub wykonywanie intensywnych operacji dyskowych podczas tworzenia klucza przyspieszy proces. Koniec procesu zostanie zasygnalizowany odpowiednim komunikatem.">
†jest nieprawidłowy">
Uwaga! Generowanie klucza może potrwać kilka minut. Nie zamykaj programu w trakcie działania generatora. Koniec procesu zostanie zasygnalizowany odpowiednim komunikatem.">
Uwaga! Enigmail będzie zawsze weryfikować podpisy w wiadomościach dla wszystkich tożsamości i kont, niezależnie od tego czy obsługa Enigmail jest włączona, czy nie">
Dziękujemy za wybór Enigmail Enigmail!">
enigmail/lang/pl/enigmail.properties 0000664 0000000 0000000 00000066206 12667016244 0020124 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Ostrzeżenie Enigmail
enigConfirm=Potwierdzenie Enigmail
enigError=Błąd Enigmail
enigPrompt=Wprowadź dane Enigmail
dlgYes=&Tak
dlgNo=&Nie
dlgKeepSetting=Zapamiętaj mój wybór i nie wyświetlaj ponownie
dlgNoPrompt=Nie wyświetlaj więcej tego okna
dlg.button.delete=&Usuń
dlg.button.cancel=&Anuluj
dlg.button.close=&Zamknij
dlg.button.continue=&Kontynuuj
dlg.button.skip=&Pomiń
dlg.button.view=Po&dglÄ…d
repeatPrefix=\n\nTo ostrzeżenie będzie powtórzone %S
repeatSuffixSingular=raz.
repeatSuffixPlural=razy.
noRepeat=\n\nTo ostrzeżenie nie pojawi się dopóki nie zaktualizujesz Enigmail.
pgpNotSupported=Wygląda na to, że używasz Enigmail razem z PGP 6.x\n\nNiestety, PGP 6.x ma dużo właściwości, które powodują niepoprawne działanie Enigmail. Dlatego też, PGP 6.x nie będzie dłużej obsługiwane. Zamiast tego zalecane jest zainstalowanie GnuPG (GPG).\n\nJeżeli potrzebujesz pomocy przy instalacji GnuPG, sprawdź sekcję „Pomoc†na stronie domowej Enigmail.
passphraseCleared=Szyfr został usunięty z pamięci.
noPhotoAvailable=Brak zdjęcia
debugLog.title=Dziennik zdarzeń debugowania Enigmail
error.photoPathNotReadable=Nie można odczytać Å›cieżki „%Sâ€
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Ta wersja Enigmail wprowadza istotne zmiany w obsłudze preferencji i opcji. Dołożyliśmy wszelkich starań, aby przenieść ustawienia z poprzednich wersji do aktualnej, tam gdzie było to możliwe. Prosimy o dokładne sprawdzenie nowych preferencji i opcji.
enigmailCommon.checkPreferences=Sprawdź preferencje...
usingVersion=Uruchomiono Enigmail, wersja %S
usingAgent=Szyfrowanie i weryfikacja programem %S: %S
agentError=Błąd! Nie można uzyskać dostępu do usługi Enigmime!
accessError=Wystąpił błąd podczas próby uzyskania dostępu do usługi Enigmail
onlyGPG=Tworzenie kluczy działa tylko z GnuPG (nie działa z PGP)!
keygenComplete=Zakończono tworzenie klucza!\nTożsamość <%S> będzie używana do podpisywania.
revokeCertRecommended=Zaleca się utworzenie certyfikatu unieważnienia dla tego klucza. Certyfikat ten posłuży do unieważnienia klucza, np. jeżeli zaginie klucz prywatny lub zostanie on wykradziony. Czy utworzyć teraz taki certyfikat?
keyMan.button.generateCert=&Utwórz certyfikat
genCompleteNoSign=Zakończono tworzenie klucza!
genGoing=Trwa tworzenie klucza…!
passNoMatch=Wprowadzone szyfry są niezgodne – wprowadź ponownie
passCheckBox=Proszę zaznaczyć pole, jeśli nie podano szyfru do klucza
passUserName=Podaj nazwę użytkownika dla tej tożsamości
passSpaceProblem=Z powodów technicznych szyfr nie może zaczynać się lub kończyć spacją.
changePassFailed=Nie udało się zmienić szyfru.
keyConfirm=Utworzyć klucz publiczny i prywatny dla „%S�
keyMan.button.generateKey=&Utwórz klucz
keyAbort=Czy przerwać tworzenie klucza?
keyMan.button.generateKeyAbort=&Przerwij tworzenie klucza
keyMan.button.generateKeyContinue=&Kontynuuj tworzenie klucza
expiryTooLong=Nie można tworzyć kluczy ważnych dłużej niż 100 lat.
expiryTooLongShorter=Nie można tworzyć kluczy, których okres ważności jest dłuższy niż 90 lat.
expiryTooShort=Klucz musi być ważny przynajmniej jeden dzień.
dsaSizeLimit=Klucze podpisywania DSA są ograniczone do 3072 bitów. Rozmiar klucza zostanie odpowiednio zredukowany.
keyGenFailed=Nie udało się utworzyć klucza. Szczegóły wykonywanej operacji można znaleźć w konsoli Enigmail (menu Enigmail -> Debugowanie Enigmail).
setKeyExpirationDateFailed=Data wygaśnięcia nie mogła zostać zmieniona
# Strings in enigmailMessengerOverlay.js
securityInfo=Informacja Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Załączniki do tej wiadomości nie zostały podpisane ani zaszyfrowane*\n\n
possiblyPgpMime=Wiadomość prawdopodobnie podpisana/zaszyfrowana za pomocą PGP/MIME – naciśnij przycisk Odszyfruj/Weryfikuj, aby to sprawdzić
noDecrypted=Brak odszyfrowanej wiadomości do zapisania!\nUżyj polecenia Zapisz z menu Plik.
noMessage=Brak wiadomości do zapisania!
useButton=Naciśnij przycisk Odszyfruj, aby odszyfrować wiadomość
saveHeader=Enigmail: Zapisz odszyfrowaną wiadomość
saveAttachmentHeader=Enigmail: Zapisz odszyfrowany załącznik
noTempDir=Nie można znaleźć katalogu plików tymczasowych.\nProszę ustawić odpowiednią ścieżkę jako wartość zmiennej systemowej TEMP.
attachmentPgpKey=Otwierany załącznik „%S†jest plikiem klucza OpenPGP.\n\nNaciÅ›nij przycisk „Importâ€, aby zaimportować zawarty w nim klucz lub „PodglÄ…dâ€, aby wyÅ›wietlić zawartość w oknie przeglÄ…darki.
beginPgpPart=********* *POCZATEK CZESCI SZYFROWANEJ / PODPISANEJ* *********
endPgpPart=********** *KONIEC CZESCI SZYFROWANEJ / PODPISANEJ* **********
notePartEncrypted=Enigmail: *Niektóre fragmenty wiadomości NIE zostały podpisane lub zaszyfrowane*
noteCutMessage=Enigmail: *Znaleziono bloki wielu wiadomości – przerwano odszyfrowanie/weryfikację*
decryptOkNoSig=Uwaga!\n\nWiadomość została odszyfrowana, ale nie można prawidłowo zweryfikować podpisu.
msgOvl.button.contAnyway=Czy chcesz &kontynuować?
signature.verifiedOK=Podpis załącznika %S został pomyślnie zweryfikowany
signature.verifyFailed=Nie można zweryfikować podpisu załącznika %S
attachment.noMatchToSignature=Nie można dopasować załącznika %S do pliku podpisu
attachment.noMatchFromSignature=Nie można dopasować pliku podpisu %S do załącznika
keysToExport=Wybierz klucze OpenPGP do wstawienia
keysToUse=Wybierz klucze OpenPGP używane dla %S
pubKey=Klucz publiczny dla %S\n
windowLocked=Okno tworzenia wiadomości jest zablokowane – wysyłanie anulowane
sendUnencrypted=Nie udało się zainicjować Enigmail.\nWysłać niezaszyfrowaną wiadomość?
composeSpecifyEmail=Wybierz swój adres e-mail, według którego wybierany będzie klucz do podpisywania wysyłanych wiadomości.\n Jeżeli zostawisz to pole niewypełnione, zostanie użyty adres z pola OD: wysyłanej wiadomości.
sendingHiddenRcpt=Ta wiadomość zawiera adresy w polu Ukryta kopia. Jeżeli wiadomość jest szyfrowana, możliwe jest ukrycie odbiorców ukrytej kopii, ale użytkownicy niektórych produktów, np. PGP Corp. nie będą mogli odszyfrować takiej wiadomości. Z tego powodu zaleca się nie korzystać z pól Ukryta kopia w szyfrowanych wiadomościach.
sendWithHiddenBcc=Ukryj odbiorców ukrytej kopii
sendWithShownBcc=Zaszyfruj normalnie
sendingNews=Operacja wysyłania szyfrowanej wiadomości została przerwana.\n\nWiadomości tej nie można zaszyfrować, ponieważ na liście odbiorców jest grupa dyskusyjna. Należy ponownie wysyłać wiadomość bez szyfrowania.
sendToNewsWarning=Uwaga. Wysyłasz zaszyfrowaną wiadomość na adres grupy dyskusyjnej.\n\nOdradzamy takie działanie, ponieważ ma ono sens tylko wtedy, gdy wszyscy użytkownicy grupy mogą odszyfrować taką wiadomość, tzn. wiadomość taka musiałaby być zaszyfrowana kluczami wszystkich użytkowników grupy. Wyślij wiadomość tylko, jeżeli wiesz dokładnie co robisz.\n\nKontynuować?
hasHTML=Ostrzeżenie o wiadomoÅ›ci w formacie HTML:\nTa wiadomość może zawierać kod HTML, co może uniemożliwić podpisanie/szyfrowanie wiadomoÅ›ci. Aby zapobiec temu w przyszÅ‚oÅ›ci, wciÅ›nij klawisz SHIFT, gdy naciskasz przycisk komponowania/odpowiedzi, żeby wysyÅ‚ać podpisane wiadomoÅ›ci.\nJeżeli domyÅ›lnie wysyÅ‚asz podpisane wiadomoÅ›ci, należy w ustawieniach odznaczyć funkcjÄ™ „Podczas tworzenia wiadomoÅ›ci używaj edytora HTMLâ€, aby na staÅ‚e wyłączyć wiadomoÅ›ci HTML dla tego konta pocztowego.
strippingHTML="Wiadomość zawiera informację o formatowaniu w HTML, która zostanie utracona po konwersji do zwykłego tekstu przy podpisywaniu/szyfrowaniu. Czy chcesz kontynuować?
msgCompose.button.sendAnyway=&Wyślij wiadomość
attachWarning=Załączniki do tej wiadomości nie są zapisane lokalnie i nie mogą być zaszyfrowane. Aby je zaszyfrować, należy zapisać załączniki jako pliki lokalne i następnie dołączyć do wiadomości. Czy na pewno wysłać wiadomość?
quotedPrintableWarn=Włączono kodowanie „quoted-printable†dla wysyłanych wiadomości. Może to spowodować nieprawidłowe odszyfrowanie lub weryfikację wiadomości.\nCzy wyłączyć to kodowanie?
minimalLineWrapping=Ustawiono zawijanie wierszy dłuższych niż %S znaków. Aby poprawnie szyfrować lub podpisywać wiadomości, ta wartość musi wynosić co najmniej 68.\nCzy ustawić zawijanie wiersza powyżej 68 znaków?
warning=Uwaga
signIconClicked=Zmieniono ręcznie opcje podpisywania. Dlatego też, podczas komponowania tej wiadomości dezaktywacja/aktywacja podpisywania nie zależy od dezaktywacji/aktywacji szyfrowania.
pgpMime_sMime.dlg.text=Włączone są jednocześnie PGP/MIME i S/MIME. Niestety nie jest możliwa jednoczesna obsługa obu protokołów. Wyłącz S/MIME lub PGP/MIME.
pgpMime_sMime.dlg.pgpMime.button=Użyj &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Użyj &S/MIME
errorKeyUnusable=Nie można dopasować adresu e-mail lub ID klucza „%S†do prawidłowego, ważnego klucza OpenPGP.\nSprawdź czy masz ważny klucz OpenPGP i czy jest on określony w ustawieniach konta.
# note: should end with double newline:
sendAborted=Operacja wysyłania zostaa anulowana.\n\n
statPGPMIME=PGP/MIME
statSigned=PODPISANÄ„
statEncrypted=ZASZYFROWANÄ„
statPlain=NIEPODPISANÄ„ i NIEZASZYFROWANÄ„
offlineSave=Zapisać wiadomość %S do %S w folderze „Niewysłane�
onlineSend=Wysłać wiadomość %S do %S?
encryptKeysNote=Informacja. Wiadomość zaszyfrowana za pomocą następującego ID użytkownika/klucza: %S
signFailed=Błąd w Enigmail! Szyfrowanie/podpisanie się nie powiodło. Wysłać wiadomość bez szyfrowania/podpisu?
msgCompose.button.sendUnencrypted=&Wyślij niezaszyfrowaną wiadomość
recipientsSelectionHdr=Wybierz odbiorców do szyfrowania
configureNow=Nie włączono jeszcze zabezpieczeń Enigmail dla tej tożsamości. Czy chcesz to zrobić teraz?
# should not be used anymore:
encryptYes=Wiadomość zostanie zaszyfrowana
encryptNo=Wiadomość nie zostanie zaszyfrowana
# should not be used anymore:
signYes=Wiadomość zostanie podpisana
signNo=Wiadomość nie zostanie podpisana
# should not be used anymore
pgpmimeYes=Zostanie użyte PGP/MIME
pgpmimeNo=Zostanie użyte PGP/Inline
rulesConflict=Wykryto kolizję reguł Enigmail dla odbiorcy\n%S\n\nCzy wysłać wiadomość z tymi ustawieniami?
msgCompose.button.configure=&Konfiguruj
msgCompose.button.send=&Wyślij wiadomość
msgCompose.button.save=&Zapisz wiadomość
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Wymagany jest klucz publiczny %S, aby zweryfikować podpis
clickDecrypt=; naciśnij przycisk Odszyfruj
clickDecryptRetry=; naciśnij przycisk Odszyfruj, aby ponowić próbę
msgPart=Część wiadomości %S
msgSigned=podpisana
msgEncrypted=zaszyfrowana
msgSignedAndEnc=podpisana i zaszyfrowana
unverifiedSig=Podpis bez weryfikacji
incompleteDecrypt=Odszyfrowanie nie zostało zakończone
needKey=Błąd – potrzebny klucz, aby odszyfrować wiadomość
failedDecrypt=Błąd – nie powiodło się odszyfrowanie
badPhrase=Błąd – nieprawidłowy szyfr
failedDecryptVerify=Błąd – nie powiodło się odszyfrowanie/weryfikacja
viewInfo=; Widok » Informacje o zabezpieczeniach wiadomości, aby zobaczyć szczegóły
decryptedMsg=Odszyfrowana wiadomość
decryptedMsgWithFormatError=Rozszyfrowana wiadomość (formatowanie uszkodzone prawdopodobnie przez serwer Exchange, wiadomość może być trudna do odczytania).
locateGpg=Znajdź program GnuPG
invalidGpgPath=Nie udało się uruchomić GnuPG z podanej ścieżki. Dlatego też Enigmail będzie nieaktywne, dopóki nie zostanie zmieniona ścieżka do programu GnuPG lub dopóki nie zrestartujesz aplikacji.
warningsAreReset=Wszystkie ostrzeżenia będą pokazywane od nowa.
prefs.gpgFound=GnuPG znaleziono w katalogu %S
prefs.gpgNotFound=Nie można znależć GnuPG
prefs.warnAskNever=Ostrzeżenie! Włączenie tej opcji oznacza niezaszyfrowane wiadomości bez żadnej informacji o brakującym kluczu dla któregoś z odbiorców – Enigmail nie poinformuje o takim przypadku!
prefs.warnIdleTimeForUnknownAgent=Twój system używa specjalistycznych narzędzi do obsługi szyfru, takich jak gnome-keyring lub seahorse-agent. Niestety Enigmail nie może kontrolować limitu czasu szyfru używanego narzędzia. Dlatego poszczególne ustawienia limitu czasu w Enigmail są pomijane.
prefEnigmail.oneKeyserverOnly=Błąd – w ustawieniach automatycznego pobierania brakujących kluczy OpenPGP można wskazać tylko jeden serwer kluczy.
enterAdminPin=Wprowadź ADMIN PIN swojej karty SmartCard
enterCardPin=Wprowadź PIN swojej karty SmartCard
notInit=Błąd – usługa Enigmail nie zainicjowana
badCommand=Błąd – nie powiodło się polecenie szyfrowania
cmdLine=składnia i wynik polecenia:
notRequired=Błąd – szyfrowanie nie jest wymagane
notComplete=Błąd – generowanie kluczy nie jest jeszcze zakończone
invalidEmail=Błąd – nieprawidłowe adresy e-mail
noPassphrase=Błąd – nie podano szyfru
noPGPblock=Błąd – nie znaleziono prawidłowego bloku danych OpenPGP
unverifiedReply=Cytowana część wiadomości (odpowiedzi) została prawdopodobnie zmodyfikowana
sigMismatch=Błąd – podpis nie pasuje
cantImport=Błąd przy importowaniu klucza publicznego\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Karta SmartCard %S znaleziona w czytniku nie może być użyta do przetworzenia wiadomości.\nWłóż kartę %S i ponów operację.
sc.insertCard=Ta operacja wymaga karty SmartCard %S.\nWłóż wymaganą kartę i ponów operację.
sc.removeCard=Ta operacja wymaga usunięcia karty SmartCard z czytnika.\nUsuń kartę i ponów operację.
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ę
gpgNotFound=Nie odnaleziono programu GnuPG „%Sâ€.\nSprawdź w ustawieniach Enigmail czy jest okreÅ›lona prawidÅ‚owa Å›cieżka do programu GnuPG.
gpgNotInPath=W podanym położeniu nie znaleziono programu GnuPG.\nSprawdź w ustawieniach Enigmail czy jest określona prawidłowa ścieżka do programu GnuPG.
gpgAgentNotStarted=Nie można uruchomić programu gpg-agent, który jest wymagany przez GnuPG %S.
prefUntrusted=NIEZAUFANY
prefRevoked=UNIEWAŻNIONY
prefExpiredKey=PRZEDAWNIONY KLUCZ
prefExpired=PRZEDAWNIONY
prefGood=Prawidłowy podpis od %S
prefBad=NIEPRAWIDÅOWY podpis od %S
failCancel=Błąd – użytkownik anulował odbiór klucza
failNoServer=Błąd – nie wprowadzono nazwy serwera kluczy
failNoID=Błąd – brak ID klucza do pobrania
failKeyExtract=Błąd – nie powiodło się uzyskanie klucza
notFirstBlock=Błąd – pierwszy blok OpenPGP nie jest blokiem klucza publicznego
importKeyConfirm=Czy zaimportować klucze publiczne osadzone w wiadomości?
failKeyImport=Błąd – nie powiodło się zaimportowanie klucza
fileWriteFailed=Błąd zapisu do pliku %S
importKey=Importowanie klucza publicznego %S z serwera kluczy:
uploadKey=Eksportowanie klucza publicznego %S do serwera:
keyId=ID klucza
keyAndSigDate=ID klucza: 0x%S / Podpisano dnia: %S
keyFpr=Odcisk klucza: %S
noEmailProvided=Nie podano adresu e-mail!
keyAlreadySigned=Ten klucz jest już podpisany, nie można podpisać go ponownie.
gnupg.invalidKey.desc=Nie znaleziono klucza %S lub jest on nieprawidłowy. Być może jest on nieważny.
selKeyExpired=przedawniony %S
createdHeader=Utworzony
atLeastOneKey=Nie wybrano klucza! Należy zaznaczyć co najmniej jedną pozycję.
fewerKeysThanRecipients=Zaznaczono mniejszą liczbę kluczy niż odbiorców. Czy na pewno ten zestaw kluczy do szyfrowania jest kompletny?
userSel.button.goBack=Wybierz więcej kluczy
userSel.secretKeySel.title=Wybierz klucz prywatny OpenPGP, aby podpisać wiadomość
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Wyślij później
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=Uwaga! Niewiele klientów poczty ma obsługę PGP/MIME! W systemie Windows tylko Mozilla/Thunderbird, Sylpheed, Pegasus i Mulberry obsługują ten standard. W systemach Linux/UNIX i Mac OS X obsługuje go większość popularnych klientów poczty. Jeżeli nie masz pewności, zaznacz opcję %S.
first=pierwszÄ…
second=drugÄ…
# Strings used in am-enigprefs.js
encryptKeyHeader=Wybierz klucz OpenPGP do szyfrowania
identityName=Tożsamość: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Uaktywniono szyfrowanie, ale nie wybrano żadnego klucza. Aby szyfrować wiadomości wysyłane do %S, należy wybrać co najmniej jeden ważny klucz z listy dostępnych. Czy chcesz wyłączyć szyfrowanie wiadomości do %S?
noKeyToUse=(brak – bez szyfrowania)
noEmptyRule=Reguła nie może być pusta! Wprowadź adres e-mail w polu edycji reguły.
invalidAddress=Wprowadzone adresy e-mail są niepoprawne. Nie należy wpisywać nazwy adresata, tylko sam adres. Np.\nNieprawidłowo: Jan Kowalski \nPrawidłowo: jakis.adres@poczta.pl
noCurlyBrackets=Nawiasy klamrowe {} majÄ… specjalne znaczenie i nie powinny być używane w adresach e-mail. Jeżeli chcesz modyfikować zasady tej reguÅ‚y, użyj opcji „Zastosuj regułę gdy adresat…â€.\nWiÄ™cej informacji dostÄ™pnych jest po naciÅ›niÄ™ciu przycisku Pomoc.
# Strings used in enigmailRulesEditor.js
never=Nigdy
always=Zawsze
possible=Możliwe
deleteRule=Czy usunąć wybraną regułę?
nextRcpt=(Następny adresat)
negateRule=Nie
addKeyToRule=Dodaj klucz %S (%S) do reguły dla adresata
# Strings used in enigmailSearchKey.js
needOnline=Wybrana funkcja nie jest dostępna w trybie offline. Włącz tryb online i spróbuj ponownie.
protocolNotSupported=Przy użyciu wybranego protokołu „%S://†pobranie kluczy OpenPGP nie jest możliwe.
gpgkeysDisabled=Pomóc może włączenie opcji „extensions.enigmail.useGpgKeysToolâ€.
noKeyserverConn=Nie można połączyć się z serwerem kluczy %S.
keyDownloadFailed=Nie powiodło się pobieranie kluczy z serwera. Status wiadomości:\n%S
internalError=Wystąpił wewnętrzny błąd. Nie można pobrać/zaimportować kluczy.
noKeyFound=Niestety nie udało się znaleźć kluczy pasujących do podanych kryteriów wyszukiwania.\nIdentyfikatory kluczy (ID) powinny być poprzedzone znakami „0x†(np. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Nie powiodło się wyszukiwanie lub pobieranie kluczy z serwera – nie można uruchomić programu gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nie powiodło się ustawienie poziomu zaufania dla właściciela
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Nie udało się podpisać klucza
alreadySigned.label=Informacja. Klucz %S jest już podpisany za pomocą wybranego klucza prywatnego.
partlySigned.label=Informacja: niektóre numery ID klucza %S zostały już podpisane przez wybrany klucz prywatny.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Wczytywanie kluczy… Proszę czekać.
keyValid.unknown=nieznany
keyValid.invalid=niepoprawny
keyValid.disabled=wyłączony
keyValid.revoked=unieważniony
keyValid.expired=przeterminowany
keyValid.noSubkey=brak podklucza
keyTrust.untrusted=brak
keyTrust.marginal=ograniczone
keyTrust.full=pełne
keyTrust.ultimate=absolutne
keyTrust.group=(grupa)
keyType.public=pub
keyType.publicAndSec=pub/pryw
keyMan.enableKey=Włącz klucz
keyMan.disableKey=Wyłącz klucz
userAtt.photo=Atrybuty użytkownika (obraz JPEG)
asciiArmorFile=Opakowanie ASCII (*.asc)
importKeyFile=Import plik klucza OpenPGP
gnupgFile=Pliki GnuPG
saveRevokeCertAs=Utwórz i zapisz certyfikat unieważnienia
revokeCertOK=Certyfikat unieważnienia został utworzony. Możesz użyć go, aby unieważnić swój klucz publiczny, np. w przypadku utraty klucza prywatnego.\n\nZalecane jest przeniesienie tego certyfikatu na nośnik, który może być przechowywany w bezpiecznym miejscu, np. pamięć wymienna albo CD-ROM. Jeżeli osoba postronna uzyska dostęp do certyfikatu, może uczynić twój klucz bezużytecznym.
revokeCertFailed=Nie udało się utworzyć certyfikatu unieważnienia.
addUidOK=Nowe ID zostało dodane
addUidFailed=Nie udało się dodać nowego ID
noKeySelected=Aby wykonać wybraną operację, należy zaznaczyć co najmniej jeden klucz
exportToFile=Eksport klucza publicznego do pliku
exportSecretKey=Czy chcesz dołączyć klucz prywatny do zapisywanego pliku z kluczami OpenPGP?
saveKeysOK=Klucze zostały zapisane
saveKeysFailed=Nie udało się zapisać kluczy
importKeysFailed=Nie udało się zaimportować kluczy
enableKeyFailed=Nie udało się włączenie/wyłączenie kluczy
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-pryw
defaultPubKeyFilename=Eksportowane-klucze-publiczne
defaultPubSecKeyFilename=Eksportowane-klucze-publiczne-i-prywatne
noSecretKeys=Nie znaleziono klucza prywatnego.\n\nCzy chcesz wygenerować własny klucz?
sendKeysOk=Klucze zostały wysyłane
sendKeysFailed=Nie udało się wysłać kluczy
receiveKeysOk=Klucze zostały zaktualizowane
receiveKeysFailed=Nie udało się pobrać kluczy
importFromClip=Czy chcesz zaimportować klucze ze schowka?
copyToClipbrdFailed=Nie udało się skopiować wybranych kluczy do schowka.
copyToClipbrdOK=Skopiowano klucze do schowka
deleteSecretKey=Uwaga! Zamierzasz usunąć klucz prywatny!\nJeśli usuniesz ten klucz, nie będziesz mieć możliwości odszyfrowania wiadomości zaszyfrowanych tym kluczem ani unieważnienia tego klucza.\n\nCzy na pewno chcesz usunąć obydwa klucze, prywatny i publiczny\n„%S�
deleteMix=Uwaga! Zamierzasz usunąć klucze prywatne!\nJeśli usuniesz ten klucz, nie będziesz mieć możliwości odszyfrowania wiadomości zaszyfrowanych tym kluczem.\n\nCzy na pewno chcesz usunąć wszystkie zaznaczone klucze prywatne i publiczne?
deletePubKey=Czy chcesz usunąć klucz publiczny\n„%S�
deleteSelectedPubKey=Czy chcesz usunąć wybrane klucze publiczne?
deleteKeyFailed=Nie udało się usunąć tego klucza.
revokeKeyOk=Klucz został unieważniony. Jeżeli klucz jest dostępny na serwerze kluczy, zalecane jest ponowne wysłanie go na serwer, tak aby inni użytkownicy otrzymali informację o unieważnieniu.
revokeKeyFailed=Nie udało się unieważnić tego klucza.
refreshAllQuestion=Nie wybrano żadnego klucza. Czy chcesz odświeżyć wszystkie klucze?
refreshKey.warn=Uwaga! W zależności od liczby kluczy i parametrów połączenia, odświeżenie wszystkich kluczy może być długą operacją!
downloadContactsKeys.warn=Uwaga! W zależności od liczby kontaktów i parametrów połączenia, pobieranie wszystkich kluczy może byc długa operacją!
downloadContactsKeys.importFrom=Importuj kontakty z książki adresowej "%S"
keyMan.button.exportSecKey=&Eksportuj klucze prywatne
keyMan.button.exportPubKey=Eksportuj tylko klucze &publiczne
keyMan.button.import=&Importuj
keyMan.button.refreshAll=&Odśwież wszystkie klucze
keyMan.button.revokeKey=&Unieważnij klucz
keyMan.button.skip=Pomiń klucz
keylist.noOtherUids=Nie ma innych tożsamości
keylist.hasOtherUids=Także znany jako
keylist.noPhotos=Brak zdjęcia
keylist.hasPhotos=Zdjęcia
keyMan.addphoto.filepicker.title=Wybierz zdjęcie do dodania
keyMan.addphoto.warnLargeFile=Wybrany plik jest większy niż 25 kB.\nNie zaleca się dodawania bardzo dużych plików, ponieważ klucz będzie wówczas bardzo duży.
keyMan.addphoto.noJpegFile=Wybrany plik nie jest w formacie JPEG. Wybierz inny plik.
keyMan.addphoto.failed=Nie można dodać zdjęcia.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Nie udało się zmienić głównego identyfikatora użytkownika
changePrimUidOK=Zmieniono główny identyfikator użytkownika
deleteUidFailed=Nie udało się usunąć ID %S
deleteUidOK=Identyfikator %S został usunięty
revokeUidFailed=Nie udało się unieważnić ID %S
revokeUidOK=ID %S został unieważniony. Jeżeli klucz jest dostępny na serwerze kluczy, zalecane jest ponowne wysłanie go na serwer, tak aby inni użytkownicy otrzymali informację o unieważnieniu.
revokeUidQuestion=Czy na pewno chcesz unieważnić ID %S?
deleteUidQuestion=Czy na pewno chcesz usunąć ID użytkownika %S?\n\nWażna uwaga! Jeżeli klucz publiczny zostaÅ‚ wczeÅ›niej wysÅ‚any na serwer kluczy, to usuniÄ™cie ID użytkownika niczego nie zmieni. W takim przypadku, należy użyć opcji „Unieważnij IDâ€.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=klucz publiczny
keyTypePrimary=klucz główny
keyTypeSubkey=podklucz
keyTypePair=para kluczy
keyExpiryNever=nigdy
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Szyfruj
keyUsageSign=Podpisz
keyUsageCertify=Certyfikuj
keyUsageAuthentication=Uwierzytelnianie
# Strings in enigmailGenCardKey.xul
keygen.started=Proszę czekać. Trwa proces generowania klucza…
keygen.completed=Klucz został wygenerowany. Nowe ID klucza to: 0x%S.
keygen.keyBackup=Klucz został zapisany jako %S
keygen.passRequired=Określ szyfr, jeśli chcesz utworzyć kopię zapasową swojego klucza poza kartą SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Nie zgadzają się wprowadzone numery PIN – proszę wprowadzić ponownie
cardPin.minLength=PIN musi zawierać co najmniej %S znaków lub cyfr
cardPin.processFailed=Nie udało się zmienić numeru PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Trwa odświeżanie kluczy… Proszę czekać.
keyserverProgress.uploading=Trwa wysyłanie kluczy… Proszę czekać.
keyserverTitle.refreshing=Odświeżanie kluczy
keyserverTitle.uploading=Wysyłanie kluczy
# Strings in enigmailSetupWizard
passphrase.min8keys=Szyfr powinien zawierać co najmniej 8 znaków!
setupWizard.reallyCancel=Czy na pewno chcesz zamknąć Asystenta ustawień Enigmail?
setupWizard.invalidGpg=Wybrany plik GnuPG nie jest plikiem wykonywalnym. Wybierz inny plik.
setupWizard.specifyFile=Aby kontynuować, musisz określić przynajmniej plik klucza publicznego.
setupWizard.installFailed=Wygląda na to, że instalacja się nie powiodła. Spróbuj ponownie uruchomić instalację lub zainstaluj GnuPG ręcznie i zlokalizować go, używając przycisku Przeglądaj…
setupWizard.downloadForbidden=Dla twojego bezpieczeństwa, nie będziemy pobierać GnuPG. Przejdź na stronę http://www.gnupg.org/ i pobierz GnuPG.
setupWizard.downloadImpossible=Nie możemy teraz pobrać CnuPG. Spróbuj później, lub przejdź na stronę http://www.gnupg.org/ i pobierz GnuPG.
setupWizard.hashSumError=Asystent nie może zweryfikować spójności pobranego pliku. Plik może być uszkodzony lub został zmieniony. Czy mimo wszystko chcesz kontynuować instalację?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Podczas pobierania GnuPG wystąpił błąd. Otwórz dziennik błędów, by zobaczyć szczegółowe informacje.
installGnuPG.installFailed=Podczas instalowania GnuPG wystąpił błąd. Otwórz dziennik błędów, by zobaczyć szczegółowe informacje.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Należy uzupełnić nazwę i adres e-mail
addUidDlg.nameMinLengthError=Nazwa musi zawierać co najmniej 5 znaków
addUidDlg.invalidEmailError=Należy podać poprawny adres e-mail
addUidDlg.commentError=Nawiasy nie sÄ… dopuszczalne w komentarzach
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Karta SmartCard obsługuje jedynie znaki ASCII w polach "Imię i nazwisko"/"Nazwa".
# network error types
errorType.SecurityCertificate=Usługa przedstawia nieważny certyfikat zabezpieczeń.
errorType.SecurityProtocol=Usługa używa nieznanego protokołu zabezpieczeń.
errorType.Network=Wystąpił błąd sieci.
enigmail/lang/pl/help/ 0000775 0000000 0000000 00000000000 12667016244 0015137 5 ustar 00root root 0000000 0000000 enigmail/lang/pl/help/compose.html 0000664 0000000 0000000 00000011042 12667016244 0017470 0 ustar 00root root 0000000 0000000
Pomoc dla Enigmail: Tworzenie wiadomości
Pomoc dla Enigmail
Używanie Enigmail w oknie tworzenia wiadomości
- Menu Enigmail w oknie tworzenia wiadomości
-
- Podpisz wiadomość
- Włącza/wyłącza podpisywanie wiadomości. Użytkownik jest powiadamiany, jeśli podpisywanie się nie powiodło.
- Szyfruj wiadomość
-
Włącza/wyłącza szyfrowanie dla wszystkich odbiorców przed wysłaniem. Użytkownik jest powiadamiany, jeśli szyfrowanie się nie powiodło.
Jeśli funkcja Wyświetlaj wybór w razie potrzeby, jest ustawiona na karcie Ustawienia » Zaawansowane » Wybór klucza, będzie wyświetlana lista kluczy, jeśli na liście odbiorców wiadomości znajdują się adresy dla, których nie masz kluczy publicznych.
Jeśli funkcja Nigdy nie wyświetlaj wyboru klucza OpenPGP, jest ustawiona na karcie Ustawienia » Wybór klucza, wiadomość będzie wysyłana niezaszyfrowana, jeśli na liście odbiorców wiadomości znajdują się adresy dla, których nie masz kluczy publicznych.
- Użyj PGP/MIME dla tej wiadomości
-
Włącza/wyłącza użycie PGP/MIME dla danej wiadomości.
Jeśli wiesz, że odbiorca może przeczytać wiadomość za pomocą formatu PGP/MIME, należy go użyć.
Ta funkcja jest zależna od ustawień na karcie Ustawienia » PGP/MIME Zezwalaj na używanie PGP/MIME lub Zawsze używaj PGP/MIME.
- Domyślne opcje tworzenia wiadomości
-
- Opcje podpisu/szyfrowania… – skrót do Konfiguracja kont » OpenPGP.
- Wysyłanie wiadomości… – skrót do karty Ustawienia » Wysyłanie.
- Opcje wyboru kluczy… – skrót do do karty Ustawienia » Wybór kluczy.
- Opcje PGP/MIME… – skrót do do karty Ustawienia » PGP/MIME.
- Cofnij szyfrowanie
-
Jeśli wysyłanie wiadomości się nie powiodło, na przykład z powodu odrzucenia żądania przez serwer POP, Enigmail nie będzie o tym wiedział i zaszyfrowana wiadomość będzie wyświetlana w oknie tworzenia wiadomości. Wybranie tej funkcji spowoduje cofnięcie szyfrowania/podpisywania i w oknie tworzenia wiadomości będzie wyświetlany oryginalny tekst.
Jako tymczasowe rozwiązanie, funkcja ta może być również używana do odszyfrowania cytowanego tekstu podczas odpowiedzi na zaszyfrowane wiadomości. Enigmail powinien automatycznie rozszyfrować cytowaną wiadomość, ale jeśli z jakiegoś powodu zawiedzie, można za pomocą tej funkcji wymusić deszyfrowanie.
- Wstaw klucz publiczny
- Wstawia w oknie tworzenia wiadomości blok klucza publicznego w aktualnej pozycji kursora. Użytkownik będzie proszony o podanie adresu e-mail wstawianego klucza. Klucze wstawiane w ten sposób będą u odbiorcy automatycznie rozpoznawane przez Enigmail. Po wstawieniu klucza można nadal wybrać podpisanie/szyfrowanie wiadomości. Nie należy do wiadomości wstawiać więcej niż jeden blok klucza, wystarczy, gdy pojawi się monit, podać wiele adresów e-mail, oddzielając je przecinkami lub spacjami.
- Wyczyść zapisane hasło
- Czyści zbuforowane szyfry. Użyteczne, jeśli masz wiele szyfrów.
- Pomoc
- Wyświetla pomocne informacje z witryny internetowej (tę stronę).
Więcej pomocy można uzyskać na stronie pomocy Enigmail.
enigmail/lang/pl/help/editRcptRule.html 0000664 0000000 0000000 00000012326 12667016244 0020437 0 ustar 00root root 0000000 0000000
Pomoc dla Enigmail: Edycja reguł OpenPGP
Pomoc dla Enigmail
Używanie edytora reguł Enigmail: Edycja reguł OpenPGP
W edytorze reguł można określić dla każdego odbiorcy domyślne ustawienia szyfrowania, podpisywania, PGP/MIME i zdefiniować używane klucze OpenPGP. W tym oknie dialogowym można określić reguły dla konkretnego odbiorcy i dla grupy odbiorców, używając podobnych atrybutów.
- Pole „OkreÅ›l reguÅ‚y OpenPGP dlaâ€
- Reguły zawierają adresy e-mail odbiorcy (bez nazwisk, po prostu adres, jak: somebody@nazwa_domeny). Możesz podać kilka adresów e-mail, rozdzielając je spacjami. Podany tutaj adres może składać się tylko z domeny, np. @nazwa_domeny. Reguła będzie wówczas pasowała do wszystkich adresów w tej domenie, np. @nazwa_domeny będzie pasować do body@nazwa_domenyl, somebody@nazwa_domeny, anybody@nazwa_domeny itd.
- Zastosuj regułę, gdy adresat…
-
Ustawienie to modyfikuje dopasowanie adresów e-mail. Jeśli jest podane wiele adresów, ustawienie będzie miało zastosowanie do wszystkich. Przykłady są oparte na przykładowym adresie body@nazwa_domeny podanym w powyższym polu.
- Jest taki sam, jak – reguła będzie miała zastosowanie tylko do wiadomości adresowanych do body@nazwa_domeny (wielkość znaków musi się zgadzać).
- Zawiera – będzie pasował każdy adres wiadomości zawierający podany ciąg znaków, np. anybody@nazwa_domeny lub body@nazwa_domeny.net.
- Rozpoczyna się od – będzie pasował każdy adres wiadomości rozpoczynający się podanym ciągiem znaków, np. body@nazwa_domeny.net, body@nazwa_domeny-nazwa.com.
- Kończy się na – będzie pasował każdy adres wiadomości kończący się podanym ciągiem znaków, np. anybody@nazwa_domeny, somebody@nazwa_domeny.
- Przejdź do następnej reguły pasującej do adresu
- Włączenie tej funkcji umożliwi zdefiniowanie reguły, ale nie trzeba określać klucza w polu Użyj następujących kluczy OpenPGP:, więc adres e-mail jest wykorzystywany do sprawdzania klucza w momencie wysyłania. Dla tego adresu będą również przetwarzane inne reguły.
- Nie sprawdzaj kolejnych reguł pasujących do adresu
- Włączenie tej funkcji, jeśli reguła pasuje, zatrzyma przetwarzanie innych reguł dla pasujących adresów, na przykład kontynuowanie przetwarzania reguły dla następnego odbiorcy.
- Użyj następujących kluczy OpenPGP:
- Użyj przycisku Wybierz klucze, by wybrać klucze odbiorcy, które będą używane do szyfrowania. Oprócz czynności określonej powyżej żadne inne reguły nie są przetwarzane.
- Wysyłając wiadomości włącz…
-
Włącza lub wyłącza podpisywanie wiadomości. Funkcja ta używa lub zastępuje to, co zostało określone w oknie tworzenia wiadomości. Ustawienia są następujące:
- Nigdy – wyłącza podpisywanie, nawet jeśli zostało włączone w oknie tworzenia wiadomości (zastępuje wszystkie inne wartości reguł),
- Tak, jeśli zaznaczono taką opcję tworzenia wiadomości – pozostawia sposób podpisywania określony w oknie tworzenia wiadomości,
- Zawsze – włącza podpisywanie, nawet jeśli nie zostało włączone w oknie tworzenia wiadomości.
Te ustawienia podpisywania są stosowane do wszystkich reguł, do których pasują. Jeśli jedna z reguł wyłącza podpisywanie, wiadomość nie będzie podpisywana, pomimo że inne reguły mają ustawienie zawsze.
- Szyfrowanie
- Włącza lub wyłącza szyfrowanie wiadomości. Ustawienia i ich znaczenie są takie same jak dla podpisywania wiadomości.
- PGP/MIME
- Włącza lub wyłącza kodowanie wiadomoÅ›ci w formacie PGP/MIME (RFC 3156). JeÅ›li PGP/MIME jest wyłączone, wiadomoÅ›ci sÄ… kodowane za pomocÄ… „inline PGPâ€. Ustawienia i ich znaczenie sÄ… takie same jak dla podpisywania wiadomoÅ›ci.
Reguły są przetwarzane w kolejności, w jakiej są wyświetlane w edytorze reguł OpenPGP. Gdy reguła pasuje do odbiorcy i zawiera klucz OpenPGP, oprócz używania określonego klucza, przy kolejnym przetwarzaniu reguł odbiorca nie jest brany pod uwagę.
Więcej pomocy można uzyskać na stronie pomocy Enigmail.
enigmail/lang/pl/help/initError.html 0000664 0000000 0000000 00000005005 12667016244 0020002 0 ustar 00root root 0000000 0000000
Pomoc dla Enigmail: Jak rozwiązać problemy z zainicjowaniem OpenPGP
Pomoc dla Enigmail
Jak rozwiązać problemy z zainicjowaniem OpenPGP
Zainicjowanie OpenPGP może się nie powieść z różnych powodów. Najczęściej występujące są opisane poniżej. Więcej informacji na ten temat można znaleźć na stronie pomocy Enigmail.
- Nie można znaleźć GnuPG
-
Aby OpenPGP działało, musi być zainstalowane narzędzie GnuPG.
Jeśli nie można znaleźć GnuPG, najpierw należy sprawdzić czy na komputerz jest zainstalowanye plik wykonywalny: gpg.exe w systemie Windows lub gpg w innych systemach.
Jeśli GnuPG jest zainstalowane i OpenPGP nie może go znaleźć, trzeba w ustawieniach OpenPGP (menu OpenPGP » Preferencje) ręcznie określić ścieżkę do GnuPG.
- Nie udało się zainicjować Enigmime
-
OpenPGP działa tylko, jeśli zostało zbudowane za pomocą tego samego środowiska tworzenia, co np. Thunderbird lub SeaMonkey. Oznacza to, że możesz używać oficjalnych wydań Enigmail tylko jeśli używasz oficjalnych wydań Thunderbird lub SeaMonkey dostarczanych przez mozilla.org.
Jeśli używasz wersji Thunderbirda lub SeaMonkey pochodzących z innych źródeł, np. od dostarczyciela twojej dystrybucji Linuksa lub aplikacja została zbudowana we własnym zakresie, należy użyć Enigmail zbudowanego przez to samo źródło lub zbudować go we własnym zakresie. Aby zbudować Enigmail, przejdź do sekcji z kodem źródłowym znajdującej się na stronie Enigmail. Nie zgłaszaj błędów dotyczących tego błędu - nie są one rozwiązywalne.
Więcej pomocy można uzyskać na stronie pomocy Enigmail.
enigmail/lang/pl/help/messenger.html 0000664 0000000 0000000 00000011343 12667016244 0020017 0 ustar 00root root 0000000 0000000
Pomoc dla Enigmail: Czytanie wiadomości
Pomoc dla Enigmail
Używanie Enigmail podczas czytania wiadomości
- Przycisk Deszyfruj w głównym oknie wiadomości
- Przycisk ten może być używany do różnych celów: deszyfrowania, weryfikowania lub importowania kluczy publicznych. Normalnie deszyfrowanie/weryfikowanie odbywa się automatycznie i może być wyłączone w ustawieniach. Jeśli automatyczne deszyfrowanie/weryfikowanie się nie powiedzie, w pasku statusu Enigmail zostanie wyświetlona informacja o błędzie. Po naciśnięciu przycisku Deszyfruj zostaną wyświetlone szczegółowe informacje dotyczące tego błędu zawierające polecenia z GnuPG.
- Ikony pióra i klucza wyświetlane w nagłówku wiadomości
-
Ikony pióra i klucza wyświetlane w nagłówku wiadomości informują, czy aktualnie czytana wiadomość została podpisana i/lub zaszyfrowana i czy podpis jest prawidłowy, np. że wiadomość nie została zmieniona od czasu jej podpisania. Jeśli wiadomość została zmieniona, kolor ikony pióra zostanie zmieniony na czerwony, informując, że podpis jest nieprawidłowy. Kliknięcie prawym przyciskiem myszy którejś z tych ikon, spowoduje wyświetlenie menu zawierającego następujące opcje:
- Informacje OpenPGP… – umożliwia podgląd statusu elementów wyjściowych z GnuPG dla wiadomości.
- Kopiuj informacje OpenPGP – kopiuje status elementów wyjściowych z GnuPG do schowka, by następnie można było wstawić je do odpowiedzi na wiadomość itp.
- Pokaż zdjęcie – umożliwia podgląd zdjęcia osoby, która wysłała wiadomość, jeśli zdjęcie zostało dołączone do klucza publicznego. (Ta funkcja będzie włączona tylko, jeśli zdjęcie jest w kluczu danego nadawcy).
- Informacje S/MIME… – umożliwia zobaczenie informacji bezpieczeństwa S/MIME dla wiadomości.
Jeśli w pliku gpg.conf nie są ustawione funkcje keyserver-options auto-key-retrieve i czytasz podpisaną lub zaszyfrowaną wiadomość, w nagłówku czytanej wiadomości będzie widoczna ikona pióra ze znakiem zapytania, a w pasku statusu Enigmail będzie wyświetlana informacja Część wiadomości podpisana; kliknij ikonę pióra, by zobaczyć szczegóły i w wiadomości zostanie wyświetlony blok zawierający wszystkie wskaźniki OpenPGP i blok podpisu.
Możesz także zobaczyć tę informację, jeśli w pliku gpg.conf są ustawione funkcje keyserver-options auto-key-retrieve, a klucz OpenPGP jest niedostępny na domyślnym serwerze kluczy.
Po kliknięciu ikony pióra ze znakiem zapytania, zostanie wyświetlone okno informujące, że klucz nie jest dostępny w twojej bazie kluczy. Po naciśnięciu przycisku OK, zostanie wyświetlone kolejne okno zawierające listę serwerów kluczy, z której można wybrać do pobrania klucz publiczny nadawcy.
Aby skonfigurować listę serwerów kluczy, których chcesz używać, przejdź na kartę OpenPGP » Ustawienia » Zaawansowane » Serwery kluczy i w polu Określ swoje serwery kluczy, wprowadź adresy serwerów kluczy, oddzielając je przecinkami. Pierwszy serwer na liście będzie używany jako domyślny serwer.
- Otwierania zaszyfrowanych załączników/importowanie załączonych kluczy OpenPGP
- Załączniki z rozszerzeniem *.pgp, *.asc i *.gpg są rozpoznawane jako załączniki, które mogą być obsługiwane przez Enigmail specjalnie. Kliknięcie takiego załącznika prawym przyciskiem myszy spowoduje wyświetlenie w menu kontekstowym dwóch specjalnych elementów: Deszyfruj i otwórz i Deszyfruj i zapisz jako… Użyj tych dwóch elementów, jeśli chcesz, by Enigmail deszyfrował załącznik przed otworzeniem lub jego zapisaniem. Jeśli załącznik jest rozpoznany jako plik klucza OpenPGP, zostanie zaoferowane zaimportowanie kluczy do twojej bazy kluczy.
Więcej pomocy można uzyskać na stronie pomocy Enigmail.
enigmail/lang/pl/help/rulesEditor.html 0000664 0000000 0000000 00000006737 12667016244 0020343 0 ustar 00root root 0000000 0000000
Pomoc dla Enigmail – Edytor reguł
Pomoc dla Enigmail
Użycie edytora reguł
W edytorze reguł można określić domyślne ustawienia dla każdego adresata: włączyć szyfrowanie, podpisywanie, kodowanie PGP/MIME oraz zdefiniować działanie kluczy OpenPGP. Każda reguła składa się z pięciu, umieszczonych każde w osobnym wierszu, pól:
- E-mail
- Pola do dopasowywania wiadomości e-mail – Do:, Kopia: i Ukryta kopia:. Dopasowywanie działa w oparciu o substringi. Więcej szczegółów można znaleźć w oknie dialogowym edytora reguł.
- Klucze OpenPGP
- Wykaz ID kluczy OpenPGP używanych dla adresata
- Podpis
-
Włącza lub wyłącza podpisywanie wiadomości. Ta funkcja używa lub nadpisuje, to co zostało określone w oknie tworzenia wiadomości. Dostępne ustawienia:
- Nigdy – wyłącza podpisywanie wiadomości, nawet jeśli funkcja była włączona w oknie tworzenia wiadomości – unieważnia inne ustawienia.
- Pozostaw – pozostawia podpis, taki jaki był ustawiony w oknie tworzenia wiadomości,
- Zawsze – włącza podpisywanie wiadomości, nawet jeśli nie było włączone w oknie tworzenia wiadomości.
Ustawienia podpisywania są stosowane dla tych wszystkich reguł, które mają włączoną funkcję podpisywania. Jeśli jakaś reguła wyłącza podpisywanie, wiadomość nie będzie podpisywana bez względu na inne reguły, które określają Zawsze.
- Szyfrowanie
- Włącza lub wyłącza szyfrowanie wiadomości. Dostępne ustawienia i znaczenie są takie same, jak dla podpisywania wiadomości.
- PGP/MIME
- Włącza lub wyłącza używanie kodowania PGP/MIME (RFC 3156) wiadomoÅ›ci. JeÅ›li PGP/MIME jest wyłączone, wiadomoÅ›ci sÄ… kodowane za pomocÄ… „inline PGPâ€. DostÄ™pne ustawienia i znaczenie sÄ… takie same, jak dla podpisywania wiadomoÅ›ci.
Reguły są przetwarzane w kolejności, w jakiej są wyświetlane na liście. W przypadku, gdy reguła pasuje do odbiorcy i zawiera ID klucza OpenPGP, oprócz korzystania z określonego ID klucza odbiorcy, nic innego nie jest brane pod uwagę podczas przetwarzania kolejnych reguł.
Informacja. Proces twórczy edytora reguł nie jest jeszcze zakończony. Bardziej zaawansowane reguły można tworzyć, edytując bezpośrednio plik reguł. Reguły edytowane w ten sposób nie powinny już być nigdy edytowane w edytorze reguł. Więcej informacji na temat bezpośredniego edytowania pliku reguł jest dostępnych na stronie domowej Enigmail.
Więcej pomocy można uzyskać na stronie pomocy Enigmail.
enigmail/lang/pl/help/sendingPrefs.html 0000664 0000000 0000000 00000005076 12667016244 0020464 0 ustar 00root root 0000000 0000000
Pomoc dla Enigmail – Edytowanie reguł OpenPGP
Pomoc dla Enigmail
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/pt-BR/ 0000775 0000000 0000000 00000000000 12667016244 0014520 5 ustar 00root root 0000000 0000000 enigmail/lang/pt-BR/am-enigprefs.properties 0000664 0000000 0000000 00000000123 12667016244 0021207 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Segurança OpenPGP
enigmail/lang/pt-BR/enigmail.dtd 0000664 0000000 0000000 00000104057 12667016244 0017011 0 ustar 00root root 0000000 0000000
NOTA: A geração de chaves pode levar até vários minutos para terminar. Não feche o navegador enquanto a geração de chaves estiver em processo. Navegar ou realizar operações intensivas de disco irão preencher o 'espaço aleatório' e agilizar o processo. Você será alertado quando a geração de chaves estiver concluÃda.">
' é inválido">
NOTA: A geração da chave pode levar até vários minutos para terminar. Não saia da aplicação enquanto a geração da chave estiver em progresso. Você será alertado quando a geração da chave estiver completa.">
Nota: O Enigmail irá sempre verificar assinaturas, caso existam, em mensagens de todas as contas e identidades não importando se o Enigmail está especificamente configurado ou não">
Obrigado por utilizar o Enigmail.">
enigmail/lang/pt-BR/enigmail.properties 0000664 0000000 0000000 00000067554 12667016244 0020444 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Alerta do Enigmail
enigConfirm=Confirmação do Enigmail
enigError=Erro do Enigmail
enigPrompt=Pergunta do Enigmail
dlgYes=&Sim
dlgNo=&Não
dlgKeepSetting=Lembrar da minha resposta e não me perguntar novamente
dlgNoPrompt=Não mostrar esta mensagem novamente
dlg.button.delete=Apagar (&D)
dlg.button.cancel=&Cancelar
dlg.button.close=Fe&char
dlg.button.continue=Con&tinuar
dlg.button.skip=Pular (&S)
dlg.button.view=&Visualizar
repeatPrefix=\n\nEste alerta irá se repetir %S
repeatSuffixSingular=vez.
repeatSuffixPlural=vezes.
noRepeat=\n\nEste alerta não irá se repetir até que você atualize o Enigmail.
pgpNotSupported=Você parece estar utilizando o Enigmail juntamente com o PGP 6.x\n\nInfelizmente, o PGP 6.x possui alguns problemas que previnem o Enigmail de funcionar corretamente. Portanto, o Enigmail não suporta mais o PGP 6.x; por favor mude para o GnuPG (GPG) para utilizar o Enigmail.\n\nSe você precisar de ajuda para trocar para o GnuPG, leia a seção de Ajuda na página do Enigmail.
passphraseCleared=A senha foi removida.
noPhotoAvailable=Foto não disponÃvel
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=O caminho para a foto em '%S' não é válido
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged= Essa nova versão do Enigmail muda o gerenciamento das preferências e opções. Tentamos transferir os antigos padrões para esta nova versão. No entanto, não podemos cobrir todos os casos automaticamente. Por favor cheque novamente os resultados das novas preferências e opções.
enigmailCommon.checkPreferences=Checar preferências...
usingVersion=Rodando Enigmail versão %S
usingAgent=Utilizando %S com o executável %S para criptografar e descriptografar
agentError=ERRO: Falha ao acessar o serviço Enigmime!
accessError=Erro ao acessar serviço Enigmail
onlyGPG=Geração de chaves funciona apenas com GnuPG (não com PGP)!
keygenComplete=Geração de chaves completa! A identidade <%S> será utilizada para assinar.
revokeCertRecommended=Nós recomendamos que seja criado um certificado de revogação para a sua chave. Este certificado pode ser utilizado para invalidar sua chave, por exemplo no caso em que sua chave secreta seja perdida ou comprometida. Você deseja criar este certificado de revogação agora?
keyMan.button.generateCert=&Gerar Certificado
genCompleteNoSign=Geração de chaves completada!
genGoing=Geração de chaves já em progresso!
passNoMatch=Senhas não conferem; por favor tente novamente
passCheckBox=Por favor marque a opção correspondente se não for especificar senha para a chave
passUserName=Por favor especifique o nome do usuário para esta identidade
passSpaceProblem=Devido a questões técnicas, sua senha não pode iniciar ou terminar com um caracter de espaço.
changePassFailed=A mudança de senha falhou.
keyConfirm=Gerar chaves pública e privada para '%S'?
keyMan.button.generateKey=&Gerar Chave
keyAbort=Abortar geração da chave?
keyMan.button.generateKeyAbort=&Abortar Geração de Chaves
keyMan.button.generateKeyContinue=&Continuar Geração de Chaves
expiryTooLong=Você não pode criar uma chave que expire daqui a mais de 100 anos.
expiryTooLongShorter=Você não pode criar uma chave que expira daqui a mais de 90 anos.
expiryTooShort=Sua chave deve ser válida por pelo menos um dia.
dsaSizeLimit=Chaves de assinatura DSA são limitadas a 3072 bits. O tamanho da chave será reduzido de acordo.
keyGenFailed=A geração da chave falhou. Por favor verifique o console Enigmail (Menu Enigmail > Depuração do Enigmail) para detalhes.
setKeyExpirationDateFailed=A data de validade não pôde ser mudada
# Strings in enigmailMessengerOverlay.js
securityInfo=Informações de Segurança do Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Anexos desta mensagem não foram assinados ou criptografados*\n\n
possiblyPgpMime=Mensagem possivelmente criptografada ou assinada com PGP/MIME; clique no botao Descriptografar para verificar
noDecrypted=Nenhuma mensagem descriptografada para salvar!\nUtilize o comando Salvar do menu Arquivo
noMessage=Nenhuma mensagem para salvar!
useButton=Por favor clique no botão Descriptografar para tirar a criptografia da mensagem
saveHeader=Enigmail: Salvar mensagem descriptografada
saveAttachmentHeader=Enigmail: Salvar anexo descriptografada
noTempDir=Não foi possÃvel encontrar um diretório temporário para gravar\nPor favor defina a variável de ambiente TEMP
attachmentPgpKey=O anexo '%S' que você está abrindo parece ser um arquivo de chave OpenPGP.\n\nClique em SIM para importar as chaves contidas ou NÃO para ver o conteúdo do arquivo em uma janela do navegador
beginPgpPart=********* *INÃCIO DA PARTE CRIPTOGRAFADA ou ASSINADA* *********
endPgpPart=********** *FIM DA PARTE CRIPTOGRAFADA ou ASSINADA* **********
notePartEncrypted=Enigmail: *Partes da mensagem NÃO foram assinadas ou criptografada*
noteCutMessage=Enigmail: *Múltiplos blocos de mensagem encontrados -- descriptografia/verificação cancelada*
decryptOkNoSig=Aviso\n\nA descriptografia foi efetuada com sucesso, mas a assinatura não pode ser verificada corretamente
msgOvl.button.contAnyway=&Continuar Assim Mesmo
signature.verifiedOK=A assinatura para o anexo %S foi verificada com sucesso
signature.verifyFailed=A assinatura para o anexo %S não pode ser verificada
attachment.noMatchToSignature=Não foi possÃvel encontrar o arquivo de assinatura correspondente ao anexo '%S'
attachment.noMatchFromSignature=Não foi possÃvel encontrar o anexo correspondente ao arquivo de assinatura '%S'
keysToExport=Selecione as Chaves OpenPGP a Inserir
keysToUse=Selecione a(s) Chave(s) OpenPGP que serão utilizadas para %S
pubKey=Chave pública para %S\n
windowLocked=Janela de composição bloqueada; envio cancelado
sendUnencrypted=Falha ao inicializar o Enigmail.\nEnviar mensagem sem criptografia?
composeSpecifyEmail=Especifique o seu endereço de email primário, o qual será utilizado para escolher a chave de assinatura para mensagens de saÃda.\n Se o endereço não for informado, o endereço de ORIGEM da mensagem será utilizado para escolher a chave de assinatura.
sendingHiddenRcpt=Esta mensagem possui destinatários BCC (cópia-carbono oculta). Caso esta mensagem seja criptografada, é possÃvel ocultar os destinatários que estão marcados como BCC, mas os usuários de outros produtos, como o PGP, não poderão decriptografar a mensagem. Logo, recomendamos que você evite enviar mensagens criptografadas com destinatários BCC.
sendWithHiddenBcc=Ocultar destinatários BCC
sendWithShownBcc=Criptografar normalmente
sendingNews=Operação de envio criptografado cancelada.\n\nEsta mensagem não pode ser criptografada porque existem destinatários de um grupo de discussão. Por favor reenvie a mensagem sem criptografia.
sendToNewsWarning=Aviso: você está prestes a enviar uma mensagem criptografada para um grupo de discussão.\n\nIsto não é recomendado porque só faz sentido se todos os membros do grupo puderem descriptografar a mensagem, ou seja, a mensagem precisa ser criptografada com as chaves de TODOS os participantes do grupo. Por favor envie esta mensagem apenas se você sabe exatamente o que está fazendo.\n\nContinuar?
hasHTML=Aviso de mensagem HTML:\nEsta mensagem pode conter HTML, que pode causar problemas durante a assinatura/criptografia. Para evitar isto, você deve pressionar a tecla SHIFT ao clicar no botão Compor/Responder para enviar uma mensagem assinada.\nSe você assina as mensagens por padrão, você deve desmarcar a opção 'Compor Mensagens em HTML' nas preferências para desabilitar o envio de mensagens HTML permanentemente para esta conta de email.
strippingHTML=A mensagem contém informações de formatação HTML que podem ser perdidas ao convertê-la para texto puro para assinatura/criptografia. Você deseja continuar?
msgCompose.button.sendAnyway=Enviar Mensagem A&ssim Mesmo
attachWarning=Os anexos desta mensagem não estão presentes localmente, e portanto não podem ser criptografados. Para poder criptografar os anexos, armazene-os como arquivos locais primeiro e depois anexe-os. Você deseja enviar a mensagem assim mesmo?
quotedPrintableWarn=Você habilitou o tipo de codificação 'quoted-printable' para o envio de mensagens. Isto pode resultar em erros de decriptografia e/ou verificação de sua mensagem.\nVocê deseja desligar a opção 'quoted-printable' agora?
minimalLineWrapping=Você definiu a quebra de linha em %S caracteres. Para a correta criptografia e/ou assinatura, este valor precisa ser de pelo menos 68 caracteres.\nVocê deseja alterar a quebra de linha para 68 caracteres agora?
warning=Aviso
signIconClicked=Você alterou manualmente a assinatura. Logo, enquanto você estiver compondo esta mensagem, (des)ativar a assinatura não depende mais de (de)ativar a criptografia.
pgpMime_sMime.dlg.text=Você habilitou tanto o PGP/MIME quanto o S/MIME. Infelizmente não é possÃvel suportar ambos os protocolos simultaneamente. Selecione qual deseja utilizar, PGP/MIME ou S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Utilizar &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Utilizar &S/MIME
errorKeyUnusable=Não foi possÃvel encontrar uma chave OpenPGP válida e não expirada para o endereço de email ou ID de chave '%S'.\nVerifique se você possui uma chave OpenPGP válida, e que as suas configurações de conta apontam para esta chave.
# note: should end with double newline:
sendAborted=Operação de envio abortada.\n\n
statPGPMIME=PGP/MIME
statSigned=ASSINADA
statEncrypted=CRIPTOGRAFADA
statPlain=TEXTO PURO
offlineSave=Salvar %S mensagem para %S a pasta de Mensagens Não Enviadas?
onlineSend=Enviar %S mensagem para %S?
encryptKeysNote=Nota: a mensagem está criptografada com as seguintes Identidades / Chaves: %S
signFailed=Erro no Enigmail; Criptografia/assinatura falharam; enviar mensagem sem criptografia?
msgCompose.button.sendUnencrypted=Enviar Mensagem &Sem Criptografia
recipientsSelectionHdr=Selecione os Destinatários para Criptografia
configureNow=Você ainda não configurou a segurança Enigmail para a identidade selecionada. Deseja fazer isto agora?
# should not be used anymore:
encryptYes=A mensagem será criptografada
encryptNo=A mensagem não será criptografada
# should not be used anymore:
signYes=A mensagem será assinada
signNo=A mensagem não será assinada
# should not be used anymore
pgpmimeYes=PGP/MIME será usado
pgpmimeNo=Será usado Inline PGP
rulesConflict=Detectadas regras por destinatário conflitantes\n%S\n\nEnviar a mensagem com estas configurações?
msgCompose.button.configure=&Configurar
msgCompose.button.send=Enviar Men&sagem
msgCompose.button.save=&Salvar Mensagem
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Chave pública %S necessária para verificar assinatura
clickDecrypt=; clique o botão Descriptografar
clickDecryptRetry=; clique o botão Descriptografar para tentar novamente
msgPart=Parte da mensagem %S
msgSigned=assinada
msgEncrypted=criptografada
msgSignedAndEnc=assinada e criptografada
unverifiedSig=Assinatura não verificada
incompleteDecrypt=Descriptografia incompleta
needKey=Erro - chave secreta necessária para descriptografar a mensagem
failedDecrypt=Erro - descriptografia falhou
badPhrase=Erro - senha incorreta
failedDecryptVerify=Erro - descriptografia/verificação falhou
viewInfo=; Ver > Informações de Segurança da Mensagem para detalhes
decryptedMsg=Mensagem descriptografada
decryptedMsgWithFormatError=Mensagem desencriptada (restaurado o PGP quebrado no email, provavelmente causado por um servidor Exchange antigo, então o resultado pode não ser ideal para a leitura)
locateGpg=Localizar o programa GnuPG
invalidGpgPath=O GnuPG não pode ser executado com o caminho fornecido. Logo, o Enigmail será desativado até que o caminho para o GnuPG seja alterado novamente ou até que a aplicação seja reiniciada.
warningsAreReset=Todos os avisos de erro foram reinicializados.
prefs.gpgFound=GnuPG foi encontrado em %S
prefs.gpgNotFound=Não foi possÃvel encontrar o GnuPG
prefs.warnAskNever=Aviso: ativar esta opção fará com que os emails sejam enviados sem criptografia sem nenhum tipo de aviso caso não existe a chave correspondente para um dos destinatários -- o Enigmail não irá informá-lo se isto ocorrer!
prefs.warnIdleTimeForUnknownAgent=O seu sistema utilizar uma ferramenta especial para obter senhas, como o gnome-keyring ou seahorse-agent. Infelizmente o Enigmail não pode controlar o timeout para entrara de senhas na ferramenta que você está utilizando. Logo, os tempos definidos para timeout no Enigmail serão ignorados.
prefEnigmail.oneKeyserverOnly=Erro - você pode especificar apenas um servidor de chaves para baixar automaticamente as chaves OpenPGP que estiverem faltando.
enterAdminPin=Digite o ADMIN PIN do SmartCard
enterCardPin=Digite o PIN do SmartCard
notInit=Erro - Serviço Enigmail não foi inicializado
badCommand=Erro - comando de criptografia falhou
cmdLine=linha de comando e saÃda:
notRequired=Erro - criptografia não é necessária
notComplete=Erro - geração de chave não completada
invalidEmail=Erro - endereço(s) de email inválido(s)
noPassphrase=Erro - nenhuma senha fornecida
noPGPblock=Erro - Bloco de dados PGP-armor válido não encontrado
unverifiedReply=Parte da mensagem indentada (resposta) provavelmente foi alterada
sigMismatch=Erro - Assinatura não confere
cantImport=Erro ao importar chave pública\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=O SmartCard %S que foi encontrado em sua leitora não pode ser utilizado para processar a mensagem.\nPor favor insira o SmartCard %S e repita a operação.
sc.insertCard=A operação necessita do SmartCard %S.\nPor favor insira o SmartCard solicitado e repita a operação.
sc.removeCard=A operação não necessita de um SmartCard na leitora.\nPor favor remova o seu SmartCard e repita a operação.
sc.noCardAvailable=Não foi possÃvel encontrar um SmartCard válido na sua leitora\nPor favor insira o SmartCard e repita a operação.
sc.noReaderAvailable=A sua leitora de SmartCard não pode ser acessada\nPor favor conecte a sua leitora de SmartCard reader, insira o cartão e repita a operação.
gpgNotFound=Não foi possÃvel localizar o programa do GnuPG '%S'.\nCertifique-se de que o caminho do executável do GnuPG esteja configurado corretamente nas Preferências do Enigmail.
gpgNotInPath=Não foi possÃvel localizar o executável do GnuPG no PATH.\nCertifique-se de que você definiu o caminho correto para o executável do GnuPG nas Preferências do Enigmail.
gpgAgentNotStarted=Não foi possÃvel iniciar o programa gpg-agent que é necessário para sua versão de GnuPG %S.
prefUntrusted=NÃO CONFIÃVEL
prefRevoked=CHAVE REVOGADA
prefExpiredKey=CHAVE EXPIRADA
prefExpired=EXPIRADO
prefGood=Assinatura válida de %S
prefBad=Assinatura INVÃLIDA de %S
failCancel=Erro - Recebimento de chave cancelado pelo usuário
failNoServer=Erro - Nenhum servidor de chaves especificado para receber chave
failNoID=Erro - Nenhuma identidade de chave especificada para se receber chave
failKeyExtract=Erro - comando de extração de chave falhou
notFirstBlock=Erro - Primeiro bloco OpenPGP não é o bloco de chave pública
importKeyConfirm=Importar chave(s) pública(s) contidas na mensagem?
failKeyImport=Erro - importação de chave falhou
fileWriteFailed=Falha ao escrever no arquivo %S
importKey=Importar chave pública %S do servidor de chaves:
uploadKey=Enviar chave pública %S para o servidor de chaves:
keyId=ID da Chave
keyAndSigDate=ID da Chave: 0x%S / Assinada em: %S
keyFpr=Impressão digital da Chave: %S
noEmailProvided=Você não forneceu um endereço de email!
keyAlreadySigned=A chave já está assinada, você não pode assiná-la duas vezes.
gnupg.invalidKey.desc=Chave %S não encontrada ou não é válida. A (sub-)chave pode ter expirado.
selKeyExpired=expirada em %S
createdHeader=Criada em
atLeastOneKey=Nenhuma chave selecionada! Você precisa selecionar pelo menos uma chave para aceitar este diálogo
fewerKeysThanRecipients=Você selecionou um número de chaves menor que o número de destinatários. Você tem certeza de que a lista de chaves de criptografia está completa?
userSel.button.goBack=Selecionar mais chaves
userSel.secretKeySel.title=Selecionar uma Chave Secreta OpenPGP para Assinar Suas Mensagens
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Enviar depois
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOTA: PGP/MIME só é suportado por um número limitado de clientes de email! No ambiente Windows apenas o Mozilla/Thunderbird, Sylpheed, Pegasus e Mulberry reconhecidamente suportam este padrão; no ambiente Linux/UNIX e Mac OS X a maioria dos clientes de email mais populares o suportam. Se você não tem certeza, selecione a opção %S.
first=primeiro
second=segundo
# Strings used in am-enigprefs.js
encryptKeyHeader=Selecione a Chave OpenPGP para Criptografia
identityName=Identidade: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Você ativou a criptografia, mas não selecionou uma chave. Para poder criptografar emails enviados para %S, você precisa especificar uma ou mais chaves válidas a partir de sua relação de chaves. Você deseja desabilitar a criptografia para %S?
noKeyToUse=(nenhuma - sem criptografia)
noEmptyRule=A Regra não pode ser vazia! Por favor defina um endereço de email no campo de Regra.
invalidAddress=O(s) endereço(s) de email que você entrou não são válidos. Você não deve definir os nomes dos destinatários, apenas os endereços de email. Por exemplo:\nInválido: Fulano \nVálido: fulano.qualquer@endereco.net
noCurlyBrackets=Os colchetes {} possuem um significado especial e não devem ser utilizados em endereços de email. Se você quiser modificar o comportamento correspondete para esta regra, utilizar a opção 'Aplicar esta regra caso o destinatário ...'.\nMais informações estão disponÃveis no botão Ajuda.
# Strings used in enigmailRulesEditor.js
never=Nunca
always=Sempre
possible=PossÃvel
deleteRule=Deseja apagar a regra selecionada?
nextRcpt=(Próximo destinatário)
negateRule=Não
addKeyToRule=Acrescentar a chave %S (%S) à regra por destinatário
# Strings used in enigmailSearchKey.js
needOnline=A funão que você selecionou não está disponÃvel em modo offline. Por favor vá para o modo online e tente novamente.
protocolNotSupported=O protocolo '%S://' que você selecionou não é suportado para baixar chaves OpenPGP.
gpgkeysDisabled=Talvez ajude habilitar a opção 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Não foi possÃvel conectar ao servidor de chaves em %S.
keyDownloadFailed=Falha ao baixar chave do servidor de chaves. Mensagem de status é:\n%S
internalError=Um erro interno ocorreu. As chaves não puderam ser baixadas ou importadas.
noKeyFound=Desculpe, não pude encontrar nenhuma resultado que atenda aos parâmetros de busca especificados.\nVerifique se os ID's de chave estão prefixados com \\"0x\\" (ex: 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Falha ao buscar ou baixar chave do servidor de chaves: gpgkeys_%S não pode ser executado.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Falha ao definir o nÃvel de confiança
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Assinatura de chave falhou
alreadySigned.label=Nota: a chave %S já está assinada com a chave secreta selecionada.
partlySigned.label=Nota: alguns logins da chave %S estão já assinalados com a chave secreta selecionada.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Carregando chaves, por favor aguarde ...
keyValid.unknown=desconhecida
keyValid.invalid=inválida
keyValid.disabled=desabilitada
keyValid.revoked=revogada
keyValid.expired=expirada
keyValid.noSubkey=nenhuma sub-chave válida
keyTrust.untrusted=não-confiável
keyTrust.marginal=mÃnima
keyTrust.full=confiável
keyTrust.ultimate=total
keyTrust.group=(grupo)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Habilitar Chave
keyMan.disableKey=Desabilitar Chave
userAtt.photo=Atributo de Usuário (imagem JPEG)
asciiArmorFile=ASCII Seguro
importKeyFile=Importar Arquivo de Chave OpenPGP
gnupgFile=Arquivos do GnuPG
saveRevokeCertAs=Criar e Salvar Certificado de Revogação
revokeCertOK=O certificado de revogação foi criado com sucesso.Você pode utilizá-lo para invalidar sua chave pública, por exemplo, no caso de perder sua chave secreta.\n\nPor favor transfira-o para uma mÃdia que possa ser armazenada com segurança, tal como um CD ou um disquete. Caso alguém tenha acesso a este certificado eles podem usá-lo para invalidar sua chave.
revokeCertFailed=O certificado de revogação não pode ser criado.
addUidOK=ID de Usuário acrescentado com sucesso
addUidFailed=Falha ao acrescentar ID de usuário
noKeySelected=Você deve escolher pelo menos uma chave para poder executar a operação desejada
exportToFile=Exportar Chave Pública para Arquivo
exportSecretKey=Você deseja incluir a chave secreta no arquivo de chaves OpenPGP a ser salvo?
saveKeysOK=As chaves foram salvas com sucesso
saveKeysFailed=Falha ao salvar as chaves
importKeysFailed=Falha ao importar as chaves
enableKeyFailed=Falha ao habilitar/desabilitar as chaves
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Chaves-públicas-exportadas
defaultPubSecKeyFilename=Chaves-públicas-e-secretas-exportadas
noSecretKeys=Nenhuma chave secreta foi encontrada.\n\nDeseja gerar a sua chave agora?
sendKeysOk=Chave(s) enviada(s) com sucesso
sendKeysFailed=Envio de chaves falhou
receiveKeysOk=Chave(s) atualizadas com sucesso
receiveKeysFailed=Baixa de chaves falhou
importFromClip=Você deseja importar chaves a partir do clipboard?
copyToClipbrdFailed=Não foi possÃvel copiar a(s) chave(s) selecionadas para o clipboard.
copyToClipbrdOK=Chave(s) copiadas para o clipboard
deleteSecretKey=AVISO: Você está prestes a remover uma chave secreta!\nSe você apagar a sua chave secreta, não será mais possÃvel descriptografar nenhuma mensagem criptografada com esta chave,e não será mais possÃvel revogá-la também.\n\nVocê realmente quer apagar AMBAS as chaves secreta e pública\n'%S'?
deleteMix=AVISO: Você está prestes a remover chaves secretas!\nSe você apagar a sua chave secreta, não será mais possÃvel descriptografar nenhuma mensagem criptografada com esta chave.\n\nVocê realmente quer apagar AMBAS as chaves secreta e pública selecionadas?
deletePubKey=Você quer apagar a chave pública\n'%S'?
deleteSelectedPubKey=Você quer apagar as chaves públicas?
deleteKeyFailed=A chave não pode ser removida.
revokeKeyOk=A chave foi revogada. Se a sua chave está disponÃvel em um servidor de chaves, é recomendado que você reenvie-a para que outros usuários vejam a revogação.
revokeKeyFailed=A chave não pode ser revogada.
refreshAllQuestion=Você não selecionou uma chave. Você quer atualizar TODAS as chaves?
refreshKey.warn=Aviso: dependendo do número de chaves e da velocidade da sua conexão, atualizar todas as chaves pode ser um processo bem demorado!
downloadContactsKeys.warn=Aviso: dependendo do número de contatos e da velocidade de sua conexão, baixar todas as chaves pode ser um processo demorado!
downloadContactsKeys.importFrom=Importar contatos do livro de endereços '%S'?
keyMan.button.exportSecKey=&Exportar Chaves Secretas
keyMan.button.exportPubKey=Exportar Apenas Chaves &Públicas
keyMan.button.import=&Importar
keyMan.button.refreshAll=Atualiza&r Todas as Chaves
keyMan.button.revokeKey=&Revogar Chave
keyMan.button.skip=&Pular Chave
keylist.noOtherUids=Não possui outras identidades
keylist.hasOtherUids=Também conhecido como
keylist.noPhotos=Foto não disponÃvel
keylist.hasPhotos=Fotos
keyMan.addphoto.filepicker.title=Selecionar foto para acrescentar
keyMan.addphoto.warnLargeFile=O arquivo que você escolheu é maior que 25kb.\nNão é recomendado acrescentar arquivos de foto muito grandes, pois as chaves se tornarão igualmente grandes.
keyMan.addphoto.noJpegFile=O arquivo selecionado não parece ser um arquivo JPEG. Escolha outro tipo de arquivo.
keyMan.addphoto.failed=A foto não pode ser acrescentada.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Falha ao alterar o ID de usuário primário
changePrimUidOK=O ID de usuário primário foi alterado com sucesso
deleteUidFailed=Falha ao apagar o ID de usuário %S
deleteUidOK=O ID de usuário %S foi apagado com sucesso
revokeUidFailed=Falha ao revogar o ID de usuário %S
revokeUidOK=O ID de usuário %S foi revogado com sucesso. Caso a sua chave esteja disponÃvel em um servidor de chaves, é recomendável reenviá-la, para que outros possam ver que foi revogado.
revokeUidQuestion=Você realmente deseja revogar o ID de usuário %S?
deleteUidQuestion=Você realmente deseja apagar o ID de usuário %S?\n\nAtenção: se você enviou sua chave pública para um servidor de chaves, apagar o ID de usuário não irá alterar nada. Se desejar realmente invalidar o ID, utilize 'Revogar ID de usuário'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=chave pública
keyTypePrimary=chave primária
keyTypeSubkey=sub-chave
keyTypePair=par de chaves
keyExpiryNever=nunca
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Criptografar
keyUsageSign=Assinar
keyUsageCertify=Certificar
keyUsageAuthentication=Autenticação
# Strings in enigmailGenCardKey.xul
keygen.started=Por favor aguarde enquanto a chave está sendo gerada ....
keygen.completed=Chave Gerada. O novo ID da Chave é: 0x%S
keygen.keyBackup=Uma cópia de segurança da chave foi salva como %S
keygen.passRequired=Por favor especifique uma senha para criar uma cópia de segurança de sua chave fora de seu SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=O PIN que você forneceu está incorreto; por favor entre novamente
cardPin.minLength=O PIN deve ter pelo menos %S caracteres ou números
cardPin.processFailed=Falha ao trocar o PIN
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Atualizando chaves, por favor aguarde ...
keyserverProgress.uploading=Enviando chaves, por favor aguarde ...
keyserverTitle.refreshing=Atualizar Chaves
keyserverTitle.uploading=Envio de Chaves
# Strings in enigmailSetupWizard
passphrase.min8keys=Sua senha deve conter pelo menos 8 caracteres!
setupWizard.reallyCancel=Você realmente deseja cancelar o Assistente de Configuração do Enigmail?
setupWizard.invalidGpg=O arquivo que você especificou não é um executável do GnuPG. Especifique um arquivo diferente.
setupWizard.specifyFile=Você precisa escolher pelo menos um arquivo de chave pública para continuar.
setupWizard.installFailed=Parece que a instalação não obteve êxito. Tente instalar novamente, ou instale o GnuPG manualmente e localize-o com o botão "Localizar".
setupWizard.downloadForbidden=Para sua própria segurança, nós não iremos baixar o GnuPG. Visite http://www.gnupg.org para baixar o GnuPG.
setupWizard.downloadImpossible=Não podemos baixar o GnuPG neste momento. Tente mais tarde em http://www.gnupg.org.
setupWizard.hashSumError=O assistente não conseguiu verificar a integridade do arquivo baixado. O arquivo pode estar corrompido ou ter sido manipulado. Deseja continuar a instalação mesmo assim?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Um erro aconteceu ao tentar baixar o GnuPG. Verifique o log de erros para mais detalhes.
installGnuPG.installFailed=Um erro ocorreu ao instalar o GnuPG. Verifique o log de erros para mais detalhes.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Você precisa preencher um nome e um endereço de email
addUidDlg.nameMinLengthError=O nome precisa ter pelo menos 5 caracteres
addUidDlg.invalidEmailError=Você deve especificar um endereço de email válido
addUidDlg.commentError=Colchetes ou parênteses não são permitidos nos comentários
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP Smartcards suporta apenas caracteres ASCII em Nome/Sobrenome.
# network error types
errorType.SecurityCertificate=O certificado de segurança apresentado pelo web service não é mais válido.
errorType.SecurityProtocol=O protocolo de segurança utilizado pelo web service é desconhecido.
errorType.Network=Ocorreu um erro de rede.
enigmail/lang/pt-BR/help/ 0000775 0000000 0000000 00000000000 12667016244 0015450 5 ustar 00root root 0000000 0000000 enigmail/lang/pt-BR/help/compose.html 0000664 0000000 0000000 00000011323 12667016244 0020003 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Composição de Mensagem
Ajuda do Enigmail
Utilizando o Enigmail ao compor mensagens
- Menu do Enigmail na janela de Composição de Mensagem
- Assinar mensagem: Habilitar/Desabilitar o envio de mensagens assinadas. O usuário será notificado se a assinatura falhar.
- Criptografar mensagem: Habilitar/Desabilitar criptografia para todos os destinatário(s) antes de enviar a mensagem. O usuário será notificado caso a criptografia falhe.
Caso a opção Mostrar seleção quanto necessário estiver habilitada na aba Preferências -> Seleção de Chaves
, uma lista de chaves será mostrada caso existam endereços na lista de destinatários da mensagem para os quais você não possua uma chave pública correspondente.
Caso a opção Nunca mostrar diálogo de seleção de chaves OpenPGP estiver habilitada na aba Preferêencias -> Seleção de Chaves, e existam
endereços na lista de destinatários para os quais você não possua a chave pública correspondente, a mensagem será enviada sem criptografia.
- Utilizar PGP/MIME para esta mensagem: Habilitar/Desabilitar o uso de
PGP/MIME
para esta mensagem.
Se você sabe que o(s) destinatário(s) consegue(m) ler mensagens utilizando o formato PGP/MIME format,
você deve utilizar esta opção.
Esta facilidade depende de ter a opção da aba Preferências -> PGP/MIME configurada para Permitir o uso de PGP/MIME ou Sempre usar PGP/MIME.
- Opções padrão para composição: Submenu.
- Opções de Assinatura/Criptografia...: atalho para Configurações de Conta -> Opções do OpenPGP.
- Opções de Envio...: atalho para a aba Preferências -> Envio.
- Opções de seleções de Chave...: atalho para a aba Preferências -> Seleção de Chaves.
- Opções de PGP/MIME...: atalho para a aba Preferências -> PGP/MIME.
- Desfazer criptografia: Casa haja uma falha ao enviar a mensagem,
tal como um servidor POP não aceitar o pedido, o Enigmail não saberá sobre o ocorrido,
e a mensagem criptografada continuará a ser mostrada na janela de Composição de Mensagem.
Escolhendo este item de menu fará com que a criptografia/assinatura seja desfeita,
revertendo a janela de Composição de Mensagem de volta ao seu texto original.
Como uma solução temporária, esta opção também pode ser utilizada para descriptografar a
o texto de citação da mensagem anterior (quote) quando estiver respondendo mensagens criptografadas.
O Enigmail deve automaticamente descriptografar a citação, mas caso isto falhe por alguma razão, você pode
utilizar este item do menu para forçá-lo.
- Inserir chave pública: inserir o bloco ASCII com a chave pública na posição
atual do cursor na janela de Composição. Você será perguntado sobre os endereços das chaves a serem inseridas.
Chaves inseridas desta maneira serão reconhecidas pelo Enigmail do destinatário. Após a inserção da chave, você
ainda pode escolher assinar/criptografar a mensagem como for necessário. Não insira mais de um bloco de chave por mensagem; apenas especifique
múltiplos endereços de email, separados por vírgulas ou espaços, quando for solicitado.
- Remover senha: Remove a senha armazenada. Útil quando você possui múltiplas senhas.
- Ajuda: Mostra informaçóes de Ajuda (esta página).
Mais ajuda pode ser encontrada na
página web de Ajuda do Enigmail
enigmail/lang/pt-BR/help/editRcptRule.html 0000664 0000000 0000000 00000014555 12667016244 0020756 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Edição de Regra do OpenPGP
Ajuda do Enigmail
Usando o Editor de Regras do Enigmail: Editando uma Regra OpenPGP
No Editor de Regras, você pode especificar padrões por destinatário para permitir criptografia, assinatura e PGP/MIME, e definir quais chaves OpenPGP serão utilizadas. Neste diálogo, você poderá especificar as regras para um único destinatário, ou para um grupo de destinatários com características similares.
- Definir Regras OpenPGP para: Contém os endereços de email dos destinatários (sem nomes, por exemplo: apenas um endereço como
alguem@dominio). Você pode especificar diversos endereços, separados por espaços.
O endereço especificado aqui pode consistir apenas da parte com o domínio, de forma que qualquer mensagem que faça parte deste domínio será processada, por exemplo @email.domain permitirá processar mensagens como usuario@email.domain,
alguem@email.domain, qualquerumy@email.domain, etc.
- Aplicar regra se o destinatário for ...:
Esta opção modifica a maneira como os endereços são processados.
Caso múltiplos endereços sejam colocados, esta configuração será aplicada a todos.
Os exemplos abaixo são baseados no endereço usuario@email.domain
mostrado no exemplo de Regras OpenPGP mostrado acima.
- É exatamente: com esta configuração, esta regra será apenas utilizada em emails para usuario@email.domain (texto exato, sem levar em consideração maiúsculas ou minúsculas).
- Contém: com esta configuração, qualquer endereço de email contendo a sub-palavra especificada é encontrada, por exemplo qualquerum@email.domain ou usuario@email.domain.net
- Começa com: com esta configuração, qualquer endereço começando com esta palavra é processado, por exemplo usuario@email.domain.net, usuario@email.domain-name.com.
- Termina com: com esta configuração, qualquer endereço terminando com esta palavra será processado, por exemplo qualquerum@email.domain,
alguem@email.domain.
- Continua com a próxima regra para o endereço selecionado
Ligando esta funçã permitirá que se defina uma regra mas não seja necessário especificar um ID de Chave no campo Usar as seguintes chaves OpenPGP:, de formad que o endereço de email será utilizado para verificar por uma chave na hora do envio. Além disso, regras criadas para o mesmo endereço serão processadas també.
- Não continuar verificando regras para o endereço selecionado
Ligando esta função, o processamento de quaisquer outras regras será abortado para o(s) endereço(s) selecionado(s) caso esta regra seja utilizada, ou seja, o processamento de regras continua com o próximo destinatário.
- Utilizar as seguintes chaves OpenPGP:
Utilize o botão Selecionar Chave(s).. para selecionar as chaves de destinatário que serão utilizadas para criptografia.
Como na ação descrita anteriormente, nenhuma regra adicional para o(s) endereço(s) selecionado(s) serão processadas.
- Padrão para Assinatura: habilitar ou desabilitar assinatura de mensagens.
Esta opção utiliza ou sobrepõe o que você especificou na janela de composição de mensagem.
Os valores são:
- Nunca: desabilitar assinatura, mesmo quando tiver sido habilitada na janela de composição de mensagem. (sobrepõe os outros valores)
- Sim, se selecionado na Composição da Mensagem: deixe a assinatura como especificada na janela de composição de mensagem
- Sempre: habilitar assinatura, mesmo se não foi habilitada na janela de composição de mensagem
Estas configurações de assinatura são aplicadas para todas as regras que coincidirem.
Caso uma das regras desabilite assinatura, a mensagem não será assinada, mesmo que outras regras especifiquem Sempre assinar.
- Criptografia: habilitar ou desabilitar criptografia de mensagem.
As configurações permitidas e seu significado é o mesmo que para assinatura de mensagens.
- PGP/MIME: habilitar ou desabilitar o uso de codificação de mensagem PGP/MIME (RFC 3156).
Caso o PGP/MIME esteja desligado, as mensagens são codificadas utilizando o processo "PGP inline". Os valores permitidos e seus significados são os mesmos utilizados para assinatura de mensagens.
As regras são processadas na ordem mostrada na lista do Editor de Regras OpenPGP. Sempre que uma regras coincidir com um destinatário e conter um ID de Chave OpenPGP, além de utilizar o ID de Chave especificado, o destinatário não é mais considerado ao se processar as regras seguintes.
Mais ajuda pode ser encontrada na
página web de Ajuda do Enigmail para Configuraçáo por Destinatário
enigmail/lang/pt-BR/help/initError.html 0000664 0000000 0000000 00000005446 12667016244 0020324 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Como Resolver Problemas com a Inicialização do OpenPGP
Ajuda do Enigmail
Como Resolver Problemas Com a Inicialização do OpenPGP
Existem diversas razões pelas quais a inicialização do OpenPGP pode falhar. As mais comuns estão descritas abaixo;
Para mais informações visite a página de suporte do Enigmail.
- GnuPG não pode ser encontrado
-
Para que o OpenPGP funcione, a ferramenta GnuPG precisa estar instalada.
Caso o GnuPG não seja encontrado, verifique primeiramente se o arquivo executável gpg.exe (no Windows; gpg nas outras plataformas) está instalado em seu computador.
Caso o GnuPG esteja instalado, e o OpenPGP não consiga encontrá-lo, você precisará informar manualmente o caminho para ele nas Preferências do OpenPGP Preferences (menu OpenPGP > Preferências)
- Falha ao inicializar o Enigmime
-
O OpenPGP funciona apenas se tiver sido compilado utilizando-se o mesmo ambiente utilizado para construir o Thunderbird ou SeaMonkey. Isto significa que você apenas pode utilizar uma versão oficial do Enigmail se utilizar também uma versão oficial do Thunderbird ou SeaMonkey fornecida pela mozilla.org.
Caso você utilize uma versão do Thunderbird ou SeaMonkey de outro fornecedor (por exemplo, do distribuidor de sua distribuição Linux), ou se você mesmo compilou a aplicação, você deve utilizar uma versão construída pelo mesmo fornecedor, ou compilar uma versão do Enigmail. Para compilar o Enigmail, siga as instruções na seção Código Fonte na página do Enigmail. Por favor não abra relatórios de erro sobre este problema, ele não pode ser resolvido de outra maneira.
Mais ajuda está disponível na Página de Suporte do Enigmail.
enigmail/lang/pt-BR/help/messenger.html 0000664 0000000 0000000 00000011655 12667016244 0020336 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Leitura de Mensagens
Ajuda do Enigmail
Utilizando o Enigmail durante a leitura de mensagens
- Botão Descriptografar na janela principal de mensagens
Este botão pode ser utilizado para diversas funções: descriptografar, verificar ou importar chaves públicas. Normalmente a criptografia/verificação ocorre automaticamente, embora isto possa ser desabilitado através de uma opção. No entanto, se isto falhar, geralmente uma pequena mensagem de erro irá aparecer na barra de status do Enigmail. Se você clicar no no botão Descriptografar, você poderá ver uma mensagem de erro mais detalhada, incluindo a saída do comando GnuPG.
- Ícones de Caneta e Chave no Cabeçalho da Mensagem
Os ícones de Caneta e Chave no cabeçalho da mensagem indicam s a mensagem que você está lendo foi assinada e/ou criptografada e se a assinatura é válida, ou seja, se a mensagem não foi alterada desde que foi assinada. Caso a mensagem tenha sido alterada, o ícone da Caneta irá mudar para um ícone de Caneta Quebrada para indicar que a assinatura não é válida. Clicando com o botão direito em qualquer um dos ícones de Caneta ou Chave trará um menu com as seguintes opçóes:
- Informações de Segurança do OpenPGP: permite que você veja a saída do GnuPG para esta mensagem.
- Copiar Informações de Segurança do OpenPGP: copia a saída do GnuPG para a área de transferência; para colar em uma mensagem, por exemplo.
- Ver ID com Foto do OpenPGP: permite que você visualize o ID com Foto da pessoa que enviou a mensagem, caso possua uma foto contida em sua Chave Pública.
(Esta opção apenas será habilitada caso um ID com Foto exista na chave da pessoa.)
- Informações de Segurança S/MIME: permite que você visualize as Informações de Segurança S/MIME para a mensagem.
Se você não tiver a opção de buscar chaves automaticamente no servidor de chaves definida em seu gpg.conf e ler uma mensagem que está assinada ou criptografada, você verá um ícone de uma Caneta no cabeçalho da mensagem juntamente com um Ponto de Interrogação nele, e a barra de status na área do cabeçalho do Enigmail dirá Parte da mensagem foi assinada; clique no ícone da caneta para detalhes e a mensagem mostrará todos os indicadores de blocos de mensagem do OpenPGP e o bloco de assinatura.
Você também pode ver este ícone caso tenha a opção de buscar chaves automaticamente no servidor de chaves definida em seu gpg.conf e a chave OpenPGP não esteja disponível no servidor de chaves padrão.
Clicando no ícone de Caneta com Ponto de Interrogação irá trazer uma janela informando que a chave não está disponível em seu chaveiro. Clicando em OK irá trazer uma outra janela com uma relação de servidores de chaves a partir dos quais você poderá selecionar de onde deseja baixar a chave pública do remetente.
Para configurar a lista de servidores de chaves que você deseja utilizar, vá até a aba Enigmail ->
Preferências -> Báasicas e entre com os endereços dos servidores de chaves na caixa Servidor(es) de Chaves: separados por uma vírgulas. O primeiro servidor de chaves na lista será utilizado como padrão.
- Abrindo anexos criptografados / importando chaves OpenPGP anexadas
Anexos terminando em *.pgp, *.asc e *.gpg são reconhecidos como anexos que podem ser tratados de forma especial pelo Enigmail. Clicando com o botão direito em um destes anexos habilita dois itens especiais no menu de contexto: Descriptografar e Abrir e Descriptografar e Salvar. Utilize estes dois itens se você quer que o Enigmail descriptografe um anexo antes de abrí-lo ou salvá-lo. Caso um anexo seja reconhecido com um arquivo de chave OpenPGP, será oferecida a oportunidade de importar as chaves em seu chaveiro.
Mais ajuda pode ser encontrada na página web de Ajuda do Enigmail
enigmail/lang/pt-BR/help/rulesEditor.html 0000664 0000000 0000000 00000007066 12667016244 0020650 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Editor de Regras
Ajuda do Enigmail
Utilizando o Editor de Regras do Enigmail
No Editor de Regras, você pode especificar os padrões para cada destinatário para permitir criptografia, assinatura e PGP/MIME, e para definir quais chaves OpenPGP serão utilizadas. Cada regra consiste em 5 campos e é representada em uma única linha:
- Email: o endereço de email que serão pesquisados nos campos De:, Cc: e Bcc:. A pesquisa funciona em sub-palavras (Maiores detalhes podem ser encontrados no diálogo do Editor de Regras)
- Chave(s) OpenPGP: uma lista de Id's de Chaves OpenPGP
Key ID's para utilizar para este destinatário
- Assinar: habilitar ou desabilitar a assinatura da mensagem. Esta opção utiliza ou sobrepõe o que você especificou na janela de composição de mensagem. Os valores são:
- Nunca: desabilita a assinatura, mesmo se estiver habilitada na janela de composição de mensagem (sobrepõe os outros valores)
- Possível: deixa a opção de assinatura como especificada na janela de composição de mensagem
- Sempre: habilita assinatura, mesmo se não estiver habilitada na janela de composição de mensagem
Estas opções de assinatura se aplicam para todas as regras que forem selecionadas. Caso uma destas regras desabilite a assinatura, a mensagem não será assinada, não importando o que outras regras especificarem Sempre.
- Criptografar: habilita ou desabilita criptografia de mensagem. As opções permitidas e seus significados são os mesmos definidos para assinatura de mensagem.
- PGP/MIME: habilita ou desabilita o uso de codificação PGP/MIME (RFC 3156).
Caso a opção PGP/MIME esteja desabilitada, as mensagens são codificadas utilizando o "PGP inline". Os valores permitidos e seus significados são os mesmos da assinatura de mensagem.
As regras são processadas na ordem em que são mostradas na lista. Sempre que uma coincide com um destinatário e contém um ID de Chave OpenPGP, além de utilizar o ID de Chave especificado, o destinatário não é mais considerado ao se processar as regras seguintes.
Nota: O editor de regras ainda não está completo. É possível escrever regras muito mais avançadas editando o arquivo de regras diretamente (neste caso, as regras não deverão ser mais editadas no editor de regras). Maiores informações sobre como editar o arquivo diretamente estão disponíveis na página do Enigmail
Mais ajuda pode ser encontrada na página de Ajuda do Enigmail na web
enigmail/lang/pt-BR/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0021004 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/pt-PT/ 0000775 0000000 0000000 00000000000 12667016244 0014540 5 ustar 00root root 0000000 0000000 enigmail/lang/pt-PT/am-enigprefs.properties 0000664 0000000 0000000 00000000123 12667016244 0021227 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Segurança OpenPGP
enigmail/lang/pt-PT/enigmail.dtd 0000664 0000000 0000000 00000142613 12667016244 0017031 0 ustar 00root root 0000000 0000000
NOTA: A operação de criar chave pode demorar vários minutos a completar. Não feche a aplicação enquanto a operação estiver em progresso. Navegar ativamente ou levar a cabo operações de uso intensivo do disco irão repor o nÃvel do repositório de aleatoriedade e acelerar o processo. Será avisado quando a chave estiver criada.">
' é inválido">
NOTA: Criar a chave pode demorar vários minutos. Não feche a aplicação enquanto a operação não terminar. Será alertado quando a chave estiver criada.">
Nota:O Enigmail verificará sempre as assinaturas das
mensagens para cada conta ou identidade, independentemente de estar ou não ativado.">
chave pública serve para que outras pessoas lhe enviem mensagens cifradas. Pode distribuÃ-la a todos.">
chave pública serve para que você decifre essas mensagens e assine as suas mensagens.
Não a deve dar a ninguém.">
chave pública serve para que você decifre essas mensagens e assine as suas mensagens.
Não a deve dar a ninguém.
Para proteger a sua chave privada, ser-lhe-á pedida uma frase de acesso nos próximos dois diálogos.">
frase de acesso é uma senha para proteger a sua chave privada. Evita uma utilização errada da sua chave privada.">
não são recomendados.">
Ser-lhe-á pedida a sua senha para esta operação.">
exportar os seus dados do seu computador antigo usando o assistente de cópia de segurança nas Preferências do Enigmail
importar os dados para o seu novo computador usando este assistente.
">
Obrigado por usar o Enigmail.">
exportar os seus dados do seu computador antigo usando este assistente
importar os dados para o seu novo computador usando o Assistente de Configuração.
">
enigmail/lang/pt-PT/enigmail.properties 0000664 0000000 0000000 00000115107 12667016244 0020450 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail: Aviso
enigConfirm=Enigmail: Confirmação
enigError=Enigmail: Erro
enigPrompt=Enigmail: Comando
dlgYes=&Sim
dlgNo=&Não
dlgKeepSetting=Lembrar a resposta e não perguntar novamente
dlgNoPrompt=Não mostrar este diálogo novamente
dlg.button.delete=&Apagar
dlg.button.cancel=&Cancelar
dlg.button.close=&Fechar
dlg.button.continue=Con&tinuar
dlg.button.skip=&Saltar
dlg.button.overwrite=S&obrepor
dlg.button.view=&Ver
dlg.button.retry=&Repetir
dlg.button.ignore=&Ignorar
repeatPrefix=\n\nEste aviso irá repetir-se mais %S
repeatSuffixSingular=vez.
repeatSuffixPlural=vezes.
noRepeat=\n\nEste aviso não se repetirá até à atualização do Enigmail.
pgpNotSupported=Parece que está a usar o Enigmail em conjunto com o PGP 6.x\n\nInfelizmente, o PGP 6.x tem uma série de problemas que impedem o correto funcionamento do Enigmail. Assim, o Enigmail já não suporta o PGP 6.x; por favor, passe a usar antes o GnuPG (GPG).\n\nSe necessita de ajuda na mudança para o GnuPG, consulte a secção de ajuda no site do Enigmail.
initErr.howToFixIt=Para usar o Enigmail, é necessário o GnuPG. Se ainda não o instalou, a forma mais fácil será usando o botão "Assistente de Configuração".
initErr.setupWizard.button=&Assistente de Configuração
passphraseCleared=A senha foi limpa.
cannotClearPassphrase=Está a usar uma ferramenta não convencional (como gnome-keyring) para manipular frases de acesso. Por esse motivo, não é possÃvel apagar a frase de acesso a partir do Enigmail.
noPhotoAvailable=Foto não disponÃvel
debugLog.title=Registo de Depuração do Enigmail
error.photoPathNotReadable=Não foi possÃvel aceder ao caminho '%S' para a fotografia
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Esta nova versão do Enigmail tem alterações significativas no tratamento das preferências e opções. Tentámos transferir as opções antigas para esta versão. Contudo, não foi possÃvel cobrir todos os casos automaticamente. Por favor, verifique com cuidado as novas preferências e opções.
enigmailCommon.checkPreferences=Verificar Preferências ...
preferences.defaultToPgpMime=A codificação de mensagem por omissão no Enigmail foi alterada de Inline-PGP para PGP/MIME. Recomenda-se que mantenha esta configuração como omissão.\n\nSe mesmo assim deseja usar Inline-PGP por omissão, pode fazê-lo nas Definições da conta em Seguntaça OpenPGP.
usingVersion=Executando a versão %S do Enigmail
usingAgent=Usando o programa %1$S com o executável %2$S para cifrar e decifrar
agentError=ERRO: Foi impossÃvel aceder ao serviço Enigmime!
accessError=Erro ao aceder ao serviço Enigmime
onlyGPG=Só pode criar chaves com o GnuPG (não com o PGP)!
keygenComplete=Nova chave criada!\nA identidade <%S> será usada para assinar.
revokeCertRecommended=Recomendamos vivamente a criação de um certificado de revogação para a sua chave. Este certificado pode ser usado para invalidar a sua chave, por exemplo, na eventualidade da perder a sua chave privada ou de esta ter sido comprometida. Deseja criar um certificado de revogação agora?
keyMan.button.generateCert=&Criar Certificado
genCompleteNoSign=Nova chave criada!
genGoing=Já está a criar uma nova chave!
passNoMatch=As senhas não coincidem; por favor, introduza-as de novo
passCheckBox=Seleccionar se não desejar definir uma senha para esta chave
passUserName=Por favor indique o nome de utilizador para esta identidade
keygen.missingUserName=Não foi indicado nenhum nome para a conta/identidade selecionada. Por favor introduza um valor no campo "O seu Nome" nas definições de conta.
keygen.passCharProblem=Está a usar caracteres especiais na sua frase senha. Infelizmente, isso pode causar problemas para outras aplicações. Recomenda-se que escolha uma frase senha contendo apenas estes caracteres:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Devido a problemas técnicos, a sua senha não pode começar ou acabar com um espaço.
changePassFailed=A alteração da senha falhou.
keyConfirm=Criar chave pública e privada para '%S'?
keyMan.button.generateKey=&Criar Chave
keyAbort=Abortar criação da nova chave?
keyMan.button.generateKeyAbort=&Abortar Criação de Chave
keyMan.button.generateKeyContinue=&Continuar a Criar a Chave
expiryTooLong=Não pode criar uma chave com o prazo de expiração superior a 100 anos.
expiryTooLongShorter=Não pode criar uma chave que expire em mais de 90 anos.
expiryTooShort=A chave tem de ser válida por um mÃnimo de um dia.
dsaSizeLimit=As chaves de assinatura DSA estão limitadas a 3072 bits. O tamanho da chave será reduzido em conformidade.
keyGenFailed=Não foi possÃvel criar a chave. Por favor, verifique a consola do Enigmail (Menu Enigmail > Depuração) para mais detalhes.
setKeyExpirationDateFailed=A data de expiração não pôde ser alterada
# Strings in enigmailMessengerOverlay.js
securityInfo=Informação de Segurança Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Os anexos a esta mensagem não foram assinados nem cifrados*\n\n
possiblyPgpMime=Mensagem possivelmente assinada ou cifrada com PGP/MIME. Clique Decifrar para verificar.
noDecrypted=Não existe mensagem decifrada para guardar!\nUse o comando Guardar do menu Ficheiro
noMessage=Não existe mensagem para guardar!
useButton=Por favor, use o botão Decifrar para decifrar a mensagem
saveHeader=Enigmail: Guardar mensagem decifrada
saveAttachmentHeader=Enigmail: Guardar anexo decifrado
noTempDir=Não foi possÃvel encontrar uma diretoria temporária na qual escrever\nPor favor, configure a variável de ambiente TEMP
attachmentPgpKey=O anexo '%S' que está a abrir aparenta ser uma chave OpenPGP.\n\nClique 'Importar' para importar as chaves lá contidas ou 'Ver' para ver o conteúdo do ficheiro numa janela do navegador web
beginPgpPart=********* *INÃCIO de PARTE ASSINADA ou CIFRADA* *********
endPgpPart=********** *FIM de PARTE ASSINADA ou CIFRADA* **********
notePartEncrypted=Enigmail: *Partes da mensagem NÃO foram assinadas ou cifradas*
noteCutMessage=Enigmail: *Encontrados múltiplos blocos de mensagem -- verificação/decifração abortada*
decryptOkNoSig=Aviso\n\nA mensagem foi corretamente decifrada mas não foi possÃvel verificar a assinatura
msgOvl.button.contAnyway=&Continuar Mesmo Assim
signature.verifiedOK=A assinatura do anexo %S foi verificada com sucesso
signature.verifyFailed=A assinatura do anexo %S não pôde ser verificada
attachment.noMatchToSignature=Não foi possÃvel fazer corresponder o anexo %S a uma assinatura
attachment.noMatchFromSignature=Não foi possÃvel fazer corresponder a assinatura %S a um anexo
fixBrokenExchangeMsg.failed=Não foi possÃvel reparar a mensagem.
keysToExport=Seleccione as chaves OpenPGP a Inserir
keysToUse=Seleccione a(s) chave(s) OpenPGP a usar para %S
pubKey=Chave pública para %S\n
windowLocked=A janela de composição está bloqueada; envio cancelado
sendUnencrypted=A inicialização do Enigmail falhou.\nEnviar a mensagem em claro?
composeSpecifyEmail=Por favor, indique o seu endereço de correio principal, que será usado para escolher a chave para assinar as mensagens a enviar.\nSe o deixar em branco, será usado o endereço no campo FROM (De) para escolher a chave a usar.
sendingHiddenRcpt=Esta mensagem tem destinatários BCC (Cópia oculta). Se esta mensagem for cifrada é possÃvel esconder os destinatários BCC, mas os utilizadores de alguns produtos (ex: PGP Corp.) não serão capazes de decifrar a mensagem. Assim, recomendamos evitar enviar mensagens cifradas com destinatários BCC.
sendWithHiddenBcc=Esconder destinatários BCC
sendWithShownBcc=Cifrar normalmente
sendingNews=Operação de envio interrompida.\n\nEsta mensagem não pode ser cifrada uma vez que tem grupos de discussão como destinatários. Por favor, envie a mensagem sem a cifrar.
sendToNewsWarning=Aviso: está prestes a enviar uma mensagem cifrada para um grupo de discussão.\n\nNão o recomendamos porque apenas faria sentido se todos os membros do grupo pudessem decifrar a mensagem, ou seja, a mensagem teria de ser cifrada com a chave de todos os participantes no grupo. Por favor, envie esta mensagem apenas se souber exatamente o que está a fazer.\n\nContinuar?
hasHTML=Aviso de correio HTML:\nEsta mensagem parece conter HTML, o que poderá causar a falha da operação de assinar/cifrar. Para evitar esta situação no futuro, deve pressionar a tecla SHIFT ao fazer clique no botão Compor/Responder para enviar correio assinado.\nSe envia correio assinado por omissão, deve desseleccionar a opção 'Compor mensagens em HTML' para desativar permanentemente o envio de correio HTML nesta conta.
strippingHTML=A mensagem contém formatação HTML que será perdida ao ser convertida para texto simples para assinar/cifrar. Deseja continuar?
msgCompose.button.sendAnyway=&Enviar Mensagem Mesmo Assim
attachWarning=Os anexos a esta mensagem não são locais, pelo que não podem ser cifrados. Para cifrar os anexos, guarde-os como ficheiros locais, anexando depois estes ficheiros. Deseja enviar a mensagem mesmo assim?
quotedPrintableWarn=Escolheu a codificação 'quoted-printable' para enviar mensagens. Isto pode ter como resultado uma incorreta decifração ou verificação da sua mensagem.\nDeseja desseleccionar o envio de mensagens 'quoted-printable'?
minimalLineWrapping=Configurou a quebra automática de linha para %S caracteres. Para cifrar ou assinar corretamente, este valor deve ser pelo menos 68.\nDeseja alterar a quebra automática de linha para 68 caracteres?
warning=Aviso
signIconClicked=Alterou manualmente a assinatura. Desta forma, ao compor esta mensagem, (des)ativar a assinatura já não depende de (des)ativar a cifra.
pgpMime_sMime.dlg.text=Ativou PGP/MIME e S/MIME em conjunto. Infelizmente não é possÃvel usar os dois protocolos em simultâneo. Por favor seleccione se deseja usar PGP/MIME ou S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Usar &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Usar &S/MIME
errorKeyUnusable=Não foi possÃvel fazer corresponder o endereço de correio ou identificador de chave '%S' a uma chave OpenPGP válida e não expirada.\nAssegure-se por favor de que possui uma chave OpenPGP válida e que as configurações da sua conta apontam para ela.
errorOwnKeyUnusable=A chave com ID '%S' configurada para a identidade atual não contém uma chaves OpenPGP utilizável.\n\nPor favor assegure-se que tem uma chave OpenPGP válida e dentro do prazo de expiração.\nSe a sua chaves ainda não expirou, verifique se definiu a confiança no utilizador para total ou máxima.
msgCompose.cannotSaveDraft=Erro a guardar rascunho
msgCompose.internalEncryptionError=Erro Interno: encriptação prometida desativada
msgCompose.internalError=Ocorreu um erro interno.
msgCompose.toolbarTxt.signAndEncrypt=A mensagem será assinada e cifrada
msgCompose.toolbarTxt.signOnly=A mensagem será assinada
msgCompose.toolbarTxt.encryptOnly=A mensagem será cifrada
msgCompose.toolbarTxt.noEncryption=A mensagem não será assinada nem cifrada
msgCompose.toolbarTxt.disabled=O Enigmail está desativado para a identidade seleccionada
msgCompose.toolbarTxt.smime=O S/MIME está ativo - poderá causar conflitos com o Enigmail
msgCompose.toolbarTxt.smimeOff=- Por conseguinte, S/MIME não é utilizado
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME está ativo - o Enigmail é, por conseguinte, não usado
msgCompose.toolbarTxt.smimeNoDraftEncryption=- os rascunhos não serão cifrados
msgCompose.toolbarTxt.smimeConflict=O Enigmail não é usado porque está ativo S/MIME. Por favor, desative a assinatura e/ou encriptação S/MIME e, de seguida, ative a encriptação Enigmail
msgCompose.encryptedSubjectStub=Mensagem Cifrada
msgCompose.detailsButton.label=Detalhes ...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Operação de envio interrompida.\n\n
# details:
keyNotTrusted=A chave '%S' não é suficientemente confiável
keyNotFound=A chave '%S' não foi encontrada
keyRevoked=A chave '%S' está revogada
keyExpired=A chave '%S' está expirada
statPGPMIME=PGP/MIME
statSigned=ASSINADA
statEncrypted=CIFRADA
statPlain=NÃO ASSINADA e NÃO CIFRADA
offlineSave=Guardar a mensagem %1$S para %2$S na pasta Mensagens Não Enviadas?
onlineSend=Enviar mensagem %1$S para %2$S?
encryptKeysNote=Nota: a mensagem está cifrada com os seguintes Identificadores / Chaves de Utilizador: %S
hiddenKey=
signFailed=Erro no Enigmail; Não foi possÃvel assinar/cifrar; enviar mensagem não cifrada?
msgCompose.button.sendUnencrypted=&Enviar Mensagem Não Cifrada
recipientsSelectionHdr=Escolha os Destinatários para os quais Cifrar
configureNow=Ainda não configurou a segurança Enigmail para a identidade seleccionada. Deseja fazê-lo agora?
# encryption/signing status and associated reasons:
encryptMessageAuto=Cifrar Mensagem (auto)
encryptMessageNorm=Cifrar Mensagem
signMessageAuto=Assinar Mensagem (auto)
signMessageNorm=Assinar Mensagem
encryptOff=Cifrar: Desligado
encryptOnWithReason=Cifrar: Ligado (%S)
encryptOffWithReason=Cifrar: Desligado (%S)
encryptOn=Cifrar: Ligado
signOn=Assinar: Ligado
signOff=Assinar: Desligado
signOnWithReason=Assinar: Ligado (%S)
signOffWithReason=Assinar: Desligado (%S)
reasonEnabledByDefault=ativado por omissão
reasonManuallyForced=forçado manualmente
reasonByRecipientRules=forçado pelas regras por destinatário
reasonByAutoEncryption=forçado por modo de cifra automática
reasonByConflict=devido a conflito nas regras por destinatário
reasonByEncryptionMode=devido ao modo de cifra
reasonSmimeConflict=porque S/MIME está ativo, no seu lugar
# should not be used anymore:
encryptYes=A mensagem será cifrada
encryptNo=A mensagem não será cifrada
# should not be used anymore:
signYes=A mensagem será assinada
signNo=A mensagem não será assinada
# PGP/MIME status:
pgpmimeNormal=Protocolo: PGP/MIME
inlinePGPNormal=Protocolo: Inline PGP
pgpmimeAuto=Protocolo: PGP/MIME (auto)
inlinePGPAuto=Protocolo: Inline PGP (auto)
# should not be used anymore
pgpmimeYes=Será usado PGP/MIME
pgpmimeNo=Será usado PGP embebido
# Attach own key status (tooltip strings):
attachOwnKeyNo=A sua chave não será anexada
attachOwnKeyYes=A sua chave será anexada
attachOwnKeyDisabled=A sua chave não pode ser anexada. Deve selecionar uma chave especÃfica\nna secção OpenPGP nas Definições da conta para ativar esta funcionalidade.
rulesConflict=Detetado conflito em regras por destinatário\n%S\n\nEnviar mensagem com esta configuração?
msgCompose.button.configure=&Configurar
msgCompose.button.send=&Enviar Mensagem
msgCompose.button.save=&Guardar Mensagem
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=É necessária a chave pública %S para verificar a assinatura
keyUsed=Chave pública %S usada para verificar a assinatura
clickDecrypt=; clique no botão Decifrar
clickDecryptRetry=; clique no botão Decifrar para tentar novamente
clickDetailsButton=; premir o botão 'Detalhes' para mais informação
clickImportButton=; premir o botão 'Importar Chave' para transferir a chave
keyTypeUnsupported=; o tipo de chave não é suportado pela sua versão do GnuPG
msgPart=Parte da mensagem %S
msgSigned=assinada
msgSignedUnkownKey=assinado com chave desconhecida
msgEncrypted=cifrada
msgSignedAndEnc=assinada e cifrada
unverifiedSig=Assinatura não verificada
incompleteDecrypt=Decifração incompleta
needKey=Erro - é necessária a chave privada para decifrar a mensagem
failedDecrypt=Erro - foi impossÃvel decifrar
badPhrase=Erro - senha incorreta
failedDecryptVerify=Erro - foi impossÃvel decifrar/verificar
viewInfo=; Escolha Ver > Informação de segurança da mensagem para mais informação
decryptedMsg=Mensagem decifrada
decryptedMsgWithFormatError=Mensagem decifrada (restaurado o formato PGP defeituoso provavelmente causado por um servidor Exchange antigo, podendo resultar numa mensagem de difÃcil leitura
usedAlgorithms=Algoritmos utilizados: %S e %S
# strings in pref-enigmail.js
oldGpgVersion14=A inicialização do Enigmail falhou.\n\nEstá a usar a versão %S do GnuPG, que já não é suportada. O Enigmail requer a versão 2.0.7 ou mais recente do GnuPG. Por favor, atualize a sua versão do GnuPG ou o Enigmail não funcionará.
locateGpg=Localizar o executável GnuPG
invalidGpgPath=O GnuPG não pôde ser executado a partir da localização fornecida. Assim, o Enigmail está desativo até o alterar novamente ou até reiniciar a aplicação.
warningsAreReset=Todos os avisos foram removidos.
prefs.gpgFound=GnuPG encontrado em %S
prefs.gpgNotFound=Não foi possÃvel encontrar o GnuPG
prefs.warnAskNever=Aviso: ativar esta opção terá como resultado mensagens não cifradas serem enviadas sem qualquer aviso sempre que não for encontrada qualquer chave para um dos destinatários -- O OpenPG não o informará se isto acontecer!
prefs.warnIdleTimeForUnknownAgent=O seu sistema possui uma ferramenta especial para gestão de senhas, como o gnome-keyring ou seahorse-agent. Infelizmente, o Enigmail não pode controlar o tempo de expiração da chave com a ferramenta que está a usar. Por esse motivo a configuração do tempo de expiração respetiva será ignorada.
prefEnigmail.oneKeyserverOnly=Erro - Apenas pode indicar um servidor de chaves para importação automática de chaves OpenPGP.
enterAdminPin=Por favor, introduza o PIN de ADMINISTRAÇÃO do seu SmartCard
enterCardPin=Por favor, introduza o PIN do seu SmartCard
notInit=Erro - O serviço Enigmail ainda não está inicializado
badCommand=Erro - foi impossÃvel cifrar
cmdLine=linha de comando e saÃda:
notRequired=Erro - cifra não requerida
notComplete=Erro - nova chave ainda não criada
invalidEmail=Erro - endereço(s) de correio inválido(s)
noPassphrase=Erro - senha não introduzida
noPGPblock=Erro - Não foi encontrado um bloco OpenPGP válido
unverifiedReply=A parte indentada da mensagem (resposta) foi provavelmente modificada
keyInMessageBody=Chave no corpo da mensagem encontrada. Clique 'Importar Chave' para importar a chave
sigMismatch=Erro - Assinatura não coincidente
cantImport=Erro ao importar chave pública\n\n
doImportOne=Importar %1$S (%2$S)?
doImportMultiple=Importar as seguintes chaves?\n\n%S
previewFailed=Não foi possÃvel ler o ficheiro de chave pública.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=O SmartCard %S encontrado no seu leitor não pôde ser usado para processar a mensagem.\nPor favor, insira o seu SmartCard %S e repita a operação.
sc.insertCard=A operação requer o seu SmartCard %S.\nPor favor insira o SmartCard requerido e repita a operação.
sc.removeCard=A operação não necessita de qualquer SmartCard inserido no leitor.\nPor favor remova o SmartCard e repita a operação.
sc.noCardAvailable=Não foi encontrado qualquer SmartCard no seu leitor\nPor favor, insira o SmartCard e repita a operação.
sc.noReaderAvailable=Não foi possÃvel aceder ao seu leitor de SmartCards\nPor favor, ligue o seu leitor de SmartCards, insira o seu cartão e repita a operação.
keyError.keySpecNotFound=O endereço de email "%S" não corresponde a nenhuma chave no seu porta-chaves.
keyError.keyIdNotFound=O ID da chave configurado "%S" não foi encontrado no seu porta-chaves.
keyError.resolutionAction=Por favor selecione uma chave válida na secção OpenPGP nas Definições da conta."
missingPassphrase=Introduza uma frase de acesso
errorHandling.gpgAgentInvalid=O seu systema está a executar uma versão do gpg-agent que não é adequada para a sua versão GnuPG.
errorHandling.gpgAgentError=GnuPG reportou um erro na comunicação com gpg-agent (uma componente do GnuPG).
errorHandling.dirmngrError=GnuPG reportou um erro na comunicação com dirmngr (um componente do GnuPG).
errorHandling.pinentryError=GnuPG não consegue consultar a sua frase de acesso via pinentry.
errorHandling.readFaq=Isto é um erro provocado por configurações ou definições de sistema que impete o Enigmail de funcionar corretamente e não pode ser resolvido automaticamente.\n\nRecomenda-se veemente que consulte o nosso sÃtio web de suporte em https://enigmail.net/faq.
gpgNotFound=Foi impossÃvel encontrar o GnuPG em '%S'.\nCertifique-se de que configurou corretamente a localização do executável GnuPG nas Preferências do Enigmail.
gpgNotInPath=Foi impossÃvel encontrar o executável GnuPG no PATH.\nCertifique-se de que configurou corretamente a localização do executável GnuPG nas Preferências do Enigmail.
enigmailNotAvailable=Serviço básico do Enigmail indisponÃvel
gpgAgentNotStarted=Não foi possÃvel iniciar o gpg-agent que é necessário para a sua versão %S do GnuPG.
prefUntrusted=NÃO É DE CONFIANÇA
prefRevoked=CHAVE REVOGADA
prefExpiredKey=CHAVE EXPIRADA
prefExpired=EXPIRADA
prefGood=Assinatura válida de %S
prefBad=Assinatura INVÃLIDA de %S
failCancel=Erro - Importação de chave cancelada pelo utilizador
failNoServer=Erro - Nenhum servidor configurado do qual importar a chave
failNoID=Erro - Não foi indicado o Identificador da chave a importar
failKeyExtract=Erro - O comando de extração de chave falhou
notFirstBlock=Erro - O primeiro bloco OpenPGP não contém uma chave pública
importKeyConfirm=Importar chave(s) pública(s) contidas na mensagem?
failKeyImport=Erro - a importação de chave falhou
fileWriteFailed=Erro ao escrever no ficheiro %S
importKey=Importar a chave pública %S do servidor:
uploadKey=Exportar chave %S para o servidor:
keyId=Identificador da chave
keyAndSigDate=Identificador da chave: 0x%1$S / Assinada em: %2$S
keyFpr=Impressão digital da chave: %S
noEmailProvided=Não introduziu um endereço de correio eletrónico!
keyAlreadySigned=A chave já está assinada, não pode assiná-la novamente.
gnupg.invalidKey.desc=A chave %S não foi encontrada ou não é válida. A (sub-)chave pode ter expirado.
selKeyExpired=expirada em %S
createdHeader=Criada
atLeastOneKey=Nenhuma chave seleccionada! Deve seleccionar pelo menos uma chave para fechar este diálogo
fewerKeysThanRecipients=Seleccionou menos chaves que destinatários. Tem a certeza que a lista de chaves para cifrar está completa?
userSel.button.goBack=Seleccionar Mais Chaves
userSel.secretKeySel.title=Seleccionar uma Chave OpenPGP Privada para Assinar as Suas Mensagens
userSel.problemNoKey=Não foi encontrada uma chave válida
userSel.problemMultipleKeys=Múltiplas chaves
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Enviar mais tarde
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOTA: PGP/MIME é suportado apenas por um número limitado de clientes de correio eletrónico! Em Windows, apenas se tem conhecimento de suporte para esta norma por parte de Mozilla/Thunderbird, Sylpheed, Pegasus e Mulberry; em Linux/UNIX e Mac OS X é suportado pela maioria dos clientes. Se não tem a certeza, seleccione a %S opção.
first=primeira
second=segunda
# Strings used in am-enigprefs.js
encryptKeyHeader=Seleccione a chave OpenPGP para Cifrar
identityName=Identidade: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Ativou a cifra mas não selecionou uma chave. Para cifrar o correio enviado para %1$S, necessita de escolher uma ou várias chaves válidas da sua lista de chaves. Deseja desativar a cifra para %2$S?
noKeyToUse=(nenhuma - em claro)
noEmptyRule=A Regra não pode ficar em branco! Por favor, introduza um endereço de correio no campo Regra.
invalidAddress=O(s) endereço(s) de correio que introduziu não são válidos. Não deve introduzir o nome dos destinatários, apenas os seus endereços. Ex:\nInválido: Nome Qualquer \nVálido: nome.qualquer@endereco.net
noCurlyBrackets=As chavetas {} têm um significado especial e não devem ser usadas em endereços de correio. Se deseja modificar o comportamento desta regra, use a opção 'Aplicar regra se destinatário ...'.\nPode obter mais informação através do botão Ajuda.
# Strings used in enigmailRulesEditor.js
never=Nunca
always=Sempre
possible=PossÃvel
deleteRule=Deseja mesmo remover a regra seleccionada?
nextRcpt=(Próximo destinatário)
negateRule=Não
addKeyToRule=Adicionar a chave %1$S (%2$S) à regra por destinatário
# Strings used in enigmailSearchKey.js
needOnline=A função que seleccionou não está disponÃvel quando desligado da Internet. Por favor, ligue-se à rede e tente novamente.
protocolNotSupported=O protocolo '%S://' que seleccionou não é suportado para importar chaves OpenPGP.
gpgkeysDisabled=Ativar a opção 'extensions.enigmail.useGpgKeysTool' pode ajudar.
noKeyserverConn=Foi impossÃvel estabelecer ligação com o servidor %S.
keyDownloadFailed=A transferência de chave do servidor falhou. Mensagem do sistema:\n%S
internalError=Ocorreu um erro interno. Foi impossÃvel transferir ou importar as chaves.
noKeyFound=Desculpe, não foi possÃvel encontrar uma chave com o critério de busca especificado.\nPor favor, note que os identificadores de chave devem conter o prefixo \\"0x\\" (por ex: 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=A procura ou importação das chaves do servidor falhou: foi impossÃvel executar gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Erro ao definir a confiança no utilizador
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Erro ao assinar a chave
alreadySigned.label=Nota: chave %S já está assinada com a chave privada selecionada.
alreadySignedexportable.label=Nota: a chave %S já está assinada como exportável com a chave privada selecionada. Uma assinatura local não faz sentido.
partlySigned.label=Nota: alguns identificadores de utilizador da chave %S já estão assinados com a chave secreta selecionada.
noTrustedOwnKeys=Nenhuma chave elegÃvel para assinar encontrada! Necessita de pelo menos uma chave privada com total confiança para poder assinar chaves.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Carregando as chaves, por favor aguarde...
keyValid.unknown=desconhecida
keyValid.invalid=inválida
keyValid.disabled=desativada
keyValid.revoked=revogada
keyValid.expired=expirada
keyValid.noSubkey=sem subchave válida
keyTrust.untrusted=nula
keyTrust.marginal=marginal
keyTrust.full=normal
keyTrust.ultimate=total
keyTrust.group=(grupo)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Ativar Chave
keyMan.disableKey=Desativar Chave
userAtt.photo=Atributo de utilizador (imagem JPEG)
asciiArmorFile=Armadura ASCII (*.asc)
importKeyFile=Importar Ficheiro com Chaves OpenPGP
gnupgFile=Ficheiros GnuPG
saveRevokeCertAs=Criar e Guardar Certificado de Revogação
revokeCertOK=O certificado de revogação foi criado com sucesso. Pode usá-lo para invalidar a sua chave pública, por exemplo, no caso de perder a sua chave privada.\n\nPor favor, transfira-o para um meio no qual possa ser armazenado em separado com segurança tal como um CD ou disquete. Se alguém conseguir acesso a este certificado pode usá-lo para inutilizar a sua chave.
revokeCertFailed=O certificado de revogação não pôde ser criado.
addUidOK=Identificador de utilizador adicionado com sucesso.
addUidFailed=Erro ao adicionar o identificador de utilizador
noKeySelected=Deve seleccionar pelo menos uma chave para completar a operação seleccionada
exportToFile=Exportar Chave Pública para Ficheiro
exportKeypairToFile=Exportar as Chaves Pública e Privada para um Ficheiro
exportSecretKey=Deseja incluir a chave privada no ficheiro de chave OpenPGP guardado?
saveKeysOK=As chaves foram guardadas com sucesso
saveKeysFailed=Erro ao guardar as chaves
importKeysFailed=Erro ao importar as chaves
enableKeyFailed=A ativação/desativação das chaves falhou
specificPubKeyFilename=%1$S (0x%2$S) pub
specificPubSecKeyFilename=%1$S (0x%2$S) pub-sec
defaultPubKeyFilename=Chaves-publicas-exportadas
defaultPubSecKeyFilename=Chaves-publicas-e-privadas-exportadas
noSecretKeys=Não foram encontradas chaves privadas.\n\nDeseja criar a sua chave agora?
sendKeysOk=Chave(s) enviadas com sucesso
sendKeysFailed=Erro ao enviar as chaves
receiveKeysOk=Chave(s) atualizada(s) com sucesso
receiveKeysFailed=Erro ao importar as chaves
importFromClip=Deseja importar chaves da Ãrea de Transferência?
importFromUrl=Descarregar chave pública deste URL:
copyToClipbrdFailed=Foi impossÃvel copiar as chaves seleccionadas para a Ãrea de Transferência.
copyToClipbrdOK=Chave(s) copiada(s) para a Ãrea de Transferência
deleteSecretKey=AVISO: Está prestes a remover uma chave privada!\nAo remover a sua chave privada ficará impedido de decifrar qualquer mensagem cifrada para essa chave ou de a revogar.\n\nTem a certeza que deseja remover AMBAS as chaves, pública e privada\n'%S'?
deleteMix=AVISO: Está prestes a apagar chaves privadas!\nSe apagar a sua chave privada, não poderá mais decifrar mensagens cifradas para essa chave.\n\nDeseja realmente apagar AMBAS as chaves seleccionadas, pública e privada?
deletePubKey=Deseja remover a chave pública\n'%S'?
deleteSelectedPubKey=Deseja apagar as chaves públicas?
deleteKeyFailed=Foi impossÃvel remover a chave.
revokeKeyQuestion=Está prestes a revogar a chave %S.\n\nIrá perder a hipótese de assinar com esta chave e, após distribuÃdo este certificado, mais ninguém lhe poderá enviar mensagens cifradas com essa chave. Poderá continuar a usar a chave para decifrar mensagens antigas.\n\nDeseja continuar?
revokeKeyOk=A chave foi revogada. Se tinha a chave disponÃvel num servidor, deve exportá-la de novo, para que todos possam ver a revogação.
revokeKeyFailed=Foi impossÃvel revogar a chave.
refreshAllQuestion=Não seleccionou qualquer chave. Deseja refrescar TODAS as chaves?
refreshKey.warn=Aviso: dependendo do número de chaves e da velocidade da sua ligação, refrescar todas as chaves pode ser um processo bastante longo!
downloadContactsKeys.warn=Aviso: dependendo do número de contatos e da velocidade de ligação, transferir todas as chaves pode demorar um tempo apreciável.
downloadContactsKeys.importFrom=Importar contatos do livro de endereços '%S'?
keyMan.button.exportSecKey=&Exportar Chaves Privadas
keyMan.button.exportPubKey=Exportar Apenas Chaves &Públicas
keyMan.button.import=&Importar
keyMan.button.refreshAll=&Refrescar Todas as Chaves
keyMan.button.revokeKey=&Revogar Chave
keyMan.button.skip=&Saltar Chave
keylist.noOtherUids=Não tem outras identidades
keylist.hasOtherUids=Também conhecido como
keylist.noPhotos=Sem fotografia disponÃvel
keylist.hasPhotos=Fotografias
keyMan.addphoto.filepicker.title=Seleccionar fotografia a adicionar
keyMan.addphoto.warnLargeFile=O ficheiro que escolheu é maior que 25 kB.\nNão é recomendado usar ficheiros muito grandes pois isso aumenta consideravelmente o tamanho das chaves.
keyMan.addphoto.noJpegFile=O ficheiro seleccionado não aparenta estar no formato JPEG. Por favor, seleccione um ficheiro diferente.
keyMan.addphoto.failed=A fotografia não pôde ser adicionada.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Erro ao alterar o Identificador de Utilizador principal
changePrimUidOK=O Identificador de Utilizador principal foi alterado com sucesso
deleteUidFailed=Foi impossÃvel remover o Identificador de Utilizador %S
deleteUidOK=Identificador de Utilizador %S foi removido com sucesso
revokeUidFailed=Foi impossÃvel revogar o Identificador de Utilizador %S
revokeUidOK=Identificador de Utilizador %S foi revogado com sucesso. Se tinha a chave disponÃvel num servidor, deve exportá-la de novo, para que todos possam ver a revogação.
revokeUidQuestion=Tem a certeza que deseja revogar o Identificador de Utilizador %S?
deleteUidQuestion=Tem a certeza que deseja remover o Identificador de Utilizador %S?\n\nNota: se tinha a sua chave disponÃvel num servidor, remover o Identificador de Utilizador não mudará nada. Neste caso, deve usar 'Revogar Identificador de Utilizador'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=SUCESSO! Chaves importadas
importInfoSuccess=✅
importInfoBits=Bits
importInfoCreated=Criada
importInfoFpr=Identificação
importInfoDetails=(Detalhes)
importInfoNoKeys=Nenhuma chave importada.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=chave pública
keyTypePrimary=chave primária
keyTypeSubkey=chave secundária
keyTypePair=par de chaves
keyExpiryNever=nunca
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
keyUsageEncrypt=Cifrar
keyUsageSign=Assinar
keyUsageCertify=Certificar
keyUsageAuthentication=Autenticação
keyDoesNotExpire=A chave nunca expira
# Strings in enigmailGenCardKey.xul
keygen.started=Por favor, aguarde enquanto a chave está a ser criada ....
keygen.completed=Chave criada. O identificador da nova chave é: 0x%S
keygen.keyBackup=Foi efetuada um cópia de segurança da chave com o nome %S
keygen.passRequired=Por favor, introduza uma senha se deseja criar uma cópia de segurança da sua chave fora do SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Os PIN que introduziu não coincidem; por favor, introduza-os de novo
cardPin.minLength=O PIN têm de ter pelo menos %S caracteres ou algarismos
cardPin.processFailed=A alteração do PIN falhou
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Refrescando as chaves, aguarde por favor...
keyserverProgress.uploading=Transferindo as chaves, aguarde por favor ...
keyserverTitle.refreshing=Refrescar Chaves
keyserverTitle.uploading=Transferência de Chaves
# Strings in enigmailSetupWizard
passphrase.min8keys=A sua senha deve conter pelo menos 8 caracteres!
setupWizard.reallyCancel=Deseja realmente fechar o Assistente de Configuração do Enigmail?
setupWizard.invalidGpg=O ficheiro que escolheu não é um executável GnuPG. Por favor, indique outro ficheiro.
setupWizard.specifyFile=Necessita de indicar pelo menos uma chave pública para continuar.
setupWizard.installFailed=Parece que a instalação não foi bem sucedida. Tente instalar de novo ou instalar o GnuPG manualmente e localizá-lo usando o botão Procurar.
setupWizard.downloadForbidden=Para sua segurança, o GnuPG não será transferido. Visite http://www.gnupg.org/ para transferir o GnuPG.
setupWizard.downloadImpossible=Neste momento não é possÃvel transferir o GnuPG. Tente novamente mais tarde ou visite http://www.gnupg.org/ para transferir o GnuPG.
setupWizard.hashSumError=O assistente não foi capaz de verificar a integridade do ficheiro transferido. O ficheiro pode estar corrompido ou ter sido manipulado. Deseja continuar a instalação de qualquer forma?
setupWizard.importSettingsFile=Indique o ficheiro da cópia de segurança
setupWizard.invalidSettingsFile=O ficheiro indicado não é uma cópia de segurança das Definições do Enigmail.
setupWizard.gpgConfExists=O ficheiro de configuração do GnuPG já existe. Deseja substituÃ-lo pelo ficheiro da sua instalação anterior?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Ocorreu um erro ao tentar transferir o GnuPG. Por favor verifique a Consola de Erro para mais detalhes.
installGnuPG.installFailed=Ocorreu um erro ao instalar o GnuPG. Por favor, verifique a Consola de Erro para mais detalhes.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Tem de inserir um nome e endereço de correio eletrónico
addUidDlg.nameMinLengthError=O nome deve ter pelo menos 5 caracteres
addUidDlg.invalidEmailError=Deve inserir um endereço de correio eletrónico válido
addUidDlg.commentError=Os comentários não podem conter chavetas
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Os Smartcards OpenPGP apenas suportam caracteres ASCII no Nome/Apelido.
# network error types
errorType.SecurityCertificate=O certificado de segurança apresentado pelo serviço web não é válido.
errorType.SecurityProtocol=O protocolo de segurança usado pelo serviço web não é conhecido.
errorType.Network=Ocorreu um erro de rede.
# filter stuff
filter.folderRequired=Deve escolher uma pasta de destino.
filter.decryptMove.label=Decifrar permanentemente (Enigmail)
filter.decryptCopy.label=Criar Cópia Decifrada (Enigmail)
filter.decryptMove.warnExperimental=Aviso - a ação do filtro 'Decifrar permanentemente' poderá levar à destruição de mensagens.\n\nRecomenda-se vivamente que tente primeiro o filtro "Criar Cópia Decifrada", testando o resultado com atenção, e apenas use este filtro se ficar satisfeito com o resultado.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Não foi possÃvel decifrar a mensagem com o assunto\n"%S".\nDeseja repetir com uma frase senha diferente ou saltar a mensagem?
converter.decryptAtt.failed=Não foi possÃvel decifrar o anexo "%1$S"\nda mensagem com o assunto\n"%2$S".\nDeseja repetir com uma frase senha diferente ou saltar a mensagem?
saveLogFile.title=Guardar Ficheiro de Registo
# strings in gpg.jsm
unknownSigningAlg=Algoritmo de assinatura desconhecido (ID: %S)
unknownHashAlg=Hash criptográfico desconhecido (ID: %S)
# strings in keyRing.jsm
keyring.photo=Foto
keyRing.pubKeyRevoked=A chave %1$S (ID %2$S) foi revogada.
keyRing.pubKeyExpired=A chave %1$S (ID %2$S) expirou.
keyRing.pubKeyNotForSigning=A chave %1$S (ID %2$S) não pode ser usada para assinar.
keyRing.pubKeyNotForEncryption=A chave %1$S (ID %2$S) não pode ser usada para encriptação.
keyRing.keyDisabled=A chave %1$S (ID %2$S) está inativa; não pode ser usada.
keyRing.keyNotTrusted=A chave %1$S (ID %2$S) ... Por favor defina o nÃvel de confiança da sua chave para "total" para poder assinar com ela.
keyRing.keyInvalid=A chave %1$S (ID %2$S) é inválida (e.g. não tem uma auto-assinatura).
keyRing.signSubKeysRevoked=Todas as subchaves de assinatura %1$S (ID %2$S) foram revocadas.
keyRing.signSubKeysExpired=Todas as subchaves de assinatura da chave %1$S (ID %2$S) expiraram.
keyRing.signSubKeysUnusable=Todas as subchaves de assinatura da chave %1$S (ID %2$S) foram revocadas, expiraram ou estão, de outro modo, inutilizáveis.
keyRing.encSubKeysRevoked=Todas as subchaves de encriptação da chave %1$S (ID %2$S) foram revocadas.
keyRing.encSubKeysExpired=Todas as subchaves de encriptação da chave %1$S (ID %2$S) expiraram.
keyRing.noSecretKey=Parece que não tem a chave secreta de %1$S (ID %2$S) no seu porta-chaves; não pode usar a chave para assinar.
keyRing.encSubKeysUnusable=Todas as subchaves de encriptação da chave %1$S (ID %2$S) foram revocadas, expiraram ou estão, de outro modo, inutilizáveis.
#strings in exportSettingsWizard.js
cannotWriteToFile=Não foi possÃvel guardar para o ficheiro '%S'. Por favor selecione outro ficheiro.
dataExportError=Ocorreu um erro a exportar os seus dados.
enigmailSettings=DefiniçõesEnigmail
defaultBackupFileName=Enigmail-export
specifyExportFile=Indique o nome do ficheiro para exportar
homedirParamNotSUpported=Parâmetros adicionais que configuram caminhos como --homedir e --keyring não são suportados na exportação/restauração. Por favor use métodos alternativos como definir a variável de ambiente GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=A sua chave %1$S expira em menos de %2$S dias.\n\nRecomenda-se que crie um novo par de chaves e configure as contas correspondentes para usarem a nova chave.
expiry.keysExpireSoon=As suas chaves que se seguem expiram em menos de %1$S dias:\n%2$S. Recomenda-se que crie novas chaves e configure as suas contas para usarem as novas chaves.
enigmail/lang/pt-PT/help/ 0000775 0000000 0000000 00000000000 12667016244 0015470 5 ustar 00root root 0000000 0000000 enigmail/lang/pt-PT/help/compose.html 0000664 0000000 0000000 00000011202 12667016244 0020017 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Composição de Mensagens
Ajuda do Enigmail
Usando o Enigmail ao compor mensagens
- Menu Enigmail na janela Correio/Composição
- Assinar mensagem: Activar/Desactivar o envio de correio assinado. O utilizador
será notificado se a assinatura falhar.
- Cifrar mensagem: Activar/Desactivar a encriptação para todo(s) o(s) destinatário(s)
antes do envio. O utilizador será notificado se a encriptação falhar.
Se a opção Mostrar selecção quando necessário estiver seleccionada no separador
Preferências Enigmail -> Selecção de chaves, será apresentada uma lista de chaves
no caso de haver endereços de email na lista de destinatários para os quais tenha a chave pública.
Se a opção Nunca mostrar selecção de chave OpenPGP estiver seleccionada no separador
Preferências Enigmail -> Selecção de chaves, e houver endereços de email na lista de
destinatários para os quais não tem a chave pública, a mensagem será enviada em claro.
- Usar PGP/MIME para esta mensagem: Activar/Desactivar o uso de
PGP/MIME
para esta mensagem.
Se sabe que o(s) destinatário(s) podem ler correio electrónico no formato PGP/MIME, deve
usá-lo.
Esta funcionalidade depende da configuração no separador Preferências -> PGP/MIME
estar para Permitir o uso de PGP/MIME ou Usar sempre PGP/MIME.
- Opções de composição por omissão: Submenu.
- Opções de assinar/cifrar...: atalho para Opções de conta -> Opções OpenPGP.
- Opções de envio...: atalho para o separador Preferências -> Ao Enviar.
- Opções de Selecção de chaves...: atalho o separador Preferências ->
Selecção de chaves.
- Opções PGP/MIME...: atalho para o separador Preferências -> PGP/MIME.
- Desfazer encriptação: se acontecer um erro ao enviar o correio, por exemplo o servidor
POP não aceitar o pedido, o Enigmail não terá conhecimento disso e a mensagem cifrada continuará
a ser mostrada na janela de composição. Ao escolher este item de menu reverterá a operação de
encriptação, colocando o texto original novamente na janela.
Como solução temporária, esta opção pode também ser usada para decifrar as citações
ao responder a mensagens cifradas. O Enigmail deve decifrar automaticamente as mensagens
cifradas, mas se isso falhar por alguma razão, pode usar este item de menu para o forçar.
- Inserir chave pública: inserir bloco de chave pública em ASCII na posição corrente
do cursor na janela de Composição. Ser-lhe-á pedido o endereço de correio electrónico da(s)
chave(s) a inserir. As chaves inseridas desta forma serão automaticamente reconhecidas pelo
Enigmail na recepção. Após a inserção da chave, pode escolher assinar/cifrar a mensagem
consoante necessário. Não insira mais do que um bloco de chave por mensagem; em vez disso,
indique os vários endereços de email separados por vírgulas ou espaços quando tal lhe
for pedido.
- Limpar senha memorizada: Limpa a senha guardada em memória. Útil se tem várias senhas
diferentes.
- Editar regras por destinatário
- Ajuda: Mostra a informação de ajuda do site web (esta página).
Ajuda adicional disponível na
página web de Ajuda do Enigmail
enigmail/lang/pt-PT/help/editRcptRule.html 0000664 0000000 0000000 00000013763 12667016244 0020776 0 ustar 00root root 0000000 0000000
Ajuda do Engimail: Editar Regras OpenPGP
Ajuda do Enigmail
Usar o Editor de Regras do Enigmail: Editar Regras OpenPGP
No Editor de Regras, pode especificar, para cada destinatário, se deseja cifrar, assinar ou
usar PGP/MIME por omissão e ainda quais as chaves OpenPGP a usar. Neste diálogo, pode especificar
as regras para cada destinatário individualmente ou para cada grupo de destinatários com
atributos semelhantes.
- Configurar regras OpenPGP para: Contém os
endereços de email dos destinatários (sem nomes, isto é, apenas um endereço como
alguem@dominio.email). Pode indicar vários endereços de email, separados por espaços.
Os endereços indicados aqui podem conter apenas o domínio, de forma a que apenas os endereços
daquele domínio sejam mostrados, por exemplo, @dominio.email permitiria mostrar os
endereços pessoa@dominio.email, alguem@dominio.email,
qualquer@dominio.email, etc.
- Aplicar regra se destinatário ...:
Altera a forma de correspondência de endereços de email. Se forem introduzidos vários endereços,
esta definição aplicar-se-á a todos. Os exemplos abaixo baseiam-se em introduzir
pessoa@dominio.email no campo Regras OpenPGP definido acima.
- É exactamente: com esta configuração, a regra apenas se aplicará às mensagens para
pessoa@dominio.email (correspondência exacta, ignorando maiúsculas/minúsculas).
- Contém: com esta configuração, a regra aplicar-se-á a todos os endereços que contenham
a cadeia de caracteres especificada, por exemplo qualquerpessoa@dominio.email ou
pessoa@dominio.email.net
- Começa por: com esta configuração, a regra irá aplicar-se a qualquer endereço
iniciado pela cadeia de caracteres especificada, como pessoa@dominio.email.net ou
pessoa@dominio.email-nome.com.
- Termina em: esta configuração aplica a regra a todos os endereços terminados com
a cadeia de caracteres especificada, tais como qualquerpessoa@dominio.email ou
umapessoa@dominio.email.
- Continuar com a próxima regra para os endereços coindidentes
Activar esta função permitirá definir uma regra sem ter que especificar o Identificador da chave em
Usar as seguintes chaves OpenPGP:, de forma a que o endereço de email seja usado para
procurar a chave ao enviar. De igual modo, as regras seguintes para os mesmos endereços serão
processadas da mesma maneira.
- Não verificar mais regras para os endereços coincidentes
Activar esta definição impede o processamento de quaisquer outras regras para os endereços
coincidentes, caso esta regra seja verificada; ou seja, o processamento de regras continua
com o próximo destinatário.
- Definições por omissão para assinar: activar ou desactivar
a assinatura de mensagens. Esta definição usa ou sobrepõe-se ao que especificou na janela de composições
de mensagens. Os valores são:
- Nunca: desactivar a assinatura, mesmo se estiver seleccionada na janela de composição de
mensagens (sobrepõe-se a outros valores)
- Sim, se seleccionado na Composição de Mensagens: deixar a assinatura como especificado na
janela de composição de mensagens
- Sempre: Activar a assinatura, mesmo se não estiver
seleccionada na janela de composição de mensagens
Estas configurações de assinatura são aplicadas a todas as regras
coincidentes. Se uma das regras desactivar a assinatura, a mensagem não será assinada, independentemente
do que outras regras especifiquem. Sempre.
- Cifrar: Activar ou desactivar a encriptação de mensagens.
As configurações permitidas e o seu significado são os mesmos que para a assinatura de mensagens.
- PGP/MIME: activar ou desactivar o uso de PGP/MIME (RFC 3156)
para a codificação de mensagens. Se não seleccionar PGP/MIME, as mensagens serão codificadas usando o
método "PGP embebido". Os valores permitidos e o seu significado são os mesmos que para a assinatura de
mensagens.
As regras são processadas na ordem em que são mostradas na lista Editor de Regras por
Destinatário. Sempre que uma regra coincidir com um destinatário e contiver um Identificador de chave OpenPGP,
para além de usar o Identificador de chave específico, implica que o destinatário não seja mais considerado ao
processar regras posteriores.
Pode encontrar mais ajuda na
página de Configurações de Regras por Destinatário do Enigmail
enigmail/lang/pt-PT/help/initError.html 0000664 0000000 0000000 00000004653 12667016244 0020343 0 ustar 00root root 0000000 0000000
Ajuda Enigmail: Como Resolver Problemas na Inicialização do OpenPGP
Ajuda Enigmail
Como Resolver Problemas na Inicialização do OpenPGP
Há vários motivos para que o OpenPGP não consiga inicializar. Os mais comuns estão descritos abaixo; para mais informação, visite por favor a Página de Suporte do Enigmail.
- GnuPG não foi encontrado
-
Para que o OpenPGP possa funcionar, é necessário que a ferramenta GnuPG esteja instalada.
Se não for possÃvel encontrar o GnuPG, certifique-se que o executável gpg.exe (em Windows; gpg nas outras platformas) está instalado no seu computador.
Em caso afirmativo, e se o OpenPGP não o conseguir encontrar, é necessário configurar manualmente o caminho para o GnuPG nas Preferências (menu OpenPGP > Preferências)
- Não foi possÃvel inicializar o Enigmime
-
O OpenPGP funciona apenas se for compilado na mesma plataforma que o Thunderbird ou Seamonkey. Isto significa que a versão oficial do Enigmail apenas pode ser usada em conjunto com as versões oficiais do Thunderbird ou Seamonkey fornecidas pela mozilla.org.
Se usa o Thunderbird ou Seamonkey provenientes de outra fonte (por exemplo, o fornecedor da sua distribuição de Linux), ou se compilou a aplicação localmente, deve usar uma versão de Enigmail do mesmo fornecedor ou compilar o Enigmail localmente. Instruções para compilar o Enigmail podem ser encontradas na Secção de Código Fonte da página web do Enigmail. Por favor, não submeta nenhum relatório de erro sobre este problema, uma vez que não tem solução.
Pode encontrar mais ajuda no SÃtio Web de Suporte ao Enigmail.
enigmail/lang/pt-PT/help/messenger.html 0000664 0000000 0000000 00000011473 12667016244 0020354 0 ustar 00root root 0000000 0000000
Ajuda Enigmail: Leitura de mensagens
Ajuda Enigmail
Usar o Enigmail ao ler mensagens
- Botão Decifrar na janela principal do Mail & Newsgroups / Thunderbird
Este botão pode ser usado para: decifrar, verificar ou importar chaves públicas.
Normalmente, as mensagens são decifradas e verificadas automaticamente, embora
este comportamento possa ser desactivado numa preferência. Contudo, se isto falhar,
será apresentada uma curta mensagem de erro na barra de estado do Enigmail. Se clicar
sobre o botão Decifrar, poderá ver uma mensagem mais detalhada, incluindo a saída
do comando GnuPG.
- Ícones da Caneta e da Chave no Cabeçalho da Mensagem
Os ícones da Caneta e da Chave no Cabeçalho da Mensagem indicam se
a mensagem que está a ler foi assinada e/ou cifrada e se a assinatura é válida, ou
seja, se a mensagem não foi alterada desde que foi assinada. Se a mensagem foi
alterada o ícone da Caneta mudará para uma Caneta Quebrada para
indicar que a assinatura não é válida. Clicar com o botão alternativo do rato quer no
ícone da Caneta quer no ícone da Chave fará aparecer um menu com as seguintes
opções:
- Informação de Segurança OpenPGP: permite ver a saída do GnuPG para a
mensagem.
- Copiar Informação de Segurança OpenPGP: copia a saída do GnuPG para a
área de transferência; para colar numa mensagem de resposta, etc.
- Ver Identificador Fotográfico OpenPGP: permite ver o Identificador
Fotográfico do remetente, se ele tiver uma fotografia embebida na sua Chave
Pública. (Esta opção estará activa apenas se existir um Identificador
Fotográfico na chave.)
- Informação de Segurança S/MIME: permite ver a informação de segurança
S/MIME da mensagem.
Se não tiver keyserver-options auto-key-retrieve no seu ficheiro
gpg.conf e receber uma mensagem assinada ou cifrada, verá, na área de
visualização do cabeçalho da mensagem, um ícone com uma Caneta com um
ponto de interrogação sobreposto, a barra de estado do Enigmail na área do
cabeçalho dirá Parte da mensagem assinada; para mais informação, clique sobre
o ícone da caneta e a mensagem no Painel de Mensagem mostrará os indicadores
de um bloco OpenPGP e o bloco da assinatura.
Também poderá ver isto se tiver keyserver-options auto-key-retrieve
no seu ficheiro gpg.conf e a chave não estiver disponível no seu
servidor de chaves por omissão.
Clicar sobre o ícone da Caneta e Ponto de Interrogação fará aparecer
uma janela informando que a chave não está disponível no seu porta-chaves. Clicar
em OK mostrará outra janela com uma lista de servidores de chaves para escolher
a partir de qual quer fazer a transferência da chave pública do remetente.
Para configurar a lista dos servidores de chaves que deseja usar, vá ao separador
Enigmail -> Preferências -> Básicas e introduza os endereços dos servidores
no campo Servidor(es) de chave(s):, separados por vírgulas. O
servidor de chaves listado em primeiro lugar será usado como o servidor por omissão.
- Abrir anexos cifrados / importar chaves OpenPGP em anexo
Anexos de nome *.pgp, *.asc, e *.gpg são reconhecidos como podendo ter um tratamento
especial por parte do Enigmail. Clicar com o botão alternativo do rato num anexo
deste tipo, activa dois itens de menu especiais no menu de contexto: Decifrar e
Abrir e Decifrar e Gravar Como.... Use estes dois itens de menu se
deseja que o Enigmail decifre um anexo antes de o abrir ou gravar. Se um anexo for
reconhecido como um ficheiro contendo uma chave OpenPGP, é-lhe oferecida a
possibilidade de importar as chaves para o seu porta-chaves.
Ajuda adicional disponível na
página web de Ajuda do Enigmail
enigmail/lang/pt-PT/help/rulesEditor.html 0000664 0000000 0000000 00000007271 12667016244 0020666 0 ustar 00root root 0000000 0000000
Ajuda do Enigmail: Editor de Regras
Ajuda do Enigmail
Usar o Editor de Regras do Enigmail
No Editor de Regras, pode indicar as configurações a usar por omissão para cifrar,
assinar e usar PGP/MIME, por destinatário e quais as chaves a usar. Cada regra consiste
em 5 campos e é representada numa única linha:
As regras são processadas na ordem em que são mostradas na lista. Sempre que uma regra
coincidir com um destinatário e contiver um Identificador de chave OpenPGP, esse destinatário não
será mais considerado ao processar as regras seguintes, para além de ser usado o Identificador de
chave especificado.
Nota: O editor de regras ainda não está completo. É possível escrever regras
mais avançadas editando o ficheiro de regras directamente (estas regras não devem ser
posteriormente editadas no editor de regras). Mais informação
sobre a edição directa deste ficheiro está disponível na Homepage do Enigmail.
Ajuda adicional disponível na
página web de Ajuda do Enigmail
enigmail/lang/pt-PT/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0021024 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/ru/ 0000775 0000000 0000000 00000000000 12667016244 0014222 5 ustar 00root root 0000000 0000000 enigmail/lang/ru/am-enigprefs.properties 0000664 0000000 0000000 00000000125 12667016244 0020713 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Защита OpenPGP
enigmail/lang/ru/enigmail.dtd 0000664 0000000 0000000 00000152320 12667016244 0016507 0 ustar 00root root 0000000 0000000
БезопаÑноÑть OpenPGP)">
ПРИМЕЧÐÐИЕ: Ñоздание ключей может занÑть неÑколько минут. Ðе закрывайте приложение во Ð²Ñ€ÐµÐ¼Ñ Ñтого процеÑÑа. Ðктивный Ñёрфинг и интенÑивное выполнение операций Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð¸ запиÑи на диÑк во Ð²Ñ€ÐµÐ¼Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ð¸ ключей внеÑут необходимый Ñлемент ÑлучайноÑти и уÑкорÑÑ‚ процеÑÑ. Ð’Ñ‹ будете предупреждены о завершении ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°.">
' неверна">
ПРИМЕЧÐÐИЕ: Ñоздание ключей может занÑть неÑколько минут. Ðе закрывайте приложение во Ð²Ñ€ÐµÐ¼Ñ Ñтого процеÑÑа.Ð’Ñ‹ будете предупреждены о завершении ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°.">
Примечание: Enigmail будет вÑегда проверÑть подпиÑи под каждым Ñообщением Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ учетной запиÑи, незавиÑимо от того, включён ли он или нет">
СпаÑибо за иÑпользование Enigmail.">
enigmail/lang/ru/enigmail.properties 0000664 0000000 0000000 00000125550 12667016244 0020135 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Предупреждение Enigmail
enigConfirm=Подтверждение Enigmail
enigError=Ошибка Enigmail
enigPrompt=Приглашение Enigmail
dlgYes=&Да
dlgNo=&Ðет
dlgKeepSetting=Запомнить решение и больше не показывать Ñто окно
dlgNoPrompt=Ðе отображать опÑть Ñтот диалог
dlg.button.delete=&Удалить
dlg.button.cancel=&Отмена
dlg.button.close=&Закрыть
dlg.button.continue=Прод&олжить
dlg.button.skip=&ПропуÑтить
dlg.button.view=П&роÑмотреть
repeatPrefix=\n\nÐто предупреждение повторитÑÑ ÐµÑ‰Ñ‘ %S
repeatSuffixSingular=раз.
repeatSuffixPlural=раз(а).
noRepeat=\n\nÐто предупреждение не будет поÑвлÑтьÑÑ, пока вы не обновите Enigmail.
pgpNotSupported=Ð’Ñ‹ хотите иÑпользовать Enigmail вмеÑте Ñ PGP 6.x.\n\nК Ñожалению, PGP 6.x обладает Ñ€Ñдом проблем, не позволÑющих Enigmail работать корректно. ПоÑтому Enigmail больше не поддерживает PGP 6.x, пожалуйÑта, уÑтановите вмеÑто него GnuPG (GPG).\n\nЕÑли вам нужна помощь в уÑтановке GnuPG, обратитеÑÑŒ к Ñправочному разделу Ñайта Enigmail.
passphraseCleared=Пароль был очищен.
noPhotoAvailable=Ð¤Ð¾Ñ‚Ð¾Ð³Ñ€Ð°Ñ„Ð¸Ñ Ð½Ðµ доÑтупна
debugLog.title=Отладочный журнал Enigmail
error.photoPathNotReadable=Ðе удаётÑÑ Ð¿Ñ€Ð¾Ñ‡ÐµÑть путь к фото '%S'
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=ÐžÐ±Ð½Ð¾Ð²Ð»Ñ‘Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Enigmail Ñодержит значительные Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² хранении параметров. Мы поÑтаралиÑÑŒ перенеÑти ваши прежние наÑтройки в новую верÑию, однако кое-что могло потерÑтьÑÑ, так как мы не можем предуÑмотреть автоматичеÑкий Ð¿ÐµÑ€ÐµÐ½Ð¾Ñ Ð²Ñех вариантов наÑтроек. ПожалуйÑта, перепроверьте обновлённые параметры и наÑтройки ÑобÑтвенноручно.
enigmailCommon.checkPreferences=Перейти к наÑтройкам ...
usingVersion=ИÑпользуетÑÑ Enigmail верÑии %S
usingAgent=ИÑпользуетÑÑ %S %S Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ раÑшифровки
agentError=ОШИБКÐ: ошибка доÑтупа к Ñлужбе Enigmime!
accessError=Ошибка доÑтупа к Ñлужбе Enigmail
onlyGPG=Создание ключей возможно только при иÑпользовании GnuPG (не PGP)!
keygenComplete=Создание ключа завершено! Ð”Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи будет иÑпользоватьÑÑ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ <%S>.
revokeCertRecommended=РекомендуетÑÑ Ñоздать Ñертификат отзыва Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ ключа. Ðтот Ñертификат может быть иÑпользован Ð´Ð»Ñ Ð¾Ð±ÑŒÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ ключа недейÑтвительным в Ñлучае, еÑли ваш Ñекретный ключ утерÑн или Ñкомпрометирован. Ð’Ñ‹ хотите Ñоздать Ñертификат отзыва ÑейчаÑ?
keyMan.button.generateCert=&Генерировать Ñертификат
genCompleteNoSign=Создание ключей завершено!
genGoing=Ключ уже ÑоздаетÑÑ!
passNoMatch=Введённые пароли не Ñовпадают, попробуйте Ñнова
passCheckBox=ПожалуйÑта, отметьте Ñту опцию, еÑли не хотите указывать пароль Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð°
passUserName=Укажите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñтой учетной запиÑи
passSpaceProblem=Ð’ Ñилу техничеÑких ограничений ÐºÐ»ÑŽÑ‡ÐµÐ²Ð°Ñ Ñ„Ñ€Ð°Ð·Ð° не может начинатьÑÑ Ð¸Ð»Ð¸ заканчиватьÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»ÑŒÐ½Ñ‹Ð¼ Ñимволом.
changePassFailed=Смена Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð½Ðµ удалаÑÑŒ.
keyConfirm=Создать открытые и закрытые ключи Ð´Ð»Ñ '%S'?
keyMan.button.generateKey=&Генерировать ключ
keyAbort=Прервать генерацию ключа?
keyMan.button.generateKeyAbort=&Прервать генерацию ключа
keyMan.button.generateKeyContinue=П&родолжить генерацию ключа
expiryTooLong=Ð’Ñ‹ не можете Ñоздать ключ Ñрок дейÑÑ‚Ð²Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ больше чем 100 лет.
expiryTooLongShorter=Ðевозможно Ñоздать ключ, Ñрок дейÑÑ‚Ð²Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ иÑтекает более чем через 90 лет.
expiryTooShort=Ваш ключ должен быть дейÑтвителен по меньшей мере один день.
dsaSizeLimit=МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° ключей DSA ÑоÑтавлÑет 3072 бит – длина ключа будет уменьшена в ÑоответÑтвии Ñ Ñтим ограничением.
keyGenFailed=Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° не удалаÑÑŒ. За подробноÑÑ‚Ñми обратитеÑÑŒ к конÑоли Enigmail (меню Enigmail > Отладка Enigmail).
setKeyExpirationDateFailed=Дата Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ñрока дейÑÑ‚Ð²Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ‚ÑŒ нельзÑ.
# Strings in enigmailMessengerOverlay.js
securityInfo=Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ защите Enigmail\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Ð’Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Ñто Ñообщение не были зашифрованы или Ñнабжены цифровой подпиÑью*
possiblyPgpMime=Сообщение, возможно зашифровано или подпиÑано Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ PGP/MIME; нажмите кнопку \\"РаÑшифровать\\" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸
noDecrypted=Ðет раÑшифрованных Ñообщений Ð´Ð»Ñ ÑохранениÑ!\nВоÑпользуйтеÑÑŒ командой \\"Сохранить\\" из меню \\"Файл\\"
noMessage=Ðет Ñообщений Ð´Ð»Ñ ÑохранениÑ!
useButton=Ðажмите кнопку раÑшифровки, чтобы раÑшифровать Ñообщение
saveHeader=Enigmail: Сохранение раÑшифрованного ÑообщениÑ
saveAttachmentHeader=Enigmail: Сохранение раÑшифрованного вложениÑ
noTempDir=Ðевозможно найти каталог временных файлов, доÑтупный Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи.\nПожалуйÑта, задайте его Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ переменной Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ TEMP.
attachmentPgpKey=Открываемое вами вложение \\"%S\\" кажетÑÑ ÑвлÑетÑÑ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ ключа OpenPGP.\n\nÐажмите \\"Импорт\\", чтобы импортировать ÑодержащиеÑÑ Ð² нем ключи, или \\"ПроÑмотреть\\", чтобы проÑмотреть Ñодержимое файла в окне браузера.
beginPgpPart=********* *СЛЕДУЮЩÐЯ ЧÐСТЬ СООБЩЕÐИЯ ЗÐШИФРОВÐÐРили ЗÐЩИЩЕÐРЦИФРОВОЙ ПОДПИСЬЮ* *********
endPgpPart=********** *КОÐЕЦ ЗÐЩИЩЕÐÐОЙ ЧÐСТИ СООБЩЕÐИЯ* **********
notePartEncrypted=Enigmail: *ЧаÑти Ñтого ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐЕ были зашифрованы или подпиÑаны*
noteCutMessage=Enigmail: *Ð’ Ñообщении найдено множеÑтво блоков -- раÑшифровка/Ð²ÐµÑ€Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð½Ñ‹*
decryptOkNoSig=Предупреждение\n\nРаÑшифровка прошла уÑпешно, но корректно проверить цифровую подпиÑÑŒ не удалоÑÑŒ.
msgOvl.button.contAnyway=&Ð’ÑÑ‘ равно продолжить
signature.verifiedOK=ПодпиÑÑŒ Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ %S была уÑпешно проверена
signature.verifyFailed=Ðе удалоÑÑŒ проверить подпиÑÑŒ Ð´Ð»Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ %S
attachment.noMatchToSignature=Ðе удалоÑÑŒ ÑоотнеÑти вложение '%S' Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð¼ подпиÑи
attachment.noMatchFromSignature=Ðе удалоÑÑŒ ÑоотнеÑти файл подпиÑи '%S' Ñ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð¸ÐµÐ¼
keysToExport=Выберите ключи OpenPGP Ð´Ð»Ñ Ð²Ñтавки
keysToUse=Выбрать ключ(и) OpenPGP Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ %S
pubKey=Открытый ключ Ð´Ð»Ñ %S\n
windowLocked=Окно ÑоÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñообщений заблокировано; отправка отменена
sendUnencrypted=Ошибка инициализации Enigmail.\nОтправить незашифрованную почту?
composeSpecifyEmail=Укажите оÑновной Ð°Ð´Ñ€ÐµÑ Ñлектронной почты, который будет иÑпользоватьÑÑ Ð¿Ñ€Ð¸ выборе ключа подпиÑи Ð´Ð»Ñ Ð¸ÑходÑщей почты.\nЕÑли вы оÑтавите поле пуÑтым, Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° будет иÑпользовать Ð°Ð´Ñ€ÐµÑ Ð¸Ð· Ð¿Ð¾Ð»Ñ \\"От\\".
sendingHiddenRcpt=Ðто Ñообщение будет отправлено некоторым корреÑпондентам в виде Ñкрытой копии. ЕÑли Ñто Ñообщение зашифровано, то вы можете Ñкрыть получателей Ñкрытой копии, но пользователи некоторых продуктов (напр. PGP Corp.) не Ñмогут раÑшифровать Ñообщение. Ð£Ñ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ñ Ñто, мы рекомендуем не иÑпользовать функцию Ñкрытой копии Ð´Ð»Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… Ñообщений.
sendWithHiddenBcc=Скрыть получателей Ñкрытой копии
sendWithShownBcc=Обычное шифрование
sendingNews=ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ прервана.\n\nÐто Ñообщение не может быть зашифровано, поÑкольку в ÑпиÑке адреÑатов еÑть конференции. Отправьте Ñто Ñообщение без шифрованиÑ.
sendToNewsWarning=Предупреждение: вы ÑобираетеÑÑŒ отправить зашифрованное Ñообщение в новоÑтную конференцию.\n\nÐто не приветÑтвуетÑÑ, так как Ñто имеет ÑмыÑл только в том Ñлучае, еÑли вÑе учаÑтники конференции Ñмогут раÑшифровать Ñообщение, то еÑть Ñообщение должно быть зашифровано на ключах вÑех учаÑтников конференции. ПожалуйÑта, отправлÑйте Ñто Ñообщение только еÑли вы точно знаете что делаете.\n\nПродолжить?
hasHTML=Предупреждение:\nÐто Ñообщение может Ñодержать HTML, что может привеÑти к ошибкам во Ð²Ñ€ÐµÐ¼Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи. Чтобы избежать Ñтого в будущем, нажимайте на кнопку ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ ответа на ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ ÑƒÐ´ÐµÑ€Ð¶Ð°Ð½Ð¸ÐµÐ¼ SHIFT, еÑли хотите Ñоздать пиÑьмо Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñью.\nЕÑли вы Ñтавите цифровую подпиÑÑŒ по умолчанию, уберите флажок \\"СоÑтавлÑть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² формате HTML\\", чтобы отключить иÑпользование HTML при Ñоздании Ñообщений Ð´Ð»Ñ Ñтой учетной запиÑи.
strippingHTML=Сообщение Ñодержит HTML-форматирование, которое будет потерÑно при преобразовании в обычный текÑÑ‚ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи. Продолжить?
msgCompose.button.sendAnyway=&Ð’ÑÑ‘ равно отправить Ñообщение
attachWarning=Ð’Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð² Ñто Ñообщение не ÑвлÑÑŽÑ‚ÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸, поÑтому их Ð½ÐµÐ»ÑŒÐ·Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ. Чтобы зашифровать их, Ñохраните их Ñначала как локальные файлы, а затем уже вложите в Ñообщение. Ð’Ñ‹ хотите вÑÑ‘ равно отправить Ñто Ñообщение?
quotedPrintableWarn=Ð’Ñ‹ решили иÑпользовать кодирование \\"quoted-printable\\" в иÑходÑщих ÑообщениÑÑ…. Ðто может привеÑти к ошибкам во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ñшифровки и/или проверки подпиÑи.\nОтключить иÑпользование ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ \\"quoted-printable\\"?
minimalLineWrapping=Ð’Ñ‹ решили выравнивать Ñтроки по %S Ñимволов в ширину. Ð”Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð³Ð¾ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸/или подпиÑÑ‹Ð²Ð°Ð½Ð¸Ñ Ñто значение должно быть не менее 68.\nУвеличить ширину Ñтрок до 68 Ñимволов?
warning=Предупреждение
signIconClicked=Ð’Ñ‹ ÑамоÑтоÑтельно указали, Ñтавить ли подпиÑÑŒ на Ñто Ñообщение. ПоÑтому иÑпользование подпиÑи больше не завиÑит от иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ.
pgpMime_sMime.dlg.text=Ð’Ñ‹ включили поддержку PGP/MIME и S/MIME. К Ñожалению, невозможно обеÑпечить одновременную работу обоих протоколов. ПожалуйÑта, выберите, хотите ли вы иÑпользовать PGP/MIME или S/MIME.
pgpMime_sMime.dlg.pgpMime.button=ИÑпользовать &PGP/MIME
pgpMime_sMime.dlg.sMime.button=ИÑпользовать &S/MIME
errorKeyUnusable=ÐÐ´Ñ€ÐµÑ Ñлектронной почты или идентификатор ключа '%S' не может быть ÑоотнеÑён Ñ Ð´ÐµÐ¹Ñтвительным, не иÑтекшим ключом OpenPGP.\nПожалуйÑта, убедитеÑÑŒ, что у Ð²Ð°Ñ ÐµÑть дейÑтвительный ключ OpenPGP, и что ваши параметры учётной запиÑи указывают на Ñтот ключ.
# note: should end with double newline:
sendAborted=ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ прервана.\n\n
statPGPMIME=PGP/MIME
statSigned=ПОДПИСÐÐО
statEncrypted=ЗÐШИФРОВÐÐО
statPlain=ÐЕПОДПИСÐÐО и ÐЕЗÐШИФРОВÐÐО
offlineSave=Сохранить Ñообщение %S в %S папки \\"ИÑходÑщие\\"?
onlineSend=Отправить Ñообщение %S к %S?
encryptKeysNote=Замечание: Ñообщение зашифровано Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñледующего идентификатора пользователÑ/ключа: %S
signFailed=Ошибка Enigmail; Ошибка ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ подпиÑи; отправить незашифрованное Ñообщение?
msgCompose.button.sendUnencrypted=&Отправить незашифрованное Ñообщение
recipientsSelectionHdr=Выберите адреÑатов зашифрованных Ñообщений
configureNow=Ð’Ñ‹ ещё не наÑтроили защиту Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Enigmail Ð´Ð»Ñ Ñтой учетной запиÑи. Сделать Ñто ÑейчаÑ?
# should not be used anymore:
encryptYes=Сообщение будет зашифровано
encryptNo=Сообщение не будет зашифровано
# should not be used anymore:
signYes=Сообщение будет подпиÑано
signNo=Сообщение не будет подпиÑано
# should not be used anymore
pgpmimeYes=ИÑпользуетÑÑ PGP/MIME
pgpmimeNo=ИÑпользуетÑÑ Ð²ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ PGP
rulesConflict=Обнаружены конфликтующие правила Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ \n%S \n\nОтправить Ñообщение Ñ Ñтими уÑтановками?
msgCompose.button.configure=&ÐаÑтроить
msgCompose.button.send=&Отправить Ñообщение
msgCompose.button.save=&Сохранить Ñообщение
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ подпиÑи необходим открытый ключ %S
clickDecrypt=; щелкните по кнопке раÑшифровки
clickDecryptRetry=; щелкните по кнопке раÑшифровки, чтобы попробовать Ñнова
msgPart=ЧаÑть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ %S
msgSigned=подпиÑана
msgEncrypted=зашифрована
msgSignedAndEnc=подпиÑана и зашифрована
unverifiedSig=ÐÐµÐ¿Ñ€Ð¾Ð²ÐµÑ€ÐµÐ½Ð½Ð°Ñ Ñ†Ð¸Ñ„Ñ€Ð¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ
incompleteDecrypt=РаÑшифровка не завершена
needKey=Ошибка - Ð´Ð»Ñ Ñ€Ð°Ñшифровки нужен закрытый ключ
failedDecrypt=Ошибка - ошибка раÑшифровки
badPhrase=Ошибка - неверный пароль
failedDecryptVerify=Ошибка - ошибка раÑшифровки или проверки дейÑтвительноÑти
viewInfo=; выберите \\"Вид\\" > \\"Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ защите ÑообщениÑ\\"
decryptedMsg=РаÑшифрованное Ñообщение
decryptedMsgWithFormatError=РаÑшифрованное Ñообщение (воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ Ñлектронного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² формате PGP, вероÑтно повреждённого уÑтаревшей верÑией Ñервера Exchange, форматирование текÑта может быть нарушено)
locateGpg=Ðайти программу GnuPG
invalidGpgPath=ИÑполнÑемый файл GnuPG не найден по указанному пути. ПоÑтому Enigmail будет отключён до тех пор, пока вы не измените путь или пока вы не перезапуÑтите приложение.
warningsAreReset=Ð’Ñе наÑтройки Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ð¹ были Ñброшены.
prefs.gpgFound=GnuPG был найден в каталоге %S
prefs.gpgNotFound=Ðе могу найти GnuPG
prefs.warnAskNever=Предупреждение: Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ Ñтой опции приведёт к отправке незашифрованных Ñообщений без выдачи каких-либо уведомлений в Ñлучае, еÑли Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из получателей нет ключа -- Enigmail не проинформирует ваÑ, еÑли Ñто ÑлучитÑÑ!
prefs.warnIdleTimeForUnknownAgent=Ошибка Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº gpg-agent. Возможно, вы иÑпользуете Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð°Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð¹ защиты, например gnome-keyring или seahorse-agent. К Ñожалению, Enigmail не может управлÑть временем ввода Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ приложениÑ, поÑтому ÑоответÑтвующие наÑтройки не будут применены.
prefEnigmail.oneKeyserverOnly=Ошибка - вы можете указать только один Ñервер ключей Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкой загрузки недоÑтающих ключей OpenPGP.
enterAdminPin=ПожалуйÑта введите PIN-код админиÑтратора вашей Ñмарт-карты
enterCardPin=ПожалуйÑта введите PIN-код вашей Ñмарт-карты
notInit=Ошибка - Ñлужба Enigmail ещё не инициализирована
badCommand=Ошибка - ошибка шифрованиÑ
cmdLine=ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ Ñтрока и вывод:
notRequired=Ошибка - шифрование не требуетÑÑ
notComplete=Ошибка - ещё идет Ñоздание ключей
invalidEmail=Ошибка - недейÑтвительный адреÑ(а) Ñлектронной почты
noPassphrase=Ошибка - не указан пароль
noPGPblock=Ошибка - не найден дейÑтвительный защищённый блок данных OpenPGP
unverifiedReply=ЧаÑть ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ñ Ð¾Ñ‚Ñтупом была изменена (возможно, цитата из предыдущего пиÑьма)
sigMismatch=Ошибка - неÑовпадение подпиÑи
cantImport=Ошибка импорта открытого ключа\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Смарт-карта %S, Ð½Ð°Ð¹Ð´ÐµÐ½Ð½Ð°Ñ Ð² вашем Ñчитывателе, не может быть иÑпользована Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ Ñтого ÑообщениÑ.\nПожалуйÑта, вÑтавьте вашу Ñмарт-карту %S и повторите операцию.
sc.insertCard=Ð”Ð»Ñ Ñтой операции требуетÑÑ Ð²Ð°ÑˆÐ° Ñмарт-карта %S.\nПожалуйÑта, вÑтавьте требуемую Ñмарт-карту и повторите операцию.
sc.removeCard=Ð”Ð»Ñ Ñтой операции требуетÑÑ, чтобы Ñмарт-карты в Ñчитывателе не было.\nПожалуйÑта, выньте вашу Ñмарт-карту и повторите операцию.
sc.noCardAvailable=При обращении к Ñчитывателю Ñмарт-карта не была найдена\nÐ’Ñтавьте Ñмарт-карту и попытайтеÑÑŒ Ñнова.
sc.noReaderAvailable=Считыватель Ñмарт-карт не найден\nПодÑоедините Ñчитыватель Ñмарт-карт, вÑтавьте в него Ñмарт-карту и попытайтеÑÑŒ Ñнова.
gpgNotFound=Ðевозможно найти программу GnuPG '%S'.\nУбедитеÑÑŒ, что в наÑтройках Enigmail указан правильный путь к иÑполнÑемому файлу GnuPG.
gpgNotInPath=Ðевозможно найти GnuPG, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½ÑƒÑŽ PATH.\nУбедитеÑÑŒ, что в наÑтройках Enigmail указан правильный путь к иÑполнÑемому файлу GnuPG.
gpgAgentNotStarted=Ошибка запуÑка программы gpg-agent, необходимой Ð´Ð»Ñ ÑƒÑтановленного у Ð²Ð°Ñ GnuPG верÑии %S.
prefUntrusted=ÐЕТ ДОВЕРИЯ
prefRevoked=КЛЮЧ ОТОЗВÐÐ
prefExpiredKey=КЛЮЧ ИСТÐК
prefExpired=ИСТÐК
prefGood=Ð¥Ð¾Ñ€Ð¾ÑˆÐ°Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑŒ от %S
prefBad=ПЛОХÐЯ подпиÑÑŒ от %S
failCancel=Ошибка - получение ключа отменено пользователем
failNoServer=Ошибка - не указан Ñервер ключей
failNoID=Ошибка - не указан идентификатор Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°
failKeyExtract=Ошибка - ошибка Ð¸Ð·Ð²Ð»ÐµÑ‡ÐµÐ½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð°
notFirstBlock=Ошибка - первый блок OpenPGP не ÑвлÑетÑÑ Ð±Ð»Ð¾ÐºÐ¾Ð¼ открытого ключа
importKeyConfirm=Импортировать открытые ключ(и), вложенные в Ñообщение?
failKeyImport=Ошибка - ошибка импорта ключа
fileWriteFailed=Ошибка при запиÑи файла %S
importKey=Импорт открытого ключа %S Ñ Ñервера ключей:
uploadKey=Отправить открытый ключ %S на Ñервер ключей:
keyId=Идентификатор ключа
keyAndSigDate=Идентификатор ключа: 0x%S / ПодпиÑан: %S
keyFpr=Отпечаток ключа: %S
noEmailProvided=Ð’Ñ‹ не указали Ð°Ð´Ñ€ÐµÑ Ñл. почты!
keyAlreadySigned=Ключ уже подпиÑан, вы не можете подпиÑать его дважды.
gnupg.invalidKey.desc=Ключ %S не найден или недейÑтвителен. (Суб-)ключ возможно иÑтёк.
selKeyExpired=Ñрок дейÑÑ‚Ð²Ð¸Ñ Ð¸Ñтек %S
createdHeader=Создана
atLeastOneKey=Ключ не выбран! Вам нужно выбрать Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один ключ.
fewerKeysThanRecipients=КоличеÑтво выбранных вами ключей меньше количеÑтва получателей. Ð’Ñ‹ уверены что ÑпиÑок ключей Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»Ð¾Ð½?
userSel.button.goBack=Выбрать ещё ключи
userSel.secretKeySel.title=Выберите закрытый ключ OpenPGP Ð´Ð»Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñи ваших Ñообщений
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Отправить позже
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=Примечание: PGP/MIME поддерживаетÑÑ Ð½Ðµ вÑеми почтовыми клиентами! Ð”Ð»Ñ Windows Ñто Mozilla/Thunderbird, Sylpheed, Pegasus и Mulberry; Ð´Ð»Ñ Linux/UNIX и Mac OS X - наиболее популÑрные почтовые программы. ЕÑли вы не уверены, что адреÑат пользуетÑÑ Ð¾Ð´Ð½Ð¸Ð¼ из перечиÑленных клиентов, выберите вариант %S.
first=первый
second=второй
# Strings used in am-enigprefs.js
encryptKeyHeader=Выберите OpenPGP-ключ Ð´Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ
identityName=Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Ð’Ñ‹ выбрали иÑпользование шифрованиÑ, но не выбрали ключ. Ð”Ð»Ñ ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñ‡Ñ‚Ð¾Ð²Ñ‹Ñ… Ñообщений поÑылаемых на %S, необходимо выбрать один или неÑколько дейÑтвительных ключей из ÑпиÑка ключей. Ð’Ñ‹ хотите отключить шифрование Ð´Ð»Ñ %S?
noKeyToUse=(нет - нет шифрованиÑ)
noEmptyRule=Правило не может быть пуÑтым! Укажите почтовый Ð°Ð´Ñ€ÐµÑ Ð² ÑоответÑтвующем поле правила.
invalidAddress=Ð’Ñ‹ ввели адреÑ(а) Ñлектронной почты в неверном формате. ÐÐµÐ»ÑŒÐ·Ñ Ð²Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ имена адреÑатов. Можно вводить только их почтовые адреÑа. Пример: \nÐеправильно: Some Name \nПравильно: some.name@address.net
noCurlyBrackets=Фигурные Ñкобки {} имеют Ñпециальное назначение и не могут быть иÑпользованы в адреÑах Ñл. почты. ЕÑли вы хотите изменить работу данного правила, иÑпользуйте наÑтройку 'Применить правило еÑли почтовый Ð°Ð´Ñ€ÐµÑ Ð°Ð´Ñ€ÐµÑата'. Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подробной информации нажмите кнопку Help.
# Strings used in enigmailRulesEditor.js
never=Ðикогда
always=Ð’Ñегда
possible=Возможно
deleteRule=Удалить выделенное правило?
nextRcpt=(Следующий получатель)
negateRule=Ðет
addKeyToRule=Добавить ключ %S (%S) к правилу Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡Ð°Ñ‚ÐµÐ»Ñ
# Strings used in enigmailSearchKey.js
needOnline=Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ð²Ð°Ð¼Ð¸ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна в автономном режиме. Перейдите в режим Ð¿Ð¾ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº Ñети и попробуйте Ñнова.
protocolNotSupported=Выбранный вами протокол '%S://' не поддерживает закачку ключей OpenPGP.
gpgkeysDisabled=Возможно поможет включение опции 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Ðе могу ÑоединитÑÑ Ñ Ñервером ключей %S.
keyDownloadFailed=Ðе удалоÑÑŒ Ñкачать ключ Ñ Ñервера ключей. Сообщение: \n%S
internalError=Произошла внутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ°. Ключи не могут быть Ñкачаны или импортированы.
noKeyFound=Ðевозможно найти ни одного ключа ÑоответÑтвующего заданным критериÑм поиÑка. Заметьте, что идентификатор ключа должен иметь Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ \\"0x\\" (напр. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Ðе удалоÑÑŒ найти или Ñкачать ключ Ñ Ñервера ключей: gpgkeys_%S не может быть выполнен.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Ðе удалоÑÑŒ уÑтановить уровень Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ð° к ключу
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Ðе удалоÑÑŒ подпиÑать ключ
alreadySigned.label=Примечание: ключ %S уже подпиÑан выбранным закрытым ключом.
partlySigned.label=Примечание: некоторые ID ключа %S уже были подпиÑаны выбранным Ñекретным ключом.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Загрузка ключей, пожалуйÑта подождите ...
keyValid.unknown=неизвеÑтен
keyValid.invalid=недейÑтвителен
keyValid.disabled=отключен
keyValid.revoked=отозван
keyValid.expired=проÑрочен
keyValid.noSubkey=неверный подключ
keyTrust.untrusted=не доверÑÑŽ
keyTrust.marginal=минимальное
keyTrust.full=доверÑÑŽ
keyTrust.ultimate=абÑолютное
keyTrust.group=(группа)
keyType.public=pub
keyType.publicAndSec=pub/sec
keyMan.enableKey=Включить ключ
keyMan.disableKey=Отключить ключ
userAtt.photo=Ðтрибут Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (картинка JPEG)
asciiArmorFile=ASCII Защищённые файлы (*.asc)
importKeyFile=Импорт файла ключа OpenPGP
gnupgFile=Файлы GnuPG
saveRevokeCertAs=Создать и Ñохранить Ñертификат отзыва
revokeCertOK=Сертификат отзыва был уÑпешно Ñоздан. Ð’Ñ‹ можете иÑпользовать его, чтобы отозвать ваш открытый ключ, еÑли, например, вы потерÑли Ñвой закрытый ключ. Ð”Ð»Ñ Ð±Ð¾Ð»ÑŒÑˆÐµÐ¹ безопаÑноÑти перенеÑите его на ноÑитель (например на CD или диÑкету) и храните в надежном меÑте. ЕÑли кто-либо ещё получит доÑтуп к нему, он может Ñделать ваш ключ недейÑтвительным.
revokeCertFailed=Сертификат отзыва не может быть Ñоздан.
addUidOK=Идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ уÑпешно
addUidFailed=Добавление идентификатора Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ удалоÑÑŒ
noKeySelected=Вы должны выбрать по меньшей мере один ключ, чтобы выполнить выбранную вами операцию
exportToFile=ÐкÑпортировать открытый ключ в файл
exportSecretKey=Ð’Ñ‹ хотите включить закрытый ключ в ÑохранÑемый ключевой файл OpenPGP?
saveKeysOK=Ключи были уÑпешно Ñохранены
saveKeysFailed=Сохранение ключей не удалоÑÑŒ
importKeysFailed=Импорт ключей не удалÑÑ
enableKeyFailed=Включение/отключение ключей не удалоÑÑŒ
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=ÑкÑпортированные-открытые-ключи
defaultPubSecKeyFilename=ÑкÑпортированные-открытые-и-закрытые-ключи
noSecretKeys=Ðе найден ни один закрытый ключ. \n\nÐ’Ñ‹ хотите Ñгенерировать ÑÐµÐ¹Ñ‡Ð°Ñ Ð²Ð°Ñˆ ÑобÑтвенный ключ?
sendKeysOk=Ключи отправлены уÑпешно
sendKeysFailed=Отправка ключей не удалаÑÑŒ
receiveKeysOk=Ключ(и) были уÑпешно обновлены
receiveKeysFailed=Загрузка ключей не удалаÑÑŒ
importFromClip=Вы хотите импортировать ключ(и) из буфера обмена?
copyToClipbrdFailed=Ðе могу Ñкопировать выделенные ключ(и) в буфер обмена.
copyToClipbrdOK=Ключ(и) Ñкопированы в буфер обмена
deleteSecretKey=ПРЕДУПРЕЖДЕÐИЕ: Ð’Ñ‹ ÑобираетеÑÑŒ удалить закрытый ключ!\nЕÑли вы удалите ваш закрытый ключ, вы больше не Ñможете раÑшифровывать ни одного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ на Ñтот ключ и не Ñможете отозвать Ñвой ключ\n\nÐ’Ñ‹ дейÑтвительно хотите удалить ОБРключа, и закрытый и открытый\n'%S'?
deleteMix=ПРЕДУПРЕЖДЕÐИЕ: Ð’Ñ‹ ÑобираетеÑÑŒ удалить закрытые ключи! ЕÑли вы удалите ваш закрытый ключ, вы не Ñможете раÑшифровать ни одного ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°ÑˆÐ¸Ñ„Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð³Ð¾ на Ñтот ключ.\n\nÐ’Ñ‹ дейÑтвительно хотите удалить ОБРключа, и выбранный закрытый и открытый?
deletePubKey=Вы хотите удалить открытый ключ\n'%S'?
deleteSelectedPubKey=Ð’Ñ‹ дейÑтвительно хотите удалить открытые ключи?
deleteKeyFailed=Ключ не может быть удалён.
revokeKeyOk=Ключ был отозван. ЕÑли ваш ключ вÑе ещё доÑтупен на Ñервере ключей, рекомендуетÑÑ Ð¿Ð¾Ð´Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ его заново, чтобы другие увидели, что он был отозван.
revokeKeyFailed=Ключ не может быть отозван.
refreshAllQuestion=Вы не выбрали ни одного ключа. Вы хотите обновить ВСЕ ключи?
refreshKey.warn=Предупреждение: в завиÑимоÑти от чиÑла ключей и ÑкороÑти ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ вÑех ключей может занÑть довольно значительное времÑ!
downloadContactsKeys.warn=Внимание: в завиÑимоÑти от количеÑтва контактов и ÑкороÑти ÑоединениÑ, загрузка вÑех ключей может занÑть много времени!
downloadContactsKeys.importFrom=Импортировать контакты из адреÑной книги '%S'?
keyMan.button.exportSecKey=ÐкÑпорт &закрытых ключей
keyMan.button.exportPubKey=ÐкÑпорт только &открытых ключей
keyMan.button.import=&Импорт
keyMan.button.refreshAll=&Обновить вÑе ключи
keyMan.button.revokeKey=&Отозвать ключ
keyMan.button.skip=&ПропуÑтить ключ
keylist.noOtherUids=Других идентификаторов нет
keylist.hasOtherUids=Также извеÑтный как
keylist.noPhotos=Ðет фотографии
keylist.hasPhotos=Фотографии
keyMan.addphoto.filepicker.title=Выберите фотографию Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ
keyMan.addphoto.warnLargeFile=Размер выбранного вами файла превышает 25 КБ.\nÐе рекомендуетÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»Ñть очень большие файлы, так как Ñто приводит к Ñозданию очень больших ключей.
keyMan.addphoto.noJpegFile=Выбранный файл не похож на файл JPEG. ПожалуйÑта, выберите другой файл.
keyMan.addphoto.failed=Ðе удалоÑÑŒ добавить фото.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Смена первичного идентификатора Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ðµ удалаÑÑŒ
changePrimUidOK=Первичный идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ ÑƒÑпешно Ñменён
deleteUidFailed=Удаление идентификатора Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %S не удалоÑÑŒ
deleteUidOK=Идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %S уÑпешно удалён
revokeUidFailed=Отзыв идентификатора Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %S не удалÑÑ
revokeUidOK=Идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %S был отозван уÑпешно. ЕÑли ваш ключ вÑе ещё доÑтупен на Ñервере ключей, рекомендуетÑÑ Ð¿Ð¾Ð´Ð³Ñ€ÑƒÐ·Ð¸Ñ‚ÑŒ его заново, чтобы другие увидели что он был отозван.
revokeUidQuestion=Ð’Ñ‹ дейÑтвительно хотите отозвать идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %S?
deleteUidQuestion=Ð’Ñ‹ дейÑтвительно хотите удалить идентификатор Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %S?\n\n\nЗамечание: ЕÑли вы подгрузили ваш открытый ключ на Ñервер ключей, удаление идентификатора Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ не изменит. Ð’ Ñтом Ñлучае вы должны иÑпользовать 'Отзыв идентификатора пользователÑ'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=открытый ключ
keyTypePrimary=первичный ключ
keyTypeSubkey=подключ
keyTypePair=ÐºÐ»ÑŽÑ‡ÐµÐ²Ð°Ñ Ð¿Ð°Ñ€Ð°
keyExpiryNever=не иÑтекает
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Шифрование
keyUsageSign=ПодпиÑÑŒ
keyUsageCertify=Заверение
keyUsageAuthentication=ИдентификациÑ
# Strings in enigmailGenCardKey.xul
keygen.started=Подождите, пока идет процеÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° ....
keygen.completed=Ключ Ñоздан. Ðовый идентификатор ключа: 0x%S
keygen.keyBackup=Ð ÐµÐ·ÐµÑ€Ð²Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ ÐºÐ»ÑŽÑ‡Ð° Ñохранена в %S
keygen.passRequired=Укажите пароль, еÑли вы хотите Ñоздать резервную копию ключа (она будет Ñохранена не на Ñмарт-карте).
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN-коды, введённые вами, не Ñовпадают; пожалуйÑта введите их заново
cardPin.minLength=PIN-код должен ÑоÑтоÑть по меньшей мере из %S букв или цифр
cardPin.processFailed=Ðе удалоÑÑŒ Ñменить PIN-код
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Обновление ключей, пожалуйÑта подождите ...
keyserverProgress.uploading=Загрузка ключей на Ñервер, пожалуйÑта подождите ...
keyserverTitle.refreshing=Обновление ключей
keyserverTitle.uploading=Загрузка ключей на Ñервер
# Strings in enigmailSetupWizard
passphrase.min8keys=Ваш пароль должен ÑоÑтоÑть по меньшей мере из 8 Ñимволов!
setupWizard.reallyCancel=Ð’Ñ‹ дейÑтвительно хотите закрыть маÑтер наÑтройки Enigmail?
setupWizard.invalidGpg=Выбранный файл не ÑвлÑетÑÑ Ð¸Ñполнимым файлом GnuPG. ПожалуйÑта, попробуйте другой файл.
setupWizard.specifyFile=Чтобы продолжить, вы должны по меньшей мере указать файл открытого ключа.
setupWizard.installFailed=Похоже, уÑтановка прошла неудачно. ПожалуйÑта, переуÑтановите приложение или уÑтановите GnuPG вручную и укажите её меÑтоположение Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ кнопки "Обзор".
setupWizard.downloadForbidden=Ради вашей же безопаÑноÑти мы не можем загрузить GnuPG. ПожалуйÑта, Ñкачайте его ÑамоÑтоÑтельно: http://www.gnupg.org/
setupWizard.downloadImpossible=Ð’ наÑтоÑщий момент мы не можем загрузить GnuPG. ПожалуйÑта, попробуйте ещё раз позже или же Ñкачайте его ÑамоÑтоÑтельно: http://www.gnupg.org/
setupWizard.hashSumError=МаÑтер не может проверить целоÑтноÑть загруженного файла. Возможно, он был повреждён или кем-то подменён. Ð’Ñ‹ хотите продолжить его уÑтановку?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Во Ð²Ñ€ÐµÐ¼Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ GnuPG произошла ошибка. За дополнительной информацией обращайтеÑÑŒ, пожалуйÑта, к журналу ошибок.
installGnuPG.installFailed=Во Ð²Ñ€ÐµÐ¼Ñ ÑƒÑтановки GnuPG произошла ошибка. За дополнительной информацией обращайтеÑÑŒ, пожалуйÑта, к журналу ошибок.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Ð’Ñ‹ должны ввеÑти Ð¸Ð¼Ñ Ð¸ Ð°Ð´Ñ€ÐµÑ Ñлектронной почты
addUidDlg.nameMinLengthError=Длина имени должна быть не менее 5 Ñимволов
addUidDlg.invalidEmailError=Ð’Ñ‹ должны указать корректный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты
addUidDlg.commentError=Скобки в комментариÑÑ… не разрешены
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Смарткарты OpenPGP поддерживают только ASCII Ñимволы в полÑÑ… Firstname/Name
# network error types
errorType.SecurityCertificate=Сертификат безопаÑноÑти, предоÑтавленный веб-ÑервиÑом, ÑвлÑетÑÑ Ð½ÐµÐ´ÐµÐ¹Ñтвительным.
errorType.SecurityProtocol=Протокол безопаÑноÑти, иÑпользуемый веб-ÑервиÑом, не был опознан.
errorType.Network=Произошла ошибка Ñетевого взаимодейÑтвиÑ
enigmail/lang/ru/help/ 0000775 0000000 0000000 00000000000 12667016244 0015152 5 ustar 00root root 0000000 0000000 enigmail/lang/ru/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017510 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/ru/help/editRcptRule.html 0000664 0000000 0000000 00000011557 12667016244 0020457 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/ru/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020025 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/ru/help/messenger.html 0000664 0000000 0000000 00000010121 12667016244 0020023 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/ru/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020341 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/ru/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020506 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/sk/ 0000775 0000000 0000000 00000000000 12667016244 0014211 5 ustar 00root root 0000000 0000000 enigmail/lang/sk/am-enigprefs.properties 0000664 0000000 0000000 00000000121 12667016244 0020676 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP Security
enigmail/lang/sk/enigmail.dtd 0000664 0000000 0000000 00000104032 12667016244 0016473 0 ustar 00root root 0000000 0000000
Upozornenie: tvorba kľúÄa môže trvaÅ¥ niekoľko minút. NeukonÄujte aplikáciu, pokiaľ prebieha vytváranie kľúÄa. Proces sa urýchli a zlepÅ¡Ã, pokiaľ budete aktÃvne pracovaÅ¥ s prehliadaÄom a Äasto pristupovaÅ¥ k harddisku. Na to, že je kÄ¾ÃºÄ vytvorený, budete upozornený/á.">
' je nesprávne">
Upozornenie: Vytváranie kľúÄa môže trvaÅ¥ niekoľko minút. NeukonÄujte aplikáciu, pokiaľ prebieha vytváranie kľúÄov. Na to, že je kÄ¾ÃºÄ vytvorený, budete upozornený/a.">
Upozornenie: Enigmail bude vždy overovaÅ¥ podpisy v e-mailoch vÅ¡etkých identÃt a úÄtov bez ohľadu na to, Äi je to v nich povolené">
VÄaka Vám za použÃvanie Enigmail.">
enigmail/lang/sk/enigmail.properties 0000664 0000000 0000000 00000066210 12667016244 0020121 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Upozornenie Enigmail
enigConfirm=Potvrdenie Enigmail
enigError=Chyba Enigmail
enigPrompt=Pripomenutie Enigmail
dlgYes=Ãn&o
dlgNo=&Nie
dlgKeepSetting=PamätaÅ¥ si odpoveÄ a nepýtaÅ¥ sa znova
dlgNoPrompt=Nezobrazovať znova tento dialóg
dlg.button.delete=&Odstrániť/Zmazať
dlg.button.cancel=&Späť
dlg.button.close=&Zatvoriť
dlg.button.continue=Pok&raÄovaÅ¥
dlg.button.skip=&PreskoÄiÅ¥
dlg.button.view=&Zobraziť
repeatPrefix=\n\nToto upozornenie sa zopakuje %S
repeatSuffixSingular=krát.
repeatSuffixPlural=krát.
noRepeat=\n\nToto upozornenie sa už nezopakuje, pokiaľ nebudete aktualizovať Enigmail.
pgpNotSupported=Zdá sa, že použÃvate Enigmail spoloÄne s PGP 6.x\n\nPGP 6.x má bohužiaľ niekoľko nedostatkov, kvôli ktorým nie je možné zaistiÅ¥ správny chod rozÅ¡Ãrenia Enigmail. Preto taktiež Enigmail nepodporuje viacero PGP 6.x; radÅ¡ej prosÃm použÃvajte GnuPG (GPG).\n\nAk potrebujete pomoc s prechodom na GnuPG, preÄÃtajte si sekciu Help na domovskej stránke Enigmailu.
passphraseCleared=Heslo bolo zmazané.
noPhotoAvailable=Foto nie je k dispozÃcii
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Cesta k fotke '%S' nie je Äitateľná
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Táto nová verzia Enigmail ma veľa podstatných zmien v nastaveniach. Pokúsili sme sa previesÅ¥ staré nastavenia do tejto novej verzia. Akokoľvek, nemôžme byt pripravený na vÅ¡etky prÃpady. ProsÃm skontrolujte výsledok prevodu nových nastavenÃ.
enigmailCommon.checkPreferences=Skontroluj Nastavenia...
usingVersion=Spustené rozÅ¡Ãrenie Enigmail verzie %S
usingAgent=K šifrovaniu a dešifrovaniu je použité GnuPG, ktoré je umiestené v ceste %S %S
agentError=CHYBA: zlyhal prÃstup k službe Enigmime!
accessError=Chyba v prÃstupe k službám rozÅ¡Ãrenia Enigmail
onlyGPG=Generovanie kľúÄov je možné iba s GnuPG (nie s PGP)!
keygenComplete=Generovanie kľúÄov je dokonÄené! Identita <%S> bude použitá k podpisovaniu.
revokeCertRecommended=Veľmi Vám doporuÄujeme vytvoriÅ¥ revokaÄný certifikát pre Váš kľúÄ. Tento certifikát môže byÅ¥ použitý pre zneplatnenie kľúÄa, napr. keÄ súkromný kÄ¾ÃºÄ stratÃte alebo bude kÄ¾ÃºÄ kompromitovaný. Prajete si teraz vytvoriÅ¥ revokaÄný certifikát?
keyMan.button.generateCert=&Generovanie certifikátu
genCompleteNoSign=Generovanie kľúÄa je dokonÄené!
genGoing=Generovanie kľúÄa už prebieha!
passNoMatch=Heslo nesúhlasÃ, zadajte ho prosÃm znovu
passCheckBox=Prekontrolujte zaÅ¡krtnite, ak nastavujete kÄ¾ÃºÄ bez hesla
passUserName=ProsÃm Å¡pecifikujte meno užÃvateľa pre túto identitu
passSpaceProblem=Z technických dôvodov, VaÅ¡e heslo nemôže zaÄÃnaÅ¥, ani konÄiÅ¥ medzerou.
changePassFailed=Zmena hesla zlyhala.
keyConfirm=VytvoriÅ¥ verejný a súkromný kÄ¾ÃºÄ pre '%S'?
keyMan.button.generateKey=&VytvoriÅ¥ kľúÄ
keyAbort=PreruÅ¡iÅ¥ vytváranie kľúÄa?
keyMan.button.generateKeyAbort=&PreruÅ¡iÅ¥ vytváranie kľúÄa
keyMan.button.generateKeyContinue=&PokraÄovaÅ¥ vo vytváranà kľúÄa
expiryTooLong=Nemôžete vytváraÅ¥ kľúÄ, ktorý expiruje viac než za 100 rokov.
expiryTooLongShorter=Nemôžte vytvoriÅ¥ kľúÄ, ktorý expiruje za viac ako 90 rokov.
expiryTooShort=Váš kÄ¾ÃºÄ musà byÅ¥ platný minimálne jeden deň.
dsaSizeLimit=DSA podpisové kľúÄe sú limitované na 3072 bitov. VeľkosÅ¥ kľúÄa bude preto zredukovaná.
keyGenFailed=Vytvorenie kľúÄa zlyhalo. Podrobnosti zistÃte v konzole Enigmail (ponuka Enigmail > Ladenie Enigmail).
setKeyExpirationDateFailed=Doba expirácie sa nemôže zmeniť
# Strings in enigmailMessengerOverlay.js
securityInfo=Informácie zabezpeÄenia Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *PrÃlohy k tejto správe neboli podpÃsané alebo zaÅ¡ifrované*\n\n
possiblyPgpMime=Táto správa je možno zaÅ¡ifrovaná alebo podpÃsaná PGP/MIME; overÃte si to po kliknutà na tlaÄÃtko "DeÅ¡ifrovaÅ¥"
noDecrypted=Žiadna deÅ¡ifrovaná správa na uloženie!\nPoužite prÃkaz "UložiÅ¥" z menu Súbor
noMessage=Žiadna správa k uloženiu
useButton=K rozÅ¡ifrovaniu správy prosÃm kliknite na tlaÄidlo "DeÅ¡ifrovaÅ¥"
saveHeader=Enigmail: Uložiť dešifrovanú správu
saveAttachmentHeader=Enigmail: UložiÅ¥ deÅ¡ifrovanú prÃlohu
noTempDir=Nemôžem nájsÅ¥ doÄasný adresár na zápis\nNastavte premennú prostredia systému TEMP prosÃm
attachmentPgpKey=Zdá sa, že prÃloha '%S', ktorú otvárate, je súbor s kľúÄom OpenPGP.\n\nKliknite na "Import" pre uloženie kľúÄa alebo na "ZobraziÅ¥", aby ste si pozreli obsah súboru v okne prehliadaÄa.
beginPgpPart=********* *ZAÄŒIATOK Å IFROVANEJ alebo PODPÃSANEJ ÄŒASTI* *********
endPgpPart=********** *KONIEC Å IFROVANEJ alebo PODPÃSANEJ ÄŒASTI* **********
notePartEncrypted=Enigmail: *ÄŒasÅ¥ správy nebola podpÃsaná alebo deÅ¡ifrovaná*
noteCutMessage=Enigmail: *Bol nájdený mnohonásobný blok správ -- dešifrovanie/overenie zrušené*
decryptOkNoSig=Upozornenie\n\nDešifrovanie bolo úspešné, ale podpis nemohol byť správne overený
msgOvl.button.contAnyway=&Prajete si aj tak pokraÄovaÅ¥?
signature.verifiedOK=Podpis pre prÃlohu %S bol úspeÅ¡ne overený
signature.verifyFailed=Signatúra pre prÃlohu %S nemôže byÅ¥ overená
attachment.noMatchToSignature=Nemôžem priradiÅ¥ prÃlohu '%S' k podpisovému súboru
attachment.noMatchFromSignature=Nemôžem priradiÅ¥ podpisový súbor '%S' k prÃlohe
keysToExport=VybraÅ¥ kľúÄe OpenPGP k vloženiu
keysToUse=VybraÅ¥ kľúÄ/e OpenPGP pre použitie s %S
pubKey=Verejný kÄ¾ÃºÄ pre %Sn
windowLocked=Okno vytvorenia správy je uzamknuté; odosielanie zrušené
sendUnencrypted=Chyba inicializácie Enigmailu.\nOdoslať správu nezašifrovanú?
composeSpecifyEmail=UrÄite prosÃm svoju hlavnú e-mailovú adresu, ktorá bude vybraná k podpisovaniu odchádzajúcich správ.\n Ak ju nevyplnÃte, bude pre výber kľúÄa k podpisu použitá adresa odosielateľa.
sendingHiddenRcpt=Tato správa obsahuje prÃjemcu BCC (skrytá kópia). Ak je takáto správa zaÅ¡ifrovaná, je možné skryÅ¥ BCC prÃjemcu, ale užÃvatelia niektorých produktov (napr. PGP Corp.) nebudú môcÅ¥ správu deÅ¡ifrovaÅ¥. Preto nedoporuÄujeme použÃvaÅ¥ BCC u Å¡ifrovaných správ.
sendWithHiddenBcc=SkryÅ¥ prÃjemcu BCC
sendWithShownBcc=Šifrovať normálne
sendingNews=Odosielanie Å¡ifrovanej správy zlyhalo.\n\nTáto správa nemôže byÅ¥ Å¡ifrovaná, pretože obsahuje adresáta z diskusnej skupiny. PoÅ¡lite prosÃm správu bez Å¡ifrovania.
sendToNewsWarning=Pozor: SnažÃte sa poslaÅ¥ zaÅ¡ifrovaný email do diskusnej skupiny.\n\nOd toho odradzujeme, pretože to má zmysel iba v prÃpade, že vÅ¡etci Älenovia skupiny sú schopnà email rozÅ¡ifrovaÅ¥. Správa musà byÅ¥ Å¡ifrovaná pomocou kľúÄov vÅ¡etkých úÄastnÃkov skupiny. ProsÃm, poÅ¡lite túto správu, iba pokiaľ presne viete, Äo robÃte.\n\nPokraÄovaÅ¥?
hasHTML=HTML e-mail - varovanie:\nSpráva zrejme obsahuje kód HTML, ktorý môže spôsobiÅ¥ chybu pri podpisovanà alebo Å¡ifrovanÃ. Tejto chybe pri podpisovanà emailu se vyhnete, keÄ stlaÄÃte klávesu SHIFT pri kliknutà na tlaÄÃtko 'VytvoriÅ¥ správu' alebo 'OdpovedaÅ¥'.\nAk vždy správy podpisujete, mali by ste radÅ¡ej trvale zruÅ¡iÅ¥ 'Vytváranie správ v HTML' u tohto úÄtu. (Pozn. prekl.: alebo odosielajte správy s využitÃm PGP/MIME, ak je to možné, tj. ak prÃjemca použÃva poÅ¡tového klienta, ktorý PGP/MIME podporuje.)
strippingHTML=Správa obsahuje kód HTML, ktorý bude pri konverzii do jednoduchého textu pri podpisovanà alebo šifrovanà stratený. Prajete si vykonať konverziu?
msgCompose.button.sendAnyway=UrÄite &odoslaÅ¥ správu
attachWarning=PrÃlohy k tejto správe nie sú mÃestne a nemôžu byÅ¥ teda Å¡ifrované. PrÃlohu je treba k zaÅ¡ifrovaniu najprv uložiÅ¥ ako miestny súbor. Prajete si aj tak pokraÄovaÅ¥ Äalej?
quotedPrintableWarn=Pre odosielanie správ je povolené kódovanie 'quoted-printable', to môže spôsobiť nesprávne dešifrovanie a/lebo overenie vašej správy.n Prajete si vypnúť odosielanie správ v 'quoted-printable'?
minimalLineWrapping=Máte nastavené zalamovanie riadkov na %S znakov. Pre správne šifrovanie a/alebo podpisovanie musà byť táto hodnota najmenej 68.\nPrajete si teraz zmeniť zalamovanie riadkov na 68 znakov?
warning=Pozor
signIconClicked=RuÄne ste zmenil/a podpisovanie. Pri vytváranà tejto správy preto (de)aktivácia podpisu nezávisà na (de)aktivácii Å¡ifrovania.
pgpMime_sMime.dlg.text=Povolili ste PGP/MIME a S/MIME naraz. NaneÅ¡tastie nie je možné podporovaÅ¥ oba protokoly naraz. ProsÃm oznaÄte Äi chcete použiÅ¥ PGP/MIME alebo S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Použi &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Použi &S/MIME
errorKeyUnusable=Emailová adresa alebo kÄ¾ÃºÄ ID '%S' nemôže byÅ¥ priradený k správnemu, neexpirovanému OpenPGP kľúÄu.\nProsÃm uistite sa, že máte platný OpenPGP kľúÄ, a VaÅ¡e nastavenia úÄtu smerujú k tomu kľúÄu.
# note: should end with double newline:
sendAborted=Odosielanie správy sa nepodarilo.\n\n
statPGPMIME=PGP/MIME
statSigned=PODPÃSANÃ
statEncrypted=Å IFROVANÃ
statPlain=NEPODPÃSANÃ a NEZAÅ IFROVANÃ
offlineSave=Uložiť %S správu do %S do zložky konceptov?
onlineSend=Odoslať správu %S na %S?
encryptKeysNote=Upozornenie: správa je Å¡ifrovaná s nasledujúcim užÃvateľským ID / kľúÄom: %S
signFailed=Chyba Enigmail; Šifrovanie alebo podpisovanie zlyhalo; odoslať správu nezašifrovanú?
msgCompose.button.sendUnencrypted=&Odoslať nezašifrovanú správu
recipientsSelectionHdr=UrÄiÅ¥ adresátov pre Å¡ifrovanie
configureNow=Nemáte eÅ¡te nastavené zabezpeÄenie Enigmail pre zvolenú identitu. Prajete si to teraz urobiÅ¥?
# should not be used anymore:
encryptYes=Správa bude šifrovaná
encryptNo=Správa nebude šifrovaná
# should not be used anymore:
signYes=Správa bude podpÃsaná
signNo=Správa nebude podpÃsaná
# should not be used anymore
pgpmimeYes=PGP/MIME bude použité
pgpmimeNo=Inline PGP bude použité
rulesConflict=Nájdené protichodné pravidlá pre prÃjemcov\n%S\n\nPoslaÅ¥ správu s týmito nastaveniami?
msgCompose.button.configure=&Nastavenie
msgCompose.button.send=&Odoslať správu
msgCompose.button.save=&Uložiť správu
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=K overeniu podpisu je nutný verejný kÄ¾ÃºÄ %S
clickDecrypt=; stlaÄte tlaÄÃtko DeÅ¡ifrovaÅ¥
clickDecryptRetry=; stlaÄte tlaÄÃtko DeÅ¡ifrovaÅ¥ znovu
msgPart=Časť správy %S
msgSigned=podpÃsaná
msgEncrypted=šifrovaná
msgSignedAndEnc=podpÃsaná a Å¡ifrovaná
unverifiedSig=Neoverený podpis
incompleteDecrypt=Nekompletné dešifrovanie
needKey=Chyba - pre deÅ¡ifrovanie je potrebný súkromný kľúÄ
failedDecrypt=Chyba - dešifrovanie zlyhalo
badPhrase=Chyba - zlé heslo
failedDecryptVerify=Chyba - dešifrovanie/overenie zlyhalo
viewInfo=; ZobraziÅ¥ > BezpeÄnostné informácie správy pre podrobnosti
decryptedMsg=Dešifrovaná správa
decryptedMsgWithFormatError=Dekódovaná správa (obnovený poÅ¡kodený PGP email formát pravdepodobne spôsobený starým Exchange serverom, takže výsledok nemusà byÅ¥ úplne Äitateľný)
locateGpg=Nájsť program GnuPG
invalidGpgPath=GnuPG nie je možné na uvedenej ceste spustiÅ¥. Enigmail bude preto vypnutý pokiaľ nezmenÃte cestu k GnuPG alebo pokiaľ nereÅ¡tartujete aplikáciu.
warningsAreReset=Všetky varovania boli resetované.
prefs.gpgFound=GnuPG bolo nájdené v %S
prefs.gpgNotFound=Nie je možné nájsť GnuPG
prefs.warnAskNever=Varovanie: aktiváciou tejto voľby dosiahnete to, že správy budú odosielané nezaÅ¡ifrované bez ohlásenia, ak nemáte kÄ¾ÃºÄ pre niektorého z prÃjemcov -- Enigmail Vás o tomto nebude naÄalej informovaÅ¥!
prefs.warnIdleTimeForUnknownAgent=Váš systém použÃva Å¡pecializovaný nástroj pre prácu s heslami (napr. gnome-keyring alebo seahorse-agent). Bohužiaľ Enigmail nemôže kontrolovaÅ¥ Äasový limit hesla nástroja, ktorý použÃvate. Z tohoto dôvodu prÃsluÅ¡né nastavenia v Enigmail nebudú brané v úvahu.
prefEnigmail.oneKeyserverOnly=Chyba - je možné urÄiÅ¥ iba jeden keyserver pre automatické sÅ¥ahovanie chýbajúcich kľúÄov OpenPGP.
enterAdminPin=NapÃÅ¡te prosÃm PIN správcu VaÅ¡ej SmartCard
enterCardPin=NapÃÅ¡te prosÃm svoj PIN pre SmartCard
notInit=Chyba! Služba Enigmail doposiaľ nebola inicializovaná
badCommand=Chyba - Å¡ifrovacà prÃkaz zlyhal
cmdLine=prÃkazový riadok a výstup:
notRequired=Chyba - šifrovanie nie je nutné
notComplete=Chyba - generovanie kľúÄov nie je eÅ¡te dokonÄené
invalidEmail=Chyba - chybná e-mailová adresa/y
noPassphrase=Chyba - nebolo vyplnené heslo
noPGPblock=Chyba - nenájdený platný dátový blok OpenPGP
unverifiedReply=Odsadená ÄasÅ¥ správy (odpoveÄ) bola pravdepodobne zmenená
sigMismatch=Chyba - podpis nesúhlasÃ
cantImport=Chyba pri importovanà verejného kľúÄa\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=SmartCard %S nájdená vo VaÅ¡ej ÄÃtaÄke nemôže byÅ¥ použitá pre spracovanie správy.\nVložte prosÃm SmartCard %S a opakujte operáciu.
sc.insertCard=Operácia vyžaduje VaÅ¡u SmartCard %s.\nVložte prosÃm požadovanú SmartCard a opakujte operáciu.
sc.removeCard=Operácia vyžaduje, aby v ÄÃtaÄke nebola žiadna SmartCard.\nVyberte prosÃm SmartCard a zopakujte operáciu.
sc.noCardAvailable=SmartCard v ÄÃtaÄke nebola nájdená\nVložte prosÃm SmartCard a zopakujte operáciu.
sc.noReaderAvailable=VaÅ¡a ÄÃtaÄka SmartCard nie je pristupná\nPripojte prosÃm ÄÃtaÄku SmartCard, vložte kartu a operáciu zopakujte.
gpgNotFound=Nie je možné nájsÅ¥ program GnuPG '%S'.\nPresvedÄte sa, že máte správne zadanú cestu ku spustiteľnému súboru GnuPG v nastavenà Enigmail.
gpgNotInPath=Nie je možné nájsť spustiteľný súbor GnuPG v ceste PATH.\nUistite sa, že máte správne zadanú cestu k spustiteľnému súboru GnuPG v nastavenà Enigmail.
gpgAgentNotStarted=Nie je možné spustiť program gpg-agent, ktorý potrebujete pre GnuPG vašej verzie %S.
prefUntrusted=NEDÔVERYHODNÃ
prefRevoked=REVOKOVANà KĽÚČ
prefExpiredKey=EXPIROVANà KĽÚČ
prefExpired=EXPIROVANÃ
prefGood=SPRÃVNY podpis od %S
prefBad=CHYBNÃ podpis od %S
failCancel=Chyba - prÃjem kľúÄa zruÅ¡ený užÃvateľom
failNoServer=Chyba - nie je urÄený keyserver pre prijatie kľúÄov
failNoID=Chyba - nie je urÄené ID, pre ktoré prijaÅ¥ kľúÄ
failKeyExtract=Chyba - extrakcia kľúÄa zlyhala
notFirstBlock=Chyba - prvý blok OpenPGP nie je blok verejného kľúÄa
importKeyConfirm=ImportovaÅ¥ verejný/é kľúÄ(e) obsiahnutý v správe?
failKeyImport=Chyba - import kľúÄa zlyhal
fileWriteFailed=Zlyhal zápis do súbora %S
importKey=ImportovaÅ¥ verejný kÄ¾ÃºÄ %S z keyservera:
uploadKey=PoslaÅ¥ verejný kÄ¾ÃºÄ %S na keyserver:
keyId=ID kľúÄa
keyAndSigDate=ID kľúÄa: 0x%S / PodpÃsaný: %S
keyFpr=OdtlaÄok prstu kľúÄa: %S
noEmailProvided=Nezadal/a ste e-mailovú adresu!
keyAlreadySigned=KÄ¾ÃºÄ je už podpÃsaný, nemôžete ho podpÃsaÅ¥ dvakrát.
gnupg.invalidKey.desc=KÄ¾ÃºÄ %S nebol nájdený alebo nie je platný. (Pod-)kÄ¾ÃºÄ pravdepodobne expiroval.
selKeyExpired=expirovaný %S
createdHeader=Vytvorený
atLeastOneKey=Nebol zvolený žiadny kľúÄ! Pre prijatie tohto dialógu vyberte aspoň jeden kľúÄ
fewerKeysThanRecipients=Vybrali ste menšà poÄet kľúÄov než prÃjemcov. Je naozaj zoznam kľúÄov k Å¡ifrovaniu kompletný?
userSel.button.goBack=VybraÅ¥ viacero kľúÄov
userSel.secretKeySel.title=Vyberte súkromný kÄ¾ÃºÄ OpenPGP k podpisu svojich správ
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Odošli neskôr
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=Upozornenie: PGP/MIME je podporované iba v obmedzenom poÄte e-mailových klientov! Podpora tohto Å¡tandardu je vo Windows známa iba pre Mozilla/Thunderbird, Sylpheed, Pegasus a Mulberry; v Linux/UNIXe a Mac OS X ho podporuje väÄÅ¡ina známych e-mailových klientov. Ak si nie ste istý/á, zvoľte možnosÅ¥ %S.
first=prvý
second=druhý
# Strings used in am-enigprefs.js
encryptKeyHeader=UrÄiÅ¥ kÄ¾ÃºÄ OpenPGP pre Å¡ifrovanie
identityName=Identita: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Máte aktivované Å¡ifrovanie, ale nevybral/a ste žiaden kľúÄ. K Å¡ifrovaniu správy pre %S je potrebné vybraÅ¥ jeden alebo niekoľko platných kľúÄov zo zoznamu. Chcete zakázaÅ¥ Å¡ifrovanie pre %S?
noKeyToUse=(niÄ - žiadne Å¡ifrovanie)
noEmptyRule=Pravidlo nesmie byÅ¥ prázdne! ProsÃm nastavte e-mailovú adresu v poli pravidla.
invalidAddress=Vložená/é e-mailová/é adresa/y je/sú neplatná/é. Nie je možné vkladaÅ¥ mená prÃjemcov, ale iba e-mailové adresy. Napr.:\nNeplatné: meno \nPlatné: meno@adresa.sk
noCurlyBrackets=Zložené zátvorky {} majú Å¡peciálny význam a nemôžu byÅ¥ použité v e-mailovej adrese. Ak chcete zmeniÅ¥ chovanie pre toto pravidlo, použite možnosÅ¥ 'Aplikuj pravidlo, ak adresát ...'.\nViac informácià je dostupných cez tlaÄÃtko Nápoveda.
# Strings used in enigmailRulesEditor.js
never=Nikdy
always=Vždy
possible=Možné
deleteRule=Naozaj zmazať vybrané pravidlo?
nextRcpt=(ÄŽalšà prÃjemca)
negateRule=Nie
addKeyToRule=PridaÅ¥ kÄ¾ÃºÄ %S (%S) do pravidiel pre prÃjemcov
# Strings used in enigmailSearchKey.js
needOnline=Funkcia, ktorú ste zvolil/a, nie je dostupná v offline móde. Prejdite prosÃm do online módu a skúste to znova.
protocolNotSupported=Protokol '%S://', ktorý ste zvolil/a, nie je podporovaný pre stiahnutie kľúÄov OpenPGP.
gpgkeysDisabled=Môže vám pomôcť povoliť voľbu 'extensions.enigmail.useGpgKeysTool'
noKeyserverConn=Nie je možné sa pripojiť na keyserver %S.
keyDownloadFailed=Zlyhalo stiahnutie kľúÄa z keyservera. Stavová správa:n%S
internalError=Vyskytla sa vnútorná chyba. KľúÄe nie je možné stiahnuÅ¥ alebo importovaÅ¥.
noKeyFound=Je mi ľúto, ale nemôžem nájsÅ¥ žiaden kľúÄ, ktorý by zodpovedal zadaným kritériám pre vyhľadávanie.\nVÅ¡imnite si prosÃm, že ID kľúÄa by malo zaÄÃnaÅ¥ na \\"0x\\" (napr. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Zlyhalo hľadanie alebo sÅ¥ahovanie kľúÄa z keyservera: gpgkeys_%S nie je možné spustiÅ¥.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nastavenie dôveryhodnosti zlyhalo
# Strings in enigmailSignKeyDlg.js
signKeyFailed=PodpÃsanie kľúÄa zlyhalo
alreadySigned.label=Upozornenie: kÄ¾ÃºÄ %S je už podpÃsaný oznaÄeným súkromným kľúÄom.
partlySigned.label=Poznámka: niektoré uživateľské ID kľúÄa %S sú podpÃsané zvoleným tajným kľúÄom.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=NaÄÃtanie kľúÄov, Äakajte prosÃm ...
keyValid.unknown=neznámy
keyValid.invalid=neplatný
keyValid.disabled=zakázaný
keyValid.revoked=revokovaný
keyValid.expired=expirovaný
keyValid.noSubkey=žiaden platný podkľúÄ
keyTrust.untrusted=nedôveryhodný
keyTrust.marginal=okrajovo
keyTrust.full=plne dôveryhodný
keyTrust.ultimate=absolútne dôveryhodný
keyTrust.group=(skupina)
keyType.public=verejný
keyType.publicAndSec=verejný/súkromný
keyMan.enableKey=PovoliÅ¥ kľúÄ
keyMan.disableKey=ZakázaÅ¥ kľúÄ
userAtt.photo=Fotka užÃvateľa (JPEG obrázok)
asciiArmorFile=Súbory kódované ASCII (*.asc)
importKeyFile=Importuj OpenPGP súbor kľúÄa
gnupgFile=Súbory GnuPG
saveRevokeCertAs=VytvoriÅ¥ a uložiÅ¥ revokaÄný certifikát
revokeCertOK=RevokaÄný certifikát bol úspeÅ¡ne vytvorený. Môžete ho použiÅ¥ k zneplatneniu svojho verejného kľúÄa, napr. pokiaľ svoj súkromný kÄ¾ÃºÄ stratÃte.\n\nPreneste ho prosÃm na médium (CD, disketa), ktoré môže byÅ¥ uložené niekde mimo na bezpeÄnom mieste. Ak niekto zÃska prÃstup k tomuto certifikátu, môže spôsobiÅ¥, že Váš kÄ¾ÃºÄ bude nepoužiteľný.
revokeCertFailed=RevokaÄný certifikát nemohol byÅ¥ vytvorený.
addUidOK=ÚspeÅ¡ne pridané ID užÃvateľa
addUidFailed=Zlyhalo pridanie ID užÃvateľa
noKeySelected=K vykonaniu operácie by ste mal/a vybraÅ¥ aspoň jeden kľúÄ
exportToFile=ExportovaÅ¥ verejný kÄ¾ÃºÄ do súboru
exportSecretKey=Prajete si do uloženého súboru s kľúÄom OpenPGP zahrnúť i súkromný kľúÄ?
saveKeysOK=KľúÄe boli úspeÅ¡ne uložené
saveKeysFailed=Uloženie kľúÄov zlyhalo
importKeysFailed=Importovanie kľúÄov zlyhalo
enableKeyFailed=Povolenie/zakázanie kľúÄov zlyhalo
specificPubKeyFilename=%S (0x%S)_verejný
specificPubSecKeyFilename=%S (0x%S)_verejný-súkromný
defaultPubKeyFilename=Exportované-verejné-kľúÄe
defaultPubSecKeyFilename=Exportovaný-verejný-a-súkromný-kľúÄ
noSecretKeys=Neboli nájdené žiadne súkromné kľúÄe.\n\nPrajete si teraz vytvoriÅ¥ svoj vlastný kľúÄ?
sendKeysOk=KľúÄ/e boli úspeÅ¡ne odoslané
sendKeysFailed=Odosielanie kľúÄov zlyhalo
receiveKeysOk=KľúÄ/e úspeÅ¡ne aktualizované
receiveKeysFailed=SÅ¥ahovanie kľúÄov zlyhalo
importFromClip=Prajete si importovaÅ¥ niektorý/é kľúÄ/e zo schránky?
copyToClipbrdFailed=Zvolený/é kľúÄ/e nie je možné kopÃrovaÅ¥ do schránky.
copyToClipbrdOK=KľúÄe boli nakopÃrované do schránky
deleteSecretKey=Varovanie: SnažÃte se zmazaÅ¥ súkromný kľúÄ!\nAk zmažete svoj súkromný kľúÄ, nebudete môcÅ¥ Äalej deÅ¡ifrovaÅ¥ správy zaÅ¡ifrované pre tento kÄ¾ÃºÄ ani kÄ¾ÃºÄ revokovaÅ¥.\n\nPrajete si naozaj zmazaÅ¥ oba kľúÄe (verejný i súkromný)\n'%S'?
deleteMix=POZOR: SnažÃte sa zmazaÅ¥ súkromné kľúÄe!\nAk zmažete svoj súkromný kľúÄ, nebudete môcÅ¥ Äalej deÅ¡ifrovaÅ¥ správy zaÅ¡ifrované pre tento kľúÄ.\n\nNaozaj si prajete zmazaÅ¥ Vami zvolený verejný a súkromný kľúÄ?
deletePubKey=Prajete si zmazaÅ¥ tento verejný kľúÄ\n'%S'?
deleteSelectedPubKey=Prajete si zmazaÅ¥ tieto verejné kľúÄe?
deleteKeyFailed=KÄ¾ÃºÄ nie je možné zmazaÅ¥
revokeKeyOk=KÄ¾ÃºÄ bol revokovaný. Ak je tento kÄ¾ÃºÄ dostupný taktiež na keyserveri, je doporuÄené odoslaÅ¥ ho tam znova, aby ste dal/a i ostatným uživateľom vedieÅ¥ o revokácii.
revokeKeyFailed=KÄ¾ÃºÄ nie je možné revokovaÅ¥
refreshAllQuestion=Nevybral/a ste žiaden kľúÄ. Prajete si obnoviÅ¥ zoznam vÅ¡etkých kľúÄov?
refreshKey.warn=POZOR: v závislosti na poÄte kľúÄov a rýchlosti pripojenia k internetu môže trvaÅ¥ obnovenie zoznamu vÅ¡etkých kľúÄov dlhÅ¡iu dobu!
downloadContactsKeys.warn=Upozornenie: v závislosti na poÄte kontaktov a rýchlosti vášho pripojenia, sÅ¥ahovanie vÅ¡etkých kľúÄov môže trvaÅ¥ veľmi dlho!
downloadContactsKeys.importFrom=Importovať kontakty zo zoznamu kontaktov '%S'?
keyMan.button.exportSecKey=ExportovaÅ¥ &súkromné kľúÄe
keyMan.button.exportPubKey=Ex&portovaÅ¥ iba verejné kľúÄe
keyMan.button.import=&Importovať
keyMan.button.refreshAll=&Znova naÄÃtaÅ¥ vÅ¡etky kľúÄe
keyMan.button.revokeKey=&RevokovaÅ¥ kľúÄ
keyMan.button.skip=Pre&skoÄ kľúÄ
keylist.noOtherUids=Nemá iné identity
keylist.hasOtherUids=Ďalšia identita
keylist.noPhotos=Fotografia nie je dostupná
keylist.hasPhotos=Fotografie
keyMan.addphoto.filepicker.title=Vyberte obrázok pre pridanie.
keyMan.addphoto.warnLargeFile=Súbor, ktorý ste si vybrali, je väÄšà ako 25 kB. Nie je doporuÄené pridávaÅ¥ veľmi veľké obrázky, pretože kľúÄe sú potom prÃliÅ¡ veľké.
keyMan.addphoto.noJpegFile=Vybraný súbor sa nezdá byÅ¥ súbor vo formáte JPEG. Zvoľte si prosÃm iný súbor
keyMan.addphoto.failed=Fotka nemôže byť pridaná.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Zmena Å¡tandardného ID užÃvateľa zlyhala
changePrimUidOK=Zmena Å¡tandardného ID užÃvateľa prebehla úspeÅ¡ne
deleteUidFailed=Mazanie ID užÃvateľa %S zlyhalo
deleteUidOK=ID užÃvateľa %S bolo úspeÅ¡ne zmazané
revokeUidFailed=Revokácia ID užÃvateľa %S zlyhala
revokeUidOK=ID užÃvateľa %S bolo úspeÅ¡ne revokované. Ak je tento kÄ¾ÃºÄ dostupný taktiež na keyserveri, je doporuÄené odoslaÅ¥ ho tam znova, aby sa aj ostatnà o revokácii dozvedeli.
revokeUidQuestion=UrÄite si prajete revokovaÅ¥ ID užÃvateľa %S?
deleteUidQuestion=UrÄite si prajete zmazaÅ¥ užÃvateľské ID %S?\n\nVÅ¡imnite si prosÃm: ak je váš verejný kÄ¾ÃºÄ na keyserveri, zmazanie ID užÃvateľa niÄ nezmenÃ. V tomto prÃpade zvoľte 'RevokovaÅ¥ ID užÃvateľa'.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=verejný kľúÄ
keyTypePrimary=hlavný kľúÄ
keyTypeSubkey=podkľúÄ
keyTypePair=pár kľúÄov
keyExpiryNever=nikdy
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
keyUsageEncrypt=Šifrovať
keyUsageSign=PodpÃsaÅ¥
keyUsageCertify=Potvrdiť
keyUsageAuthentication=Overovanie
# Strings in enigmailGenCardKey.xul
keygen.started=ProsÃm poÄkajte, kÄ¾ÃºÄ sa zaÄal vytváraÅ¥ ....
keygen.completed=KÄ¾ÃºÄ vytvorený. Nový kÄ¾ÃºÄ má ID: 0x%S
keygen.keyBackup=KÄ¾ÃºÄ bol zazálohovaný ako %S
keygen.passRequired=Ak chcete vytvoriÅ¥ záložnú kópiu Vášho kľúÄa mimo SmartCard, napÃÅ¡te prosÃm heslo.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN, ktoré ste zadal/a, nesúhlasÃ; napÃÅ¡te ho prosÃm znova
cardPin.minLength=PIN musà obsahovaÅ¥ najmenej %S znakov alebo ÄÃslic
cardPin.processFailed=Zmena PIN zlyhala
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Obnovujú sa kľúÄe, prosÃm Äakajte ...
keyserverProgress.uploading=Odosielanie kľúÄov, prosÃm Äakajte ...
keyserverTitle.refreshing=ObnoviÅ¥ kľúÄe
keyserverTitle.uploading=Odosielanie kľúÄa
# Strings in enigmailSetupWizard
passphrase.min8keys=Vaše heslo je kratšie než 8 znakov!
setupWizard.reallyCancel=Naozaj si prajete ukonÄiÅ¥ sprievodcu nastavenÃm Enigmail?
setupWizard.invalidGpg=Súbor, ktorý ste zvolili, nie je spustiteľný súbor GnuPG. ProsÃm, zvoľte iný súbor.
setupWizard.specifyFile=Pre pokraÄovanie musÃte zadaÅ¥ aspoň súbor s verejným kľúÄom.
setupWizard.installFailed=Vyzerá to, že inÅ¡talácia sa nepodarila. ProsÃm skúste inÅ¡taláciu znova, alebo nainÅ¡talujte GnuPG ruÄne a urÄite súbor pomocou tlaÄÃtka Prehľadávanie.
setupWizard.downloadForbidden=Pre VaÅ¡u vlastnú bezpeÄnosÅ¥, nebudeme sÅ¥ahovaÅ¥ GnuPG. ProsÃm navÅ¡tÃvte http://www.gnupg.org/ pre stiahnutie GnuPG.
setupWizard.downloadImpossible=Nie je práve možné stiahnuÅ¥ GnuPG. ProsÃm, skúste to znova, alebo navÅ¡tÃvte http://www.gnupg.org/ pre stiahnutie GnuPG.
setupWizard.hashSumError=PomocnÃk nemôže skontrolovaÅ¥ integritu stiahnutého súboru. Súbor je možno poÅ¡kodený, alebo neoficiálne upravený. Ste si istý, že chcete pokraÄovaÅ¥ v inÅ¡talácii?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Vyskytla sa chyba pri pokuse o stiahnutie GnuPG. ProsÃm skontrolujte záznam v konzole pre ÄalÅ¡ie podrobnosti.
installGnuPG.installFailed=Vyskytla sa chyba pri inÅ¡talácii GnuPG. ProsÃm skontrolujte záznam v konzole pre ÄalÅ¡ie podrobnosti.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=MusÃte vyplniÅ¥ meno a e-mailovú adresu
addUidDlg.nameMinLengthError=Meno musà mať aspoň 5 znakov
addUidDlg.invalidEmailError=MusÃte zadaÅ¥ platnú e-mailovú adresu
addUidDlg.commentError=Zátvorky nie sú v poznámkach povolené
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP Smartkarty podporujú iba ASCII znaky v Prvom mene/Mene.
# network error types
errorType.SecurityCertificate=BezpeÄnostný certifikát webovej služby nie je platný.
errorType.SecurityProtocol=BezpeÄnostný protokol použÃvaný webovou službou je neznámy.
errorType.Network=Vyskytol sa problém so sieÅ¥ovým pripojenÃm.
enigmail/lang/sk/help/ 0000775 0000000 0000000 00000000000 12667016244 0015141 5 ustar 00root root 0000000 0000000 enigmail/lang/sk/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017477 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/sk/help/editRcptRule.html 0000664 0000000 0000000 00000011557 12667016244 0020446 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/sk/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020014 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/sk/help/messenger.html 0000664 0000000 0000000 00000010121 12667016244 0020012 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/sk/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020330 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/sk/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020475 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/sl/ 0000775 0000000 0000000 00000000000 12667016244 0014212 5 ustar 00root root 0000000 0000000 enigmail/lang/sl/am-enigprefs.properties 0000664 0000000 0000000 00000000120 12667016244 0020676 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Varnost OpenPGP
enigmail/lang/sl/enigmail.dtd 0000664 0000000 0000000 00000140710 12667016244 0016477 0 ustar 00root root 0000000 0000000
Varnost OpenPGP)">
POZOR: Ustvarjanje kljuÄa lahko traja veÄ minut. V tem Äasu ne zaprite brskalnika. Ker je generator nakljunÄnih Å¡tevil odvisen od dejavnosti raÄunalnika, je priporoÄljivo npr. aktivno brskati, da bi pospeÅ¡ili ustvarjanje kljuÄa. Ko bo kljuÄ ustvarjen, boste o tem takoj obveÅ¡Äeni.">
' je neveljavno">
OPOMBA: Tvorba kljuÄa lahko traja nekaj minut. Ne zaprite aplikacije, medtem ko je tvorba kljuÄa v teku. Ko bo kljuÄ izdelan, boste o tem obveÅ¡Äeni.">
Opomba: Enigmail bo vedno preverjal podpise
e-sporoÄil za vsak raÄun ali identiteto, ne glede na to, ali je omogoÄeno ali ne">
javni kljuÄ je za druge, da vam poÅ¡ljejo Å¡ifrirana gesla. Razdelite ga lahko komerkoli.">
zasebni kljuÄ je za vas, da deÅ¡ifrirate to e-poÅ¡to in poÅ¡ljete podpisano e-poÅ¡to.
Nikomur ga ne smete dati.">
zasebni kljuÄ je za vas, da deÅ¡ifrirate to e-poÅ¡to in poÅ¡ljete podpisano e-poÅ¡to.
Nikomur ga ne smete dati.
Da zavarujete svoj javni kljuÄ, boste pozvani za geslo v naslednjih dveh pogovornih oknih.">
Geslo zaÅ¡Äiti vaÅ¡ zasebni kljuÄ in prepreÄi njegovo zlorabo.">
Za to boste pozvani za vnos gesla.">
izvozite podatke s starega raÄunalnika s Äarovnikom za varnostno kopiranje iz nastavitev Enigmail
uvozite podatke v nov raÄunalnik s tem Äarovnikom.
">
Hvala, ker uporabljate Enigmail.">
izvozite podatke s starega raÄunalnika s tem Äarovnikom
uvozite podatke v nov raÄunalnik s Äarovnikom za namestitev.
">
enigmail/lang/sl/enigmail.properties 0000664 0000000 0000000 00000111242 12667016244 0020116 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail – opozorilo
enigConfirm=Enigmail – potrditev
enigError=Enigmail – napaka
enigPrompt=Enigmail – prompt
dlgYes=&Da
dlgNo=&Ne
dlgKeepSetting=Zapomni si odgovor in ne spraÅ¡uj veÄ
dlgNoPrompt=Tega pogovornega okna ne pokaži nikoli veÄ
dlg.button.delete=I&zbriši
dlg.button.cancel=Pre&kliÄi
dlg.button.close=&Zapri
dlg.button.continue=&Nadaljuj
dlg.button.skip=Pres&koÄi
dlg.button.overwrite=&Prepiši
dlg.button.view=&Pokaži
dlg.button.retry=Poskusi &znova
dlg.button.ignore=&Prezri
repeatPrefix=\n\nTo sporoÄilo se bo ponovilo %S
repeatSuffixSingular=-krat.
repeatSuffixPlural=-krat.
noRepeat=\n\nTo sporoÄilo se ne bo ponovilo vse do nadgradnje Enigmaila.
pgpNotSupported=Kot kaže, uporabljate Enigmail skupaj s PGP 6.x.\n\nŽal povzroÄa PGP 6.x nekatere težave, ki onemogoÄajo, da bi Enigmail deloval pravilno. Zato Enigmail PGP 6.x ni veÄ podprt. V prihodnosti raje uporabite GnuPG (GPG).\n\nÄŒe za prehod na GPG potrebujete podporo, obiÅ¡Äite stran PomoÄ/Help na domaÄi strani Enigmail.
initErr.howToFixIt=Za uporabo Enigmaila je zahtevan GnuPG. ÄŒe ga Å¡e niste namestili, je najlažji naÄin za namestitev uporaba spodnjega gumba "ÄŒarovnik za namestitev".
initErr.setupWizard.button=&ÄŒarovnik za namestitev
passphraseCleared=Geslo je bilo izbrisano.
cannotClearPassphrase=Za ravnanje z gesli uporabljate neobiÄajno orodje (kot je gnome-keyring). V Enigmailu zatorej ne morete poÄistiti gesla.
noPhotoAvailable=Na voljo ni nobene fotografije
debugLog.title=Enigmail Debug Log
error.photoPathNotReadable=Pot slike '%S' ni berljiva
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Nova razliÄica Enigmaila ima pomembne spremembe ravnanja z nastavitvami in možnostmi. Stare nastavitve smo poskusili prenesti na novo razliÄico. Vendar pa ne moremo samodejno zadostiti vsem primerom. Ponovno preverite nastale nove nastavitve in možnosti.
enigmailCommon.checkPreferences=Preveri nastavitve ...
preferences.defaultToPgpMime=Privzeto kodiranje sporoÄil smo v Enigmailu spremenili iz vdelanega PGP-ja v PGP/MIME. PriporoÄamo, da ga ohranite kot privzetega.\n\nÄŒe Å¡e vedno želite privzeto uporabljati vdelan PGP, to lahko storite v nastavitvah raÄuna pod Varnost OpenPGP.
usingVersion=Uporabljate Enigmail razliÄice %S
usingAgent=Za šifriranje in dešifriranje uporabi %S izvršilno datoteko %S
agentError=NAPAKA: Dostop do storitve Enigmail ni uspel!
accessError=Napaka pri dostopu do storitve Enigmail
onlyGPG=Ustvarjanje kljuÄa deluje le z GnuPG (ne pa tudi z PGP)!
keygenComplete=Ustvarjanje kljuÄa je konÄano! Za podpisovanje bo uporabljena identiteta <%S>
revokeCertRecommended=Nadvse priporoÄamo, da za svoj kljuÄ ustvarite certifikat za preklic. Ta certifikat lahko uporabite za preklic svojega kljuÄa, npr. Äe vaÅ¡ skrivni kljuÄ izgubite ali je v nevarnosti. Želite zdaj ustvariti tak certifikat za preklic?
keyMan.button.generateCert=&Ustvari certifikat
genCompleteNoSign=Ustvarjanje kljuÄa je konÄano!
genGoing=Ustvarjanje kljuÄa je v teku!
passNoMatch=Geslo ni ustrezno; prosimo, ponovite vnos.
passCheckBox=ÄŒe ne uporabljate gesla za kljuÄ, potem prosim oznaÄite ustrezno možnost.
passUserName=Prosimo, podajte imena uporabnikov za to identiteto.
keygen.missingUserName=Za izbrani raÄun/identiteto ni navedenega imena. V polje "vaÅ¡e ime" v nastavitvah raÄuna vnesite vrednost.
keygen.passCharProblem=V svojem geslu uporabljate posebne znake. Na žalost lahko to povzroÄi težave pri ostalih programih. PriporoÄamo, da izberete geslo s samo naslednjimi znaki:\n a-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=VaÅ¡e geslo se iz tehniÄnih razlogov ne sme zaÄeti ali konÄati s presledkom.
changePassFailed=Sprememba gesla ni uspela.
keyConfirm=Ustvari javni in skriti kljuÄ za '%S'?
keyMan.button.generateKey=&Ustvari kljuÄ
keyAbort=Prekinem ustvarjanje kljuÄa?
keyMan.button.generateKeyAbort=&Ustavi tvorbo kljuÄa
keyMan.button.generateKeyContinue=&Nadaljuj s tvorbo kljuÄa
expiryTooLong=Ne morete ustvariti kljuÄa, ki postane neveljaven kasneje kot v 100 letih.
expiryTooLongShorter=KljuÄa, ki poteÄe Äez veÄ kot 90 let, ne morete ustvariti.
expiryTooShort=VaÅ¡ kljuÄ mora biti veljaven najmanj en dan.
dsaSizeLimit=Podpisni kljuÄi DSA so omejeni na 3072 bitov. Velikost kljuÄa bo zato ustrezno zmanjÅ¡ana.
keyGenFailed=Ustvarjanje kljuÄa ni uspelo. Prosimo, za podrobnosti preverite konzolo Enigmail (Meni Enigmail > RazhroÅ¡Äevanje Enigmail).
setKeyExpirationDateFailed=Datuma prenehanja veljavnosti ni mogoÄe spremeniti
# Strings in enigmailMessengerOverlay.js
securityInfo=Varnostne informacije Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Priloge temu sporoÄilu niso podpisane ali Å¡ifrirane*\n\n
possiblyPgpMime=Najverjetneje Å¡ifrirano ali podpisano sporoÄilo PGP/MIME; za preverjanje kliknite gumb DeÅ¡ifriraj
noDecrypted=Nobenega deÅ¡ifriranega sporoÄila ni mogoÄe najti za shranjevanje!\nUporabite shranjevanje v meniju Datoteka
noMessage=Za shranjevanje ni na voljo nobenega sporoÄila\\!
useButton=Kliknite DeÅ¡ifriraj/Preveri za deÅ¡ifriranje sporoÄila
saveHeader=Enigmail: Shrani deÅ¡ifrirano sporoÄilo
saveAttachmentHeader=Enigmail: Shrani dešifrirano priponko
noTempDir=Ni mogoÄe najti nobene zaÄasne mape za pisanje.\nProsimo, doloÄite sistemsko spremenljivko TEMP.
attachmentPgpKey=Priloga '%S', ki jo odpirate, je najverjetneje kljuÄ OpenPGP.\n\nKliknite 'Uvozi' za uvoz vsebovanega kljuÄa ali 'Pokaži', Äe si želite vsebino datoteke ogledati v oknu brskalnika.
beginPgpPart=********* *ZACETEK SIFRIRANEGA ali PODPISANEGA DELA* *********
endPgpPart=********** *KONEC SIFRIRANEGA ali PODPISANEGA DELA* **********
notePartEncrypted=Enigmail: *Deli sporocila NISO bili podpisani ali sifrirani*
noteCutMessage=Enigmail: *Najdenih je veÄ blokov sporoÄila -- deÅ¡ifriranje/preverjanje prekinjeno*
decryptOkNoSig=Pozor\n\nDeÅ¡ifriranje je bilo uspeÅ¡no, a podpisa ni mogoÄe preveriti.
msgOvl.button.contAnyway=&Vseeno nadaljuj
signature.verifiedOK=Podpis za priponko %S je bil uspešno preverjen.
signature.verifyFailed=Podpisa za priponko %S ni bilo mogoÄe preveriti.
attachment.noMatchToSignature=Priponka '%S' se ne ujema z datoteko podpisa
attachment.noMatchFromSignature=Datoteka podpisa '%S' se ne ujema s priponko
fixBrokenExchangeMsg.failed=SporoÄila ni uspelo popraviti.
keysToExport=Izberi kljuÄe OpenPGP za vstavljanje
keysToUse=Izberi kljuÄe OpenPGP za uporabnika %S
pubKey=Javni kljuÄ za %S\n
windowLocked=Urejevalno okno je zaklenjeno; pošiljanje je bilo prekinjeno
sendUnencrypted=Inicializacija Enigmaila ni uspela.\nPoÅ¡ljem sporoÄilo neÅ¡ifrirano?
composeSpecifyEmail=Vnesite prosim glavni e-poÅ¡tni naslov, ki je potreben za izbor podpisnega kljuÄa za odhodna sporoÄila.\nÄŒe ne podate nobenega naslova, bo e-poÅ¡tni naslov v polju OD sporoÄila prepuÅ¡Äen izbiri kljuÄa.
sendingHiddenRcpt=To sporoÄilo ima prejemnike v polju BCC (skrita kopija). ÄŒe to sporoÄilo Å¡ifrirate, je mogoÄe skriti prejemnike skrite kopije, vendar uporabniki nekaterih izdelkov (npr. PGP Corp.) ne bodo mogli deÅ¡ifrirati sporoÄila. Zaradi tega priporoÄamo, da se izogibate polju skrite kopije (BCC) v Å¡ifriranih sporoÄilih.
sendWithHiddenBcc=Skrij prejemnike skrite kopije
sendWithShownBcc=Å ifriraj obiÄajno
sendingNews=PoÅ¡iljanje Å¡ifriranega sporoÄila je bilo prekinjeno.\n\nTega sporoÄila ne morete poslati Å¡ifriranega, ker so med prejemniki naslovi noviÄarskih skupin. To sporoÄilo poÅ¡ljite neÅ¡ifrirano.
sendToNewsWarning=Opozorilo: poslali boste Å¡ifrirano sporoÄilo na dopisni seznam.\n\nTega ne priporoÄamo, ker je to smiselno le, Äe lahko vsi Älani skupine deÅ¡ifrirajo sporoÄilo, t.j. sporoÄilo je potrebno deÅ¡ifrirati s kljuÄi vseh Älanov seznama. To sporoÄilo poÅ¡ljite le, Äe dobro veste, kaj poÄnete.\n\nŽelite nadaljevati?
hasHTML=Opozorilo za sporoÄila HTML: \nTo sporoÄilo lahko vsebuje HTML. To lahko onemogoÄi pravilno podpisovanje oz. Å¡ifriranje tega sporoÄila. Da bi to v prihodnje prepreÄili pri poÅ¡iljanju podpisanih sporoÄil, kliknite prosim dvigalko hkrati z gumbom Sestavi oz. Odgovori. Ko sporoÄilo podpiÅ¡ete, odstranite potrditev pri nastavitvah 'Ustvari sporoÄilo kot HTML' s Äimer poÅ¡iljanje sporoÄil HTML trajno prepreÄite.
strippingHTML=SporoÄilo vsebuje kodo HTML, ki bo izgubljena, Äe bo sporoÄilo za podpisovanje oz. Å¡ifriranje pretvorjeno v zgolj tekstovni zapis. Želite nadaljevati?
msgCompose.button.sendAnyway=&Vseeno poÅ¡lji sporoÄilo
attachWarning=Priponke tega sporoÄila niso lokalne, zato jih ni mogoÄe Å¡ifrirati. Za Å¡ifriranje priponk jih najprej shranite lokalno in jih nato dodajte sporoÄilu. Želite kljub temu poslati sporoÄilo?
quotedPrintableWarn=Za kodiranje sporoÄil ste nastavili 'quoted-printable'. To lahko pripelje do nepravilnega Å¡ifriranja in/ali preverjanja vaÅ¡ih sporoÄil.\nŽelite izklopiti nastavitev 'quoted printable'?
minimalLineWrapping=Prelom besedila ste nastavili na %S znakov. Za pravilno šifriranje in podpisovanje mora biti ta vrednost najmanj 68.\nŽelite zdaj vrednost nastaviti na 68?
warning=Opozorilo
signIconClicked=Spremenili ste nastavitve za podpisovanje. Zato za to sporoÄilo niÄ veÄ ne velja (de-)aktivacija podpisovanja skupaj z (de-)aktivacijo Å¡ifriranja.
pgpMime_sMime.dlg.text=Skupaj ste omogoÄili PGP/MIME in S/MIME. Žal ni možno podpreti oba protokola obenem. Izberite, ali želite uporabljati PGP/MIME ali S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Uporabi &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Uporabi &S/MIME
errorKeyUnusable=E-poÅ¡tni naslov ali ID kljuÄa '%S' se ne ujema z veljavnim, ne preteklim kljuÄem OpenPGP.\nZagotovite, da imate veljaven kljuÄ OpenPGP in da nastavitve vaÅ¡ega raÄuna kažejo na ta kljuÄ.
errorOwnKeyUnusable=ID kljuÄa '%S', ki je nastavljen za trenutno identiteto, ne dobavi uporabnega kljuÄa OpenPGP.\n\nZagotovite, da imate veljaven kljuÄ OpenPGP in da vaÅ¡e nastavitve raÄuna nanj kažejo.\nÄŒe vaÅ¡ kljuÄ ni potekel, preverite, ali ste zaupanje lastniku nastavili na polno ali skrajno.
msgCompose.cannotSaveDraft=Napaka med shranjevanjem osnutka
msgCompose.internalEncryptionError=Notranja napaka: obljubljeno Å¡ifriranje onemogoÄeno
msgCompose.internalError=Pojavila se je zaÄetna napaka.
msgCompose.toolbarTxt.signAndEncrypt=To sporoÄilo po podpisano in Å¡ifrirano
msgCompose.toolbarTxt.signOnly=To sporoÄilo bo podpisano
msgCompose.toolbarTxt.encryptOnly=To sporoÄilo bo Å¡ifrirano
msgCompose.toolbarTxt.noEncryption=To sporoÄilo bo nepodpisano in neÅ¡ifrirano
msgCompose.toolbarTxt.disabled=Za izbrano identiteto je Enigmail onemogoÄen
msgCompose.toolbarTxt.smime=S/MIME je omogoÄen - morda neskladno z Enigmail
msgCompose.toolbarTxt.smimeOff=- S/MIME se zatorej ne uporablja
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME je omogoÄen - Enigmail se zatorej ne uporablja
msgCompose.toolbarTxt.smimeNoDraftEncryption=– osnutki ne bodo šifrirani
msgCompose.toolbarTxt.smimeConflict=Engmail se ne uporablja, ker je S/MIME trenutno omogoÄen. Izklopite podpisovanje S/MIME in/ali Å¡ifriranje in potem omogoÄite Å¡ifriranje Enigmail
msgCompose.encryptedSubjectStub=Å ifrirano sporoÄilo
msgCompose.detailsButton.label=Podrobnosti …
msgCompose.detailsButton.accessKey=P
# note: should end with double newline:
sendAborted=Pošiljanje je bilo prekinjeno.\n\n
# details:
keyNotTrusted=Premalo zaupanja za kljuÄ '%S'
keyNotFound=KljuÄa '%S' ni mogoÄe najti
keyRevoked=KljuÄ '%S' je preklican
keyExpired=KljuÄ '%S' je potekel
statPGPMIME=PGP/MIME
statSigned=PODPISANO
statEncrypted=Å IFRIRANO
statPlain=NEPODPISANO in NEÅ IFRIRANO
offlineSave=Želite shraniti sporoÄilo %S, namenjeno %S, v mapo 'Neodposlana sporoÄila'?
onlineSend=Želite poslati sporoÄilo %S prejemniku %S?
encryptKeysNote=Napotek\\: SporoÄilo je Å¡ifrirano z naslednjimi kljuÄi identitete uporabnikov\\: %S
hiddenKey=
signFailed=Napaka v programu Enigmail; Å¡ifriranje oz. podpisovanje ni uspelo. Želite poslati sporoÄilo nezavarovano?
msgCompose.button.sendUnencrypted=&PoÅ¡lji neÅ¡ifrirano sporoÄilo
recipientsSelectionHdr=Izberite prejemnika šifriranja
configureNow=Varnosti Enigmail za izbrano identiteto še niste nastavili. Želite to zdaj storiti?
# encryption/signing status and associated reasons:
encryptMessageAuto=Å ifriraj sporoÄilo (samodejno)
encryptMessageNorm=Å ifriraj sporoÄilo
signMessageAuto=PodpiÅ¡i sporoÄilo (samodejno)
signMessageNorm=PodpiÅ¡i sporoÄilo
encryptOff=Å ifriranje: IZKLJUÄŒENO
encryptOnWithReason=Å ifriranje: VKLJUÄŒENO (%S)
encryptOffWithReason=Å ifriranje: IZKLJUÄŒENO (%S)
encryptOn=Å ifriranje: VKLJUÄŒENO
signOn=Podpisovanje: VKLJUÄŒENO
signOff=Podpisovanje: IZKLJUÄŒENO
signOnWithReason=Podpisovanje: VKLJUÄŒENO (%S)
signOffWithReason=Podpisovanje: IZKLJUÄŒENO (%S)
reasonEnabledByDefault=privzeto omogoÄeno
reasonManuallyForced=roÄno vsiljeno
reasonByRecipientRules=vsiljeno s pravili prejemnika
reasonByAutoEncryption=vsiljeno s samo-šifriranjem
reasonByConflict=zaradi spora v pravilih prejemnika
reasonByEncryptionMode=zaradi naÄina Å¡ifriranja
reasonSmimeConflict=ker je namesto tega omogoÄen S/MIME
# should not be used anymore:
encryptYes=SporoÄilo bo Å¡ifrirano
encryptNo=SporoÄilo ne bo Å¡ifrirano
# should not be used anymore:
signYes=SporoÄilo bo podpisano
signNo=SporoÄilo ne bo podpisano
# PGP/MIME status:
pgpmimeNormal=Protokol: PGP/MIME
inlinePGPNormal=Protokol: vdelan PGP
pgpmimeAuto=Protokol: PGP/MIME (samodejno)
inlinePGPAuto=Protokol: vdelan PGP (samodejno)
# should not be used anymore
pgpmimeYes=Uporabljen bo PGP/MIME
pgpmimeNo=Uporabljen bo vrinjen PGP
# Attach own key status (tooltip strings):
attachOwnKeyNo=VaÅ¡ lasten kljuÄ ne bo pripet
attachOwnKeyYes=VaÅ¡ lasten kljuÄ bo pripet
attachOwnKeyDisabled=VaÅ¡ega lastnega kljuÄa ni mogoÄe pripeti. Izbrati morate doloÄen kljuÄ\nv odseku OpenPGP v nastavitvah raÄuna, da omogoÄite to znaÄilnost.
rulesConflict=Najdena so nasprotujoÄa si pravila za prejemnika\n%S\n\nŽelite poslati sporoÄilo s temi nastavitvami?
msgCompose.button.configure=Pri&lagodi
msgCompose.button.send=&PoÅ¡lji sporoÄilo
msgCompose.button.save=&Shrani sporoÄilo
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Za preverjanje podpisa potrebujete javni kljuÄ %S
keyUsed=Javni kljuÄ %S, ki se uporablja za preverjanje podpisa
clickDecrypt=; kliknite na gumb Dešifriraj
clickDecryptRetry=; za ponoven poskus kliknite na ikono šifriranja
clickDetailsButton=; za veÄ informacij kliknite na gumb 'Podrobnosti'
clickImportButton=; za prenos kljuÄa kliknite na gumb 'Uvozi kljuÄ'
keyTypeUnsupported=; vaÅ¡a razliÄica GnuPG ne podpira te vrste kljuÄa
msgPart=Del sporoÄila %S
msgSigned=podpisan
msgSignedUnkownKey=podpisano z neznanim kljuÄem
msgEncrypted=šifriran
msgSignedAndEnc=podpisan in šifriran
unverifiedSig=Podpis ni preverjen
incompleteDecrypt=Dešifriranje je bilo nepopolno
needKey=Napaka - Za deÅ¡ifriranje je potreben skrivni kljuÄ
failedDecrypt=Napaka - Dešifriranje ni uspelo
badPhrase=Napaka - NapaÄno geslo
failedDecryptVerify=Napaka - Dešifriranje/preverjanje ni uspelo
viewInfo=; Za podrobnosti izberite Pogled > Informacije o varnosti sporoÄila
decryptedMsg=DeÅ¡ifrirano sporoÄilo
decryptedMsgWithFormatError=DeÅ¡ifrirano sporoÄilo (obnovljena pokvarjena oblika e-poÅ¡te PGP, ki jo je povzroÄil star strežnik Exchange, tako da rezultat verjetno ne bo popoln za branje)
usedAlgorithms=Uporabljeni algoritmi: %S in %S
# strings in pref-enigmail.js
oldGpgVersion14=ZaÄenjanje Enigmaila je spodletelo.\n\nUporabljate razliÄico GnuPG-ja %S, ki ni veÄ podprta. Enigmail zahteva GnuPG razlliÄice 2.0.7 ali novejÅ¡o. Nadgradite svojo namestitev GnuPG-ja ali pa Enigmail ne bo deloval.
locateGpg=Najdi program GPG
invalidGpgPath=GnuPG ni mogoÄe izvrÅ¡iti s podano potjo. OpenGPG je zatorej deaktiviran, dokler znova ne spremenite poti do GnuPG ali ponovno ne zaženete aplikacije.
warningsAreReset=Vsa opozorila so bila ponastavljena.
prefs.gpgFound=GnuPG se nahaja v %S
prefs.gpgNotFound=Ni mogoÄe najti programa GnuPG
prefs.warnAskNever=Opozorilo: z aktivacijo te možnosti boste povzroÄili neÅ¡ifrirana e-sporoÄila brez dodatnih opozoril, Äe kljuÄ za enega od prejemnikov ne obstaja -- Enigmail vas o tem ne bo opozarjal!
prefs.warnIdleTimeForUnknownAgent=VaÅ¡ sistem uporablja specializirano orodje za ravnanje z gesli, kot sta gnome-keyring ali seahorse-agent. Žal OpenGPG ne more nadzorovati Äasovne prekoraÄitve gesla za orodje, ki ga uporabljate. Zato se ustrezne nastavitve Äasovne prekoraÄitve v Enigmail ne upoÅ¡tevajo.
prefEnigmail.oneKeyserverOnly=Napaka - navedete lahko le en strežnik kljuÄev za samodejno prenaÅ¡anje manjkajoÄih kljuÄev OpenPGP.
enterAdminPin=Prosimo, vtipkajte ADMIN PIN svoje pametne kartice
enterCardPin=Prosimo, vtipkajte PIN svoje pametne kartice
notInit=Napaka - Storitev Enigmail še ni nastavljena
badCommand=Napaka - Å ifriranje ni uspelo
cmdLine=ukazna vrstica in izpis\\:
notRequired=Napaka - Å ifriranje ni potrebno
notComplete=Napaka - Ustvarjanje kljuÄa Å¡e ni dokonÄano
invalidEmail=Napaka - Neveljaven(i) e-poštni naslov(i)
noPassphrase=Napaka – Niste vnesli gesla
noPGPblock=Napaka – Ni nobenega veljavnega bloka OpenPGP
unverifiedReply=Del sporoÄila (odgovor) je bil morda spremenjen
keyInMessageBody=Najdena kljuÄ in telo sporoÄila. Kliknite 'Uvozi kljuÄ', da ga uvozite
sigMismatch=Napaka – Podpis ni pravilen
cantImport=Napaka pri uvozu javnega kljuÄa\n\n
doImportOne=Uvozi %1$S (%2$S)?
doImportMultiple=Uvozi naslednje kljuÄe?\n\n%S
previewFailed=Javnega kljuÄa ni mogoÄe brati.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Pametne kartice %S, ki je v bralniku, ni mogoÄe uporabiti za obdelavo sporoÄila.\nProsimo, vstavite pametno kartico %S in ponovite postopek.
sc.insertCard=Postopek zahteva vašo pametno kartico %S.\nProsimo, vstavite zahtevano pametno kartico in ponovite postopek.
sc.removeCard=Postopek ne potrebuje prisotnosti pametne kartice v bralniku.\nProsimo, odstranite svojo pametno kartico in ponovite postopek.
sc.noCardAvailable=V vašem bralniku ni nobene pametne kartice.\nProsimo, vstavite svojo pametno kartico in ponovite postopek.
sc.noReaderAvailable=Vaš bralnik pametnih kartic ni dosegljiv.\nProsimo, povežite svoj bralnik pametnih kartic, vstavite kartico in ponovite postopek.
keyError.keySpecNotFound=E-poÅ¡tnega naslova "%S" ni mogoÄe ujemati s kljuÄem na vaÅ¡i verigi.
keyError.keyIdNotFound=Nastavljenega ID kljuÄa "%S" ni mogoÄe najti na vaÅ¡i verigi.
keyError.resolutionAction=Izberte veljaven kljuÄ v odseku OpenPGP v nastavitvah raÄuna.
missingPassphrase=Manjka geslo
errorHandling.gpgAgentInvalid=VaÅ¡ sistem izvaja razliÄico gpg-agenta, ki ni primerna za vaÅ¡o razliÄico GnuPG-ja.
errorHandling.gpgAgentError=GnuPG je sporoÄil napako v komunikaciji z gpg-agentom (sestavni del GnuPG-ja).
errorHandling.dirmngrError=GnuPG je sporoÄil napako v komunikaciji z dirmngr-jem (sestavni del GnuPG-ja).
errorHandling.pinentryError=GnuPG ne more poizvedeti za vaše geslo preko vnosa PIN-a.
errorHandling.readFaq=To je napaka namestitve ali nastavitve sistema, ki prepreÄuje pravilno delovanje Enigmaila in se je ne da samodejno popraviti.\n\nZelo priporoÄamo, da se posvetujete z naÅ¡o spletno stranjo za podporo na https://enigmail.net/faq.
gpgNotFound=Ni mogoÄe najti programa GnuPG '%S'.\nPreverite, da je pot do programa GnuPG v nastavitvah Enigmail podana pravilno.
gpgNotInPath=Na podani poti PATH ni mogoÄe najti programa GnuPG.\nPreverite, da je pot do programa GnuPG v nastavitvah Enigmail podana pravilno.
enigmailNotAvailable=Glavna storitev Enigmaila ni na voljo
gpgAgentNotStarted=Ni mogoÄe zagnati programa gpg-agent, ki je potreben za GnuPG razliÄice %S.
prefUntrusted=NI VREDEN ZAUPANJA
prefRevoked=RAZVELJAVLJEN
prefExpiredKey=KLJUČ JE POTEKEL
prefExpired=POTEKEL
prefGood=Pravilen podpis %S
prefBad=NAPAÄŒEN podpis %S
failCancel=Napaka - Uporabnik je prekinil sprejem kljuÄa
failNoServer=Napaka - Strežnik kljuÄev ni podan
failNoID=Napaka - Ni bila podana identiteta kljuÄa
failKeyExtract=Napaka - Ekstrakcija kljuÄa ni uspela
notFirstBlock=Napaka - Prvi blok OpenPGP ni javni blok kljuÄa
importKeyConfirm=Želite uvoziti v sporoÄilu vsebovani javni kljuÄ?
failKeyImport=Napaka - KljuÄa ni mogoÄe uvoziti
fileWriteFailed=Pisanje v datoteko %S ni mogoÄe
importKey=Uvažam javni kljuÄ %S s strežnika kljuÄev\\:
uploadKey=PoÅ¡lji javni kljuÄ %S na strežnik kljuÄev:
keyId=ID kljuÄa
keyAndSigDate=ID kljuÄa: 0x%S / Podpisano: %S
keyFpr=Prstni odtis kljuÄa: %S
noEmailProvided=Niste vnesli e-poštnega naslova!
keyAlreadySigned=KljuÄ je že podpisan, ne morete ga podpisati dvakrat.
gnupg.invalidKey.desc=KljuÄ %S ni veljaven ali ga ni mogoÄe najti. (Pod)kljuÄ je morda potekel.
selKeyExpired=veljavnost %S je potekla
createdHeader=Ustvarjen
atLeastOneKey=Niste izbrali nobenega kljuÄa\\! Izbrati morate vsaj en kljuÄ.
fewerKeysThanRecipients=Izbrali ste manjÅ¡e Å¡tevilo kljuÄev, kot je prejemnikov. Ste prepriÄani, da je seznam kljuÄev za Å¡ifriranje popoln?
userSel.button.goBack=Izberite veÄ kljuÄev
userSel.secretKeySel.title=Izberite skrivni kljuÄ OpenPGP, s katerim boste podpisovali svoja sporoÄila
userSel.problemNoKey=Ni veljavnega kljuÄa.
userSel.problemMultipleKeys=VeÄ kljuÄev
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Pošlji kasneje
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=OPOMBA: PGP/MIME podpira le omejeno Å¡tevilo odjemalcev e-poÅ¡te\\! V okolju Windows ta standard podpirajo le Mozilla/Thunderbird, Sylpheed, Pegasus in Mulberry; v okoljih Linux/UNIX in Mac OS X ga podpira veÄina popularnih odjemalcev za e-poÅ¡to. ÄŒe niste prepriÄani, kaj storiti, se odloÄite za %S izbiro.
first=prvi
second=drugi
# Strings used in am-enigprefs.js
encryptKeyHeader=Izberite kljuÄ OpenPGP za Å¡ifriranje
identityName=Identiteta: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Vklopili ste Å¡ifriranje, niste pa izbrali nobenega kljuÄa. Da bi poÅ¡iljali %S Å¡ifrirana sporoÄila, morate izbrati enega ali veÄ veljavnih kljuÄev. Želite izklopiti Å¡ifriranje?
noKeyToUse=(brez - ne zaklepaj)
noEmptyRule=Pravila ne smejo biti prazna. Prosimo, vnesite vsaj en e-poštni naslov.
invalidAddress=Vneseni e-poÅ¡tni naslovi niso veljavni. Ne smete vnesti imen prejemnikov, temveÄ zgolj e-poÅ¡tne naslove. Primer:\nNeveljavno: Janez Kranjski \nPravilno: janez.kranjski@domena.si
noCurlyBrackets=Oklepaja {} imata poseben pomen in se ne smeta uporabljati v e-poÅ¡tnih naslovih. ÄŒe želite spremeniti pravila za prejemnike, potem izberite možnost 'Uporabi pravilo, Äe prejemnik ...'.\nVeÄ informacij dobite na gumbu PomoÄ.
# Strings used in enigmailRulesEditor.js
never=nikoli
always=vedno
possible=ko je mogoÄe
deleteRule=Želite izbrisati izbrana pravila?
nextRcpt=(naslednji prejemnik)
negateRule=ne
addKeyToRule=Dodaj kljuÄ %1$S (%2$S) pravilu za uporabnika
# Strings used in enigmailSearchKey.js
needOnline=Funkcija, ki ste jo izbrali, ni na voljo v naÄinu brez povezave. Prosimo, povežite se in poskusite znova.
protocolNotSupported=Protokol '%S://', ki ste ga izbrali, ni podprt za prenos kljuÄev OpenPGP.
gpgkeysDisabled=Pomagalo bo, Äe omogoÄite izbiro 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Ni se mogoÄe povezati s strežnikom kljuÄev na naslovu %S.
keyDownloadFailed=Prenos kljuÄa s strežnika kljuÄev ni uspel. SporoÄilo o stanju se glasi:\n%S
internalError=PriÅ¡lo je do notranje napake. KljuÄev ni bilo mogoÄe prenesti ali uvoziti.
noKeyFound=Oprostite, a ni mogoÄe najti nobenega kljuÄa, ki bi ustrezal navedenemu e-poÅ¡tnemu naslovu.
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Iskanje ali prenos kljuÄa s strežnika kljuÄev: gpgkeys_%S ni bilo mogoÄe izvesti.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Nastavljanje zaupanja kljuÄa ni uspelo
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Podpisovanje kljuÄa ni uspelo
alreadySigned.label=Opomnik: kljuÄ %S je že podpisan z izbranim skrivnim kljuÄem.
alreadySignedexportable.label=Opomba: kljuÄ %S je že podpisan za izvažanje z izbranim zasebnim kljuÄem. Lokalni podpis ni smiseln.
partlySigned.label=Opomba: nekateri uporabniÅ¡ki ID-ji kljuÄa %S so že podpisani z izbranim skrivnim kljuÄem.
noTrustedOwnKeys=Primernega kljuÄa za podpisovanje ni bilo najdenega! Potrebujete vsaj en popolnega zaupanja vreden kljuÄ za podpisovanje drugih kljuÄev.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Poteka nalaganje kljuÄev, prosimo, poÄakajte ...
keyValid.unknown=neznan
keyValid.invalid=neveljaven
keyValid.disabled=onemogoÄen
keyValid.revoked=preklican
keyValid.expired=pretekel
keyValid.noSubkey=ni veljavnega podkljuÄa
keyTrust.untrusted=ni vreden zaupanja
keyTrust.marginal=delno zaupanje
keyTrust.full=zaupanje
keyTrust.ultimate=popolno zaupanje
keyTrust.group=(skupina)
keyType.public=jav
keyType.publicAndSec=jav/skr
keyMan.enableKey=OmogoÄi kljuÄ
keyMan.disableKey=OnemogoÄi kljuÄ
userAtt.photo=Uporabniški atribut (slika JPEG)
asciiArmorFile=Zavarovane datoteke ASCII (*.asc)
importKeyFile=Uvozi datoteko kljuÄa OpenPGP
gnupgFile=Datoteke GnuPG
saveRevokeCertAs=Ustvari in shrani potrdilo o preklicu
revokeCertOK=Potrdilo o preklicu uspeÅ¡no ustvarjeno. Uporabite ga lahko za razveljavitev svojega javnega kljuÄa, npr. Äe bi izgubili svoj skrivni kljuÄ.\n\nProsimo prenesite ga na medij, ki je lahko shranjen na varnem, kot npr. CD ali disketa. ÄŒe kdo pridobi dostop do tega potrdila, ga lahko uporabi za razveljavitev vaÅ¡ega kljuÄa.
revokeCertFailed=Potrdila o preklicu ni bilo mogoÄe ustvariti.
addUidOK=Uporabniška ID uspešno dodana
addUidFailed=Dodajanje uporabniške ID ni uspelo
noKeySelected=Za izvedbo izbrane operacije morate izbrati vsaj en kljuÄ
exportToFile=Izvozi javni kljuÄ v datoteko
exportKeypairToFile=Izvozi tajni in javni kljuÄ v datoteko
exportSecretKey=Želite vkljuÄiti skrivni kljuÄ v shranjeno datoteko kljuÄa OpenPGP?
saveKeysOK=KljuÄi so bili uspeÅ¡no shranjeni
saveKeysFailed=Shranjevanje kljuÄev ni uspelo
importKeysFailed=Uvoz kljuÄev ni uspel
enableKeyFailed=OmogoÄanje/onemogoÄanje kljuÄa ni uspelo
specificPubKeyFilename=%1$S (0x%2$S) jav
specificPubSecKeyFilename=%1$S (0x%2$S) jav-skr
defaultPubKeyFilename=Izvoženi-javni-kljuÄi
defaultPubSecKeyFilename=Izvoženi-javni-in-skrivni-kljuÄi
noSecretKeys=Najdenih ni bilo skrivnih kljuÄev.\n\nŽelite zdaj tvoriti svoj lastni kljuÄ?
sendKeysOk=KljuÄ(i) uspeÅ¡no poslani
sendKeysFailed=PoÅ¡iljanje kljuÄev ni uspelo
receiveKeysOk=KljuÄ(i) uspeÅ¡no posodobljeni
receiveKeysFailed=Prenos kljuÄev ni uspel
importFromClip=Želite uvoziti nekatere kljuÄe iz odložiÅ¡Äa?
importFromUrl=Prenesi javni kljuÄ iz tega URL-ja:
copyToClipbrdFailed=Kopiranje izbranega kljuÄa(-ev) v odložiÅ¡Äe ni uspelo.
copyToClipbrdOK=KljuÄ(i) kopirani v odložiÅ¡Äe
deleteSecretKey=OPOZORILO: Izbrisati želite skrivni kljuÄ!\nÄŒe izbriÅ¡ete svoj skrivni kljuÄ, ne boste veÄ mogli deÅ¡ifrirati sporoÄil, Å¡ifriranih za ta kljuÄ.\n\nResniÄno želite izbrisati OBA, skrivni kljuÄ in javni kljuÄ\n'%S'?
deleteMix=OPOZORILO: Izbrisati želite skrivne kljuÄe!\nÄŒe izbriÅ¡ete svoj skrivni kljuÄ, ne boste veÄ mogli deÅ¡ifrirati sporoÄil, Å¡ifriranih za ta kljuÄ.\n\nResniÄno želite izbrisati OBA, skrivni kljuÄ in javni kljuÄ?
deletePubKey=Želite izbrisati javni kljuÄ\n'%S'?
deleteSelectedPubKey=Želite izbrisati javne kljuÄe?
deleteKeyFailed=KljuÄa ni mogoÄe izbrisati.
revokeKeyQuestion=Ste pred preklicem kljuÄa '%S'.\n\nS tem kljuÄem ne boste mogli veÄ podpisovati in ga porazdelitvi ne boste veÄ mogli uporabljati za Å¡ifriranje. Å e vedno ga lahko uporabljate za deÅ¡ifriranje starih sporoÄil.\n\nAli želite nadaljevati?
revokeKeyOk=KljuÄ je bil preklican. ÄŒe je vaÅ¡ kljuÄ na voljo na strežniku kljuÄev, je priporoÄljivo, da ga ponovno naložite nanj, tako da drugi lahko opazijo preklic.
revokeKeyFailed=KljuÄa ni mogoÄe preklicati.
refreshAllQuestion=Nobenega kljuÄa niste izbrali. Bi radi osvežili VSE kljuÄe?
refreshKey.warn=Opozorilo: glede na Å¡tevilo kljuÄev in hitrost povezave je lahko osveževanje vseh kljuÄev razmeroma dolg postopek!
downloadContactsKeys.warn=Opozorilo: glede na Å¡tevilo stikov in hitrost povezave je prenos vseh kljuÄev lahko zelo dolg postopek!
downloadContactsKeys.importFrom=Želite uvoziti stike iz adresarja '%S'?
keyMan.button.exportSecKey=&Izvozi skrivne kljuÄe
keyMan.button.exportPubKey=Izvozi le &javne kljuÄe
keyMan.button.import=&Uvozi
keyMan.button.refreshAll=&Osveži vse kljuÄe
keyMan.button.revokeKey=&PrekliÄi kljuÄ
keyMan.button.skip=Pre&skoÄi kljuÄ
keylist.noOtherUids=Nima drugih identitet
keylist.hasOtherUids=Znan(a) tudi kot
keylist.noPhotos=Fotografija ni na voljo
keylist.hasPhotos=Fotografije
keyMan.addphoto.filepicker.title=Izberite fotografijo za dodajanje
keyMan.addphoto.warnLargeFile=Datoteka, ki ste jo izbrali, je veÄja od 25kB.\nNe priporoÄamo, da dodajate velike datoteke, ker se s tem zelo poveÄujejo kljuÄi.
keyMan.addphoto.noJpegFile=Izbrana datoteka ni datoteka JPEG. Izberite drugo datoteko.
keyMan.addphoto.failed=Slike ni mogoÄe dodati.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Spreminjanje primarnega uporabniške ID ni uspelo
changePrimUidOK=Primarna uporabniška ID uspešno spremenjena
deleteUidFailed=Brisanje uporabniške ID %S ni uspelo
deleteUidOK=Uporabniška ID %S uspešno izbrisana
revokeUidFailed=Preklic uporabniške ID %S ni uspel
revokeUidOK=UporabniÅ¡ka ID %S je bila uspeÅ¡no preklicana. ÄŒe je vaÅ¡ kljuÄ na voljo na strežniku kljuÄev, je priporoÄljivo, da ga ponovno naložite nanj, tako da drugi lahko opazijo preklic.
revokeUidQuestion=ResniÄno želite preklicati uporabniÅ¡ko ID %S?
deleteUidQuestion=ResniÄno želite izbrisati uporabniÅ¡ko ID %S?\n\nProsimo, preberite: Äe ste svoj javni kljuÄ poslali na strežnik kljuÄev, izbris uporabniÅ¡kega ID ne bo niÄesar spremenil. V tem primeru bi morali uporabiti možnost 'PrekliÄi uporabniÅ¡ki ID'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=USPEH! KljuÄi uvoženi
importInfoSuccess=✅
importInfoBits=Biti
importInfoCreated=Ustvarjeno
importInfoFpr=Prstni odtis
importInfoDetails=(podrobnosti)
importInfoNoKeys=Noben kljuÄ se ni uvozil.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=javni kljuÄ
keyTypePrimary=primarni kljuÄ
keyTypeSubkey=podkljuÄ
keyTypePair=par kljuÄev
keyExpiryNever=nikoli
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Å ifriraj
keyUsageSign=Podpiši
keyUsageCertify=Potrdi
keyUsageAuthentication=Overjanje
keyDoesNotExpire=KljuÄ ne poteÄe
# Strings in enigmailGenCardKey.xul
keygen.started=Prosimo, poÄakajte, da se ustvari kljuÄ ...
keygen.completed=KljuÄ je bil ustvarjen. ID novega kljuÄa je: 0x%S
keygen.keyBackup=KljuÄ je bil varnostno kopiran kot %S
keygen.passRequired=Prosimo, navedite geslo, Äe želite ustvariti varnostno kopijo svojega kljuÄa zunaj pametne kartice.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN, ki ste ga vnesli, se ne ujema; prosimo, vnesite ponovno
cardPin.minLength=PIN mora imeti najmanj %S znakov ali številk
cardPin.processFailed=Sprememba PIN ni uspela
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Osveževanje kljuÄev je v teku, prosimo, poÄakajte ...
keyserverProgress.uploading=PrenaÅ¡anje kljuÄev je v teku, prosimo, poÄakajte ...
keyserverTitle.refreshing=Osveževanje kljuÄev
keyserverTitle.uploading=Prenos kljuÄev
# Strings in enigmailSetupWizard
passphrase.min8keys=Geslo mora vsebovati najmanj osem znakov!
setupWizard.reallyCancel=ResniÄno želite zapreti namestitvenega Äarovnika Enigmail?
setupWizard.invalidGpg=Datoteka, ki ste jo navedli, ni izvršljiv program GnuPG. Navedite drugo datoteko.
setupWizard.specifyFile=Za nadaljevanje morate navesti vsaj datoteko javnega kljuÄa.
setupWizard.installFailed=Zdi se, da namestitev ni bila uspeÅ¡na. Ponovno poskusite z namestitvijo ali namestite GnuPG roÄno in ga poiÅ¡Äite z gumbom Prebrskaj.
setupWizard.downloadForbidden=Zaradi vaÅ¡e varnosti ne bomo prenesli GnuPG. ObiÅ¡Äite http://www.gnupg.org/ in roÄno prenesite GnuPG.
setupWizard.downloadImpossible=Trenutno ne morete prenesti GnuPG. Poskusite znova kasneje ali obiÅ¡Äite http://www.gnupg.org/ ter odtod prenesite GnuPG.
setupWizard.hashSumError=ÄŒarovnik integritete prenesen datoteke ni uspel preveriti. Datoteka je morda okvarjena ali Å¡kodljivo spremenjena. Želite kljub temu nadaljevati z nameÅ¡Äanjem?
setupWizard.importSettingsFile=Navedite datoteko varnostne kopije za nalaganje
setupWizard.invalidSettingsFile=Navedena datoteka ni pravilna datoteka varnostne kopije nastavitev Enigmaila.
setupWizard.gpgConfExists=Datoteka nastavitev GnuPG že obstaja. Ali jo želite prepisati z datoteko iz stare namestiteve?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Pri prenašanju GnuPG je prišlo do napake. Preverite zapisnik konzole za podrobnosti.
installGnuPG.installFailed=Pri nameÅ¡Äanju GnuPG je priÅ¡lo do napake. Preverite zapisnik konzole za podrobnosti.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Vnesti morate ime in e-poštni naslov
addUidDlg.nameMinLengthError=Ime mora obsegati najmanj pet znakov
addUidDlg.invalidEmailError=Navesti morate veljaven e-poštni naslov
addUidDlg.commentError=V komentarjih oklepaji niso dovoljeni
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Pametne kartice OpenPGP v imenu podpirajo samo znake ASCII.
# network error types
errorType.SecurityCertificate=Varnostno potrdilo, ki ga izkazuje spletna storitev, ni veljavno.
errorType.SecurityProtocol=Varnostni protokol, ki ga uporablja spletna storitev, ni znan.
errorType.Network=Prišlo je do omrežne napake.
# filter stuff
filter.folderRequired=Izbrati morate ciljno mapo.
filter.decryptMove.label=Dešifriraj za vedno (Enigmail)
filter.decryptCopy.label=Ustvari dešifrirano kopijo (Enigmail)
filter.decryptMove.warnExperimental=Opozorilo - dejanje filtra "Trajno deÅ¡ifriraj" lahko privede do uniÄenih sporoÄil.\n\nZelo priporoÄamo, da najprej poskusite s filtrom "Ustvari deÅ¡ifrirano kopijo", skrbno preskusite rezultat in zaÄnite uporabljati ta filter samo, ko ste zadovoljni z rezultatom.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=SporoÄila z zadevo "%S" ni bilo mogoÄe Å¡ifrirati.\nAli želite ponovno poskusiti z drugim geslom ali želite sporoÄilo preskoÄiti?
converter.decryptAtt.failed=Priponke "%1$S" v sporoÄilu z zadevo\n"%2$S"\nni bilo mogoÄe deÅ¡ifrirati.\nAli želite ponovno poskusiti z drugim geslom ali želite sporoÄilo preskoÄiti?\n
saveLogFile.title=Shrani zapisniško datoteko
# strings in gpg.jsm
unknownSigningAlg=Neznan algoritem podpisovanja (ID: %S)
unknownHashAlg=Neznano šifrirno razpršilo (ID: %S)
# strings in keyRing.jsm
keyring.photo=Fotografija
keyRing.pubKeyRevoked=KljuÄ %1$S (ID kljuÄa %2$S) je bil preklican.
keyRing.pubKeyExpired=KljuÄ %1$S (ID kljuÄa %2$S) je potekel.
keyRing.pubKeyNotForSigning=KljuÄa %1$S (ID kljuÄa %2$S) ni mogoÄe uporabiti za podpisovanje.
keyRing.pubKeyNotForEncryption=KljuÄa %1$S (ID kljuÄa %2$S) ni mogoÄe uporabiti za Å¡ifriranje.
keyRing.keyDisabled=KljuÄ %1$S (ID kljuÄa %2$S) je onemogoÄen; ni ga mogoÄe uporabiti.
keyRing.keyNotTrusted=KljuÄ %1$S (ID kljuÄa %2$S) ni dovolj zaupanja vreden. Za podpisovanje nastavite raven zaupanja na "skrajno".
keyRing.keyInvalid=KljuÄ %1$S (ID kljuÄa %2$S) je neveljaven (ni samopodpisan).
keyRing.signSubKeysRevoked=Vsi podkljuÄi za podpisovanje kljuÄa %1$S (ID kljuÄa %2$S) so bili preklicani.
keyRing.signSubKeysExpired=Vsi podkljuÄi za podpisovanje kljuÄa %1$S (ID kljuÄa %2$S) so potekli.
keyRing.signSubKeysUnusable=Vsi podkljuÄi za podpisovanje kljuÄa %1$S (ID kljuÄa %2$S) so potekli, bili preklicani ali so drugaÄe neuporabni.
keyRing.encSubKeysRevoked=Vsi podkljuÄi za Å¡ifriranje kljuÄa %1$S (ID kljuÄa %2$S) so bili preklicani.
keyRing.encSubKeysExpired=Vsi podkljuÄi za Å¡ifriranje kljuÄa %1$S (ID kljuÄa %2$S) so potekli.
keyRing.noSecretKey=Videti je, da nimate skrivnostnega kljuÄa za %1$S (ID kljuÄa %2$S) na svoji verigi; kljuÄa ne morete uporabiti za podpisovanje.
keyRing.encSubKeysUnusable=Vsi podkljuÄi za Å¡ifriranje kljuÄa %1$S (ID kljuÄa %2$S) so potekli, bili preklicani ali so drugaÄe neuporabni.
#strings in exportSettingsWizard.js
cannotWriteToFile=Ni mogoÄe shraniti v datoteko '%S'. Izberite drugo datoteko.
dataExportError=Med izvažanjem podatkov se je pojavila napaka.
enigmailSettings=Nastavitve Enigmail
defaultBackupFileName=Izvoz Enigmail
specifyExportFile=Navedite ime datoteke za izvoz
homedirParamNotSUpported=Dodatni parametri, ki doloÄajo poti, kot je --homedir in --keyring, niso podprti za izvažanje/obnavljanje nastavitev. Uporabite nadomestne naÄine, kot je nastavitev spremenljivke okolja GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=VaÅ¡ kljuÄ %1$S bo potekle Äez %2$S dni.\n\nPriporoÄamo, da ustvarite nov par kljuÄev in ustrezne raÄune nastavite za njihovo uporabo.
expiry.keysExpireSoon=Naslednji kljuÄi bodo v manj kot %1$S-ih dneh potekli:\n%2$S. PriporoÄamo, da ustvarite nove in svoje raÄune nastavite za njihovo uporabo.
enigmail/lang/sl/help/ 0000775 0000000 0000000 00000000000 12667016244 0015142 5 ustar 00root root 0000000 0000000 enigmail/lang/sl/help/compose.html 0000664 0000000 0000000 00000007467 12667016244 0017513 0 ustar 00root root 0000000 0000000
PomoÄ za Enigmail: Sestavljanje sporoÄil
PomoÄ za Enigmail
Uporaba Enigmaila pri sestavljanju sporoÄil
- Meni Enigmail v oknu Pošta/Sestavi
- PodpiÅ¡i sporoÄilo: omogoÄi/onemogoÄi poÅ¡iljanje podpisane poÅ¡te. Uporabnik je obveÅ¡Äen,
Äe podpisovanje ne uspe.
- Å ifriraj sporoÄilo: omogoÄi/onemogoÄi Å¡ifriranje vsem prejemnikom pred
poÅ¡iljanjem. Uporabnik je obveÅ¡Äen, Äe Å¡ifriranje ne uspe.
Če je nastavljeno Prikaži izbiro, ko je to potrebno v Nastavitve
-> zavihek Izbira kljuÄa, se pojavi seznam s kljuÄi, Äe so naslovi na voljo
v seznamu prejemnikovi za sporoÄilo, za katerega nimate javnega kljuÄa.
ÄŒe je nastavljeno Nikoli ne prikaži pogovornega okna Izbira kljuÄa OpenPGP v Nastavitve
-> zavihek Izbira kljuÄa in se v seznamu prejemnikov sporoÄila nahajajo naslovi, za katere
nimate javnega kljuÄa, bo sporoÄilo odposlano neÅ¡ifrirano.
- Za to sporoÄilo uporabi PGP/MIME: omogoÄi/onemogoÄi uporabo
PGP/MIME
za to sporoÄilo.
Če poznani prejemnik/i lahko berejo pošto z uporabo zapisa PGP/MIME,
bi ga morali uporabiti.
Ta možnost je odvisna od nastavitev v Nastavitve
-> zavihek PGP/MIME - Äe je nastavljeno Dovoli uporabo PGP/MIME ali Vedno uporabi
PGP/MIME.
- Privzete možnosti sestavljanja: podmeni.
- Možnosti podpisovanja/Å¡ifriranja ...: bližnjica prek Nastavitve raÄuna ->
Možnosti OpenPGP.
- Možnosti pošiljanja ...: bližnjica prek Nastavitve ->
zavihek Pošiljanje.
- Key selection options...: bližnjica prek Nastavitve ->
zavihek Izbira kljuÄa.
- Možnosti PGP/MIME ...: bližnjica prek Nastavitve ->
zavihek PGP/MIME.
- Razveljavi Å¡ifriranje: Äe pride do napake pri poÅ¡iljanju sporoÄila,
npr. Äe strežnik POP ne sprejme zahteve, Enigmail o tem ne bo obveÅ¡Äen
in Å¡ifrirano sporoÄilo bo Å¡e naprej prikazano v oknu
Sestavljanje. S to menijsko izbiro boste razveljavili šifriranje/podpisovanje,
s Äimer boste v oknu Sestavljanje besedilov povrnili v izvoren zapis.
Kot zaÄasno reÅ¡itev lahko to možnost uporabite tudi za deÅ¡ifriranje citiranega
besedila, ko odgovarjate na Å¡ifrirana sporoÄila. Enigmail bi moral samodejno
deÅ¡ifrirati citirano sporoÄilo, vendar Äe to ne uspe, lahko uporabite to menijsko
izbiro, da ga v to prisilite.
- Vstavi javni kljuÄ: vstavi blok javnega kljuÄa z ASCII oklepnikom na
trenutni položaj kazalke v oknu Sestavljanje. Vnesti boste morali e-poštne naslove
kljuÄa(ev), ki naj bodo vstavljeni. Na ta naÄin vstavljeni kljuÄi
bodo samodejno prepoznani na sprejemnem delu Enigmaila. Po vstavljanju
kljuÄa lahko Å¡e vedno izbirate med podpisovanjem/Å¡ifriranjem sporoÄila.
Prav tako v sporoÄilo ne smete vstaviti veÄ kot enega bloka kljuÄa; le
navedite veÄ e-poÅ¡tnih naslovov, loÄenih z vejicami ali presledki, ko
boste po tem povprašani.
- PoÄisti shranjeno geslo: poÄisti v spominu hranjeno geslo. Uporabno, Äe imate
veÄ gesel.
- PomoÄ: prikaže informacije pomoÄi s spletne strani (te strani).
Nadaljno pomoÄ najdete na
spletni strani pomoÄi za Enigmail.
enigmail/lang/sl/help/editRcptRule.html 0000664 0000000 0000000 00000012210 12667016244 0020432 0 ustar 00root root 0000000 0000000
PomoÄ za Enigmail: Urejanje pravil OpenPGP
PomoÄ za Enigmail
Uporaba Urejevalnika pravil Enigmail: Uredi pravilo OpenPGP
V urejevalniku pravil lahko navedete privzete dejavnosti po uporabniku za omogoÄanje
Å¡ifriranja, podpisovanje in PGP/MIME, ter doloÄite, kateri kljuÄ(i) OpenPGP naj bo(do) uporabljen(i). V tem
pogovornem oknu lahko doloÄite pravila za posameznega prejemnika ali za skupino
prejemnikov z zelo podobnimi atributi.
- Nastavi pravila OpenPGP za: vsebuje e-poštne
naslove za prejemnike (brez imen, torej le naslove, kot je
nekdo@neka.domena). DoloÄite lahko veÄ e-poÅ¡tnih sporoÄil, loÄenih s presledkom.
Tukaj neveden naslov lahko sestavlja le
del domene, tako da se bo ujemalo vsako sporoÄilo na kateri koli naslov iz te domene,
npr. @neka.domena omogoÄa ujemanje francelj@neka.domena,
nekdodrug@neka.domena, vsakdo@neka.domena itn.
- Uporabi pravilo, Äe prejemnik ...:
S tem spremenite ujemanje e-naslovov.
ÄŒe je vnesenih veÄ naslovov, bo nastavitev veljala za vse.
Spodnji primeri temeljijo na body@email.domain,
vnesenem v gornjem polju Pravila OpenPGP.
- je enako: s to nastavitvijo se bo pravilo sprožilo le na
e-sporoÄilih za body@email.domain (natanÄno ujemanje, ne razlikuje velikih/malih Ärk).
- vsebuje: s to nastavitvijo se ujema vsak e-naslov, ki vsebuje
tak niz,
npr. anybody@email.domain ali body@email.domain.net
- se zaÄne z: s to nastavitvijo se ujemajo vsi e-naslovi, ki se zaÄenjajo
z ujemajoÄim nizom, npr. body@email.domain.net,
body@email.domain-name.com.
- se konÄa z: s to nastavitvijo se ujemajo vsi e-naslovi, ki se konÄujejo
z ujemajoÄim nizom, npr. anybody@email.domain,
somebody@email.domain.
- Nadaljuj z naslednjim pravilom za ujemajoÄi naslov
VkljuÄitev te funkcije vam omogoÄa doloÄanje pravila, ne da bi morali
navesti ID kljuÄa v polje Uporabi naslednje kljuÄe OpenPGP:,
tako da je e-naslov uporabljen za preverjanje kljuÄa ob Äasu
pošiljanja. Prav tako bodo procesirana tudi nadaljna pravila za iste naslove.
- Ne preverjaj nadaljnjih pravil za ujemajoÄi naslov
Z vkljuÄitvijo te funkcije ustavite obdelavo vseh drugih pravil za
ujemajoÄ(i) naslov(e), Äe je temu pravilu ustreženo; t.j. obdelava pravil
nadaljuje z naslednjim prejemnikom.
- Uporabi naslednje kljuÄe OpenPGP:
Uporabite gumb Izberi kljuÄ(e) ... za izbor kljuÄev prejemnika,
ki naj bodo uporabljeni za šifriranje. Tako kot pri gornjem dejanju ne bodo
obdelana nobena druga pravila za ujemajoÄe naslove.
- Privzeto za podpisovanje: vkljuÄite ali izkljuÄite
podpisovanje sporoÄil. S tem uporabite ali prekliÄete, kar ste doloÄili v oknu
sestavljanja sporoÄil. Vrednosti so:
- nikoli: onemogoÄite podpisovanje, Äeprav je morda omogoÄeno v oknu
sestavljanja sporoÄila (preglasi druge vrednosti);
- da, Äe je izbrano v sestavljanju sporoÄila: podpisovanje
poteka v skladu z izbranim v oknu sestavljanja sporoÄila;
- vedno: omogoÄite podpisovanje, Äetudi ni omogoÄeno v oknu
sestavljanja sporoÄila;
Te nastavitve podpisovanja se uporabljajo za
vsa pravila, ki se ujemajo. ÄŒe eno od pravil prepoveduje podpisovanje, sporoÄilo
ne bo podpisano, ne glede na druga pravila, ki morda doloÄajo vedno.
- Å ifriranje: vkljuÄite ali
izkljuÄite Å¡ifriranje sporoÄil. Dovoljene nastavitve in njihov pomen so
enaki kot za podpisovanje sporoÄil.
- PGP/MIME: vkljuÄite ali
izkljuÄite uporabo kodiranja sporoÄil PGP/MIME (RFC 3156).
ÄŒe je PGP/MIME izkljuÄen, so
sporoÄila kodirana z uporabo "medvrstiÄnega PGP". Dovoljene vrednosti in njihov
pomen so enaki kot za podpisovanje sporoÄil.
Pravila se obdelujejo v zaporedju seznama v
Urejevalniku pravil OpenPGP. VsakiÄ, ko se pravilo
ujema s prejemnikom in ko vsebuje ID kljuÄa OpenPGP, poleg uporabe navedenega ID
kljuÄa, se prejemnik ne obravnava veÄ pri obdelavi
naslednjih pravil.
Nadaljno pomoÄ najdete na
strani nastavitev Enigmail po prejemniku.
enigmail/lang/sl/help/messenger.html 0000664 0000000 0000000 00000007560 12667016244 0020030 0 ustar 00root root 0000000 0000000
PomoÄ za Enigmail: Branje sporoÄil
PomoÄ za Enigmail
Uporaba Enigmail pri branju sporoÄil
- Gumb Dešifriraj v glavnem oknu Pošta
Ta gumb lahko uporabite za veÄ dejanj: deÅ¡ifriranje, preverjanje ali uvoz
javnih kljuÄev. ObiÄajno se deÅ¡ifriranje/preverjanje izvede samodejno,
Äeprav lahko to izkljuÄite v nastavitvah. ÄŒe pa to ne uspe,
se ponavadi pokaže kratko sporoÄilo o napaki v vrstici stanja Enigmaila. ÄŒe
kliknete na gumb DeÅ¡ifriraj, boste videli bolj natanÄno sporoÄilo
o napaki, vkljuÄno z izhodom ukaza GnuPG.
- Ikoni Pisalo in KljuÄ v prikazu glave sporoÄila
Ikoni Pisalo in KljuÄ v glavi sporoÄila nakazujeta,
da je bilo sporoÄilo, ki ga prebirate podpisano in/ali Å¡ifrirano in da ali je podpis
dober, t.j. da sporoÄilo od trenutka podpisa ni bilo spremenjeno. ÄŒe je bilo sporoÄilo
spremenjeno, se ikona Peresa spremeni v Polomlneno pero, kar
nakazuje nepravilen podpis. Z desnim klikom na ikono Pero ali KljuÄ se
pojavi meni z naslednjimi možnostmi:
- Podatki o varnosti OpenPGP: omogoÄa ogled izhodnega stanja iz
GnuPG za to sporoÄilo.
- Kopiraj varnostne podatke OpenPGP: skopira izhodno stanje iz GnuPG na
odložiÅ¡Äe; za lepljenje v sporoÄilo-odgovor itn.
- Pokaži fotografski ID OpenPGP: omogoÄa ogled Fotografskega ID
osebe, ki je poslala sporoÄilo, Äe imajo fotografijo vdelano v svoj javni kljuÄ.
(Ta možnost je na voljo le, Äe fotografski ID obstaja v njihovem kljuÄu.)
- Varnostni podatki S/MIME: omogoÄa ogled varnostnih podatkov S/MIME
za sporoÄilo.
ÄŒe nimate nastavljenega keyserver-options autoretrieve-key
v datoteki gpg.conf in preberete sporoÄilo, ki je podpisano ali Å¡ifrirano,
boste videli ikono Peresa v podroÄju izpisa glave z VpraÅ¡ajem,
vrstica stanja Enigmaila v podroÄju glave bo izpisala Del sporoÄila
je podpisan; kliknite ikono peresa za podrobnosti in sporoÄilo v
podoknu sporoÄila bo prikazalo vse pokazatelje blokov sporoÄila OpenPGP in
blok podpisa.
Ta znak boste videli tudi, Äe imate nastavljeno keyserver-options auto-key-retrieve
v svoji datoteki gpg.conf, vendar kljuÄ OpenPGP ni na voljo na privzetem
strežniku kljuÄev.
S klikom na ikono Pero in vpraÅ¡aj prikliÄete okno z obvestilom,
da kljuÄ ni na voljo v vaÅ¡em skladiÅ¡Äu kljuÄev. ÄŒe kliknete V redu, se pojavi
novo okno s seznamom strežnikov kljuÄev, s katerega izberete tistega,
s katerega naj bo prenesen javni kljuÄ poÅ¡iljatelja.
Za nastavitev seznama strežnikov kljuÄev, ki bi jih radi uporabljali, pojdite na
zavihek Enigmail -> Nastavitve -> SploÅ¡no in vnesite naslove strežnikov kljuÄev v
polje Strežnik(i) kljuÄev:, loÄene z vejico. Prvi strežnik kljuÄev na
seznamu bo uporabljen kot privzeti.
- Odpiranje Å¡ifriranih priponk / uvažanje pripetih kljuÄev OpenPGP
Priponke s konÄnicami *.pgp, *.asc in *.gpg so prepoznane kot priponke, ki jih
Enigmail lahko posebej obdela. Z desnim klikom na takšno priponko
se v pojavnem meniju pojavita dve posebni izbiri: Dešifriraj in odpri
in DeÅ¡ifriraj in shrani. Ti izbiri uporabite, Äe želite, da Enigmail
priponko dešifrira, preden jo odprete ali shranite. Če je priponka
prepoznana kot datoteka kljuÄa OpenPGP, vam bo ponujen uvoz kljuÄev
v vaÅ¡o shrambo kljuÄev.
Nadaljna pomoÄ je na voljo na
spletni strani pomoÄi za Enigmail.
enigmail/lang/sl/help/rulesEditor.html 0000664 0000000 0000000 00000006071 12667016244 0020335 0 ustar 00root root 0000000 0000000
PomoÄ za Enigmail: Urejevalnik pravil
PomoÄ za Enigmail
Uporaba urejevalnika pravil Enigmail
V Urejevalniku pravil lahko doloÄite privzete vrednosti za prejemnike z omogoÄanjem
šifriranja, podpisovanja in PGP/MIME, ter
doloÄite, katerei kljuÄ(i) OpenPGP naj bo(do) uporabljen(i). Vsako pravilo sestavlja pet polj in je predstavljeno
v eni vrstici:
- Email: e-sporoÄilo(a) from
the To:, Cc: and Bcc: fields to match. Ujemanje deluje na podnizih (Podrobnosti najdete
v pogovornem oknu Urejanja pravil)
- KljuÄ(i) OpenPGP: seznam ID kljuÄev OpenPGP,
ki naj se uporabi(jo) za naslovnika
- Podpisovanje: omogoÄi ali onemogoÄi
podpisovanje sporoÄil. To ali uporabi ali pa prezre nastavitve
v oknu sestavljanja sporoÄila. Možne vrednosti so:
- nikoli: onemogoÄi podpisovanje, Äeprav je omogoÄeno v oknu sestavljanja
sporoÄila (preglasi druge vrednosti)
- dovoli: prepusti nastavitev podpisovanja doloÄitvi v oknu sestavljanja
sporoÄila
- vedno: omogoÄi podpisovanje, Äetudi ni omogoÄeno v oknu
sestavljanja sporoÄila
Te nastavitve podpisovanja se upoštevajo pri
vseh ujemajoÄih pravilih. ÄŒe eno od pravil onemogoÄi podpisovanje, sporoÄilo
ne bo podpisoano, ne glede na doloÄila dugega pravila, ki doloÄa podpisovanje Vedno.
- Å ifriraj: omogoÄi ali
onemogoÄi Å¡ifriranje sporoÄila. Dovoljene nastavitve in njihov pomen so
enaki kot pri podpisovanju sporoÄila.
- PGP/MIME: omogoÄi ali
onemogoÄi uporabo Å¡ifriranja sporoÄil PGP/MIME (RFC 3156).
ÄŒe je PGP/MIME onemogoÄen, se
sporoÄila Å¡ifrirajo z uporabo "inline PGP". Dovoljene vrednosti in njihov
pomen so enaki kot pri podpisovanju sporoÄil.
Pravila se procesirajo v vrstnem redu seznama. Ko se pravilo ujema
s prejemnikom in vsebuje ID kljuÄa OpenPGP poleg zporabe
navedenega ID kljuÄa, se prejemnik veÄ ne preuÄuje pri procesiranju
nadaljnih pravil.
Opomba: Urejevalnik pravil Å¡e ni dokonÄan. Možno je napisati nekaj
naprednejših pravil z neposrednim urejanjem datoteke pravil (ta pravila
kasneje veÄ ne smete urejati v urejevalniku pravil). Nadaljne
informacije za neposredno urejanje datoteke
je na voljo na domaÄi strani Enigmail.
Nadaljna pomoÄ je na voljo na naslovu
spletni strani pomoÄi za Enigmail
enigmail/lang/sl/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020476 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/sq/ 0000775 0000000 0000000 00000000000 12667016244 0014217 5 ustar 00root root 0000000 0000000 enigmail/lang/sq/am-enigprefs.properties 0000664 0000000 0000000 00000000117 12667016244 0020711 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Siguri OpenPGP
enigmail/lang/sq/enigmail.dtd 0000664 0000000 0000000 00000146714 12667016244 0016516 0 ustar 00root root 0000000 0000000
Siguri OpenPGP)">
SHËNIM: Prodhimi i kyçeve mund të dojë disa minuta të plotësohet. Mos e mbyllni programin, ndërkohë që kryhet prodhimi i kyçeve. Shfletimi rëndshëm, ose kryerja e veprimeve që e përdorin shumë diskun, gjatë prodhimit të kyçeve do ta rimbushë 'burimin e rastësisë' dhe përshpejtojë procesin. Kur prodhimi i kyçeve të jetë plotësuar, do t’ju njoftohet.">
SHËNIM: Prodhimi i kyçeve mund të dojë disa minuta të plotësohet. Mos e mbyllni programin, ndërkohë që kryhet prodhimi i kyçeve. Kur prodhimi i kyçeve të jetë plotësuar, do t’ju njoftohet.">
Shënim: Enigmail-i do të verifikojë përherë nënshkrimet
në email-e, për çdo llogari ose identitet, pavarësisht se është aktivizuar apo jo për një të tillë">
Kyçi juaj publik shërben për t’u përdorur nga të tjerët që t’ju dërgojnë mesazhe të fshehtëzuar. Mund t’ia jepni kujtdo.">
Kyçi juaj privat shërben që ju vetë t’i shfshehtëzoni këto email-e dhe që të dërgoni email-e të nënshkruar.
S’duhet t’ia jepni ndokujt.">
Kyçi juaj privat shërben që ju t’i shfshehtëzoni këto email-e dhe të dërgoni email-e të nënshkruar.
S’duhet t’ia jepni ndokujt.
Që ta siguroni kyçin tuaj privat, në dy hapat vijues do t’ju kërkohet një frazëkalim.">
Frazëkalimi juaj është një fjalëkalim për mbrojtjen e kyçit tuaj privat. Ai parandalon përdorimin e paautorizuar të kyçit tuaj privat.">
Nuk këshillohen shkronjat me shenja sipër (p.sh. ë, é, ñ) dhe shkronja specifike të një gjuhe të caktuar.">
Për këtë do t’ju kërkohet të jepni fjalëkalimin tuaj.">
eksportoni të dhënat tuaja prej kompjuterit të vjetër duke përdorur ndihmësin e kopjeruajtjeve te Parapëlqimet për Enigmail-in
importojini të dhënat tuaja te kompjuteri i ri duke përdorur këtë ndihmës.
">
Faleminderit që përdorni Enigmail-in.">
eksportoni të dhënat tuaja prej kompjuterit të vjetër duke përdorur këtë ndihmës
importojini të dhënat tuaja te kompjuteri i ri duke përdorur Ndihmësin e Rregullimeve.
">
enigmail/lang/sq/enigmail.properties 0000664 0000000 0000000 00000121514 12667016244 0020126 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Sinjalizim Enigmail-i
enigConfirm=Ripohim Enigmail-i
enigError=Gabim Enigmail
enigPrompt=Kërkesë nga Enigmail
dlgYes=&Po
dlgNo=&Jo
dlgKeepSetting=Mbaje mend përgjigjen time dhe mos më pyet prapë
dlgNoPrompt=Mos ma shfaq më këtë dialog
dlg.button.delete=&Fshije
dlg.button.cancel=&Anuloje
dlg.button.close=&Mbylle
dlg.button.continue=&Vazhdoni
dlg.button.skip=Anashkal&oje
dlg.button.overwrite=&Mbishkruaje
dlg.button.view=Sh&iheni
dlg.button.retry=&Riprovoni
dlg.button.ignore=&Shpërfille
repeatPrefix=\n\nKy sinjalizim do të përsëritet %S
repeatSuffixSingular=herë tjetër.
repeatSuffixPlural=herë të tjera.
noRepeat=\n\nKy sinjalizim nuk do të përsëritet pa përmirësuar Enigmail-in.
pgpNotSupported=Duket se po përdorni Enigmail-in tok me PGP 6.x\n\nUnfortunately, Për fat të keq, PGP 6.x ka një dorë problemesh që e pengojnë punën normale të Enigmail-it. Ndaj, Enigmail-i nuk i mbulon më versionet PGP 6.x; ju lutemi, në vend të tij, hidhuni te GnuPG (GPG).\n\nNëse ju duhet ndihmë për kalimin te GnuPG, shihni ndarjen Ndihmë te sajti i Enigmail-it.
initErr.howToFixIt=Që të mund të përdorni Enigmail-in, lypset GnuPG-ja. Nëse s’e keni instaluar ende GnuPG-në, rruga më e lehtë për ta bërë këtë është të përdorni butonin "Ndihmësi i Rregullimit" më poshtë.
initErr.setupWizard.button=Ndihmësi i &Rregullimit
passphraseCleared=Frazëkalimi u pastrua.
cannotClearPassphrase=Po përdorni një mjet jo-standard (fjala vjen, gnome-keyring) për trajtim frazëkalimesh. Ndaj spastrimi i frazëkalimit s’është i mundur nga brenda Enigmail-it.
noPhotoAvailable=S’ka Foto të gatshme
debugLog.title=Regjistër Diagnostikimesh Enigmail-i
error.photoPathNotReadable=Shtegu '%S' i fotos nuk është i lexueshëm
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Ky version i ri i Enigmail-it ka ndryshime të rëndësishme në trajtimin e parapëlqimeve dhe mundësive. U përpoqëm të mbartim rregullimet e vjetra te ky version i ri. Megjithatë, nuk mund të mbulojmë vetvetiu të gjitha rastet. Ju lutemi, kontrolloni edhe ju rregullimet e reja për parapëlqimet dhe mundësitë.
enigmailCommon.checkPreferences=Kontrolloni Parapëlqimet ...
preferences.defaultToPgpMime=E kemi ndryshuar parazgjedhjen për kodimin e mesazheve në Enigmail, nga PGP Brendazi në PGP/MIME. Këshillojmë që si parazgjedhje të mbani këtë.\n\nNëse si parazgjedhje, prapëseprapë doni të përdorni PGP Brendazi, mund ta bëni këtë te Rregullime Llogarie nën ndarjen Siguri OpenPGP.
usingVersion=Po xhirohet Enigmail-i version %S
usingAgent=Po përdoret i ekzekutueshmi %1$S %2$S për fshehtëzim dhe shfshehtëzim
agentError=GABIM: Dështoi hyrja te shërbimi Enigmime!
accessError=Gabim gjatë hyrjes te shërbimi Enigmail
onlyGPG=Prodhimi i kyçeve funksionon vetëm me GnuPG-në (jo me PGP-në)!
keygenComplete=Prodhimi i kyçeve u plotësua! Për nënshkrim do të përdoret identiteti <%S>.
revokeCertRecommended=Këshillojmë me forcë krijimin e një dëshmie shfuqizimi për kyçin tuaj. Kjo dëshmi mund të përdoret për të bërë të pavlefshëm kyçin tuaj, për shembull, në rast se kyçi juaj i fshehtë humb ose komprometohet. Doni të krijohet tani një dëshmi e tillë shfuqizimi?
keyMan.button.generateCert=&Prodhoje Dëshminë
genCompleteNoSign=Prodhimi i kyçeve u plotësua!
genGoing=Prodhimi i kyçit është duke u kryer!
passNoMatch=Zërat për frazëkalimet nuk përputhen; ju lutemi, rijepeni
passCheckBox=Ju lutemi, i vini shenjë kutizës, nëse po tregoni se nuk doni frazëkalim për kyçin
passUserName=Ju lutemi, tregoni një emër përdoruesi për këtë identitet
keygen.missingUserName=S’ka emër të përcaktuar për llogarinë/identitetin e përzgjedhur. Ju lutemi, jepni një vlerë te fusha "Emri juaj", te rregullime llogarie.
keygen.passCharProblem=Te frazëkalimi juaj po përdorni shenja speciale. Mjerisht, kjo mund të shkaktojë probleme për aplikacione të tjera. Këshillojmë të zgjidhni një frazëkalim që përbëhet vetëm nga cilado prej këtyre shenjave:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Për arsye teknike, frazëkalimi juaj nuk mund të fillojë ose përfundojë me një shenjë hapësirë.
changePassFailed=Ndryshimi i frazëkalimit dështoi.
keyConfirm=Të prodhohen kyçet privatë dhe publikë për '%S'?
keyMan.button.generateKey=&Prodhoje Kyçin
keyAbort=Të ndërpritet prodhimi i kyçeve?
keyMan.button.generateKeyAbort=&Ndërprite Prodhimin e Kyçeve
keyMan.button.generateKeyContinue=&Vazhdo Prodhimin e Kyçeve
expiryTooLong=Nuk mund të krijoni një kyç që skadon për më shumë se 100 vjet.
expiryTooLongShorter=Nuk mund të krijoni një kyç që skadon për më shumë se 90 vjet.
expiryTooShort=Kyçi juaj duhet të jetë i vlefshëm të paktën për një ditë.
dsaSizeLimit=Kyçet DSA të nënshkrimit kufizohen te 3072 bit. Madhësia e kyçit do të reduktohet sipas kësaj.
keyGenFailed=Prodhimi i kyçit dështoi. Ju lutemi, për hollësi kontrolloni konsolën Enigmail (Menuja Enigmail > Diagnostikim Enigmail-i).
setKeyExpirationDateFailed=Data e skadimit nuk u ndryshua dot
# Strings in enigmailMessengerOverlay.js
securityInfo=Të dhëna Sigurie Enigmail-i\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Bashkëngjitjet e këtij mesazhi nuk janë nënshkruar ose fshehtëzuar*\r\n\r\n
possiblyPgpMime=Mesazh i fshehtëzuar ose nënshkruar ndoshta me PGP/MIME; klikoni mbi butonin Shfshehtëzoje që të verifikohet
noDecrypted=Pa mesazh të fshehtëzuar për ruajtje!\nPërdorni urdhrin Ruaje prej menusë Kartelë
noMessage=Pa mesazh për ruajtje!
useButton=Ju lutemi, klikoni mbi butonin Shfshehtëzoje që të shfshehtëzohet mesazhi
saveHeader=Enigmail: Ruajeni mesazhin e shfshehtëzuar
saveAttachmentHeader=Enigmail: Ruajeni bashkëngjitjen e shfshehtëzuar
noTempDir=Nuk u gjet drejtori e përkohshme ku të shkruhej\nJu lutemi, rregulloni ndryshoren TEMP të mjedisit
attachmentPgpKey=Bashkëngjitja '%S' që po hapni duket të jetë një kartelë kyçi OpenPGP.\n\nKlikoni mbi 'Importo' që të importoni kyçet që përmban ose 'Parje' që të shihni lëndën e kartelës në një dritare shfletuesi
beginPgpPart=********* *FILLIMI I PJESËS SË FSHEHTËZUAR ose TË NËNSHKRUAR* *********
endPgpPart=********** *FUNDI I PJESËS SË FSHEHTËZUAR ose TË NËNSHKRUAR* **********
notePartEncrypted=Enigmail: *Pjesë të këtij mesazhi NUK janë nënshkruar ose fshehtëzuar*
noteCutMessage=Enigmail: *U gjetën blloqe të shumëfishtë mesazhesh -- shfshehtëzimi/verifikimi dështoi*
decryptOkNoSig=Kujdes\n\nShfshehtëzimi qe i suksesshëm, por nënshkrimi s’u verifikua saktë
msgOvl.button.contAnyway=&Vazhdo Sido Qoftë
signature.verifiedOK=Nënshkrimi për bashkëngjitjen %S u verifikua me sukses
signature.verifyFailed=Nënshkrimi për bashkëngjitjen %S s’u verifikua dot
attachment.noMatchToSignature=Për bashkëngjitjen '%S' nuk u gjet dot përputhje me ndonjë kartelë nënshkrimi
attachment.noMatchFromSignature=Për kartelën e nënshkrimit '%S' nuk u gjet dot përputhje me ndonjë bashkëngjitje
fixBrokenExchangeMsg.failed=Nuk pati sukses në ndreqjen e mesazhit.
keysToExport=Përzgjidhni Kyçe OpenPGP për Futje
keysToUse=Përzgjidhni Kyç(e) OpenPGP për përdorim me %S
pubKey=Kyç publik për %S\n
windowLocked=Dritarja e hartimit është e bllokuar; dërgimi u anulua
sendUnencrypted=Gatitja e Enigmail-it dështoi..\nTë dërgohet mesazhi i pafshehtëzuar?
composeSpecifyEmail=Ju lutemi, përcaktoni adresën tuaj parësore, që do të përdoret për zgjedhjen e kyçit të nënshkrimit për mesazhet e dërguara.\n Nëse e lini të zbrazët, për zgjedhjen e kyçit të nënshkrimit do të përdoret adresa prej fushës NGA e mesazhit.
sendingHiddenRcpt=Ky mesazh ka marrës BCC (kopje të padukshme). Nëse mesazhi fshehtëzohet, është e mundur të kryhet fshehja e marrësve BCC, por përdoruesit e disa produkteve (p.sh. PGP Corp.) nuk do të jenë në gjendje të shfshehtëzojnë mesazhin. Prej kësaj, këshillojmë të shmangni email-e BCC me mesazhe të fshehtëzuar.
sendWithHiddenBcc=Fshihi marrësit BCC
sendWithShownBcc=Fshehtëzoje normalisht
sendingNews=Veprimi i dërgimit të fshehtëzuar u ndërpre.\n\nKy mesazh nuk mund të fshehtëzohet ngaqë ka marrës prej grupe lajmesh. Ju lutemi, ridërgojeni mesazhin pa fshehtëzim.
sendToNewsWarning=Kujdes: ju ndan një hap nga dërgimi te një grup lajmesh i një email-i të fshehtëzuar.\n\nKjo është e pakëshillueshme, ngaqë ka kuptim vetëm nëse mesazhin mund ta shfshehtëzojnë krejt anëtarët e grupit, pra lypset që mesazhi të fshehtëzohet me kyçet e krejt pjesëmarrësve në grup. Ju lutemi, dërgojeni këtë mesazh vetëm në rast se e dini saktësisht se ç’po bëni.\n\nTë vazhdohet?
hasHTML=Sinjalizim mesazhi HTML::\nKy mesazh mund të përmbajë HTML, çka mund të bëjë që nënshkrimi/fshehtëzimi të dështojë. Për ta shmangur këtë në të ardhmen, duhet të shtypni tastin SHIFT, kur klikoni mbi butonin Hartoni/Përgjigjuni për dërgim mesazhesh të nënshkruar.\nNëse, si parazgjedhje, i nënshkruani mesazhet, duhet t’i hiqni shenjën kutizës së parapëlqimit 'Harto Mesazhe në HTML', për t’i çaktivizuar përgjithnjë mesazhet HTML për këtë llogari email-esh.
strippingHTML=Mesazhi përmban të dhëna formatimi HTML që do të humbë gjatë shndërrimit në tekst të thjeshtë për nënshkrim/fshehtëzim. Doni të ecet më tej?
msgCompose.button.sendAnyway=&Dërgoje Mesazhin Sido Qoftë
attachWarning=Bashkëngjitjet te ky mesazh nuk janë vendore, ato nuk mund të fshehtëzohen. Që të mund të fshehtëzoni bashkëngjitje, depozitojini ato së pari si kartela vendore dhe mandej bashkëngjitini. Doni të dërgohet mesazhi sido qoftë?
quotedPrintableWarn=Keni aktivizuar kodim 'quoted-printable' për dërgim mesazhesh. Kjo mund të sjellë shfshehtëzim dhe/ose verifikim të pasaktë të mesazhit tuaj.\nDoni ta çaktivizoni tani dërgimin e mesazheve 'quoted-printable'?
minimalLineWrapping=Keni caktuar mbështjellje rreshti në %S shenja. Për fshehtëzim dhe/ose nënshkrim të saktë, kjo vlerë lypset të jetë e pakta 68.\nDëshironi ta kaloni tani mbështjelljen e rreshtave në 68 shenja?
warning=Kujdes
signIconClicked=E keni ndryshuar dorazi nënshkrimin. Ndaj, teksa hartoni mesazhin, (ç)aktivizimi i nënshkrimit nuk varet më nga (ç)aktivizimi i fshehtëzimit.
pgpMime_sMime.dlg.text=Keni aktivizuar edhe PGP/MIME-n, edhe S/MIME-n. Për fat të keq, nuk është e mundur të mbulohen njëkohësisht të dy protokollet. Ju lutemi, përzgjidhni cilin doni të përdorni, PGP/MIME-n ose S/MIME-n.
pgpMime_sMime.dlg.pgpMime.button=Përdor &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Përdor &S/MIME
errorKeyUnusable=Për adresën email ose ID-në e kyçit '%S' nuk gjendet dot kyç OpenPGP i vlefshëm, i paskaduar, me përputhje.\nJu lutemi, sigurohuni që keni një kyç OpenPGP të vlefshëm, dhe që rregullimet e llogarisë suaj i referohen atij kyçi.
errorOwnKeyUnusable=ID-ja '%S' e kyçit, e formësuar për identitetin e tanishëm nuk sjell ndonjë kyç OpenPGP të përdorshëm.\n\nJu lutemi, sigurohuni që keni një kyç OpenPGP të vlefshëm, që s’ka skaduar, dhe që rregullimet tuaja shpien te ai kyç.\nNëse kyçi juaj s’ka skaduar, atëherë kontrolloni nëse për të keni caktuar besueshmëri Zotëruesi si plotësisht ose përfundimtare.
msgCompose.cannotSaveDraft=Gabim teksa ruhej skica
msgCompose.internalEncryptionError=Gabim i Brendshëm: fshehtëzimi i premtuar është i çaktivizuar
msgCompose.internalError=Ndodhi një gabim i brendshëm.
msgCompose.toolbarTxt.signAndEncrypt=Ky mesazh do të nënshkruhet dhe fshehtëzohet
msgCompose.toolbarTxt.signOnly=Ky mesazh do të nënshkruhet
msgCompose.toolbarTxt.encryptOnly=Ky mesazh do të fshehtëzohet
msgCompose.toolbarTxt.noEncryption=Ky mesazh do të jetë i panënshkruar dhe i pafshehtëzuar
msgCompose.toolbarTxt.disabled=Për identitetin e përzgjedhur Enigmail-i është i çaktivizuar
msgCompose.toolbarTxt.smime=S/MIME është aktiv - ka mundësi po përlaset me Enigmail-in
msgCompose.toolbarTxt.smimeOff=- kështu që S/MIME nuk përdoret
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME është i aktivizuar - kështu që Enigmail-i nuk përdoret
msgCompose.toolbarTxt.smimeNoDraftEncryption=- skicat s’do të fshehtëzohen
msgCompose.toolbarTxt.smimeConflict=Enigmail-i nuk përdoret, ngaqë S/MIME është i aktivizuar. Ju lutemi, çaktivizoni nënshkrimet dhe/ose fshehtëzimet S/MIME dhe mandej aktivizoni fshehtëzim me Enigmail
msgCompose.encryptedSubjectStub=Mesazh i Fshehtëzuar
msgCompose.detailsButton.label=Hollësi…
msgCompose.detailsButton.accessKey=H
# note: should end with double newline:
sendAborted=Veprimi i dërgimit u ndërpre.\n\n
# details:
keyNotTrusted=Besueshmëri e pamjaftueshme e kyçit '%S'
keyNotFound=Nuk u gjet kyçi '%S'
keyRevoked=Kyçi '%S' është i shfuqizuar
keyExpired=Kyçi '%S' ka skaduar
statPGPMIME=PGP/MIME
statSigned=I NËNSHKRUAR
statEncrypted=I FSHEHTËZUAR
statPlain=I PANËNSHKRUAR dhe I PAFSHEHTËZUAR
offlineSave=Të ruhet mesazhi %1$S për %2$S te dosja Mesazhe të Padërguar?
onlineSend=Të dërgohet mesazhi %1$S për %2$S?
encryptKeysNote=Shënim: Mesazhi është i fshehtëzuar për ID Përdoruesi / Kyçet vijues: %S
hiddenKey=
signFailed=Gabim te Enigmail-i; Fshehtëzimi/nënshkrimi dështoi; të dërgohet mesazhi i pafshehtëzuar?
msgCompose.button.sendUnencrypted=&Dërgoje Mesazh të Pafshehtëzuar
recipientsSelectionHdr=Përzgjidhni Marrës për Fshehtëzime
configureNow=Nuk keni formësuar ende sigurinë e Enigmail-it për identitetin e përzgjedhur. Doni ta bëni tani?
# encryption/signing status and associated reasons:
encryptMessageAuto=Fshehtëzoje Mesazhin (vetvetiu)
encryptMessageNorm=Fshehtëzoje Mesazhin
signMessageAuto=Nënshkruaje Mesazhin (vetvetiu)
signMessageNorm=Nënshkruaje Mesazhin
encryptOff=Fshehtëzim: JO
encryptOnWithReason=Fshehtëzim: PO (%S)
encryptOffWithReason=Fshehtëzim: JO (%S)
encryptOn=Fshehtëzim: PO
signOn=Nënshkrim: PO
signOff=Nënshkrim: JO
signOnWithReason=Nënshkrim: PO (%S)
signOffWithReason=Nënshkrim: JO (%S)
reasonEnabledByDefault=aktivizuar si parazgjedhje
reasonManuallyForced=i detyruar dorazi
reasonByRecipientRules=i detyruar nga rregulla sipas marrësish
reasonByAutoEncryption=i detyruar nga vetëfshehtëzimi
reasonByConflict=për shkak përplasjeje me rregulla sipas marrësish
reasonByEncryptionMode=për shkak të mënyrës së fshehtëzimit
reasonSmimeConflict=ngaqë S/MIME është i aktivizuar
# should not be used anymore:
encryptYes=Mesazhi do të fshehtëzohet
encryptNo=Mesazhi nuk do të fshehtëzohet
# should not be used anymore:
signYes=Mesazhi do të nënshkruhet
signNo=Mesazhi nuk do të nënshkruhet
# PGP/MIME status:
pgpmimeNormal=Protokoll: PGP/MIME
inlinePGPNormal=Protokoll: PGP Brendazi
pgpmimeAuto=Protokoll: PGP/MIME (vetvetiu)
inlinePGPAuto=Protokoll: PGP Brendazi (vetvetiu)
# should not be used anymore
pgpmimeYes=Do të përdoret PGP/MIME
pgpmimeNo=Do të përdoret PGP brendazi
# Attach own key status (tooltip strings):
attachOwnKeyNo=Kyçi juaj s’do të bashkëngjitet
attachOwnKeyYes=Kyçi juaj do të bashkëngjitet
attachOwnKeyDisabled=Kyçi juaj s’mund të bashkëngjitet. Që të aktivizohet kjo veçori, duhet të përzgjidhni një kyç të dhënë te ndarja OpenPGP e Rregullimeve të Llogarisë.
rulesConflict=U kap përplasje me rregulla sipas-marrësish\n%S\n\nTë dërgohet mesazhi duke përdorur këto rregullime?
msgCompose.button.configure=&Formësojeni
msgCompose.button.send=&Dërgoje Mesazhin
msgCompose.button.save=&Ruaje Mesazhin
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Lypset kyçi publik %S që të verifikohet nënshkrimi
keyUsed=Për verifikimin e nënshkrimit u përdor kyçi publik %S
clickDecrypt=; klikoni mbi butonin Shfshehtëzoje
clickDecryptRetry=; klikoni mbi butonin Shfshehtëzoje që të riprovohet
clickDetailsButton=; për më tepër të dhëna, klikoni mbi butonin 'Hollësi'
clickImportButton=; që ta shkarkoni kyçin klikoni mbi butonin 'Importoje Kyçin'
keyTypeUnsupported=; lloji i kyçit nuk mbulohet nga versioni juaj i GnuPG-së
msgPart=Pjesë e mesazhit %S
msgSigned=i nënshkruar
msgSignedUnkownKey=nënshkruar me kyç të panjohur
msgEncrypted=i fshehtëzuar
msgSignedAndEnc=i nënshkruar dhe i fshehtëzuar
unverifiedSig=Nënshkrim i paverifikuar
incompleteDecrypt=Shfshehtëzim i paplotë
needKey=Gabim - nuk u gjet kyçi privat/i fshehtë përkatës për shfshehtëzimin e mesazhit
failedDecrypt=Gabim - shfshehtëzimi dështoi
badPhrase=Gabim - frazëkalim i gabuar
failedDecryptVerify=Gabim - shfshehtëzimi/verifikimi dështoi
viewInfo=; Parje > Të dhëna sigurie mesazhi, për hollësi
decryptedMsg=Mesazhi u shfshehtëzua
decryptedMsgWithFormatError=Mesazhi u shfshehtëzua (u rikthye format email-i PGP i dëmtuar, shkaktuar me gjasa nga një shërbyes i vjetër Exchange, ndaj përfundimi mund të mos jetë përsosmërisht i lexueshëm)
usedAlgorithms=Algoritme të Përdorur: %S dhe %S
# strings in pref-enigmail.js
oldGpgVersion14=Gatitja e Enigmail-it dështoi.\n\nPo përdorni GnuPG version %S, i cili nuk mbulohet më. Enigmail-i lyp GnuPG version 2.0.7 ose më të ri. Ju lutemi, përmirësoni instalimin tuaj të GnuPG-së, ose Enigmail-i s’ka për të funksionuar.
locateGpg=Lokalizoni programin GnuPG
invalidGpgPath=GnuPG-ja nuk mund të ekzekutohet me shtegun e dhënë. Prandaj Enigmail-i është çaktivizuar, deri sa të ndryshoni sërish shtegun për te GnuPG-ja ose deri sa të rinisni aplikacionin.
warningsAreReset=Krejt sinjalizimet u kthyen te parazgjedhjet.
prefs.gpgFound=GnuPG-ja u gjet te %S
prefs.gpgNotFound=Nuk gjeti dot GnuPG-në
prefs.warnAskNever=Kujdes: aktivizimi i kësaj mundësie do të sjellë email-e të pafshehtëzuar, pa dhënë asnjë hollësi tjetër, nëse nuk ka kyç për një nga marrësit -- Enigmail nuk do t’ju njoftojë, nëse ndodh kjo!
prefs.warnIdleTimeForUnknownAgent=Nuk lidhet dot me gpg-agent. Ndoshta sistemi juaj përdor ndonjë mjet të posaçëm për trajtim frazëkalimesh (p.sh. gnome-keyring, seahorse-agent, KDE wallet manager, ...). Për fat të keq, Enigmail-i nuk e kontrollon dot intervalin kohor të vlefshmërisë së frazëkalimit për mjetin që po përdorni. Ndaj rregullimet mbi intervalin kohor përkatës te Enigmail-i nuk janë marrë parasysh.
prefEnigmail.oneKeyserverOnly=Gabim - mund të përcaktoni vetëm një shërbyes kyçesh për shkarkim të vetvetishëm kyçesh OpenPGP që mungojnë.
enterAdminPin=Ju lutemi, shtypni PIN ADMIN-in e Kartës tuaj të Mençur
enterCardPin=Ju lutemi, shtypni PIN-in e Kartës tuaj të Mençur
notInit=Gabim - shërbimi Enigmail ende i pagatitur
badCommand=Gabim - urdhri i fshehtëzimit dështoi
cmdLine=rresht urdhrash dhe output:
notRequired=Gabim - nuk lypset fshehtëzim
notComplete=Gabim - prodhim kyçesh ende i paplotësuar
invalidEmail=Gabim - adresa email të pavlefshme
noPassphrase=Gabim - nuk u dha frazëkalim
noPGPblock=Gabim - Nuk u gjet bllok i koracuar i vlefshëm të dhënash OpenPGP
unverifiedReply=Ndoshta qe modifikuar pjesë e brendshme mesazhi (përgjigje)
keyInMessageBody=U gjet kyç në lëndën e mesazhit. Klikoni mbi 'Importo Kyç' që të importohet kyçi
sigMismatch=Gabim - Mospërputhje nënshkrimesh
cantImport=Gabim në importim kyçi publik\n\n
doImportOne=Të importohet %1$S (%2$S)?
doImportMultiple=Të importohen kyçet vijues?\n\n%S
previewFailed=S’lexohet dot kartela e kyçit publik.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Karta e Mençur %1$S e gjetur te lexuesi juaj nuk mund të përdoret për të përpunuar këtë mesazh.\nJu lutemi, futni Kartën tuaj të Mençur %2$S dhe përsëritni veprimin.
sc.insertCard=Veprimi lyp Kartën tuaj të Mençur %S.\nJu lutemi, futni Kartën e Mençur të kërkuar dhe përsëritni veprimin.
sc.removeCard=Veprimi nuk lyp pasjen e një Karte të Mençur te lexuesi.\nJu lutemi, hiqeni Kartën tuaj të Mençur dhe përsëritni veprimin.
sc.noCardAvailable=Nuk u gjet Kartë e Mençur te lexuesi juaj\nJu lutemi, futni Kartën tuaj të Mençur dhe përsëritni veprimin.
sc.noReaderAvailable=Nuk u fut dot te lexuesi juaj i Kartave të Mençura\nJu lutemi, vendosni lexuesin tuaj të Kartave të Mençura, futni kartën tuaj dhe përsëritni veprimin.
keyError.keySpecNotFound=Adresës email "%S" s’i gjendet dot një kyç te vargu juaj i kyçeve.
keyError.keyIdNotFound=ID-ja e formësuar e kyçit "%S" s’gjendet dot te vargu juaj i kyçeve.
keyError.resolutionAction=Ju lutemi, përzgjidhni një kyç të vlefshëm, te ndarja OpenPGP e Rregullimeve tuaja për Llogarinë.
missingPassphrase=Mungon frazëkalim
errorHandling.gpgAgentInvalid=Sistemi juaj xhiron një version të gpg-agent që s’është i përshtatshëm për versionin tuaj të GnuPG-së.
errorHandling.gpgAgentError=GnuPG-ja njoftoi një gabim te ndërlidhja me gpg-agent (një përbërës i GnuPG-së).
errorHandling.dirmngrError=GnuPG-ja njoftoi një gabim në ndërlidhjen me dirmngr (një përbërës i GnuPG-së).
errorHandling.pinentryError=GnuPG-ja s’mund të kërkojë për frazëkalimin tuaj me pinentry.
errorHandling.readFaq=Ky është një gabim rregullimi sistemi ose formësimi që e pengon Enigmail-in të funksionojë si duhet dhe s’mund të ndreqet vetvetiu.\n\nKëshillojmë me forcë që të shihni te sajti ynë i asistencës, https://enigmail.net/faq.
gpgNotFound=I pazoti të lokalizojë programin GnuPG '%S'.\nSigurohuni që e keni caktuar saktë shtegun për te i ekzekutueshmi GnuPG te Parapëlqimet për Enigmail-in.
gpgNotInPath=I pazoti të lokalizojë programin GnuPG te SHTEGU.\nSigurohuni që e keni caktuar saktë shtegun për te i ekzekutueshmi GnuPG te Parapëlqimet për Enigmail-in.
enigmailNotAvailable=Shërbimi bazë Enigmail jo gati
gpgAgentNotStarted=Nuk u nis dot programi gpg-agent i cili nevojitet për versionin tuaj %S të GnuPG-së.
prefUntrusted=JO I BESUAR
prefRevoked=KYÇ I SHFUQIZUAR
prefExpiredKey=KYÇ I SKADUAR
prefExpired=I SKADUAR
prefGood=Nënshkrim i mirë nga %S
prefBad=Nënshkrim i KEQ nga %S
failCancel=Gabim - Marrja e kyçit u anulua nga përdoruesi
failNoServer=Gabim - Nuk u tregua shërbyes kyçesh prej nga të merret kyçi
failNoID=Gabim - Nuk u tregua ID kyçi për të cilin të merret kyçi
failKeyExtract=Gabim - urdhri për përftim kyçi dështoi
notFirstBlock=Gabim - Blloku i parë te OpenPGP s’është bllok kyçi publik
importKeyConfirm=Të importohet i trupëzuar në mesazh kyçi(kyçet) publik?
failKeyImport=Gabim - importimi i kyçit dështoi
fileWriteFailed=Dështoi shkrimi në kartelën %S
importKey=Importoni kyçin publik %S prej shërbyesit të kyçeve:
uploadKey=Dërgoje kyçin publik %S te shërbyesi i kyçeve:
keyId=ID Kyçi
keyAndSigDate=ID Kyçi: 0x%1$S / Nënshkruar më: %2$S
keyFpr=Shenja gishtash kyçi: %S
noEmailProvided=Nuk dhatë ndonjë adresë email!
keyAlreadySigned=Kyçi është tashmë i nënshkruar, nuk mund ta nënshkruani dy herë.
gnupg.invalidKey.desc=Kyçi %S nuk u gjet ose nuk është i vlefshëm. (Nën-)kyçi mund të ketë skaduar.
selKeyExpired=Skaduar më %S
createdHeader=Krijuar më
atLeastOneKey=Nuk u përzgjodh kyç! Duhet të përzgjidhni të paktën një kyç që të pranohet ky dialog
fewerKeysThanRecipients=Keni përzgjedhur një numër kyçesh më të vogël se sa numri i marrësve. Jeni i sigurt se lista e kyçeve për fshehtëzim është e plotë?
userSel.button.goBack=Përzgjidhni më tepër Kyçe
userSel.secretKeySel.title=Përzgjidhni një Kyç të Fshehtë OpenPGP Që të Nënshkruani Mesazhit Tuaj
userSel.problemNoKey=Pa kyç të vlefshëm
userSel.problemMultipleKeys=Shumë kyçe
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Dërgoje Më Vonë
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=SHËNIM: PGP/MIME mbulohet vetëm nga një numër i kufizuar klientësh email! Në Windows, vetëm Mozilla/Thunderbird, Sylpheed, Pegasus dhe Mulberry dihet se e mbulojnë këtë standard; në Linux/UNIX dhe Mac OS X shumica e klientëve të mirënjohur e mbulojnë. Nëse jeni i pasigurt, përzgjidhni mundësinë %S.
first=i pari
second=i dyti
# Strings used in am-enigprefs.js
encryptKeyHeader=Përzgjidhni Kyç OpenPGP për Fshehtëzim
identityName=Identitet: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Keni aktivizuar fshehtëzimin, por nuk keni përzgjedhur kyç. Që të fshehtëzohen email-et e dërguar për %1$S, lypset të përcaktoni prej listës suaj të kyçeve një ose disa kyçe të vlefshëm. Doni të çaktivizohet fshehtëzimi për %2$S?
noKeyToUse=(asnjë - pa fshehtëzim)
noEmptyRule=Rregulli nuk mund të jetë i zbrazët! Ju lutemi, vendosni një adresë email te fusha Rregull.
invalidAddress=Adresa(t) email që keni dhënë nuk janë të vlefshme. Nuk duhet të caktoni emra marrësish, thjesht adresat email. P.sh.:\nI pavlefshëm: Njëfarë Emri \nI vlefshëm: njëfarë.emri@address.net
noCurlyBrackets=Kllapat gjarpërushe {} kanë një domethënie të veçantë dhe nuk duhen përdorur në adresa email. Nëse doni të ndryshoni mënyrën se si kërkohet për përputhje me këtë rregull, përdorni mundësinë 'Zbatoje rregullin nëse marrësi ...'.\nMë tepër të dhëna gjeni te pjesa Ndihmë.
# Strings used in enigmailRulesEditor.js
never=Kurrë
always=Përherë
possible=E mundshme
deleteRule=Të fshihet vërtet rregulli i përzgjedhur?
nextRcpt=(Marrësi pasues)
negateRule=Jo
addKeyToRule=Shtoje kyçin %1$S (%2$S) te rregull sipas-marrësish
# Strings used in enigmailSearchKey.js
needOnline=Funksioni që keni përzgjedhur nuk mund të kihet nën mënyrën offline. Ju lutemi, lidhuni në internet dhe riprovoni.
protocolNotSupported=Protokolli '%S://' që keni përzgjedhur nuk mbulohet për shkarkim kyçesh OpenPGP.
gpgkeysDisabled=Aktivizimi i mundësisë 'extensions.enigmail.useGpgKeysTool' mund të ndihmonte këtu.
noKeyserverConn=S’u lidh dot me shërbyesin e kyçeve te %S.
keyDownloadFailed=Dështoi në shkarkim kyçesh nga shërbyesi i kyçeve. Mesazhi përkatës është:\n%S
internalError=Ndodhi një gabim i brendshëm. Kyçet nuk u shkarkuan ose importuan dot.
noKeyFound=Na ndjeni, nuk u gjet dot ndonjë kyç që të kishte përputhje me kriterin e dhënë për kërkim.\nJu lutemi, kini parasysh që ID-ja e kyçit duhet të paraprihet me "0x" (p.sh. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Dështoi në kërkim ose shkarkim kyçesh prej shërbyesi kyçesh: gpgkeys_%S nuk u ekzekutua dot.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Caktimi i besueshmërisë së pronarit dështoi
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Nënshkrimi i kyçit dështoi
alreadySigned.label=Shënim: kyçi %S është tashmë i nënshkruar me kyçin e fshehtë të përzgjedhur.
alreadySignedexportable.label=Shënim: kyçi %S është nënshkruar tashmë si i eksportueshëm me kyçin privat të përzgjedhur. Një nënshkrim vendor s’ka kuptim.
partlySigned.label=Shënim: disa ID përdoruesi për kyçin %S janë nënshkruar tashmë me kyçin e fshehtë të përzgjedhur.
noTrustedOwnKeys=S’u gjet kyç që mund të përdoret për nënshkrime! Që të mund të nënshkruani kyçe, ju duhet të paktën një kyç privat i besuar plotësisht.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Po ngarkohen kyçe, ju lutemi, prisni ...
keyValid.unknown=i panjohur
keyValid.invalid=i pavlefshëm
keyValid.disabled=i çaktivizuar
keyValid.revoked=i shfuqizuar
keyValid.expired=i skaduar
keyValid.noSubkey=pa nënkyç të vlefshëm
keyTrust.untrusted=jo i besuar
keyTrust.marginal=me raste
keyTrust.full=i besuar
keyTrust.ultimate=përfundimisht
keyTrust.group=(grup)
keyType.public=publik
keyType.publicAndSec=pub/fshe
keyMan.enableKey=Aktivizoje kyçin
keyMan.disableKey=Çaktivizoje kyçin
userAtt.photo=Atribut përdoruesi (figurë JPEG)
asciiArmorFile=ASCII Armored Files (*.asc)
importKeyFile=Importo Kartelë Kyçi OpenPGP
gnupgFile=Kartela GnuPG
saveRevokeCertAs=Krijoni & Ruani Dëshmi Shfuqizimi
revokeCertOK=Dëshmia e shfuqizimit u krijua me sukses. Mund ta përdorni për të shfuqizuar kyçin tuaj publik, p.sh. në rast se do të humbnit kyçin tuaj të fshehtë.\n\nJu lutemi, kalojeni në një media ku mund të depozitohet pa rrezik, CD ose Disketë, për shembull. Nëse dikush arrin të ketë këtë dëshmi, ai mund ta përdorë për ta bërë të papërdorshëm kyçin tuaj.
revokeCertFailed=Dëshmia e shfuqizimit nuk u krijua dot.
addUidOK=ID-ja e përdoruesit u shtua me sukses
addUidFailed=Shtimi i ID-së së Përdoruesit dështoi
noKeySelected=Duhet të përzgjidhni të paktën një kyç, që të mund të përmbushet veprimi i përzgjedhur
exportToFile=Eksportojeni Kyçin Publik Në Kartelë
exportKeypairToFile=Eksporto Kyçin e Fshehtë dhe atë Publik në Kartelë
exportSecretKey=Dëshironi ta përfshini kyçin tuaj të fshehtë te kartela e ruajtur e kyçit OpenPGP?
saveKeysOK=Kyçet u ruajtën me sukses
saveKeysFailed=Ruajtja e kyçeve dështoi
importKeysFailed=Importimi i kyçeve dështoi
enableKeyFailed=Aktivizimi/çaktivizimi i kyçeve dështoi
specificPubKeyFilename=%1$S (0x%2$S) publik
specificPubSecKeyFilename=%S (0x%S) pub-fshe
defaultPubKeyFilename=Kyçe-publikë-të-eksportuar
defaultPubSecKeyFilename=Kyçe-publikë-dhe-të-fshehtë-të-eksportuar
noSecretKeys=Nuk u gjetën kyçe të fshehtë.\n\nDoni ta prodhoni tani kyçin tuaj?
sendKeysOk=Kyçet u dërguan me sukses
sendKeysFailed=Dërgimi i kyçeve dështoi
receiveKeysOk=Kyçet u përditësuan me sukses
receiveKeysFailed=Shkarkimi i kyçeve dështoi
importFromClip=Doni të importoni ndonjë kyç(disa kyçe) nga e papastra?
importFromUrl=Shkarkoje kyçin publik prej kësaj URL-je:
copyToClipbrdFailed=S’u kopjua(n) dot kyçi(et) i(e) përzgjedhur te e papastra.
copyToClipbrdOK=Kyçet u kopjuan te e papastra
deleteSecretKey=KUJDES: Ju ndan një hap nga fshirja e një kyçi të fshehtë!\nNëse fshini kyçin tuaj të fshehtë, nuk do të jeni më në gjendje të fshehtëzoni dhe shfshehtëzoni mesazhe të fshehtëzuar për atë kyç, dhe nuk mund ta shfuqizoni më kyçin tuaj.\n\nDoni vërtet t’i fshini QË TË DY, kyçin e fshehtë dhe atë publik\n'%S'?
deleteMix=KUJDES: Ju ndan një hap nga fshirja e kyçeve të fshehtë!\nNëse fshini kyçin tuaj të fshehtë, nuk do të jeni më në gjendje të fshehtëzoni dhe shfshehtëzoni mesazhe të fshehtëzuar për atë kyç.\n\nDoni vërtet t’i fshini QË TË DY, kyçin e fshehtë të përzgjedhur dhe atë publik?
deletePubKey=Doni ta fshini kyçin publik\n'%S'?
deleteSelectedPubKey=Doni t’i fshini kyçet publikë?
deleteKeyFailed=Kyçi nuk u fshi dot.
revokeKeyQuestion=Ju ndan një hap nga shfuqizimi i kyçit '%S'.\n\nNuk do të jeni më në gjendje të nënshkruani me këtë kyç, dhe pasi të shpërndahet, të tjerët nuk do të jenë më në gjendje të fshehtëzojnë me këtë kyç. Mundeni prapëseprapë ta përdorni kyçin për shfshehtëzimin e mesazhe të vjetër.\n\nDoni të vazhdoni?
revokeKeyOk=Kyçi është shfuqizuar. Nëse kyçi juaj gjendet te një shërbyes kyçesh, këshillohet ta ringarkoni, që të tjerët të mund ta vënë re shfuqizimin.
revokeKeyFailed=Kyçi nuk u shfuqizua dot.
refreshAllQuestion=Nuk përzgjodhët ndonjë kyç. Do të donit të rifreskonit KREJT kyçet?
refreshKey.warn=Kujdes: në varësi të numrit të kyçeve dhe shpejtësisë së lidhjes, rifreskimi i krejt kyçeve mund të jetë një proces ca i gjatë!
downloadContactsKeys.warn=Kujdes: në varësi të numrit të kontakteve dhe shpejtësisë së lidhjes, shkarkimi i krejt kyçeve mund të jetë një proces ca i gjatë!
downloadContactsKeys.importFrom=Të importohen kontakte prej librit të adresave '%S'?
keyMan.button.exportSecKey=Eksporto Kyçe të &Fshehtë
keyMan.button.exportPubKey=Eksporto Vetëm Kyçe &Publikë
keyMan.button.import=&Importo
keyMan.button.refreshAll=&Rifresko Krejt Kyçet
keyMan.button.revokeKey=&Shfuqizoje Kyçin
keyMan.button.skip=&Anashkaloje Kyçin
keylist.noOtherUids=Nuk ka identitete të tjerë
keylist.hasOtherUids=I njohur edhe si
keylist.noPhotos=Nuk ka fotografi
keylist.hasPhotos=Fotografi
keyMan.addphoto.filepicker.title=Përzgjidhni foto për shtim
keyMan.addphoto.warnLargeFile=Kartela që keni zgjedhur është më e madhe se sa 25 kB.\nNuk këshillohet të shtoni kartela shumë të mëdha, ngaqë kështu kyçet bëhen shumë të mëdhenj.
keyMan.addphoto.noJpegFile=Kartela e përzgjedhur nuk duket se është kartelë JPEG. Ju lutemi, zgjidhni një tjetër kartelë.
keyMan.addphoto.failed=Fotoja nuk u shtua dot.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Ndryshimi i ID-së parësore të Përdoruesit dështoi
changePrimUidOK=ID-ja parësore e përdoruesit u ndryshua me sukses
deleteUidFailed=Fshirja e ID-së së përdoruesit %S dështoi
deleteUidOK=ID-ja e përdoruesit %S u fshi me sukses
revokeUidFailed=Shfuqizimi i ID-së së përdoruesit %S dështoi
revokeUidOK=ID-ja e përdoruesit %S u shfuqizuar me sukses. Nëse kyçi juaj gjendet te një shërbyes kyçesh, këshillohet ta ringarkoni, që të tjerët të mund ta vënë re shfuqizimin.
revokeUidQuestion=Doni vërtet të shfuqizoni ID-në e përdoruesit %S?
deleteUidQuestion=Doni vërtet të fshihet ID-ja e përdoruesit %S?\n\nJu lutemi, kini parasysh që: nëse e keni parashtruar kyçin tuaj publik te një shërbyes kyçesh, fshirja e një ID-je përdoruesi, nuk do të ndryshojë gjë. Në këtë rast do të duhej të përdornit 'Shfuqizoni ID përdoruesi'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=SUKSES! Kyçet u importuan
importInfoSuccess=✅
importInfoBits=Bit
importInfoCreated=Krijuar më
importInfoFpr=Shenja gishtash
importInfoDetails=(Hollësi)
importInfoNoKeys=S’u importuan kyçe.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=kyç publik
keyTypePrimary=kyç parësor
keyTypeSubkey=nënkyç
keyTypePair=çift kyçesh
keyExpiryNever=kurrë
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Fshehtëzoje
keyUsageSign=Nënshkruaje
keyUsageCertify=Dëshmoje
keyUsageAuthentication=Mirëfilltësim
keyDoesNotExpire=Kyçi nuk skadon
# Strings in enigmailGenCardKey.xul
keygen.started=Ju lutemi, prisni, ndërkohë që po prodhohet kyçi ....
keygen.completed=Kyçi u Prodhua. ID-ja e kyçit të ri është: 0x%S
keygen.keyBackup=Kyçi u kopjeruajt si %S
keygen.passRequired=Ju lutemi, përcaktoni një frazëkalim, nëse dëshironi të krijoni një kopjeruajtje të kyçit juaj jashtë Kartës suaj të Mençur.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN-i që dhatë nuk përputhet; ju lutemi, rijepeni
cardPin.minLength=PIN-i duhet të ketë e pakta %S shenja ose numra
cardPin.processFailed=Dështoi në ndryshim PIN-i
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Kyçet po rifreskohen, ju lutemi, prisni ...
keyserverProgress.uploading=Kyçet po ngarkohen, ju lutemi, prisni ...
keyserverTitle.refreshing=Rifreskoni Kyçet
keyserverTitle.uploading=Ngarkim Kyçi
# Strings in enigmailSetupWizard
passphrase.min8keys=Frazëkalimi juaj duhet të përmbajë të paktën 8 shenja!
setupWizard.reallyCancel=Doni ta mbyllni vërtet Ndihmësin e Rregullimit të Enigmail-it?
setupWizard.invalidGpg=Kartela që keni treguar nuk është i ekzekutueshëm GnuPG-je. Ju lutemi, përcaktoni një kartelë tjetër.
setupWizard.specifyFile=Që të mund të vazhdohet, lypset të përcaktoni të paktën një kartelë kyçi publik.
setupWizard.installFailed=Duket se instalimi nuk qe i suksesshëm. Ju lutemi, ose riprovoni instalimin, ose instalojeni GnuPG-në dorazi dhe lokalizojeni duke përdorur butonin Shfletoni.
setupWizard.downloadForbidden=Për hir të sigurisë suaj, nuk do ta shkarkojmë GnuPG-në. Ju lutemi, vizitoni http://www.gnupg.org/ që të shkarkoni GnuPG-në.
setupWizard.downloadImpossible=Hëpërhë nuk e shkarkojmë dot GnuPG-në. Ju lutemi, provoni më vonë ose vizitoni http://www.gnupg.org/ që të shkarkoni GnuPG-në.
setupWizard.hashSumError=Ndihmësi nuk verifikoi dot pacenueshmërinë e kartelës së shkarkuar. Kartela mund të jetë e dëmtuar ose e manipuluar. Doni të vazhdohet instalimi, sido që të jetë?
setupWizard.importSettingsFile=Përcaktoni kartelë kopjeruajtjeje prej nga të ngarkohet
setupWizard.invalidSettingsFile=Kartela e treguar s’është kartelë e saktë kopjeruajtjeje Rregullimesh Enigmail-i.
setupWizard.gpgConfExists=Kartela e formësimit të GnuPG-së ekziston tashmë. Doni të mbishkruhet me atë prej instalimit tuaj të vjetër?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Ndodhi një gabim teksa provohej të shkarkohej GnuPG-ja. Ju lutemi, për hollësi të mëtejshme kontrolloni regjistrin e konsolës.
installGnuPG.installFailed=Ndodhi një gabim teksa instalohej GnuPG-ja. Ju lutemi, për hollësi të mëtejshme kontrolloni regjistrin e konsolës.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Duhet të plotësoni një emër dhe një adresë email
addUidDlg.nameMinLengthError=Emri duhet të ketë e pakta 5 shenja
addUidDlg.invalidEmailError=Duhet të jepni një adresë email të vlefshme
addUidDlg.commentError=Në komente nuk lejohen kllapat
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Kartat e mençura OpenPGP mbulojnë vetëm shenja ASCII për Emër/Mbiemër.
# network error types
errorType.SecurityCertificate=Dëshmia e sigurisë e paraqitur nga shërbimi web nuk është e vlefshme.
errorType.SecurityProtocol=Protokolli i sigurisë i përdorur nga shërbimi web është i panjohur.
errorType.Network=Ndodhi një gabim rrjeti.
# filter stuff
filter.folderRequired=Duhet të përzgjidhni një dosje destinacion
filter.decryptMove.label=Shfshehtëzoje përgjithmonë (Enigmail)
filter.decryptCopy.label=Krijo Kopje të shfshehtëzuar (Enigmail)
filter.decryptMove.warnExperimental=Kujdes - veprimi "Sfshehtëzoje përgjithmonë" mund të shpjerë në shkatërrim mesazhesh.\n\nKëshillojmë me forcë që së pari të provoni filtrin "Krijo Kopje të shfshehtëzuar", të provoni me kujdes përfundimin, dhe të filloni ta përdorni këtë filtër vetëm pasi të jeni të kënaqur me përfundimin.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Nuk shfshehtëzoi dot mesazhin me subjekt\n"%S".\nDoni të riprovoni me një tjetër frazëkalim apo doni të anashkalohet mesazhi?
converter.decryptAtt.failed=Nuk shfshehtëzoi dot bashkëngjitjen "%1$S"\ne mesazhit me subjekt\n"%2$S".\nDoni të riprovoni me një tjetër frazëkalim apo doni të anashkalohet mesazhi?
saveLogFile.title=Ruaje Kartelën Regjistër
# strings in gpg.jsm
unknownSigningAlg=Algoritëm i panjohur nënshkrimesh (ID: %S)
unknownHashAlg=Hash kriptografik i panjohur (ID: %S)
# strings in keyRing.jsm
keyring.photo=Foto
keyRing.pubKeyRevoked=Kyçi %1$S (ID kyçi %2$S) është shfuqizuar.
keyRing.pubKeyExpired=Kyçi %1$S (ID kyçi %2$S) ka skaduar.
keyRing.pubKeyNotForSigning=Kyçi %1$S (ID kyçi %2$S) s’mund të përdoret për nënshkirime.
keyRing.pubKeyNotForEncryption=Kyçi %1$S (ID kyçi %2$S) s’mund të përdoret për fshehtëzim.
keyRing.keyDisabled=Kyçi %1$S (ID kyçi %2$S) është i çaktivizuar; s’mund të përdoret.
keyRing.keyNotTrusted=Kyçi %1$S (ID kyçi %2$S) s’është mjaftueshmërisht i besueshëm. Ju lutemi, që ta përdorni për nënshkrime, caktojani kyçit tuaj shkallën e besimit si "përfundimtare".
keyRing.keyInvalid=Kyçi %1$S (ID kyçi %2$S) është i pavlefshëm (p.sh. s’ka vetënënshkrim).
keyRing.signSubKeysRevoked=Janë të shfuqizuar krejt nënkyçet nënshkrues të kyçit %1$S (ID kyçi %2$S).
keyRing.signSubKeysExpired=Kanë skaduar krejt nënkyçet nënshkrues të kyçit %1$S (ID kyçi %2$S).
keyRing.signSubKeysUnusable=Krejt nënkyçet nënshkrues të kyçit %1$S (ID kyçi %2$S) janë të shfuqizuar, kanë skaduar ose janë të papërdorshëm.
keyRing.encSubKeysRevoked=Janë të shfuqizuar krejt nënkyçet fshehtëzues të kyçit %1$S (ID kyçi %2$S).
keyRing.encSubKeysExpired=Kanë skaduar krejt nënkyçet fshehtëzues të kyçit %1$S (ID kyçi %2$S).
keyRing.noSecretKey=S’duket se keni kyçin e fshehtë për %1$S (ID kyçi %2$S) te vargu juaj i kyçeve; s’mund ta përdorni kyçin për nënshkrime.
keyRing.encSubKeysUnusable=Krejt nënkyçet fshehtëzues të kyçit %1$S (ID kyçi %2$S) janë të shfuqizuar, kanë skaduar ose janë të papërdorshëm.
#strings in exportSettingsWizard.js
cannotWriteToFile=S’ruhet dot te kartela file '%S'. Ju lutemi, përzgjidhni një kartelë tjetër.
dataExportError=Ndodhi një gabim gjatë eksportimit të të dhënave tuaja.
enigmailSettings=EnigmailSettings
defaultBackupFileName=Enigmail-export
specifyExportFile=Caktoni emër kartele për eksportim
homedirParamNotSUpported=Për eksportimin/rikthimin e rregullimeve tuaja nuk mbulohen parametra shtesë që formësojnë shtigje, të tillë si --homedir dhe --keyring . Ju lutemi, përdorni metoda alternative, të tilla si rregullimi i ndryshores së mjedisit GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=Kyçi juaj %1$S do të skadojë në më pak se %2$S ditë.\n\nKëshillojmë që të krijoni një dyshe të re kyçesh dhe të formësoni llogaritë përkatëse për përdorim të kyçit të ri.
expiry.keysExpireSoon=Kyçet tuaj vijues do të skadojnë në më pak se %1$S ditë:\n%2$S. Këshillojmë që të krijoni kyçe të rinj dhe të formësoni llogaritë tuaja për përdorim të kyçeve të rinj.
enigmail/lang/sq/help/ 0000775 0000000 0000000 00000000000 12667016244 0015147 5 ustar 00root root 0000000 0000000 enigmail/lang/sq/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017505 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/sq/help/editRcptRule.html 0000664 0000000 0000000 00000011603 12667016244 0020444 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit Per-Recipient Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit Per-Recipient Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set Enigmail Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the Enigmail Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the Per-Recipient Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/sq/help/help.html 0000664 0000000 0000000 00000010467 12667016244 0016775 0 ustar 00root root 0000000 0000000
Enigmail Help
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
If you have questions or comments about enigmail, please send a message to the Enigmail mailing list
Enigmail is open source and licensed under the Mozilla Public License and the GNU General Public License
enigmail/lang/sq/help/initError.html 0000664 0000000 0000000 00000004546 12667016244 0020023 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing Enigmail
Enigmail Help
How to Resolve Problems with Initializing Enigmail
There are several reasons why initializing Enigmail does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for Enigmail to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and Enigmail cannot find it, then you need to manually set the path to GnuPG in the Enigmail Preferences (menu Enigmail > Preferences)
- Enigmime failed to initialize
-
Enigmail works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/sq/help/messenger.html 0000664 0000000 0000000 00000010141 12667016244 0020022 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Enigmail Security info: allows you to view the output status from GnuPG for the message.
- Copy Enigmail Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/sq/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020336 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/sq/help/sendingPrefs.html 0000664 0000000 0000000 00000004757 12667016244 0020501 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of Enigmail to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/sv-SE/ 0000775 0000000 0000000 00000000000 12667016244 0014531 5 ustar 00root root 0000000 0000000 enigmail/lang/sv-SE/am-enigprefs.properties 0000664 0000000 0000000 00000000122 12667016244 0021217 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP Säkerhet
enigmail/lang/sv-SE/enigmail.dtd 0000664 0000000 0000000 00000142004 12667016244 0017014 0 ustar 00root root 0000000 0000000
OBS: Nyckelgenerering kan ta upp till flera minuter att slutföra. Avsluta inte programmet när nyckelgenerering pågår. Aktivt surfa eller disk-intensiva operationer under nyckelgenerering kommer att fylla på 'slumpvärdespoolen' och påskynda processen. Du kommer att bli varnad när nyckelgenerering är klar.">
' är ogiltig">
OBS: Nyckelgenerering kan ta upp till flera minuter att slutföra. Avsluta inte programmet när nyckelgenerering pågår. Du kommer bli varnad när nyckelgenerering är klart.">
OBS: Enigmail kommer alltid att verifiera signaturer på e-post för varje konto eller identitet, oavsett om den är aktiverad eller inte">
publika nyckel är till för andra för att skicka krypterad e-post till dig. Du kan distribuera den till alla.">
privata nyckel är till för dig själv för att dekryptera e-post och skicka signerad e-post.
Du bör inte ge till någon.">
privata nyckel är till för dig själv för att dekryptera e-post och skicka signerad e-post.
Du bör inte ge till någon.
För att säkra din privata nyckel, kommer du att bli tillfrågad om en lösenfras i följande två dialogrutor.">
lösenfras är ett lösenord för att skydda din privata nyckel. Den förhindrar missbruk av din privata nyckel.">
inte.">
Du kommer att uppmanas att ange ditt lösenord för detta.">
exportera data från den gamla datorn med hjälp av backupguiden från inställningarna i Enigmail
importera data till den nya datorn med hjälp av den här guiden.
">
Tack för att du använder Enigmail.">
exportera data från den gamla datorn med hjälp av den här guiden
importera data till den nya datorn med hjälp av installationsguiden.
">
enigmail/lang/sv-SE/enigmail.properties 0000664 0000000 0000000 00000112261 12667016244 0020437 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail Varning
enigConfirm=Enigmail Bekräfta
enigError=Enigmail Fel
enigPrompt=Enigmail Fråga
dlgYes=&Ja
dlgNo=&Nej
dlgKeepSetting=Kom ihåg mitt svar och fråga mig inte igen
dlgNoPrompt=Visa inte den här dialogrutan igen
dlg.button.delete=&Ta bort
dlg.button.cancel=&Avbryt
dlg.button.close=&Stäng
dlg.button.continue=&Fortsätt
dlg.button.skip=&Hoppa över
dlg.button.overwrite=Skri&v över
dlg.button.view=&Visa
dlg.button.retry=&Försök igen
dlg.button.ignore=&Ignorera
repeatPrefix=\n\nDetta meddelande kommer att upprepas %S
repeatSuffixSingular=gång till.
repeatSuffixPlural=gånger till.
noRepeat=\n\nDenna varning kommer inte att upprepas förrän du uppgraderar Enigmail.
pgpNotSupported=Du verkar använda Enigmail tillsammans med PGP 6.x\n\nTyvärr har PGP 6.x ett antal problem som hindrar Enigmail från att fungera korrekt. Därför stöder Enigmail inte längre PGP 6.x; byt till GnuPG (GPG) istället.\n\nOm du behöver hjälp med att byta till GnuPG, kontrollera avsnittet hjälp på Enigmail's hemsida.
initErr.howToFixIt=För att kunna använda Enigmail krävs GnuPG. Om du inte har installerat GnuPG ännu, är det enklaste genom att använda knappen för 'Installationsguiden' nedan.
initErr.setupWizard.button=&Installationsguide
passphraseCleared=Lösenfrasen har raderats.
cannotClearPassphrase=Du använder ett icke-standardverktyg (såsom gnome-keyring) för lösenordshantering. Att rensa lösenord är därför inte möjligt inifrån Enigmail.
noPhotoAvailable=Ingen bild tillgänglig
debugLog.title=Enigmail Felsökningslogg
error.photoPathNotReadable=Bildsökvägen '%S' är inte läsbar
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Denna nya version av Enigmail har betydande förändringar i hanteringen av inställningar och alternativ. Vi försökte överföra de gamla inställningarna till den nya versionen. Men vi kan inte täcka alla fall automatiskt. Dubbelkolla nya inställningar och alternativ.
enigmailCommon.checkPreferences=Kontrollera inställingar ...
preferences.defaultToPgpMime=Vi har ändrat standardkodning för meddelanden i Enigmail från Inline-PGP till PGP/MIME. Vi rekommenderar dig att hålla detta som standard.\n\nOm du fortfarande vill använda Inline-PGP som standard, kan du göra det i kontoinställningar under OpenPGP-säkerhet.
usingVersion=Kör Enigmail version %S
usingAgent=Använder %S körbara %S för att kryptera och dekryptera
agentError=FEL: Det gick inte att komma åt tjänsten Enigmime!
accessError=Fel vid åtkomst till tjänsten Enigmail
onlyGPG=Nyckelgenerering fungerar endast med GnuPG (inte med PGP)!
keygenComplete=Nyckelgenerering klar! Identitet <%S> kommer att användas för signering.
revokeCertRecommended=Vi rekommenderar starkt att skapa ett återkallningscertifikat för din nyckel. Detta certifikat kan användas för att ogiltigförklara din nyckel, t.ex. om din privata nyckel försvinner eller äventyras. Vill du skapa ett sådant återkallningscertifikat nu?
keyMan.button.generateCert=&Skapa certifikat
genCompleteNoSign=Nyckelgenerering klar!
genGoing=Nyckelgenerering pågår redan!
passNoMatch=Lösenfraserna matchar inte; försök igen
passCheckBox=Markera kryssrutan om du inte anger lösenfras för nyckel
passUserName=Ange användarnamn för denna identitet
keygen.missingUserName=Det finns inget namn angett för det valda kontot/identiten. Ange ett värde i fältet "Ditt namn" i kontoinställningarna.
keygen.passCharProblem=Du använder specialtecken i din lösenfras. Tyvärr kan detta orsaka problem för andra applikationer. Vi rekommenderar att du väljer en lösenfras som endast består av något av dessa tecken: \na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=På grund av tekniska skäl, kan din lösenordsfras inte börja eller sluta med ett blanksteg.
changePassFailed=Att ändra lösenfrasen misslyckades.
keyConfirm=Skapa publika och privata nycklar för '%S'?
keyMan.button.generateKey=&Skapa nyckel
keyAbort=Avbryta nyckelgenerering?
keyMan.button.generateKeyAbort=&Avbryt nyckelgenerering
keyMan.button.generateKeyContinue=&Fortsätt nyckelgenerering
expiryTooLong=Du kan inte skapa en nyckel som löper i mer än 100 år.
expiryTooLongShorter=Du kan inte skapa en nyckel som löper i mer än 90 år.
expiryTooShort=Din nyckel måste vara giltigt i minst ett dygn.
dsaSizeLimit=DSA signeringsnycklar är begränsade till 3072 bitar. Nyckeln storlek kommer att minskas.
keyGenFailed=Nyckelgenerering misslyckades. Vänligen kontrollera Enigmail konsolen (Menyn Enigmail > Felsök Enigmail) för detaljer.
setKeyExpirationDateFailed=Förfallodatumet kan inte ändras
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail Säkerhetsinfo\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Bilagor till detta meddelande har inte signerats eller krypterats*\n\n
possiblyPgpMime=Möjligen PGP/MIME krypterat eller signerat meddelande; klicka på knappen Dekryptera för att bekräfta
noDecrypted=Inget dekrypterat meddelande att spara!\nAnvänd Spara-kommandot från Arkivmenyn
noMessage=Inget meddelande att spara!
useButton=Klicka på knappen Dekryptera för att dekryptera meddelanden
saveHeader=Enigmail: Sparar dekrypterat meddelande
saveAttachmentHeader=Enigmail: Sparar dekrypterad bilaga
noTempDir=Det gick inte att hitta en temporär katalog att skriva till\nVar god ange miljövariabeln TEMP
attachmentPgpKey=Bilagan '%S' som du öppnar verkar vara en OpenPGP nyckelfil.\n\nKlicka på 'Importera' för att importera nycklar som finns eller 'Visa' för att visa filens innehåll i ett webbläsarfönster
beginPgpPart=********* *STARTAR KRYPTERAD eller SIGNERAD DEL* *********
endPgpPart=********** *AVSLUTAR KRYPTERAD eller SIGNERAD DEL* **********
notePartEncrypted=Enigmail: *Delar av meddelandet har INTE signerats eller krypterats*
noteCutMessage=Enigmail: *Flera meddelandeblock hittades -- dekryptering/verifiering avbruten*
decryptOkNoSig=Varning\n\nDekrypteringen lyckades, men signaturen kunde inte verifieras korrekt
msgOvl.button.contAnyway=&Fortsätt ändå
signature.verifiedOK=Signaturen för bilagan %S har verifierats
signature.verifyFailed=Signaturen för bilagan %S kunde inte verifieras
attachment.noMatchToSignature=Det gick inte att matcha bilaga '%S' till en signaturfil
attachment.noMatchFromSignature=Det gick inte att matcha signaturfil '%S' till en bilaga
fixBrokenExchangeMsg.failed=Misslyckades att reparera meddelande.
keysToExport=Välj OpenPGP nycklar att infoga
keysToUse=Välj OpenPGP nycklar som ska användas för %S
pubKey=Publik nyckel för %S\n
windowLocked=Skrivfönstret är låst; skicka avbryts
sendUnencrypted=Det gick inte att initiera Enigmail.\nSkicka okrypterat meddelande?
composeSpecifyEmail=Vänligen ange din primära e-postadress, som kommer att användas för att välja signeringsnyckel för utgående meddelanden.\n Om du lämnar det tomt, kommer FRÅN adress i meddelandet att användas för att välja signeringsnyckel.
sendingHiddenRcpt=Detta meddelande har BCC (hemlig kopia) mottagare. Om meddelandet är krypterat, är det möjligt att dölja BCC mottagare, men användare av vissa produkter (t.ex. PGP Corp) kommer inte att kunna dekryptera meddelandet. Mot bakgrund av detta rekommenderar vi att undvika BCC-e-post med krypterade meddelanden.
sendWithHiddenBcc=Dölj BCC mottagare
sendWithShownBcc=Kryptera normalt
sendingNews=Krypterad sändning avbröts.\n\nDetta meddelande kan inte krypteras eftersom det finns diskussionsgrupper i mottagare. Vänligen skicka meddelandet igen utan kryptering.
sendToNewsWarning=Varning: du är på väg att skicka ett krypterat e-postmeddelande till en diskussionsgrupp.\n\nDetta motverkas eftersom det bara är meningsfullt om alla medlemmar i gruppen kan dekryptera meddelandet, dvs meddelandet måste krypterat med nycklarna till alla gruppdeltagare. Vänligen skicka detta meddelande endast om du vet exakt vad du gör.\n\nVill du fortsätta?
hasHTML=HTML e-postvarning:\nDetta meddelande kan innehålla HTML, vilket kan orsaka att signering/kryptering misslyckas. För att undvika detta i framtiden, bör du trycka på SHIFT tangenten när du klickar på Skriv/Svara knappen för att skicka signerad e-post.\nOm du signerar e-post som standard, bör du avmarkera 'Skriva meddelanden i HTML' i inställningsrutan för att permanent inaktivera HTML e-post för detta e-postkonto.
strippingHTML=Meddelandet innehåller HTML formateringsinformation som går förlorad vid konvertering till oformaterad text för signering/kryptering. Vill du fortsätta?
msgCompose.button.sendAnyway=&Skicka meddelande ändå
attachWarning=Bilagor till detta meddelande är inte lokala, de kan inte krypteras. För att kryptera bilagor, lagra dem som lokala filer först och bifoga dessa filer. Vill du skicka meddelandet ändå?
quotedPrintableWarn=Du har aktiverat 'quoted-printable' kodning för att skicka meddelanden. Detta kan leda till felaktig dekryptering och/eller verifiering av ditt meddelande.\nVill du stänga av skicka 'quoted-printable' meddelanden nu?
minimalLineWrapping=Du har ställt radbrytning till %S tecken. För korrekt kryptering och/eller signering, måste detta värde vara minst 68.\nVill du ändra radbrytning till 68 tecken nu?
warning=Varning
signIconClicked=Du har manuellt ändrat signering. Därför, medan du skriver det här meddelandet, (av)aktivera signering beror inte längre på att (av)aktivera kryptering.
pgpMime_sMime.dlg.text=Du har aktiverat PGP/MIME och S/MIME tillsammans. Tyvärr är det inte möjligt att stödja båda protokollen samtidigt. Välj om du vill använda PGP/MIME eller S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Använd &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Använd &S/MIME
errorKeyUnusable=Den e-postadress eller nyckel-ID '%S' kan inte matchas till en giltig, inte har löpt ut OpenPGP nyckel.\nSe till att du har en giltig OpenPGP nyckel, och att dina kontoinställningar pekar på den nyckeln.
errorOwnKeyUnusable=Nyckeln-ID '%S' konfigurerad för den aktuella identiteten är inte en användbar OpenPGP-nyckel.\n\nSe till att du har en giltig, ej upphörd OpenPGP-nyckel och att kontoinställningarna pekar på den nyckeln.\nOm din nyckel inte har upphört, kontrollera att du satte ägarförtroende till betrodd eller helt och hållet.
msgCompose.cannotSaveDraft=Fel vid sparande av utkast
msgCompose.internalEncryptionError=Internt fel: utlovad kryptering inaktiverad
msgCompose.internalError=Ett internt fel har inträffat.
msgCompose.toolbarTxt.signAndEncrypt=Detta meddelande kommer att signeras och krypteras
msgCompose.toolbarTxt.signOnly=Detta meddelande kommer att signeras
msgCompose.toolbarTxt.encryptOnly=Detta meddelande kommer krypteras
msgCompose.toolbarTxt.noEncryption=Detta meddelande kommer att vara osignerat och okrypterat
msgCompose.toolbarTxt.disabled=Enigmail är inaktiverad för den valda identiteten
msgCompose.toolbarTxt.smime=S/MIME är aktiverad - eventuellt i konflikt med Enigmail
msgCompose.toolbarTxt.smimeOff=- S/MIME används därför inte
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME är aktiverad - Enigmail används därför inte
msgCompose.toolbarTxt.smimeNoDraftEncryption=- utkast kommer inte att krypteras
msgCompose.toolbarTxt.smimeConflict=Enigmail används inte eftersom S/MIME är aktiverad. Stäng av S/MIME-signering och/eller kryptering och aktivera sedan Enigmail kryptering
msgCompose.encryptedSubjectStub=Krypterat meddelande
msgCompose.detailsButton.label=Detaljer ...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Skicka avbryts.\n\n
# details:
keyNotTrusted=Inte tillräckligt med förtroende för nyckel '%S'
keyNotFound=Nyckel '%S' hittades inte
keyRevoked=Nyckel '%S' har återkallats
keyExpired=Nyckel '%S' har upphört
statPGPMIME=PGP/MIME
statSigned=SIGNERAD
statEncrypted=KRYPTERAD
statPlain=OSIGNERAD och OKRYPTERAD
offlineSave=Spara %S meddelande till %S i Utkorgen?
onlineSend=Skicka %S meddelande till %S?
encryptKeysNote=OBS: meddelande krypteras med följande användar-ID's / Nycklar: %S
hiddenKey=
signFailed=Fel i Enigmail; Kryptering/signering misslyckades; skicka meddelande okrypterat?
msgCompose.button.sendUnencrypted=&Skicka meddelande okrypterat
recipientsSelectionHdr=Välj mottagare för kryptering
configureNow=Du har ännu inte konfigurerat Enigmail säkerhet för den valda identiteten. Vill du göra det nu?
# encryption/signing status and associated reasons:
encryptMessageAuto=Kryptera meddelande (auto)
encryptMessageNorm=Kryptera meddelande
signMessageAuto=Signera meddelande (auto)
signMessageNorm=Signera meddelande
encryptOff=Kryptering: AV
encryptOnWithReason=Kryptering: PÃ… (%S)
encryptOffWithReason=Kryptering: AV (%S)
encryptOn=Kryptering: PÃ…
signOn=Signering: PÃ…
signOff=Signering: AV
signOnWithReason=Signering: PÃ… (%S)
signOffWithReason=Signering: AV (%S)
reasonEnabledByDefault=aktiverad som standard
reasonManuallyForced=tvinga manuellt
reasonByRecipientRules=tvingad av mottagarregler
reasonByAutoEncryption=tvingad av auto-kryptering
reasonByConflict=på grund av konflikten i mottagarregler
reasonByEncryptionMode=på grund av krypteringsläge
reasonSmimeConflict=eftersom S/MIME är aktiverat istället
# should not be used anymore:
encryptYes=Meddelandet kommer att krypteras
encryptNo=Meddelandet kommer inte att krypteras
# should not be used anymore:
signYes=Meddelandet kommer att signeras
signNo=Meddelandet kommer inte att signeras
# PGP/MIME status:
pgpmimeNormal=Protokoll: PGP/MIME
inlinePGPNormal=Protokoll: Inline PGP
pgpmimeAuto=Protokoll: PGP/MIME (auto)
inlinePGPAuto=Protokoll: Inline PGP (auto)
# should not be used anymore
pgpmimeYes=PGP/MIME kommer att användas
pgpmimeNo=Inline PGP kommer att användas
# Attach own key status (tooltip strings):
attachOwnKeyNo=Din egen nyckel kommer inte bifogas
attachOwnKeyYes=Din egen nyckel kommer att bifogas
attachOwnKeyDisabled=Din egen nyckel kan inte bifogas. Du måste välja en specifik nyckel\ni OpenPGP-delen av kontoinställningar för att aktivera den här funktionen.
rulesConflict=Motstridiga per-mottagare regler upptäckta\n%S\n\nSkicka meddelandet med dessa inställningar?
msgCompose.button.configure=&Konfigurera
msgCompose.button.send=&Skicka meddelande
msgCompose.button.save=&Spara meddelande
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Publik nyckel %S behövs för att verifiera signatur
keyUsed=Publik nyckel %S används för att verifiera signatur
clickDecrypt=; klicka på knappen Dekryptera
clickDecryptRetry=; klicka på knappen Dekryptera för att försöka igen
clickDetailsButton=; klicka på 'Detaljer' för med information
clickImportButton=; klicka på knappen 'Importera nyckel' för att hämta nyckel
keyTypeUnsupported=; nyckeltypen stöds inte av din version av GnuPG
msgPart=En del av meddelandet %S
msgSigned=signerat
msgSignedUnkownKey=signerad med okänd nyckel
msgEncrypted=krypterat
msgSignedAndEnc=signerat och krypterat
unverifiedSig=Ej verifierad signatur
incompleteDecrypt=Dekryptering ofullständig
needKey=Fel - privat nyckel krävs för att dekryptera meddelandet
failedDecrypt=Fel - dekryptering misslyckades
badPhrase=Fel - dålig lösenfras
failedDecryptVerify=Fel - dekryptering/verifiering misslyckades
viewInfo=; Visa > Meddelande säkerhetsinformation för detaljer
decryptedMsg=Dekrypterat meddelande
decryptedMsgWithFormatError=Dekrypterade meddelandet (återställd bruten PGP e-postformat sannolikt orsakad av en gammal Exchange-server, så resultatet kanske inte är perfekt för att läsa)
usedAlgorithms=Använda algoritmer: %S och %S
# strings in pref-enigmail.js
oldGpgVersion14=Initiering för Enigmail misslyckades.\n\nDu använder GnuPG version %S, vilken inte längre stöds. Enigmail kräver GnuPG version 2.0.7 eller senare. Vänligen uppgradera din installation av GnuPG annars fungerar inte Enigmail.
locateGpg=Hitta GnuPG program
invalidGpgPath=GnuPG kan inte köras med den angivna sökvägen. Enigmail inaktiveras därför tills du ändrar sökvägen till GnuPG igen eller tills du startar om programmet.
warningsAreReset=Alla varningar har återställts.
prefs.gpgFound=GnuPG hittades i %S
prefs.gpgNotFound=Det gick inte att hitta GnuPG
prefs.warnAskNever=Varning: aktivera det här alternativet kommer att resultera i okrypterade e-post utan någon ytterligare information om det inte finns nyckel för en av mottagarna -- Enigmail kommer inte att informera dig om detta händer!
prefs.warnIdleTimeForUnknownAgent=Ditt system använder ett specialiserat verktyg för hantering av lösenfraser, såsom gnome-keyring eller seahorse-agent. Tyvärr kan inte Enigmail styra lösenfrasens timeout för det verktyg du använder. Därför bortses respektive timeoutinställning i Enigmail.
prefEnigmail.oneKeyserverOnly=Fel - du kan bara ange en nyckelserver för automatisk nedladdning av saknade OpenPGP nycklar.
enterAdminPin=Skriv in ditt ADMIN PIN för SmartCard
enterCardPin=Vänligen skriv ditt SmartCard PIN
notInit=Fel - Enigmail tjänsten ännu inte initierad
badCommand=Fel - krypteringskommandot misslyckades
cmdLine=kommandorad och utmatning:
notRequired=Fel - ingen kryptering krävs
notComplete=Fel - nyckelgenerering ännu inte slutförd
invalidEmail=Fel - ogiltig e-postadress
noPassphrase=Fel - ingen uppgift om lösenfras
noPGPblock=Fel - Inget giltigt skyddat OpenPGP datablock finns
unverifiedReply=Indragen meddelandedel (svar) troligen ändrats
keyInMessageBody=Nyckel hittades i meddelandet. Klicka på "Importera nyckel" för att importera nyckeln
sigMismatch=Fel - Signaturen matchar inte
cantImport=Fel vid import av publik nyckel\n\n
doImportOne=Importera %1$S (%2$S)?
doImportMultiple=Importera följande nycklar?\n\n%S
previewFailed=Kan inte läsa den publika nyckelfilen.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=SmartCard %S finns i din läsare kan inte användas för att behandla meddelandet.\nSätt in ditt SmartCard %S och upprepa operationen.
sc.insertCard=Operationen kräver ditt SmartCard %S.\nSätt in ditt SmartCard och upprepa operationen.
sc.removeCard=Operationen kräver inget SmartCard i läsaren.\nTa bort ditt SmartCard och upprepa operationen.
sc.noCardAvailable=Inget SmartCard kunde hittas i din läsare.\nSätt in ditt SmartCard och upprepa operationen.
sc.noReaderAvailable=Ingen åtkomst till din SmartCard-läsare.\nKoppla in din SmartCard-läsare, sätt in ditt kort, och upprepa operationen.
keyError.keySpecNotFound=E-postadressen "%S" kan inte matchas till en nyckel i din nyckelring.
keyError.keyIdNotFound=Den konfigurerade nyckel-ID "%S" kan inte hittas i din nyckelring.
keyError.resolutionAction=Välj en giltig nyckel i OpenPGP-delen av dina kontoinställningar.
missingPassphrase=Lösenord saknas
errorHandling.gpgAgentInvalid=Systemet kör en version av gpg-agent som inte är lämplig för din GnuPG-version.
errorHandling.gpgAgentError=GnuPG rapporterade ett fel i kommunikationen med gpg-agent (en komponent i GnuPG).
errorHandling.dirmngrError=GnuPG rapporterade ett fel i kommunikationen med dirmngr (en komponent i GnuPG).
errorHandling.pinentryError=GnuPG kan inte fråga efter ditt lösenord via pinentry.
errorHandling.readFaq=Detta är ett systeminställnings eller konfigurationsfel som hindrar Enigmail från att fungera ordentligt och kan inte fixas automatiskt.\n\nVi rekommenderar starkt att du tittat på vår supportwebbplats på https://enigmail.net/faq.
gpgNotFound=Kan inte hitta GnuPG programmet '%S'.\nSe till att du har ställt in GnuPG körbara sökväg korrekt i Enigmail inställningar.
gpgNotInPath=Kan inte hitta programmet GnuPG i PATH.\nSe till att du har ställt in GnuPG körbara sökväg korrekt i Enigmail inställningar.
enigmailNotAvailable=Enigmails kärntjänst är inte tillgänglig
gpgAgentNotStarted=Det gick inte att starta gpg-agent program som behövs för din GnuPG version %S.
prefUntrusted=EJ BETRODD
prefRevoked=Ã…TERKALLAD NYCKEL
prefExpiredKey=UPPHÖRD NYCKEL
prefExpired=UPPHÖRD
prefGood=Bra signatur från %S
prefBad=Dålig signatur från %S
failCancel=Fel - Mottagande av nyckel avbröts av användaren
failNoServer=Fel - Ingen nyckelserver specificerad att motta nyckeln från
failNoID=Fel - Inget nyckel-ID specificerad att ta emot nyckel för
failKeyExtract=Fel - nyckel-extraktionskommando misslyckades
notFirstBlock=Fel - Första OpenPGP blocket inte publik nyckelblock
importKeyConfirm=Importera publik nyckel inbäddad i meddelandet?
failKeyImport=Fel - nyckelimport misslyckades
fileWriteFailed=Det gick inte att skriva till filen %S
importKey=Importera publik nyckel %S från nyckelserver:
uploadKey=Skicka publik nyckel %S till nyckelserver:
keyId=Nyckel-ID
keyAndSigDate=Nyckel-ID: 0x%S / Signerad: %S
keyFpr=Nyckelns fingeravtryck: %S
noEmailProvided=Du angav ingen e-postadress!
keyAlreadySigned=Nyckeln är redan signerad, det går inte att signera den två gånger.
gnupg.invalidKey.desc=Nyckeln %S hittades inte eller är ogiltig. (Under-)nyckeln kan ha upphört.
selKeyExpired=upphört %S
createdHeader=Skapad
atLeastOneKey=Ingen nyckel vald! Du måste välja minst en nyckel för att acceptera den här dialogrutan
fewerKeysThanRecipients=Du har valt ett mindre antal nycklar än mottagare. Är du säker på att listan över nycklar för att kryptera är klar?
userSel.button.goBack=Välj fler nycklar
userSel.secretKeySel.title=Välj en privat OpenPGP nyckel för att signera dina meddelanden
userSel.problemNoKey=Ingen giltig nyckel
userSel.problemMultipleKeys=Flera nycklar
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Skicka senare
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=OBS: PGP/MIME stöds endast av ett begränsat antal e-postklienter! För Windows är endast Mozilla/Thunderbird, Sylpheed, Pegasus och Mulberry kända för att stödja denna standard; för Linux/UNIX och Mac OS X stöder de flesta e-postklienter det. Om du är osäker, välj %S alternativet.
first=första
second=andra
# Strings used in am-enigprefs.js
encryptKeyHeader=Välj OpenPGP nyckel för kryptering
identityName=Identitet: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Du har aktiverat kryptering, men du har inte valt någon nyckel. För att kunna kryptera e-post som skickas till %S, måste du ange en eller flera giltiga nycklar från din nyckellista. Vill du inaktivera kryptering för %S?
noKeyToUse=(ingen - ingen kryptering)
noEmptyRule=Regeln får inte vara tom! Vänligen ange en e-postadress i regelfältet.
invalidAddress=Den e-postadress som du har angett är inte giltig. Du ska inte ange namnen hos mottagarna, bara e-postadresserna. T.ex.:\nOgiltig: Vissa namn \nGiltig: vissa.namn@adress.net
noCurlyBrackets=Klammerparenteser {} har en speciell betydelse och bör inte användas i e-postadresser. Om du vill ändra matchningsbeteendet för den här regeln, använd 'Tillämpa regel om mottagare ...' alternativet.\nMer information finns i hjälpen.
# Strings used in enigmailRulesEditor.js
never=Aldrig
always=Alltid
possible=Möjlig
deleteRule=Vill du verkligen ta bort den valda regeln?
nextRcpt=(Nästa mottagare)
negateRule=Inte
addKeyToRule=Lägg till nyckel %S (%S) till per-mottagare regel
# Strings used in enigmailSearchKey.js
needOnline=Funktionen du valt är inte tillgänglig offline. Vänligen gå online och försök igen.
protocolNotSupported=Protokollet '%S://' som du har valt stöds inte för nedladdning av OpenPGP nycklar.
gpgkeysDisabled=Det kan hjälpa att aktivera alternativet 'extensions.enigmail.useGpgKeysTool'.
noKeyserverConn=Det gick inte att ansluta till nyckelserver på %S.
keyDownloadFailed=Det gick inte att hämta nyckeln från nyckelserver. Statusmeddelande är:\n%S
internalError=Ett internt fel uppstod. Nycklarna kan inte laddas ner eller importeras.
noKeyFound=Jag är ledsen, kunde inte hitta någon nyckel som matchar det angivna sökkriterierna.\nObservera att nyckel-ID bör ha prefix "0x" (t.ex. 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Det gick inte att söka eller ladda ner nyckeln från nyckelserver: gpgkeys_%S kunde inte köras.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Ställa in ägarförtroende misslyckades
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Nyckelsignering misslyckades
alreadySigned.label=OBS: nyckeln %S är redan signerad med den valda privata nyckeln.
alreadySignedexportable.label=Obs: nyckel %S är redan signerad exporterbar med den valda privata nyckeln. En lokal signatur verkar inte vettigt.
partlySigned.label=Obs: vissa användar-ID för nyckel %S är redan signerade med den valda hemliga nyckeln.
noTrustedOwnKeys=Ingen berättigade nyckel hittades för signering! Du behöver åtminstone en helt pålitliga privat nyckel för att signera nycklar.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Laddar nycklar, vänta ...
keyValid.unknown=okänd
keyValid.invalid=ogiltig
keyValid.disabled=inaktiverad
keyValid.revoked=Ã¥terkallad
keyValid.expired=upphörd
keyValid.noSubkey=ingen giltig undernyckel
keyTrust.untrusted=ej betrodd
keyTrust.marginal=marginell
keyTrust.full=betrodd
keyTrust.ultimate=helt och hållet
keyTrust.group=(grupp)
keyType.public=pub
keyType.publicAndSec=pub/priv
keyMan.enableKey=Aktivera nyckel
keyMan.disableKey=Inaktivera nyckel
userAtt.photo=Användarattribut (JPEG bild)
asciiArmorFile=ASCII skyddade filer (*.asc)
importKeyFile=Importera OpenPGP nyckelfil
gnupgFile=GnuPG filer
saveRevokeCertAs=Skapa & spara återkallat certifikat
revokeCertOK=Återkallningscertifikatet har skapats. Du kan använda det för att ogiltigförklara din publika nyckel, t.ex. om du skulle förlora din privata nyckel.\n\nVänligen överför den till ett medium som kan förvaras säkert t.ex. CD eller diskett. Om någon får tillgång till detta certifikat kan de använda den för att göra din nyckel oanvändbar.
revokeCertFailed=Ã…terkallningscertifikatet kunde inte skapas.
addUidOK=Användar-ID har lagts till
addUidFailed=Lägga till användar-ID misslyckades
noKeySelected=Du bör välja minst en nyckel för att utföra vald åtgärd
exportToFile=Exportera publik nyckel till fil
exportKeypairToFile=Exportera privat och publik nyckel till fil
exportSecretKey=Vill du inkludera den privata nyckeln i den sparade OpenPGP nyckelfilen?
saveKeysOK=Nycklarna har sparats
saveKeysFailed=Spara nycklarna misslyckades
importKeysFailed=Importera nycklarna misslyckades
enableKeyFailed=Aktivering/inaktivering nycklarna misslyckades
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-priv
defaultPubKeyFilename=Exporterade-publika-nycklar
defaultPubSecKeyFilename=Exporterade-publika-och-privata-nycklar
noSecretKeys=Inga privata nycklar hittades.\n\nVill du skapa din egen nyckel nu?
sendKeysOk=Nyckel skickad
sendKeysFailed=Skicka nycklar misslyckades
receiveKeysOk=Nyckel uppdaterad
receiveKeysFailed=Nedladdningen av nycklar misslyckades
importFromClip=Vill du importera någon nyckel från urklipp?
importFromUrl=Hämta publik nyckel från denna URL:
copyToClipbrdFailed=Det gick inte att kopiera den valda nyckeln till urklipp.
copyToClipbrdOK=Nyckel kopierad till urklipp
deleteSecretKey=VARNING: Du är på väg att ta bort en privat nyckel!\nOm du tar bort din privata nyckel, kommer du inte längre att kunna dekryptera några meddelanden som är krypterade med den nyckeln.\n\nVill du verkligen ta bort BÅDA, den privata och den publika nyckeln\n'%S'?
deleteMix=VARNING: Du är på väg att ta bort privata nycklar!\nOm du tar bort din privata nyckel, kommer du inte längre att kunna dekryptera några meddelanden med den nyckeln.\n\nVill du verkligen ta bort BÅDA, den valda privata och publika nyckeln?
deletePubKey=Vill du ta bort den publika nyckeln\n'%S'?
deleteSelectedPubKey=Vill du ta bort de publika nycklarna?
deleteKeyFailed=Nyckeln kan inte tas bort
revokeKeyQuestion=Du håller på att spärra nyckel '%S'. \n \nDu kommer inte längre att kunna signera med denna nyckel och när den har distribuerats, kan andra inte längre kryptera med den nyckeln. Du kan fortfarande använda nyckeln för att dekryptera gamla meddelanden. \n \nVill du fortsätta?
revokeKeyOk=Nyckeln har återkallats. Om din nyckel finns tillgänglig på en nyckelserver, rekommenderas att ladda upp den på nytt, så att andra kan se återkallelsen.
revokeKeyFailed=Nyckeln kan inte återkallas.
refreshAllQuestion=Du har inte valt någon nyckel. Vill du uppdatera ALLA nycklar?
refreshKey.warn=Varning: beroende på antal nycklar och anslutningshastighet, uppdateringen av alla nycklar kan ta en ganska lång tid!
downloadContactsKeys.warn=Varning: Beroende på antalet kontakter och anslutningshastighet, kan hämtning av alla nycklar vara en ganska lång process!
downloadContactsKeys.importFrom=Importera kontakter från adressboken '%S'?
keyMan.button.exportSecKey=Exportera &Privata nycklar
keyMan.button.exportPubKey=Exportera endast &Publika nycklar
keyMan.button.import=&Importera
keyMan.button.refreshAll=&Uppdatera alla nycklar
keyMan.button.revokeKey=&Ã…terkalla nyckel
keyMan.button.skip=&Skip Key
keylist.noOtherUids=Har inga andra identiteter
keylist.hasOtherUids=Även känd som
keylist.noPhotos=Inget foto tillgängligt
keylist.hasPhotos=Fotografier
keyMan.addphoto.filepicker.title=Välj foto att lägga till
keyMan.addphoto.warnLargeFile=Filen du har valt är större än 25 kB.\nDet rekommenderas inte att lägga till mycket stora filer eftersom nycklarna blir mycket stora av detta.
keyMan.addphoto.noJpegFile=Den valda filen verkar inte vara en JPEG-fil. Välj en annan fil.
keyMan.addphoto.failed=Fotot kan inte läggas till.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Ändra den primära användar-ID misslyckades
changePrimUidOK=Ändra den primära användar-ID lyckades
deleteUidFailed=Ta bort användar-ID %S misslyckades
deleteUidOK=Ta bort användar-ID %S lyckades
revokeUidFailed=Återkalla användar-ID %S misslyckades
revokeUidOK=Användar-ID %S återkallat. Om din nyckel finns tillgänglig på någon nyckelserver, rekommenderas det att ladda upp den på nytt, så att andra kan se återkallelsen.
revokeUidQuestion=Vill du verkligen återkalla användar-ID %S?
deleteUidQuestion=Vill du verkligen ta bort användar-ID %S?\n\nVänligen observera: om du har skickat din publika nyckel till en nyckelserver, radera ett användar-ID kommer inte att förändra någonting. I det här fallet ska du använda 'Återkalla användar-ID'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=Succé! Nycklar importerade
importInfoSuccess=✅
importInfoBits=Bitar
importInfoCreated=Skapad
importInfoFpr=Fingeravtryck
importInfoDetails=(Detaljer)
importInfoNoKeys=Inga nycklar importerade.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=publik nyckel
keyTypePrimary=primär nyckel
keyTypeSubkey=undernyckel
keyTypePair=nyckelpar
keyExpiryNever=aldrig
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=Kryptera
keyUsageSign=Signera
keyUsageCertify=Certifiera
keyUsageAuthentication=Autentisering
keyDoesNotExpire=Nyckel upphör inte
# Strings in enigmailGenCardKey.xul
keygen.started=Vänta medan nyckeln genereras ....
keygen.completed=Nyckel skapad. Det nya nyckel-ID är: 0x%S
keygen.keyBackup=Nyckel säkerhetskopieras som %S
keygen.passRequired=Ange en lösenfras om du vill skapa en säkerhetskopia av din nyckel utanför ditt SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Din PIN-kod som du har angett matchar inte; försök på nytt
cardPin.minLength=PIN-koden måste ha minst %S tecken eller siffror
cardPin.processFailed=Det gick inte att ändra PIN-kod
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Uppdaterar nycklar, vänta ...
keyserverProgress.uploading=Laddar upp nycklar, vänta ...
keyserverTitle.refreshing=Uppdatera nycklar
keyserverTitle.uploading=Nyckeluppladdning
# Strings in enigmailSetupWizard
passphrase.min8keys=Din lösenfras bör innehålla åtminstone 8 tecken!
setupWizard.reallyCancel=Vill du verkligen stänga Enigmail installationsguide?
setupWizard.invalidGpg=Filen du angav är inte en körbar GnuPG. Ange en annan fil.
setupWizard.specifyFile=Du måste åtminstone ange en publik nyckelfil för att fortsätta.
setupWizard.installFailed=Det verkar som om installationen misslyckades. Antingen göra om installationen, eller installera GnuPG manuellt och lokalisera den med hjälp av knappen Bläddra.
setupWizard.downloadForbidden=För din egen säkerhet, kommer vi inte hämta GnuPG. Besök http://www.gnupg.org/ för att hämta GnuPG.
setupWizard.downloadImpossible=Vi kan inte hämta GnuPG för tillfället. Försök senare eller besök http://www.gnupg.org/ för att hämta GnuPG.
setupWizard.hashSumError=Guiden kunde inte verifiera integriteten för den nedladdade filen. Filen kan vara trasig eller manipulerad. Vill du fortsätta installationen ändå?
setupWizard.importSettingsFile=Ange säkerhetskopieringsfil att läsa från
setupWizard.invalidSettingsFile=Den angivna filen är inte en korrekt säkerhetskopieringsfil med inställningar för Enigmail.
setupWizard.gpgConfExists=Konfigurationsfil för GnuPG finns redan. Vill du skriva över den med den från din gamla installation?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Ett fel inträffade vid försök att hämta GnuPG. Kontrollera konsolloggen för mer detaljer.
installGnuPG.installFailed=Ett fel inträffade under installationen av GnuPG. Vänligen kontrollera konsolloggen för mer detaljer.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Du måste fylla i ett namn och en e-postadress
addUidDlg.nameMinLengthError=Namnet måste minst ha 5 tecken
addUidDlg.invalidEmailError=Du måste ange en giltig e-postadress
addUidDlg.commentError=Parenteser är inte tillåtna i kommentarer
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP Smartcards stöder bara ASCII-tecken i Förnamn/Namn.
# network error types
errorType.SecurityCertificate=Säkerhetscertifikatet som presenteras av webbtjänsten är inte giltig.
errorType.SecurityProtocol=Säkerhetsprotokollet som används av webbtjänsten är okänd.
errorType.Network=Ett nätverksfel har inträffat.
# filter stuff
filter.folderRequired=Du måste välja en målmapp.
filter.decryptMove.label=Dekryptera alltid (Enigmail)
filter.decryptCopy.label=Skapa dekrypterad kopia (Enigmail)
filter.decryptMove.warnExperimental=Varning - filteråtgärd 'Dekryptera alltid' kan leda till förstörda meddelanden . \n \nVi rekommenderar starkt att du först prövar filtret "Skapa dekrypterad kopia", testa resultatet noga och börja endast använda det här filtret när du är nöjd med resultatet.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Det gick inte att dekryptera meddelandet med ämne \n"%S". \nVill du försöka igen med en annan lösenfras eller vill du hoppa över meddelandet?
converter.decryptAtt.failed=Det gick inte att dekryptera bilagan "%1$S" \nför meddelandet med ämnet \n"%2$S". \nVill du försöka igen med en annan lösenfras eller vill du hoppa över meddelandet?
saveLogFile.title=Spara loggfil
# strings in gpg.jsm
unknownSigningAlg=Okänd signeringsalgoritm (ID: %S)
unknownHashAlg=Okänt kryptografiskt hash (ID: %S)
# strings in keyRing.jsm
keyring.photo=Foto
keyRing.pubKeyRevoked=Nyckel %1$S (nyckel-ID %2$S) är återkallad.
keyRing.pubKeyExpired=Nyckel %1$S (nyckel-ID %2$S) har upphört.
keyRing.pubKeyNotForSigning=Nyckel %1$S (nyckel-ID %2$S) kan inte användas för signering.
keyRing.pubKeyNotForEncryption=Nyckel %1$S (nyckel-ID %2$S) kan inte användas för kryptering.
keyRing.keyDisabled=Nyckel %1$S (nyckel-ID %2$S) är inaktiverad; kan inte användas.
keyRing.keyNotTrusted=Nyckel %1$S (nyckel-ID %2$S) är inte tillräckligt tillförlitlig. Ställ in pålitlighetsnivån för din nyckel till "helt och hållet" för att använda den för signering.
keyRing.keyInvalid=Nyckel %1$S (nyckel-ID %2$S) är ogiltig (t.ex. har den inte en egen signatur).
keyRing.signSubKeysRevoked=Alla undernycklar för signering av nyckel %1$S (nyckel-ID %2$S) är återkallade.
keyRing.signSubKeysExpired=Alla undernycklar för signering av nyckel %1$S (nyckel-ID %2$S) har upphört.
keyRing.signSubKeysUnusable=Alla undernycklar för signering av nyckel %1$S (nyckel-ID %2$S) är återkallade, har upphört eller på annat sätt oanvändbara.
keyRing.encSubKeysRevoked=Alla undernycklar för kryptering av nyckel %1$S (nyckel-ID %2$S) är återkallade.
keyRing.encSubKeysExpired=Alla undernycklar för kryptering av nyckel %1$S (nyckel-ID %2$S) har upphört.
keyRing.noSecretKey=Du verkar inte ha den hemliga nyckeln för %1$S (nyckel-ID %2$S) på din nyckelring; du kan inte använda nyckeln för signering.
keyRing.encSubKeysUnusable=Alla undernycklar för kryptering av nyckel %1$S (nyckel-ID %2$S) är återkallade, har upphört eller på annat sätt oanvändbara.
#strings in exportSettingsWizard.js
cannotWriteToFile=Kan inte spara till fil '%S'. Välj en annan fil.
dataExportError=Ett fel inträffade under exporten av dina data.
enigmailSettings=Enigmail-inställningar
defaultBackupFileName=Enigmail-exportera
specifyExportFile=Ange filnamnet för export
homedirParamNotSUpported=Ytterligare parametrar som konfigurerar sökvägar såsom --homedir och --keyring stöds inte för exportera/återställa dina inställningar. Vänligen använd alternativa metoder, såsom att ställa in miljövariabeln GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=Din nyckel %1$S kommer att upphöra inom mindre än %2$S dagar.\n\nVi rekommenderar att du skapar ett nytt nyckelpar och konfigurerar motsvarande konton att använda den nya nyckeln.
expiry.keysExpireSoon=Följande nycklar kommer att upphöra inom mindre än %1$S dagar: \n%2$S. Vi rekommenderar att du skapar nya nycklar och konfigurerar dina konton för att använda de nya nycklarna.
enigmail/lang/sv-SE/help/ 0000775 0000000 0000000 00000000000 12667016244 0015461 5 ustar 00root root 0000000 0000000 enigmail/lang/sv-SE/help/compose.html 0000664 0000000 0000000 00000007465 12667016244 0020030 0 ustar 00root root 0000000 0000000
Enigmail Hjälp: Skriva meddelanden
Enigmail Hjälp
Använda Enigmail när du skriver meddelanden
- Enigmail's meny i skrivfönstret
-
- Signera meddelande
- Aktivera/inaktivera skicka signerad e-post. Användaren meddelas, om signering misslyckas.
- Kryptera meddelande
- Aktivera/inaktivera kryptering till alla mottagare innan du skickar. Användaren meddelas, om kryptering misslyckas.
- Använd PGP/MIME för detta meddelande
-
Aktivera/inaktivera användning av PGP/MIME för detta meddelande.
Om du vet att mottagaren kan läsa e-post med hjälp av PGP/MIME-formatet, ska du använda det.
Den här funktionen är beroende av inställningarna i Inställningar -> PGP/MIME -fliken är satta till Tillåt att använda PGP/MIME eller Alltid använda PGP/MIME.
- Standard kompositionsalternativ
-
- Signering/Kryptering alternativ...: genväg till Kontoinställningar -> OpenPGP alternativ.
- Skicka alternativ...: genväg till Inställningar -> skicka fliken.
- Nyckelval alternativ...: genväg till Inställningar -> Nyckelval fliken.
- PGP/MIME alternativ...: genväg till Inställningar -> PGP/MIME fliken.
- Ã…ngra kryptering
-
Om det uppstår ett fel när du skickar mail, till exempel POP-servern inte accepterar begäran, kommer Enigmail inte vet om det, och det krypterade meddelandet fortsätter att visas i meddelandefönstret. Att välja detta menyalternativ kommer att ångra kryptering/signering, då återgår skrivfönstret tillbaka till sin ursprungliga text.
Som en temporär fix, kan detta alternativ också användas för att dekryptera den citerade texten när du svarar på krypterade meddelanden. Enigmail bör automatiskt dekryptera det citerade meddelandet, men om det misslyckas av någon anledning, kan du använda det här menyalternativet för att tvinga det.
- Bifoga publik nyckel
- Infoga ASCII-armerade publika nyckelblock vid nuvarande markörposition i skrivfönstret. Du kommer att bli tillfrågad om e-postadresser till nyckeln som ska infogas. Nycklar som infogats på detta sätt kommer automatiskt att redovisas vid den mottagande änden av Enigmail. Efter nyckelinsättning, kan du fortfarande välja att signera/kryptera mail efter behov. Också, infoga inte mer än ett nyckelblock i ett meddelande; ange flera e-postadresser, avgränsade med kommatecken eller mellanslag, när det efterfrågas.
- Rensa sparad lösenfras
- Rensar cachade lösenfraser. Användbart om du har flera lösenfraser.
- Hjälp
- Visar hjälpinformation från webbplatsen (denna sida).
Ytterligare hjälp finns på Enigmail's Supportwebbplats
enigmail/lang/sv-SE/help/editRcptRule.html 0000664 0000000 0000000 00000011660 12667016244 0020761 0 ustar 00root root 0000000 0000000
Enigmail Hjälp: Redigera OpenPGP regel
Enigmail Hjälp
Använda Enigmail's regelredigerare: Redigera OpenPGP regel
I regelredigeraren kan du ange standardinställningar per mottagare för att aktivera kryptering, signering och PGP/MIME, och för att definiera vilken OpenPGP-nyckel som ska användas. I det här fönstret kan du ange regler för en enda mottagare, och för en grupp av mottagare med mycket liknande egenskaper.
- Ange Enigmail-regler för
- Innehåller e-postadresserna till mottagarna (utan namn, det vill säga endast en adress som somebody@email.domain). Du kan ange flera e-postadresser, separerade med mellanslag. Adressen som anges här kan endast bestå av domändelen så att e-post till en adress på den domänen kommer att matchas, t.ex. @email.domain tillåter matchning till body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Tillämpa regel om mottagare ...
-
Detta ändrar matchning av e-postadresser. Om flera adresser anges kommer inställningen gälla för alla. Exemplen nedan är baserade på body@email.domain som angetts i OpenPGP reglerfältet ovan.
- Är exakt: med denna inställning, kommer regeln endast trigga på e-post till body@email.domain (exakt, fall okänsliga matchning).
- Innehåller: med denna inställning, kommer en e-postadress som innehåller strängen matchas, t.ex. anybody@email.domain eller body@email.domain.net
- Startar med: med denna inställning, kommer en e-postadress som börjar med strängen matchas, t.ex. body@email.domain.net, body@email.domain-name.com.
- Slutar med: med denna inställning, kommer en e-postadress som slutar med strängen matchas, t.ex. anybody@email.domain, somebody@email.domain.
- Fortsätt med nästa regel för matchande adress
- Aktivera den här funktionen kan du definiera en regel, men inte ange en nyckel-ID i Använd följande OpenPGP nycklar: fältet, så att e-postadressen används för att kontrollera en nyckel när du skickar. Dessutom kommer ytterligare regler för samma adress behandlas också.
- Kontrollera inte ytterligare regler för matchande adress
- Aktivera den här funktionen stoppar bearbetning av andra regler för matchande adress, om denna regel matchas; dvs regelbearbetningen fortsätter med nästa mottagare.
- Använd följande OpenPGP nycklar:
- Använd Välj nyckel... knappen för att välja mottagarens nycklar som ska användas för kryptering. Som i åtgärden ovan, inga ytterligare regler för matchande adress behandlas.
- Standardvärden för...
-
Aktivera eller inaktivera signering för meddelanden. Detta använder eller åsidosätter vad du har specificerat i meddelandefönstret. Värdena är:
- Aldrig: avaktivera signering, även om den var aktiverad i meddelandefönstret(upphäver de andra värdena)
- Ja, om det valts i meddelandekompositionen: lämna signering som anges i meddelandefönstret
- Alltid: aktivera signering, även om det var inte aktiverad i meddelandefönstret
Dessa signeringsinställningar tillämpas för alla regler som matchar. Om en av reglerna inaktiverar signering kommer meddelandet inte signeras, oberoende av andra regler som anger Alltid.
- Kryptering
- Aktivera eller inaktivera meddelandekryptering. Tillåtna inställningar och deras betydelse är de samma som för meddelandesignering.
- PGP/MIME
- Aktivera eller inaktivera användning av PGP/MIME (RFC 3156) meddelandekodning. Om PGP/MIME är inaktiverad kodas meddelandena med "inline PGP". Tillåtna värden och deras betydelse är de samma som för meddelandesignering.
Reglerna behandlas i den ordning de visas i listan i OpenPGP regelredigerare. När en regel matchar en mottagare och innehåller en OpenPGP nyckel-ID, utöver att använda den angivna Nyckel-ID, mottagaren räknas inte längre vid behandling av ytterligare regler.
Ytterligare hjälp finns på Enigmail Per-Recipient Settings page
enigmail/lang/sv-SE/help/initError.html 0000664 0000000 0000000 00000004574 12667016244 0020336 0 ustar 00root root 0000000 0000000
Enigmail Hjälp: Hur man ska lösa problem med initiera OpenPGP
Enigmail Hjälp
Hur man ska lösa problem med Initiera OpenPGP
Det finns flera skäl till varför initiering av OpenPGP inte lyckas. De vanligaste beskrivs nedan;
Mer information finns på Enigmail supportsida.
- GnuPG kunde inte hittas
-
För att OpenPGP ska fungera, behövs verktyget GnuPG installeras.
Om GnuPG inte kan hittas, se då först till att den körbara gpg.exe (för Windows; gpg för andra plattformar) är installeras på din dator.
Om GnuPG är installerat, och OpenPGP kan inte hitta den, måste du manuellt ange sökväg till GnuPG i OpenPGP's inställningar (meny OpenPGP > Inställningar)
- Enigmime gick inte att initiera
-
OpenPGP fungerar endast om den är byggd med samma byggmiljö som Thunderbird eller SeaMonkey byggdes med. Det innebär att du kan använda den officiella Enigmail releaser endast om du använder de officiella releaserna av Thunderbird eller SeaMonkey som tillhandahålls av mozilla.org.
Om du använder en Thunderbird eller SeaMonkey version som kommer från någon annan källa (t.ex. leverantören av din Linux-distribution), eller om du byggde programmet själv, bör du antingen använda en Enigmail version byggda med samma källa, eller bygga Enigmail själv. För att bygga Enigmail, se Avsnittet källkod på Enigmail's hemsida. Skicka eller lämna inte någon felrapporter om detta problem, det kan inte lösas.
Ytterligare hjälp finns på Enigmail's Supportwebbplats.
enigmail/lang/sv-SE/help/messenger.html 0000664 0000000 0000000 00000010250 12667016244 0020335 0 ustar 00root root 0000000 0000000
Enigmail Hjälp: Läsa meddelanden
Enigmail Hjälp
Använda Enigmail när du läser meddelanden
- Dekryptera knappen i mailets huvudfönster
- Denna knapp kan användas för flera ändamål: dekryptera, verifiera, eller importera allmänna nycklar. Normalt dekryptering/verifiering sker automatiskt, även om detta kan inaktiveras genom en inställning. Om detta misslyckas, kommer vanligtvis en kort felmeddelande i Enigmail's statusrad. Om du klickar på Dekryptera knappen, kommer du att kunna se ett mer detaljerat felmeddelande, inklusive utdata från kommandot GnuPG.
- Penn- och nyckelikoner som visas i meddelandehuvudet
-
Penn- och Nyckelikoner i meddelandehuvudet visar om meddelandet som du läser signerats och/eller krypterats och om signaturen är bra, det vill säga meddelandet har inte förändrats sedan det signerades. Om meddelandet har ändrats, Pennikonen ändras till en bruten penna för att indikera att signaturen är dålig. Högerklicka på antingen penn- eller nyckelikonen visar en meny med följande alternativ:
- OpenPGP säkerhetsinfo: låter dig se utdata från GnuPG för meddelandet.
- Kopiera OpenPGP säkerhetsinfo: kopierar utdata från GnuPG till urklipp; för att klistra in ett svarsmeddelande, etc.
- Visa OpenPGP foto-ID: låter dig se foto-ID för den person som skickade meddelandet, om de har ett foto inbäddad i sin publika nyckel. (Detta alternativ kommer endast att aktiveras om ett foto-ID finns i deras nyckel.)
- S/MIME säkerhetsinfo: låter dig se på S/MIME säkerhetsinfo för meddelandet.
Om du inte har angett keyserver-options auto-key-retrieve i din gpg.conf fil och du läser ett meddelande som är signerat eller krypterat, kommer du att se en Penn-ikon i huvudområdet med ett Frågetecken på den, Enigmail's statusrad i huvudområdet visar del av meddelandet signerat; klicka på pennikonen för detaljer och meddelandet i meddelandefönstret visar alla OpenPGP meddelandeblocksindikatorer och signaturblock.
Du kan också se detta om du har angett keyserver-options auto-key-retrieve i din gpg.conf fil och OpenPGP nyckeln inte finns på standardnyckelservern.
Genom att klicka på Penn och frågetecknet-ikonen kommer ett fönster upp som meddelar att nyckeln inte är tillgänglig i din nyckelring. Om du klickar på OK kommer att ett nytt fönster upp med en lista över nyckelservrar där du kan välja att hämta avsändarens publika nyckel från.
För att konfigurera listan med nyckelservrar som du vill använda, gå till Enigmail-> Inställningar->grundläggande fliken och ange nyckelserverns adress i nyckelserver: rutan, separerade med ett kommatecken. Den första nyckelservern i listan kommer att användas som standard.
- Öppna krypterade bilagor/importera bifogade OpenPGP nycklar
- Bifogade filer som slutar på *.Pgp, *.Asc och *.Gpg känns igen som bilagor som kan hanteras speciellt av Enigmail. Genom att högerklicka på en sådan bilaga möjliggörs två speciella menyalternativ i snabbmenyn: Dekryptera och öppna och Dekryptera och spara. Använd dessa två menyalternativ om du vill att Enigmail ska dekryptera en bifogad fil innan du öppnar eller sparar den. Om en bilaga känns igen som en OpenPGP nyckelfil, erbjuds du att importera nycklarna till din nyckelring.
Ytterligare hjälp finns på Enigmail's Supportwebbplats
enigmail/lang/sv-SE/help/rulesEditor.html 0000664 0000000 0000000 00000006237 12667016244 0020660 0 ustar 00root root 0000000 0000000
Enigmail Hjälp: Regelredigeraren
Enigmail Hjälp
Använda Enigmail's regelredigerare
I regelredigeraren kan du ange standardinställningar per mottagare för att möjliggöra kryptering, signering och PGP/MIME, och ange vilken OpenPGP nyckel som ska användas. Varje regel består av fem områden och är representerade på en rad:
- E-post
- E-post att matcha i fälten Till:, Kopia: och Hemlig kopia:. Matchningen fungerar på delsträngar (Ytterligare information finns i fönstret redigera regler.)
- OpenPGP nyckel
- en lista med OpenPGP nyckel-ID för att använda för mottagaren
- Signera
-
aktivera eller inaktivera signering av meddelanden. Detta använder eller åsidosätter vad du har specificerat i meddelandefönstret. Värdena är:
- Aldrig: inaktivera signering, även om den var aktiverad i meddelandefönstret (upphäver de andra värdena)
- Möjlig: lämna signering som angetts i meddelandefönstret
- Alltid: aktivera signering, även om den inte var aktiverad i meddelandefönstret
Dessa signeringsinställningar tillämpas för alla regler som matchar. Om en av reglerna inaktiverar signering kommer meddelandet inte signeras, oberoende av andra regler som anger Alltid.
- Kryptera
- aktivera eller inaktivera kryptering av meddelande. Tillåtna inställningar och deras betydelse är de samma som för signering av meddelande.
- PGP/MIME
- aktivera eller inaktivera användning av PGP/MIME (RFC 3156) meddelandekodning. Om PGP/MIME är inaktiverad kodas meddelandena med "inline PGP". Tillåtna värden och deras betydelse är de samma som för signering av meddelande.
Reglerna behandlas i den ordning som visas i listan. När en regel matchar en mottagare och innehåller en OpenPGP nyckel-ID, utöver att använda den angivna nyckel-ID, mottagaren räknas inte längre vid behandling av ytterligare regler.
OBS: Regelredigeraren är ännu inte klar. Det är möjligt att skriva några mer avancerade regler genom att direkt redigera filen rules (dessa regler bör då inte redigeras längre i regelredigeraren). Mer information för att direkt redigera filen finns tillgänglig på Enigmail's hemsida
Ytterligare hjälp finns på Enigmail's Supportwebbplats
enigmail/lang/sv-SE/help/sendingPrefs.html 0000664 0000000 0000000 00000005402 12667016244 0020777 0 ustar 00root root 0000000 0000000
Enigmail Hjälp: Redigera OpenPGP regel
Enigmail Hjälp
Fastställa inställningar för att skicka krypterat
I inställningar för att skicka kan du välja en allmän modell och inställningar för kryptering.
- Smidig kryptering
- Med dessa inställningar, krypteras e-post utan bekräftelse när det är möjligt.
Denna inställning är lämplig, om du vill förbättra din integritet genom att skicka e-post krypterat istället för okrypterat om det är möjligt.
Effekten är som att skicka e-post som brev istället för vykort. Till skillnad från vykort, döljer brev oftast sitt innehåll under transport.
Observera dock att som med brev kan du inte vara säker på att ingen öppnar brevet under transporten (även om vissa tekniska ansträngningar krävs för det).
En konkret risk är att du av misstag använder "förfalskade nycklar" du fick från någonstans eller någon som hävdar att nyckeln tillhör den person som du vill skicka e-post till. För att undvika denna risk, kan du antingen använda förtroende modellen av PGP (se nedan) eller bör du alltid kontrollera, om fingeravtryck av en publik nyckel är korrekt.
- Manuell kryptering
- Med det här alternativet kan du ange olika inställningar för kryptering enligt dina behov. Du kan ange
- om svar på krypterade/signerade e-postmeddelanden bör automatisk också vara krypterad/signerad-
- om du vill använda förtroende modellen av OpenPGP för att acceptera nycklar (detta innebär att man använder en nyckel som du antingen måste signera nyckel eller har tillräckligt många andra människor du litar på som har signerat nyckeln).
- om du vill skicka e-post krypterat om alla nycklar accepteras.
- om och när du vill slutligen bekräfta sändning av ett mail.
Om det är viktigt för dig att innehåll som du skickar krypteras inte kan läsas av andra personer eller organisationer, bör du använda de manuella inställningarna. Välj åtminstone alternativet att ta emot nycklarna om du eller andra människor signerat dem. Även denna modell minskar risken för att använda förfalskade nycklar, det kräver att du aktivt signerar nycklar och förklarar ägare förtroende med hjälp av fönstret nyckelhanteraren.
enigmail/lang/tr/ 0000775 0000000 0000000 00000000000 12667016244 0014221 5 ustar 00root root 0000000 0000000 enigmail/lang/tr/am-enigprefs.properties 0000664 0000000 0000000 00000000124 12667016244 0020711 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP Güvenliği
enigmail/lang/tr/enigmail.dtd 0000664 0000000 0000000 00000067621 12667016244 0016517 0 ustar 00root root 0000000 0000000
NOT: Anahtar üretiminin bitmesi biraz zaman alabilir. Anahtar üretimi sırasında uygulamayı kapatmayın. Aktif olarak internette gezinmek ya da diskle ilgili işler yapmak rasgele üretimi kolaylaştıracağından işlemin hızını artıracaktır. Anahtar üretimi bittiğinde uyarılacaksınız.">
' yanlış">
NOT: Anahtar üretimi biraz uzun sürebilir. Anahtar üretimi sırasında uygulamayı kapatmayın. Anahtar üretimi bittiğinde uyarılacaksınız.">
Not: Enigmail ayarlarda etkin olup olmamasına bakmadan herzaman her kimlikteki ya da hesaptaki imzaları doğrulayacaktır.">
Enigmail kullandığınız için teşekkürler.">
enigmail/lang/tr/enigmail.properties 0000664 0000000 0000000 00000051671 12667016244 0020136 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail Uyarı
enigConfirm=Enigmail DoÄŸrula
enigError=Enigmail Hata
enigPrompt=Enigmail Bilgi İstemi
dlgYes=Evet
dlgNo=Hayır
dlgKeepSetting=Cevabımı hatırla ve tekrar sorma
dlgNoPrompt=Bu diyaloğu tekrar gösterme
dlg.button.delete=&Sil
dlg.button.cancel=&Vazgeç
dlg.button.close=&Kapat
dlg.button.continue=&Devam
dlg.button.skip=&Atla
dlg.button.view=&Göster
repeatPrefix=\n\nBu uyarı tekrar edecek %S
repeatSuffixSingular=kere daha.
repeatSuffixPlural=kere daha.
noRepeat=\n\nBu uyarı Enigmail'i yükseltene kadar tekrar etmeyecek.
pgpNotSupported=Enigmail'yi PGP 6.x sürümüyle kullanıyor görünüyorsunuz\n\nPGP 6.x Enigmail'in düzgün çalışmasını bazı sebeplerden engellediğinden Enigmail 6.x desteklemiyor; lütfen GnuPG (GPG)'ye geçiş yapın.\n\nGnuPG'ye geçiş konusunda yardıma ihtiyacınız olursa, Enigmail ana sayfasından Yardım kısmına göz atın.
passphraseCleared=Parola temizlendi.
noPhotoAvailable=Hiçbir fotoğraf uygun değil
debugLog.title=Enigmail Debug Log
usingVersion=Enigmail %S sürümü kullanıyorsunuz
usingAgent=Şifreleme ve deşifreleme için %S çalışıtırılabiliri %S kullanılıyor
agentError=HATA: Enigmime servisine ulaşılamadı!
accessError=Enigmail servisine eriÅŸimde hata
onlyGPG=Anahtar üretimi sadece GnuPG ile çalışır (PGP ile değil)!
keygenComplete=Anahtar üretimi tamamlandı! İmzalama için <%S> kimliği kullanılacak
revokeCertRecommended=Anahtarınız için bir iptal sertifikası oluşturmanızı öneririz. Bu sertifika örneğin özel anahtarınız kaybolur ya da çalınırsa, anahtarınızın iptali için gereklidir. Böyle bir iptal sertifikası oluşturmak istiyor musunuz ?
keyMan.button.generateCert=Sertifika &OluÅŸtur
genCompleteNoSign=Anahtar üretimi tamamlandı!
genGoing=Anahtar üretimi işlem halinde!
passNoMatch=Parolalar uyuşmuyor, lütfen tekrar girin
passCheckBox=Anahtar için bir parola girmeyecekseniz lütfen kutuyu işaretleyin
passUserName=Lütfen bu kimlik için bir kullanıcı adı belirleyin
changePassFailed=Parola değişimi başarısız.
keyConfirm='%S' için genel ve özel anahtarlar oluşturulsun mu?
keyMan.button.generateKey=Anahtar &Üret
keyAbort=Anahtar üretiminden çık?
keyMan.button.generateKeyAbort=Anahtar Üretimini &İptal Et
keyMan.button.generateKeyContinue=Anahtar Üretimine &Devam Et
expiryTooLong=100 yıldan uzun sürede kaybolan bir anahtar oluşturamazsınız.
expiryTooLongShorter=90 yıldan uzun sürede kaybolan bir anahtar oluşturamazsınız.
expiryTooShort=Anahtarınız en az bir günlük olmalı.
keyGenFailed=Anahtar üretimi başarısız. Daha fazla bilgi için Enigmail konsoluna göz atın ( Enigmail Menüsü > Hata ayıklama )
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail Güvenlik Bilgisi\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Bu mesajın ekleri imzalanmadı ve şifrelenmedi*\n\n
possiblyPgpMime=Muhtemelen PGP/MIME mesajı şifreledi ya da imzaladı; doğrulamak için Deşifre düğmesine tıklayın
noDecrypted=Kaydedecek deşifre edilmiş mesaj yok!\nDosya menüsünden Kaydet komutunu kullanın
noMessage=Kaydedecek mesaj yok!
useButton=Mesajı deşifre etmek için lütfen deşifre düğmesine tıklayın
saveHeader=Enigmail: Deşifre edilmiş mesajı kaydet
saveAttachmentHeader=Enigmail: DeÅŸifre edilmiÅŸ eki kaydet
noTempDir=Yazacak geçici bir dizin bulunamadı\nLütfen TEMP çevre değişkenini belirleyin
attachmentPgpKey=Açtığınız '%S' eki bir OpenPGP anahtar dosyasına benziyor.\n\nİçindeki anahtarları almak için Evet'e, dosya içeriğini ayrı bir pencerede görmek için Hayır'a tıklayın
beginPgpPart=********* *SIFRELI veya IMZALI KISIM BASLANGICI* *********
endPgpPart=********** *SIFRELI veya IMZALI KISIM BITISI* **********
notePartEncrypted=Enigmail: *Mesajın bazı kısımları şifrelenmedi veya imzalanmadı*
noteCutMessage=Enigmail: *Birden fazla mesaj bloÄŸu bulundu -- deÅŸifre/doÄŸrulama iÅŸlemi durduruldu*
decryptOkNoSig=Uyarı\n\nDeşifre işlemi başarılıydı, ama imza düzgün doğrulanamadı
msgOvl.button.contAnyway=Yine de &devam et
keysToExport=Eklenecek OpenPGP anahtarlarını seçin
keysToUse=%S için kullanılacak OpenPGP Anahtarı(ları)nı seçin
pubKey=%S için Genel Anahtar\n
windowLocked=Yazım penceresi kilitli; gönderme iptal edildi
sendUnencrypted=Enigmail başlatılamadı.\nŞifrelenmemiş gönder?
composeSpecifyEmail=Lütfen gönderilen mesajları imzalamada kullanılacak birincil eposta adresinizi belirtin.\nBoş bırakırsanız mesajdan alınan KİMDEN adresi kullanılacak.
sendingHiddenRcpt=Bu mesajın BCC (kör karbon kopya) alıcıları var. Mesaj şifrelenmişse, BCC alıcıları saklamak mümkün olmasına rağmen bazı ürünlerin kullanıcıları (ör: PGP Corp.) mesajı deşifre edemeyecektir. Bu durum yüzünden şifrelenmiş mesajlar içeren ve BCC kullanılan postaları önermiyoruz.
sendWithHiddenBcc=BCC alıcıları gizle
sendWithShownBcc=Normal ÅŸifrele
sendingNews=Şifrelenmiş gönderim iptal edildi.\n\n Bu mesaj şifrelenemez çünkü haber grubuna dahil alıcıları var. Lütfen şifrelemeden tekrar gönderin.
sendToNewsWarning=Uyarı: şifrelenmiş bir postayı haber grubuna yollamak üzeresiniz.\n\nBu durum pek mantıklı değil çünkü üyelerin hepsi mesajı deşifre edemediği sürece bir anlamı olmayacak, mesajın tüm grup üyelerinin anahtarları ile şifrelenmesi gerekiyor. Lütfen bu mesajı ne yaptığınızı bildiğinizden eminseniz yollayın.\n\nDevam?
hasHTML=HTML posta uyarısı:\nBu mesaj imzalama/şifreleme işlemini engelleyebilecek HTML içerebilir. Bu durumu önlemek için bir dahaki sefere mesaj yazma/cevaplama düğmelerine SHIFT tuşuna basılı tutarak tıklayın ki imzalı gönderilebilsin.\nPostaları öntanımlı olarak imzalıyorsanız, bu posta hesabında kalıcı olarak HTML'yi kapatmak için 'HTML Mesajları Gönder' seçeneğini kapatmalısınız.
strippingHTML=Bu mesaj imzalama/şifreleme işlemleri için düz yazıya dönüştürüldüğünde kaybolacak HTML formatına sahip. Devam etmek istiyor musunuz ?
msgCompose.button.sendAnyway=Mesajı &Yine de Gönder
attachWarning=Bu mesajın ekleri yerelde değil. Şifrelenemezler. Ekleri şifrelemek için, önce bilgisayarınıza kaydedin ve sonra ekleyin. Yine de devam etmek istiyor musunuz?
quotedPrintableWarn=Mesajları gönderirken 'quoted-printable' kullanılmasını istediniz. Bu mesajınızın yanlış deşifre edilmesine veya doğrulanmasına yol açabilir.\n 'quoted-printable' mesajlar göndermeyi kapatmak istiyor musunuz ?
minimalLineWrapping=Satır bitimi %S karakter yapmışsınız. Düzgün şifreleme veya imzalama için bu değerin en az 68 olması gerek.\n 68'e değiştirmek istiyor musunuz?
warning=Uyarı
signIconClicked=İmzalamayı elle değiştirdiniz. Yani, bu mesajı yazarken, imzayı kapatmak artık şifrelemeyi kapatmaya bağımlı değil.
# note: should end with double newline:
sendAborted=Gönderme işleminden çıkıldı.\n\n
statPGPMIME=PGP/MIME
statSigned=İMZALI
statEncrypted=ŞİFRELENMİŞ
statPlain=DÜZMETİN
offlineSave=%S mesajı Gönderilmemiş Mesajlar klasöründe %S e kaydedelim mi?
onlineSend=%S mesajını %S e gönder?
encryptKeysNote=Not: mesaj şu Kullanıcı ID'si / Anahtarları ile şifreli: %S
signFailed=Enigmail'de hata; Şifreleme/imzalama başarısız; şifrelenmemiş posta gönder?
msgCompose.button.sendUnencrypted=Şifrelenmemiş Me&sajı Gönder
recipientsSelectionHdr=Şifreleme için alıcıları seçin
configureNow=Seçili kimlik için Enigmail güvenliğini henüz ayarlamadınız. Şimdi yapmak istiyor musunuz?
# should not be used anymore:
encryptYes=Mesaj ÅŸifrelenecek
encryptNo=Mesaj ÅŸifrelenmeyecek
# should not be used anymore:
signYes=Mesaj imzalanacak
signNo=Mesaj imzalanmayacak
rulesConflict=Çakışan alıcı bazlı kurallar bulundu\n%S\n\nMesajı bu ayarlarla göndermek ister misiniz?
msgCompose.button.configure=&Ayarla
msgCompose.button.send=Mesajı &Gönder
msgCompose.button.save=Mesajı &Kaydet
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=İmzayı doğrulamak için %S genel anahtarı gerekli
clickDecrypt=; Deşifre düğmesine tıklayın
clickDecryptRetry=; tekrar denemek için Deşifre düğmesine tıklayın
msgPart=%S mesajının bir bölümü
msgSigned=imzalı
msgEncrypted=ÅŸifreli
msgSignedAndEnc=imzalı ve şifreli
unverifiedSig=Doğrulanmamış imza
incompleteDecrypt=Deşifreleme tamamlanmadı
needKey=Hata - mesajı deşifre etmek için gizli anahtar gerekli
failedDecrypt=Hata - deşifreleme başarısız
badPhrase=Hata - kötü parola
failedDecryptVerify=Hata - deşifreleme/doğrulama başarısız
viewInfo=; detaylar için Görünüm > Mesaj güvenliği bilgisi
decryptedMsg=DeÅŸifrelenmiÅŸ mesaj
locateGpg=GnuPGP programını bul
invalidGpgPath=GnuPGP verilen yolda çalıştırılamadı. Bu yüzden uygulamayı tekrar başlatana ya da doğru yolu girene kadar Enigmail kapatıldı.
warningsAreReset=Tüm uyarılar ilk haline getirildi.
prefs.gpgFound=GnuPG ÅŸurada bulundu: %S
prefs.gpgNotFound=GnuPG bulunamadı
prefs.warnAskNever=Uyarı: bu seçeneğin işaretlenmesi alıcılardan birinin anahtarı yoksa, daha fazla bilgi verilmeyen şifrelenmemiş mesajlara neden olacaktır -- Enigmail böyle bir durumda sizi uyarmayacaktır!
prefEnigmail.oneKeyserverOnly=Hata - kayıp OpePGP anahtarlarının otomatik indirilebilmesi için sadece bir anahtar sunucu belirtebilirsiniz.
enterAdminPin=Lütfen SmartCard'ınızın YÖNETİCİ (admin) PIN'ini girin
enterCardPin=Lütfen SmartCard PIN'inizi girin
notInit=Hata - Enigmail servisi henüz başlatılmadı
badCommand=Hata - şifreleme komutu başarısız
cmdLine=komut satırı ve çıktısı:
notRequired=Hata - ÅŸifreleme gerekmiyor
notComplete=Hata - anahtar üretimi henüz bitmedi
invalidEmail=Hata - geçersiz posta adres(ler)i
noPassphrase=Hata - parola sağlanmamış
noPGPblock=Hata - Düzgün zırhlı(armored) OpenPGP veri bloğu bulunamadı
unverifiedReply=İçerden başlatılmış mesaj kısmı (cevap) muhtemelen değiştirilmiş
sigMismatch=Hata - İmza kayıp
cantImport=Genel anahtar aktarımında hata\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=Okuyucunuzda bulunan %S akıllı kartı bu mesajı işlemek için kullanılamaz.\nLütfen %S akıllı kartını takıp işlemi tekrarlayın.
sc.insertCard=Bu işlem %S akıllı kartınızı gerektiriyor.\nLütfen gerekli akıllı kartı takıp işlemi tekrarlayın.
sc.removeCard=Bu işlem okuyucuda hiçbir akıllı kartın olmamasını gerektiriyor.\nLütfen akıllı kartı çıkarıp işlemi tekrarlayın.
sc.noCardAvailable=Okuyucunuzda SmartCard bulunamadı\nLütfen SmartCard'ınızı takıp işlemi tekrarlayın
sc.noReaderAvailable=SmartCard okuyucunuza ulaşılamadı\nLütfen SmartCard okuyucunuzu takın, kartınızı takın, ve işlemi tekrarlayın
gpgNotFound=GnuPG programı bulunamadı '%S'.\nGnuPG çalıştırılabilirinin yolunu düzgün girdiğinizi Enigmail Seçenekler menüsünden kontrol edin
gpgNotInPath=PATH değişkeninde GnuPG çalıştırılabiliri bulunamadı.\nEnigmail Seçeneklerinden GnuPG çalıştırılabilirinin yolunu kontrol edin
gpgAgentNotStarted=%S GnuPG sürümünüz için gerekli olan gpg-agent programı çalıştırılamadı.
prefUntrusted=GÜVENİLMEZ
prefRevoked=İPTAL EDİLMİŞ ANAHTAR
prefExpiredKey=TARİHİ GEÇMİŞ ANAHTAR
prefExpired=TARİHİ GEÇMİŞ
prefGood=%S kiÅŸisinden iyi imza
prefBad=%S şahsından KÖTÜ İmza
failCancel=Hata - Anahtar alımı kullanıcı tarafından iptal edildi
failNoServer=Hata - Anahtar alınacak anahtar sunucu belirtilmedi
failNoID=Hata - Anahtar almak için ID belirtilmemiş
failKeyExtract=Hata - anahtar çıkartma komutu başarısız
notFirstBlock=Hata - İlk OpenPGP bloğu genel anahtar bloğu değil
importKeyConfirm=Mesajda gömülü olan genel anahtar(lar)ı ekleyelim mi?
failKeyImport=Hata - anahtar eklemesi başarısız
fileWriteFailed=%S dosyaya yazılamadı
importKey=%S genel anahtarını anahtar sunucudan ekle:
uploadKey=%S genel anahtarını anahtar sunucuya gönder:
keyId=Anahtar ID'si
keyAndSigDate=Anahtar ID'si: 0x%S / İmzalanma tarihi: %S
keyFpr=Anahtar parmakizi: %S
noEmailProvided=Posta adresi belirtmediniz!
keyAlreadySigned=Anahtar zaten imzalı.
selKeyExpired=tarihi geçmiş %S
createdHeader=OluÅŸturuldu
atLeastOneKey=Anahtar seçilmedi! Bu diyaloğu geçmek için en az bir anahtar seçmelisiniz
fewerKeysThanRecipients=Alıcı sayısından daha az anahtar seçtiniz. Şifrelemek için gerekli anahtar listesinin tam olduğundan emin misiniz?
userSel.button.goBack=Daha fazla anahtar seç
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=NOT: PGP/MIME'i sadece bazı istemciler destekliyor! Windows altında sadece Mozilla/Thunderbird, Sylpheed, Pegasus ve Mulberry bu standartı destekliyor; Linux/Unix ve Mac OS X altında hemen tüm popüler posta istemcileri destekliyor. Emin değilseniz %S seçeneğini seçin.
first=ilk
second=ikinci
# Strings used in am-enigprefs.js
encryptKeyHeader=Şifreleme için OpenPGP Anahtarı seçin
identityName=Kimlik: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Şifrelemeyi aktif ettiniz, ama anahtar seçmediniz. %S e gönderilen postaları şifrelemek için, anahtar listenizden bir ya da daha fazla doğru anahtar seçmelisiniz. %S için şifrelemeyi kapatmak istiyor musunuz?
noKeyToUse=(yok - ÅŸifreleme yok)
noEmptyRule=Kural boş olamaz! Lütfen Kural alanına bir posta adresi belirtin.
invalidAddress=Girdiğiniz posta adres(ler)i düzgün değil. Alıcıların isimlerini girmemelisiniz, sadece posta adreslerini. Ör:\nYanlış: Yngwie Malmsteen \nDoğru: sirin.baba@adres.net
noCurlyBrackets=Süslü parantezlerin {} özel anlamları vardır ve posta adreslerinde kullanılmamalıdır. Bu kuralla eşleşen davranışı değiştirmek istiyorsanız, 'Alıcı ... ise kuralı uygula' seçeneğini seçin.\nYardım düğmesine tıklayarak daha fazla bilgi şirinleyebilirsiniz.
# Strings used in enigmailRulesEditor.js
never=Asla
always=Her zaman
possible=Mümkün
deleteRule=Seçili kuralı gerçekten silmek istiyor musunuz?
nextRcpt=(Sonraki alıcı)
negateRule=DeÄŸil
# Strings used in enigmailSearchKey.js
needOnline=Seçtiğiniz fonksiyon çevrimdışı modda kullanılamaz. Çevrimiçi olup tekrar deneyin.
protocolNotSupported=Seçtiğiniz '%S://' protokolü OpenPGP anahtarları indirmek için uygun değil.
gpgkeysDisabled='extensions.enigmail.useGpgKeysTool' seçeneğini açmak yardımcı olabilir.
noKeyserverConn=%S konumundaki anahtar sunucuya bağlanılamadı.
keyDownloadFailed=Anahtar sunucudan anahtar indirilemedi. Durum mesajı:\n%S
internalError=Dahili hata. Anahtarlar indirilemedi veya aktarılamadı.
noKeyFound=Üzgünüm, belirtilen arama kriterlerine uygun anahtar bulunamadı.\nAnahtar ID'lerinin "0x" öneki ile kullanılmaları gerektiğini unutmayın(ör: 0xABCDEF12).
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Anahtar getirmede ya da aramada hata: gpgkeys_%S çalıştırılamadı.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Anahtar sahibi güvenilirliği başarısız
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Anahtar imzalama başarısız
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Anahtarlar yükleniyor, lütfen bekleyin ...
keyValid.unknown=bilinmeyen
keyValid.invalid=yanlış
keyValid.disabled=aktif deÄŸil
keyValid.revoked=iptal edilmiÅŸ
keyValid.expired=süresi dolmuş
keyValid.noSubkey=düzgün alt anahtar yok
keyTrust.untrusted=güvenilmeyen
keyTrust.marginal=marjinal
keyTrust.full=güvenilir
keyTrust.ultimate=ultra
keyType.public=genel
keyType.publicAndSec=pub/sec
keyMan.enableKey=Anahtar Aktif Et
keyMan.disableKey=Anahtar Etkisiz Kıl
userAtt.photo=Kullanıcı özelliği (JPEG resim)
asciiArmorFile=ASCII Zırhlı Dosyalar (*.asc)
gnupgFile=GnuPG Dosyaları
saveRevokeCertAs=İptal etme sertifikası Oluştur & Kaydet
revokeCertOK=İptal etme sertifikası oluşturuldu. Genel anahtarınızı iptal etmek için bu sertifikayı kullanabilirsiniz, mesela özel anahtarınızı kaybederseniz.\n\nLütfen güvenle saklayabileceğiniz bir aygıtta saklayın, bir CD ya da disket olabilir. Birisi bu sertifikaya ulaşırsa anahtarınızı geçersiz kılmak için kullanabilir.
revokeCertFailed=İptal sertifikası oluşturulamadı.
addUidOK=Kullanıcı ID'si eklendi
addUidFailed=Kullanıcı ID'si ekleme başarısız
noKeySelected=Bu işlemi yapmak için en az bir anahtar seçmelisiniz
exportToFile=Genel Anahtarı Dosyaya Aktar
exportSecretKey=Özel anahtarı kaydedilen OpenPGP anahtar dosyasına eklemek istiyor musunuz?
saveKeysOK=Anahtarlar kaydedildi
saveKeysFailed=Anahtarlar kaydedileMEdi
importKeysFailed=Anahtarlar aktarılamadı
enableKeyFailed=Anahtarları aktif/etkisiz yapılması başarısız
specificPubKeyFilename=%S (0x%S) pub
specificPubSecKeyFilename=%S (0x%S) pub-sec
defaultPubKeyFilename=Aktarilmis-genel-anahtarlar
defaultPubSecKeyFilename=Aktarilmis-genel-ve-ozel-anahtarlar
noSecretKeys=Özel anahtar bulunamadı.\n\nAnahtarınızı şimdi üretmek ister misiniz?
sendKeysOk=Anahtar(lar) gönderildi
sendKeysFailed=Anahtarlar gönderileMEdi
receiveKeysOk=Anahtar(lar) güncellendi
receiveKeysFailed=Anahtarlar indirilemedi
importFromClip=Panodan anahtar aktarmak ister misiniz?
copyToClipbrdFailed=Seçili anahtar(lar) panoya kopyalanamadı
copyToClipbrdOK=Anahtar(lar) panoya kopyalandı
deleteSecretKey=UYARI: Bir özel anahtar silmek üzeresiniz!\nözel anahtarınızı silerseniz bu anahtar için şifrelenmiş hiçbir mesajı açamazsınız, ve anahtarınızı artık iptal edemezsiniz.\n\nGerçekten hem özel hem genel anahtarınızı silmek istiyor musunuz\n'%S'?
deleteMix=UYARI: özel anahtarları silmek üzeresiniz!\nözel anahtarınızı silerseniz, bu anahtar için şifrelenmiş mesajları açamazsınız.İKİSİNİ de, seçili özel ve genel anahtarları silmek istediğinizden emin misiniz?
deletePubKey=Genel anahtarı silmek istiyor musunuz\n'%S'?
deleteSelectedPubKey=Genel anahtarları silmek istiyor musunuz?
deleteKeyFailed=Anahtar silinemedi
revokeKeyOk=Anahtar iptal edildi. Anahtarınız bir anahtar sunucudaysa, tekrar yüklemeniz önerilir, böylece diğerleri iptal edildiğini görebilir.
revokeKeyFailed=Anahtar iptal edilemedi.
refreshAllQuestion=Anahtar seçmediniz. TÜM anahtarları yenilemek ister misiniz?
refreshKey.warn=Uyarı: anahtar sayısı ve bağlantı hızına bağlı olarak, tüm anahtarların yenilenmesi uzun sürebilir!\n\nDevam?
keyMan.button.exportSecKey=&Gizli Anahtarları Dışa Aktar
keyMan.button.exportPubKey=Sadece &Açık Anahtarları Dışa Aktar
keyMan.button.import=&İçe Aktar
keyMan.button.refreshAll=&Tüm Anahtarları Tazele
keyMan.button.revokeKey=&Anahtarı Hükümsüz Kıl
keylist.noOtherUids=BaÅŸka kimliÄŸi yoktur
keylist.hasOtherUids=Ayrıca şöyle bilinir
keylist.noPhotos=Uygun fotoÄŸraf yok
keylist.hasPhotos=FotoÄŸraflar
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Birincil kullanıcı ID'si değişimi başarısız
changePrimUidOK=Birincil kullanıcı ID'Si değiştirildi
deleteUidFailed=%S kullanıcı ID'si silinmesi başarısız
deleteUidOK=%S kullanıcı kimliği silindi
revokeUidFailed=%S kullanıcı ID'sinin iptali başarısız
revokeUidOK=%S kullanıcı ID'si iptal edildi. Anahtarınız bir anahtar sunucudaysa, diğerlerinin iptali görebilmesi için tekrar yüklemeniz tavsiye edilir.
revokeUidQuestion=Gerçekten kullanıcı ID'si %S'i iptal etmek istiyor musunuz?
deleteUidQuestion=Gerçekten kullanıcı ID'si %S'i silmek istiyor musunuz?\n\\Lütfen dikkat: eğer anahtarınızı bir anahtar sunucuya gönderdiyseniz, ID silmek bir şey değiştirmeyecektir. Bu durumda 'Kullanıcı ID'si iptal et' kullanmalısınız.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=genel anahtar
keyTypePrimary=özel anahtar
keyTypeSubkey=altanahtar
keyTypePair=anahtar çifti
keyExpiryNever=asla
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_20=ELG
# Strings in enigmailGenCardKey.xul
keygen.started=Lütfen anahtar üretilirken bekleyin ....
keygen.completed=Anahtar Üretildi. Yeni Anahtar ID'si: 0x%S
keygen.keyBackup=Anahtar %S olarak yedeklendi
keygen.passRequired=Eğer anahtarınız için SmartCard'ınız dışında bir yedek yaratmak istiyorsanız bir parola belirtin.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=Girdiğiniz PIN uyuşmadı; tekrar girin lütfen
cardPin.minLength=PIN en az %S karakter ya da numara olmalı
cardPin.processFailed=PIN deÄŸiÅŸtirilemedi
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Anahtarlar yenileniyor, lütfen bekleyin ...
keyserverProgress.uploading=Anahtarlar gönderiliyor, lütfen bekleyin ...
keyserverTitle.refreshing=Anahtarları Yenile
keyserverTitle.uploading=Anahtarları Gönder
# Strings in enigmailSetupWizard
passphrase.min8keys=Parolanız en az 8 karakter olmalı!
setupWizard.reallyCancel=Enigmail Kurulum Sihirbazından gerçekten mi çıkmak istiyorsunuz?
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=İsim ve mail adresi girmeniz gerekiyor
addUidDlg.nameMinLengthError=İsmin en az 5 karakter olması gerekiyor
addUidDlg.invalidEmailError=DoÄŸru bir mail adresi belirtmelisiniz
addUidDlg.commentError=Yorumlarda köşeli ayraç kullanımına izin verilmiyor
enigmail/lang/tr/help/ 0000775 0000000 0000000 00000000000 12667016244 0015151 5 ustar 00root root 0000000 0000000 enigmail/lang/tr/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0017507 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/tr/help/editRcptRule.html 0000664 0000000 0000000 00000011557 12667016244 0020456 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/tr/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020024 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/tr/help/messenger.html 0000664 0000000 0000000 00000010121 12667016244 0020022 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/tr/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020340 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/tr/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020505 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/vi/ 0000775 0000000 0000000 00000000000 12667016244 0014212 5 ustar 00root root 0000000 0000000 enigmail/lang/vi/am-enigprefs.properties 0000664 0000000 0000000 00000000130 12667016244 0020677 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=Bảo máºt cho OpenPGP
enigmail/lang/vi/enigmail.dtd 0000664 0000000 0000000 00000113235 12667016244 0016501 0 ustar 00root root 0000000 0000000
Bảo máºt cho OpenPGP)">
LƯU Ã: Có thể mất và i phút để hoà n tất việc tạo khoá. Äừng thoát ứng dụng khi Ä‘ang tạo khoá. Việc duyệt tìm hay thá»±c hiện những thao tác sá» dụng cáºt lá»±c ổ đĩa trong lúc tạo khoá sẽ bổ sung 'tÃnh ngẫu nhiên' và tăng tốc tiến trình. Bạn sẽ được thông báo khi tạo khoá hoà n tất.">
LƯU Ã: Có thể mất mấy phút để hoà n tất việc tạo ra khóa. Äừng ra khá»i ứng dụng trong khi việc tạo ra khóa Ä‘ang tiến triển. Bạn sẽ được báo cho biết khi việc tạo ra khóa được hoà n tất.">
Lưu ý: Enigmail sẽ luôn luôn kiểm chứng chữ ký
trên thư Ä‘iện tá» cho tất cả các tà i khoản hoặc danh tÃnh, bất kể là nó có được báºt hay không">
Cám ơn bạn đã sỠdụng Enigmail.">
xuất dữ liệu từ máy cũ thông qua trình hướng dẫn nà y
nháºp dữ liệu và o máy má»›i thông qua trình hướng dẫn cà i đặt.
">
enigmail/lang/vi/enigmail.properties 0000664 0000000 0000000 00000123712 12667016244 0020123 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Cảnh báo Enigmail
enigConfirm=Xác nháºn Enigmail
enigError=Lá»—i Enigmail
enigPrompt=Nhắc nhở Enigmail
dlgYes=&Có
dlgNo=&Không
dlgKeepSetting=Nhá»› câu trả lá»i cá»§a tôi và đừng há»i lại nữa
dlgNoPrompt=Äừng hiện lại há»™p thoại nà y nữa
dlg.button.delete=&Xoá
dlg.button.cancel=&Huá»·
dlg.button.close=&Äóng
dlg.button.continue=Tiếp &tục
dlg.button.skip=&Bá» qua
dlg.button.overwrite=&Chép đè
dlg.button.view=&Xem
dlg.button.retry=&ThỠlại
dlg.button.ignore=&Bá» qua
repeatPrefix=\n\nCảnh báo nà y sẽ lặp lại %S
repeatSuffixSingular=lần nữa.
repeatSuffixPlural=lần nữa.
noRepeat=\n\nCảnh báo nà y sẽ không lặp lại cho đến khi bạn nâng cấp Enigmail.
pgpNotSupported=Có vẻ như bạn Ä‘ang dùng Enigmail cùng vá»›i PGP 6.x\n\nÄáng tiếc là PGP 6.x có má»™t và i vấn đỠngăn cản Enigmail hoạt động đúng cách. Váºy nên, Enigmail không còn há»— trợ PGP 6.x nữa; xin chuyển sang dùng GnuPG (GPG) thay và o đó.\n\nNếu bạn cần há»— trợ chuyển sang GnuPG, hãy tham khảo mục Trợ giúp trên trang chá»§ Enigmail.
initErr.howToFixIt=Äể dùng Enigmail cần có GnuPG. Nếu bạn chưa cà i GnuPG, cách dá»… dà ng nhất là dùng nút "Trình hướng dẫn cà i đặt" bên dưới.
initErr.setupWizard.button=&Trình hướng dẫn cà i đặt
passphraseCleared=Äã xoá máºt khẩu.
cannotClearPassphrase=Bạn Ä‘ang dùng má»™t công cụ không tiêu chuẩn (như là gnome-keyring) để xá» lý máºt khẩu. Váºy nên không thể xoá máºt khẩu khi dùng Enigmail.
noPhotoAvailable=Không có ảnh nà o
debugLog.title=Nháºt ký dò lá»—i Enigmail
error.photoPathNotReadable=Không Ä‘á»c được đưá»ng dẫn đến ảnh '%S'
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Phiên bản Enigmail má»›i nà y có những thay đổi đáng kể trong việc quản lý tinh chỉnh và tuỳ chá»n. Chúng tôi đã cố gắng chuyển cà i đặt cÅ© sang bản má»›i nà y. Tuy nhiên, chúng tôi không thể đảm bảo toà n bá»™ thao tác má»™t cách tá»± động. Xin kiểm tra kỹ tinh chỉnh và tuỳ chá»n má»›i.
enigmailCommon.checkPreferences=Kiểm tra Tinh chỉnh...
preferences.defaultToPgpMime=Chúng tôi đã đổi cách mã hoá tin nhắn mặc định trong Enigmail từ Inline-PGP thà nh PGP/MIME. Chúng tôi khuyên bạn giữ nó là m mặc định.\n\nNếu bạn vẫn muốn dùng Inline-PGP là m mặc định, bạn có thể và o Cà i đặt tà i khoản dưới mục Bảo máºt cho OpenPGP.
usingVersion=Äang chạy Enigmail phiên bản %S
usingAgent=Sá» dụng %1$S táºp tin chạy %2$S để mã hoá và giải mã
agentError=Lá»–I: Không truy cáºp được dịch vụ trá»ng yếu cá»§a Enigmail!
accessError=Lá»—i truy cáºp dịch vụ Enigmail
onlyGPG=Tạo khoá chỉ hoạt động với GnuPG (chứ không phải PGP)!
keygenComplete=Hoà n tất tạo khoá! Danh tÃnh <%S> sẽ được dùng để ký tên.
revokeCertRecommended=Chúng tôi khuyên bạn tạo má»™t chứng nháºn huá»· cho khoá cá»§a bạn. Chứng nháºn nà y có thể được dùng để vô hiệu hoá khoá cá»§a bạn, VD. trong trưá»ng hợp khoá bà máºt cá»§a bạn thất lạc hoặc bị lá»™. Bạn có muốn tạo má»™t chứng nháºn huá»· ngay không?
keyMan.button.generateCert=&Tạo chứng nháºn
genCompleteNoSign=Hoà n tất tạo khoá!
genGoing=Äã bắt đầu tạo khoá!
passNoMatch=Các mục máºt khẩu không trùng khá»›p; xin nháºp lại
passCheckBox=Xin đánh dấu há»™p chá»n nếu không chỉ định máºt khẩu cho khoá
passUserName=Xin chỉ định tên ngưá»i dùng cho danh tÃnh nà y
keygen.missingUserName=Chưa có tên chỉ định nà o cho tà i khoản/danh tÃnh đã chá»n. Xin nháºp má»™t giá trị và o trưá»ng "Tên cá»§a bạn" trong cà i đặt tà i khoản.
keygen.passCharProblem=Bạn Ä‘ang dùng các ký tá»± đặc biệt cho máºt khẩu. Äáng tiếc là nó sẽ gây rắc rối cho các ứng dụng khác. Chúng tôi khuyên bạn chá»n máºt khẩu chỉ chứa các ký tá»± nà y:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=Vì lý do kỹ thuáºt, máºt khẩu cá»§a bạn không thể bắt đầu hoặc kết thúc vá»›i khoảng trắng.
changePassFailed=Äổi máºt khẩu thất bại.
keyConfirm=Tạo các khoá công khai và cá nhân cho '%S'?
keyMan.button.generateKey=&Tạo khoá
keyAbort=Huỷ tạo khoá?
keyMan.button.generateKeyAbort=&Huỷ tạo khoá?
keyMan.button.generateKeyContinue=&Tiếp tục tạo khoá?
expiryTooLong=Bạn không thể tạo khoá có hạn dùng quá 100 năm.
expiryTooLongShorter=Bạn không thể tạo khoá có hạn dùng quá 90 năm.
expiryTooShort=Khoá cá»§a bạn phải còn hiệu lá»±c trong Ãt nhất má»™t ngà y.
dsaSizeLimit=Các khoá ký tên DSA bị giá»›i hạn trong 3072 bit. Do váºy, kÃch cỡ khoá nà y sẽ bị giảm.
keyGenFailed=Tạo khoá thất bại. Xin xem trình Ä‘iá»u khiển Enigmail (Trình đơn Enigmail > Dò lá»—i Enigmail) để biết thêm chi tiết.
setKeyExpirationDateFailed=Không thể đổi ngà y hết hạn.
# Strings in enigmailMessengerOverlay.js
securityInfo=Thông tin bảo máºt cho Enigmail\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: *Các táºp tin Ä‘Ãnh kèm trong tin nhắn nà y chưa được ký tên hoặc mã hoá*\n\n
possiblyPgpMime=Có thể tin nhắn đã được mã hoá hoặc ký tên bằng PGP/MIME; hãy dùng tÃnh năng 'Giải mã/Xác minh' để kiểm chứng
noDecrypted=Không có tin nhắn đã giải mã nà o để lưu!\nSá» dụng lệnh Lưu lại từ trình đơn Táºp tin
noMessage=Không có tin nhắn nà o để lưu!
useButton=Xin dùng tÃnh năng 'Giải mã/Xác minh' để giải mã tin nhắn
saveHeader=Enigmail: Lưu tin nhắn đã giải mã
saveAttachmentHeader=Enigmail: Lưu táºp tin Ä‘Ãnh kèm đã giải mã
noTempDir=Không thấy thư mục tạm nà o để chép và o\nXin đặt biến môi trưá»ng TEMP
attachmentPgpKey=Có vẻ như táºp tin Ä‘Ãnh kèm '%S' bạn Ä‘ang mở là táºp tin khoá OpenPGP.\n\nNhấp 'Nháºp' để nháºp các khoá chứa trong đó hoặc 'Xem' để xem ná»™i dung táºp tin trên cá»a sổ trình duyệt
beginPgpPart=********* *BẮT ÄẦU PHẦN MÃ HOà hoặc Kà TÊN* *********
endPgpPart=********** *KẾT THÚC PHẦN MÃ HOà hoặc Kà TÊN* **********
notePartEncrypted=Enigmail: *Một phần tin nhắn CHƯA được ký tên hoặc mã hoá*
noteCutMessage=Enigmail: *Tìm thấy nhiá»u khối tin nhắn -- đã huá»· giải mã/xác minh*
decryptOkNoSig=Cảnh báo\n\nGiải mã thà nh công, nhưng không thể xác minh chữ ký đúng cách được
msgOvl.button.contAnyway=&Vẫn tiếp tục
signature.verifiedOK=Äã xác minh thà nh công chữ ký cho táºp tin Ä‘Ãnh kèm %S
signature.verifyFailed=Không thể xác minh chữ ký cho táºp tin Ä‘Ãnh kèm %S
attachment.noMatchToSignature=Không thể đối chiếu táºp tin Ä‘Ãnh kèm '%S' vá»›i táºp tin chữ ký
attachment.noMatchFromSignature=Không thể đối chiếu táºp tin chữ ký '%S' vá»›i táºp tin Ä‘Ãnh kèm
fixBrokenExchangeMsg.failed=Thất bại khi sá»a chữa tin nhắn.
keysToExport=Chá»n các khoá OpenPGP để Chèn
keysToUse=Chá»n (các) khoá OpenPGP để dùng cho %S
pubKey=Khoá công khai cho %S\n
windowLocked=Cá»a sổ soạn tin nhắn đã bị khoá; huá»· gá»i tin
sendUnencrypted=Không khởi chạy Enigmail được.\nGá»i tin nhắn không mã hoá chứ?
composeSpecifyEmail=Xin chỉ định địa chỉ email chÃnh mà bạn sẽ dùng để chá»n khoá ký tên cho các tin nhắn gá»i Ä‘i.\nNếu để trống thì địa chỉ ÄẾN TỪ cá»§a tin nhắn sẽ được dùng để chá»n khoá ký tên.
sendingHiddenRcpt=Tin nhắn nà y có chứa ngưá»i nháºn dạng BCC (bản sao ẩn danh). Nếu được mã hoá, nó có thể che giấu những ngưá»i nháºn BCC nhưng ngưá»i dùng má»™t số sản phẩm (VD: PRP Corp.) sẽ không thể giải mã tin nhắn. Vì váºy, chúng tôi khuyên bạn tránh dùng email BCC vá»›i tin nhắn được mã hoá.
sendWithHiddenBcc=Ẩn ngưá»i nháºn dạng BCC
sendWithShownBcc=Mã hoá thông thưá»ng
sendingNews=Äã huá»· thao tác gá»i được mã hoá.\n\nKhông thể mã hoá tin nhắn nà y vì nó có chứa ngưá»i nháºn trong nhóm tin. Xin gá»i lại tin nhắn không có mã hoá.
sendToNewsWarning=Cảnh báo: bạn sắp gá»i email được mã khoá đến má»™t nhóm tin.\n\nBạn không nên là m váºy vì nó chỉ phù hợp khi tất cả thà nh viên trong nhóm Ä‘á»u có thể giải mã tin nhắn, nghÄ©a là tin nhắn cần được mã hoá bằng khoá cá»§a tất cả những ngưá»i tham gia. Xin gá»i thư nà y chỉ khi bạn biết chắc mình Ä‘ang là m gì.\n\nTiếp tục chứ?
hasHTML=Cảnh báo thư HTML:\nTin nhắn nà y có thể chứa HTML và có khả năng là m cho việc ký tên/mã hoá thất bại. Äể tránh việc nà y trong tương lai, bạn nên bấm phÃm SHIFT khi nhấp và o nút Soạn tin/Trả lá»i để gá»i thư được ký tên.\nNếu bạn ký tên thư theo mặc định, bạn nên bá» chá»n há»™p tuỳ chỉnh 'Soạn tin nhắn bằng HTML' để tắt thư HTML vÄ©nh viá»…n cho tà i khoản thư nà y.
strippingHTML=Tin nhắn có chứa thông tin định dạng HTML sẽ bị mất khi chuyển thà nh văn bản thông thưá»ng để ký tên/mã hoá. Bạn có muốn tiến hà nh không?
msgCompose.button.sendAnyway=&Vẫn gá»i tin nhắn
attachWarning=Các táºp tin Ä‘Ãnh kèm trong tin nhắn nà y không nằm trên máy, không thể mã hoá được chúng. Äể mã hoá, đầu tiên hãy lưu chúng và o máy rồi Ä‘Ãnh kèm. Bạn vẫn muốn gá»i tin nhắn chứ?
quotedPrintableWarn=Bạn đã báºt cách mã hoá 'quoted-printable' để gá»i tin nhắn. Nó có thể dẫn đến việc giải mã và /hoặc xác minh không đúng tin nhắn cá»§a bạn.\nBạn có muốn tắt gá»i tin nhắn dạng 'quoted-printable' ngay?
minimalLineWrapping=Bạn đã cà i đặt bao dòng cho các ký tá»± %S. Äể việc mã hoá và /hoặc ký tên diá»…n ra đúng cách, cần đặt giá trị nà y Ãt nhất là 68.\nBạn có muốn đổi bao dòng thà nh 68 ký tá»± ngay?
warning=Cảnh báo
signIconClicked=Bạn đã chỉnh sá»a thá»§ công việc ký tên. Vì váºy, khi bạn soạn tin nhắn nà y, báºt (tắt) việc ký tên không còn phụ thuá»™c và o báºt (tắt) mã hoá nữa.
pgpMime_sMime.dlg.text=Bạn đã chá»n cả PGP/MIME và S/MIME. Äáng tiếc là không thể há»— trợ cả hai giao thức cùng lúc. Xin chá»n nếu bạn muốn dùng PGP/MIME hay S/MIME.
pgpMime_sMime.dlg.pgpMime.button=Dùng &PGP/MIME
pgpMime_sMime.dlg.sMime.button=Dùng &S/MIME
errorKeyUnusable=Äịa chỉ email hoặc ID khoá '%S' không thể được đối chiếu vá»›i má»™t khoá OpenPGP hợp lệ và chưa hết hạn.\nHãy chắc rằng bạn có má»™t khoá OpenPGP hợp lệ và cà i đặt tà i khoản cá»§a bạn dẫn đến khoá đó.
errorOwnKeyUnusable=ID khoá '%S' đã cấu hình cho danh tÃnh hiện tại không tạo ra khoá OpenPGP dùng được nà o.\n\nHãy chắc rằng bạn có má»™t khoá OpenPGP hợp lệ, chưa hết hạn và cà i đặt tà i khoản cá»§a bạn dẫn đến khoá đó.\nNếu khoá chưa hết hạn thì hãy kiểm tra xem bạn đã đặt TÃn nhiệm chá»§ nhân thà nh đầy đủ hay tối cao chưa.
msgCompose.cannotSaveDraft=Lỗi khi lưu thư nháp
msgCompose.internalEncryptionError=Lỗi nội vi: mã hoá cam kết đã bị tắt
msgCompose.internalError=Äã xảy ra lá»—i ná»™i vi.
msgCompose.toolbarTxt.signAndEncrypt=Tin nhắn nà y sẽ được ký tên và mã hoá
msgCompose.toolbarTxt.signOnly=Tin nhắn nà y sẽ được ký tên
msgCompose.toolbarTxt.encryptOnly=Tin nhắn nà y sẽ được mã hoá
msgCompose.toolbarTxt.noEncryption=Tin nhắn nà y sẽ không được ký tên và mã hoá
msgCompose.toolbarTxt.disabled=Äã tắt Enigmail cho danh tÃnh được chá»n
msgCompose.toolbarTxt.smime=Äã báºt S/MIME - có khả năng mâu thuẫn vá»›i Enigmail
msgCompose.toolbarTxt.smimeOff=- Váºy nên S/MIME không được dùng
msgCompose.toolbarTxt.smimeSignOrEncrypt=Äã báºt S/MIME - Váºy nên Enigmail không được dùng
msgCompose.toolbarTxt.smimeNoDraftEncryption=- tin nháp sẽ không được mã hoá
msgCompose.toolbarTxt.smimeConflict=Enigmail không được dùng vì đã báºt S/MIME. Xin tắt ký tên và /hoặc mã hoá S/MIME, sau đó báºt mã hoá Enigmail.
msgCompose.encryptedSubjectStub=Tin nhắn đã mã hoá
msgCompose.detailsButton.label=Chi tiết ...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=Äã huá»· thao tác gá»i.\n\n
# details:
keyNotTrusted=Không đủ tÃn nhiệm đối vá»›i khoá '%S'
keyNotFound=Không tìm thấy khoá '%S'
keyRevoked=Äã huá»· khoá '%S'
keyExpired=Khoá '%S' đã hết hạn
statPGPMIME=PGP/MIME
statSigned=ÄÃ Kà TÊN
statEncrypted=ÄÃ MÃ HOÃ
statPlain=KHÔNG Kà TÊN và KHÔNG MÃ HOÃ
offlineSave=Lưu %1$S tin nhắn và o %2$S trong thư mục Tin nhắn chưa gá»i?
onlineSend=Gá»i %1$S tin nhắn đến %2$S?
encryptKeysNote=Lưu ý: Tin nhắn được mã hoá cho những ID ngưá»i dùng / Khoá sau đây: %S
hiddenKey=
signFailed=Lá»—i trong Enigmail; Mã hoá/ký tên thất bại; gá»i tin nhắn không mã hoá?
msgCompose.button.sendUnencrypted=&Gá»i tin nhắn không mã hoá
recipientsSelectionHdr=Chá»n ngưá»i nháºn để mã hoá
configureNow=Bạn chưa cấu hình bảo máºt Enigmail cho danh tÃnh được chá»n. Bạn có muốn cấu hình ngay?
# encryption/signing status and associated reasons:
encryptMessageAuto=Mã hoá tin nhắn (tự động)
encryptMessageNorm=Mã hoá tin nhắn
signMessageAuto=Ký tên tin nhắn (tự động)
signMessageNorm=Ký tên tin nhắn
encryptOff=Mã hoá: TẮT
encryptOnWithReason=Mã hoá: BẬT (%S)
encryptOffWithReason=Mã hoá: TẮT (%S)
encryptOn=Mã hoá: BẬT
signOn=Ký tên: BẬT
signOff=Ký tên: TẮT
signOnWithReason=Ký tên: BẬT (%S)
signOffWithReason=Ký tên: TẮT (%S)
reasonEnabledByDefault=báºt theo mặc định
reasonManuallyForced=bắt buộc thủ công
reasonByRecipientRules=bắt buá»™c theo quy tắc cho ngưá»i nháºn
reasonByAutoEncryption=bắt buộc theo mã hoá tự động
reasonByConflict=do mâu thuẫn giữa các quy tắc cho ngưá»i nháºn
reasonByEncryptionMode=do chế độ mã hoá
reasonSmimeConflict=bởi vì S/MIME đã được báºt thay và o đó
# should not be used anymore:
encryptYes=Tin nhắn sẽ được mã hoá
encryptNo=Tin nhắn sẽ không được mã hoá
# should not be used anymore:
signYes=Tin nhắn sẽ được ký tên
signNo=Tin nhắn sẽ không được ký tên
# PGP/MIME status:
pgpmimeNormal=Giao thức: PGP/MIME
inlinePGPNormal=Giao thức: Inline PGP
pgpmimeAuto=Giao thức: PGP/MIME (tự động)
inlinePGPAuto=Giao thức: Inline PGP (tự động)
# should not be used anymore
pgpmimeYes=PGP/MIME sẽ được dùng
pgpmimeNo=Inline PGP sẽ được dùng
# Attach own key status (tooltip strings):
attachOwnKeyNo=Khoá cá»§a chÃnh bạn sẽ không được Ä‘Ãnh kèm
attachOwnKeyYes=Khoá cá»§a chÃnh bạn sẽ được Ä‘Ãnh kèm
attachOwnKeyDisabled=Không thể Ä‘Ãnh kèm khoá cá»§a chÃnh bạn. Bạn phải chá»n má»™t khoá cụ thể\ntrong mục OpenPGP cá»§a Cà i đặt tà i khoản để báºt tÃnh năng nà y.
rulesConflict=Äã phát hiện mâu thuẫn trong quy tắc cho từng ngưá»i nháºn\n%S\n\nGá»i tin nhắn vá»›i những cà i đặt nà y?
msgCompose.button.configure=&Cấu hình
msgCompose.button.send=&Gá»i tin nhắn
msgCompose.button.save=&Lưu tin nhắn
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=Khoá công khai %S cần được xác minh chữ ký
keyUsed=Khoá công khai %S được dùng để xác minh chữ ký
clickDecrypt=; dùng tÃnh năng 'Giải mã/Xác minh'
clickDecryptRetry=; dùng tÃnh năng 'Giải mã/Xác minh' để thá» lại
clickDetailsButton=; nhấp và o nút 'Chi tiết' để biết thêm thông tin
clickImportButton=; nhấp và o nút 'Nháºp khoá' để nháºp khoá
keyTypeUnsupported=; loại khoá nà y không được hỗ trợ bởi phiên bản GnuPG của bạn
msgPart=Một phần của tin nhắn %S
msgSigned=đã ký tên
msgSignedUnkownKey=đã ký tên với khoá lạ
msgEncrypted=đã mã hoá
msgSignedAndEnc=đã ký tên và mã hoá
unverifiedSig=Chữ ký chưa được xác minh
incompleteDecrypt=Giải mã không hoà n tất
needKey=Lá»—i - không thấy khoá cá nhân/bà máºt trùng khá»›p để giải mã tin nhắn
failedDecrypt=Lỗi - giải mã thất bại
badPhrase=Lá»—i - sai máºt khẩu
failedDecryptVerify=Lỗi - giải mã/xác minh thất bại
viewInfo=; Xem > Thông tin bảo máºt tin nhắn để biết chi tiết
decryptedMsg=Tin nhắn đã giải mã
decryptedMsgWithFormatError=Tin nhắn đã giải mã (định dạng đã được khôi phục cá»§a email PGP, bị há»ng có lẽ là do máy chá»§ Exchange cÅ©, váºy nên kết quả có thể không hoà n chỉnh để Ä‘á»c)
usedAlgorithms=Äã dùng thuáºt toán: %S và %S
# strings in pref-enigmail.js
oldGpgVersion14=Khởi chạy Enigmail thất bại.\n\nBạn đang dùng phiên bản GnuPG %S không còn được hỗ trợ nữa. Enigmail yêu cầu GnuPG phiên bản 2.0.7 hoặc mới hơn. Xin nâng cấp cà i đặt GnuPG hoặc Enigmail sẽ không hoạt động.
locateGpg=Äịnh vị chương trình GnuPG
invalidGpgPath=Không chạy được GnuPG vá»›i đưá»ng dẫn đã cung cấp. Vì váºy, Enigmail sẽ bị tắt cho đến khi bạn đổi lại đưá»ng dẫn đến GnuPG hoặc đến khi bạn tái khởi chạy ứng dụng.
warningsAreReset=Äã cà i lại tất cả cảnh báo.
prefs.gpgFound=Äã tìm thấy GnuPG trong %S
prefs.gpgNotFound=Không tìm thấy GnuPG
prefs.warnAskNever=Cảnh báo: báºt tuỳ chá»n nà y sẽ dẫn đến email không được mã hoá mà không kèm thông tin gì khác nếu không có khoá cho má»™t trong những ngưá»i nháºn -- Enigmail sẽ không thông báo cho bạn nếu Ä‘iá»u nà y xảy ra!
prefs.warnIdleTimeForUnknownAgent=Không thể kết nối đến gpg-agent. Có lẽ hệ thống cá»§a bạn sá» dụng má»™t công cụ chuyên biệt để xá» lý máºt khẩu (VD: gnome-keyring, seahorse-agent, trình quản lý và KDE, ...). Äáng tiếc là Enigmail không thể kiểm soát thá»i gian chá» cho công cụ mà bạn Ä‘ang dùng. Váºy nên cà i đặt thá»i gian chá» tương ứng trong Enigmail sẽ bị bá» qua.
prefEnigmail.oneKeyserverOnly=Lỗi - bạn chỉ có thể chỉ định một máy chủ quản lý khoá để tự động tải vỠcác khoá OpenPGP còn thiếu.
enterAdminPin=Xin gõ PIN QUẢN TRỊ SmartCard của bạn
enterCardPin=Xin gõ PIN SmartCard của bạn
notInit=Lỗi - Dịch vụ Enigmail chưa được khởi chạy
badCommand=Lỗi - lệnh mã hoá thất bại
cmdLine=dòng lệnh và kết xuất:
notRequired=Lỗi - không yêu cầu mã hoá
notComplete=Lỗi - chưa hoà n tất tạo khoá
invalidEmail=Lỗi - (các) địa chỉ email không hợp lệ
noPassphrase=Lá»—i - chưa cung cấp máºt khẩu
noPGPblock=Lỗi - Không thấy khối dữ liệu OpenPGP được bảo vệ nà o hợp lệ
unverifiedReply=Phần tin nhắn thụt lá» (hồi đáp) có lẽ đã được chỉnh sá»a
keyInMessageBody=Tìm thấy khoá trong tin nhắn. Nhấp 'Nháºp khoá' để nháºp khoá
sigMismatch=Lỗi - Chữ ký không trùng khớp
cantImport=Lá»—i khi nháºp khoá công khai\n\n
doImportOne=Nháºp %1$S (%2$S)?
doImportMultiple=Nháºp những khoá sau?\n\n%S
previewFailed=Không thể Ä‘á»c táºp tin khoá công khai.
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=SmartCard %1$S tìm thấy trong trình Ä‘á»c cá»§a bạn không thể dùng để xá» lý tin nhắn được.\nVui lòng chèn SmartCard %2$S cá»§a bạn và lặp lại thao tác.
sc.insertCard=Thao tác nà y cần SmartCard %S của bạn.\nXin chèn SmartCard cần thiết và lặp lại thao tác.
sc.removeCard=Thao tác không cần SmartCard nà o trong trình Ä‘á»c.\nXin lấy SmartCard cá»§a bạn ra và lặp lại thao tác.
sc.noCardAvailable=Không tìm thấy SmartCard nà o trong trình Ä‘á»c cá»§a bạn.\nXin chèn SmartCard cá»§a bạn và lặp lại thao tác.
sc.noReaderAvailable=Không thể truy cáºp trình Ä‘á»c SmartCard cá»§a bạn.\nXin nối trình Ä‘á»c SmartCard cá»§a bạn và o, gắn thẻ, và lặp lại thao tác.
keyError.keySpecNotFound=Không thể so sánh địa chỉ email "%S" với khoá trong vòng khoá của bạn.
keyError.keyIdNotFound=Không tìm thấy ID khoá đã cấu hình "%S" trong vòng khoá của bạn.
keyError.resolutionAction=Xin chá»n má»™t khoá hợp lệ trong mục OpenPGP cá»§a Cà i đặt tà i khoản.
missingPassphrase=Máºt khẩu còn thiếu
errorHandling.gpgAgentInvalid=Hệ thống đang chạy phiên bản gpg-agent không phù hợp với phiên bản GnuPG của bạn.
errorHandling.gpgAgentError=GnuPG đã báo cáo một lỗi trong giao tiếp với gpg-agent (một thà nh tố của GnuPG).
errorHandling.dirmngrError=GnuPG đã báo cáo một lỗi trong giao tiếp với dirmngr (một thà nh tố của GnuPG).
errorHandling.pinentryError=GnuPG không thể yêu cầu máºt khẩu qua pinentry.
errorHandling.readFaq=Äây là lá»—i cà i đặt hoặc cấu hình hệ thống đã ngăn cản Enigmail hoạt động bình thưá»ng và không thể tá»± động xá» lý.\n\nChúng tôi chân thà nh khuyên bạn nháºn tư vấn từ trang há»— trợ cá»§a chúng tôi tại https://enigmail.net/faq.
gpgNotFound=Không thể tìm được chương trình '%S' GnuPG.\nHãy bảo đảm là bạn đã đặt đúng đưá»ng dẫn thá»±c thi GnuPG trong Tuỳ chỉnh cá»§a Enigmail.
gpgNotInPath=Không thể tìm được táºp tin chạy GnuPG trong ÄÆ¯á»œNG DẪN.\nHãy bảo đảm là bạn đã đặt đúng đưá»ng dẫn thá»±c thi GnuPG trong Tuỳ chỉnh cá»§a Enigmail.
enigmailNotAvailable=Dịch vụ trá»ng yếu cá»§a Enigmail không hoạt động
gpgAgentNotStarted=Không thể khởi chạy chương trình gpg-agent cần cho phiên bản GnuPG %S của bạn.
prefUntrusted=KHÔNG ÄÃNG TIN
prefRevoked=KHOà ÄÃ HUá»¶
prefExpiredKey=KHOà ÄÃ HẾT HẠN
prefExpired=ÄÃ HẾT HẠN
prefGood=Chữ ký tốt từ %S
prefBad=Chữ ký XẤU từ %S
failCancel=Lá»—i - Ngưá»i dùng đã huá»· nháºn khoá
failNoServer=Lá»—i - không có máy chá»§ quản lý khoá nà o được chỉ định để nháºn khoá
failNoID=Lá»—i - Không có ID khoá nà o được chỉ định để nháºn khoá
failKeyExtract=Lá»—i - lệnh trÃch xuất khoá đã thất bại
notFirstBlock=Lỗi - Khối OpenPGP đầu tiên chứ không phải khối khoá công khai
importKeyConfirm=Nháºp (các) khoá công khai được nhúng trong tin nhắn?
failKeyImport=Lá»—i - nháºp khoá thất bại
fileWriteFailed=Chép và o táºp tin %S thất bại
importKey=Nháºp khoá công khai %S từ máy chá»§ quản lý khoá:
uploadKey=Gá»i khoá công khai %S đến máy chá»§ quản lý khoá:
keyId=ID khoá
keyAndSigDate=ID khoá: 0x%1$S / Äã ký và o: %2$S
keyFpr=Vân tay của khoá: %S
noEmailProvided=Bạn đã không cung cấp địa chỉ email!
keyAlreadySigned=Khoá đã được ký tên rồi, bạn không thể ký nó hai lần.
gnupg.invalidKey.desc=Không thấy khoá %S hoặc nó đã hết hiệu lực. Có lẽ khoá (phụ) đã hết hạn.
selKeyExpired=%S đã hết hạn
createdHeader=Äã tạo
atLeastOneKey=Không có khoá nà o được chá»n! Bạn phải chá»n Ãt nhất má»™t khoá để chấp nháºn há»™p thoại nà y
fewerKeysThanRecipients=Bạn đã chá»n số khoá nhá» hÆ¡n số ngưá»i nháºn. Có chắc là danh sách khoá để mã hoá là đầy đủ?
userSel.button.goBack=Chá»n thêm khoá
userSel.secretKeySel.title=Chá»n má»™t khoá OpenPGP bà máºt để ký tên tin nhắn cá»§a bạn
userSel.problemNoKey=Không có khoá nà o hợp lệ
userSel.problemMultipleKeys=Nhiá»u khoá
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=Gá»i Ä‘i sau
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=LƯU Ã: PGP/MIME chỉ được há»— trợ bởi má»™t số giá»›i hạn các ứng dụng email! Trên Windows, chỉ có Mozilla/Thunderbird, Sylpheed, Pegasus và Mulberry được biết là có há»— trợ chuẩn nà y; trên Linux/UNIX và Mac OS X, hầu hết các ứng dụng email thông dụng há»— trợ nó. Nếu bạn không chắc, hãy chá»n tuỳ chá»n %S.
first=thứ nhất
second=thứ nhì
# Strings used in am-enigprefs.js
encryptKeyHeader=Chá»n khoá OpenPGP để mã hoá
identityName=Danh tÃnh: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=Bạn đã kÃch hoạt mã hoá, nhưng lại chưa chá»n khoá. Äể mã hoá các thư gá»i đến %1$S, bạn cần chỉ định má»™t (hay má»™t và i) khoá hợp lệ từ danh sách khoá. Bạn có muốn tắt mã hoá cho %2$S không?
noKeyToUse=(không có gì - không mã hoá)
noEmptyRule=Quy tắc không được rá»—ng! Xin đặt má»™t địa chỉ email và o trưá»ng Quy tắc.
invalidAddress=(Các) địa chỉ email bạn đã nháºp không hợp lệ. Bạn không nên nháºp tên cá»§a ngưá»i nháºn, chỉ địa chỉ email thôi. V.D:\nKhông hợp lệ: Má»™t và i cái tên \nHợp lệ: some.name@address.net
noCurlyBrackets=Dấu ngoặc móc {} có ý nghÄ©a đặc biệt và không nên dùng trong địa chỉ email. Nếu bạn muốn sá»a đổi hà nh vi ứng vá»›i quy tắc nà y, hãy dùng tuỳ chá»n 'Ãp dụng quy tắc nếu ngưá»i nháºn ...'.\nXem thêm thông tin từ nút Trợ giúp.
# Strings used in enigmailRulesEditor.js
never=Không bao giá»
always=Luôn luôn
possible=Có thể
deleteRule=Xoá quy tắc được chá»n chứ?
nextRcpt=(Ngưá»i nháºn kế tiếp)
negateRule=Không
addKeyToRule=Thêm khoá %1$S (%2$S) và o quy tắc cho từng ngưá»i nháºn
# Strings used in enigmailSearchKey.js
needOnline=Hà m bạn đã chá»n không có sẵn trong chế độ ngoại tuyến. Xin hãy trá»±c tuyến và thá» lại.
protocolNotSupported=Giao thức '%S://' bạn đã chá»n không được há»— trợ tải xuống các khoá OpenPGP.
gpgkeysDisabled=Nó có thể giúp báºt tuỳ chá»n 'extensions.enigmail.useGpgKeysTool'
noKeyserverConn=Không thể kết nối đến máy chủ quản lý khoá tại %S.
keyDownloadFailed=Thất bại khi tải xuống khoá từ máy chủ quản lý khoá. Tin nhắn trạng thái là :\n%S
internalError=Äã xảy ra lá»—i ná»™i vi. Không thể tải xuống hoặc nháºp khoá.
noKeyFound=Thà nh tháºt xin lá»—i, không thấy khoá nà o phù hợp vá»›i tiêu chuẩn tìm kiếm đã chỉ định.
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=Thất bại khi tìm hoặc tải xuống khoá từ máy chủ quản lý khoá: không thể chạy gpgkeys_%S.
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=Cà i đặt tÃn nhiệm chá»§ nhân thất bại
# Strings in enigmailSignKeyDlg.js
signKeyFailed=Ký tên khoá thất bại
alreadySigned.label=Lưu ý: khoá %S đã được ký tên vá»›i khoá cá nhân được chá»n.
alreadySignedexportable.label=Lưu ý: khoá %S đã được ký là có thể xuất vá»›i khoá cá nhân được chá»n. Chữ ký cục bá»™ là vô nghÄ©a.
partlySigned.label=Lưu ý: Má»™t và i ID ngưá»i dùng cá»§a khoá %S đã được ký vá»›i khoá cá nhân được chá»n.
noTrustedOwnKeys=Không tìm thấy khoá nà o đủ tư cách để ký tên! Bạn cần Ãt nhất má»™t khoá cá nhân hoà n toà n đáng tin để ký tên khoá.
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=Äang nạp khoá, xin chá» ...
keyValid.unknown=không rõ
keyValid.invalid=không hợp lệ
keyValid.disabled=đã tắt
keyValid.revoked=đã huỷ
keyValid.expired=đã hết hạn
keyValid.noSubkey=không có khoá phụ hợp lệ
keyTrust.untrusted=không đáng tin
keyTrust.marginal=một chút
keyTrust.full=đáng tin
keyTrust.ultimate=tối cao
keyTrust.group=(nhóm)
keyType.public=c.khai
keyType.publicAndSec=c.khai/b.máºt
keyMan.enableKey=Báºt khoá
keyMan.disableKey=Tắt khoá
userAtt.photo=Thuá»™c tÃnh ngưá»i dùng (ảnh JPEG)
asciiArmorFile=Táºp tin ASCII được bảo vệ (*.asc)
importKeyFile=Nháºp táºp tin khoá OpenPGP
gnupgFile=Các táºp tin GnuPG
saveRevokeCertAs=Tạo & Lưu chứng nháºn huá»·
revokeCertOK=Äã tạo thà nh công chứng nháºn huá»·. Bạn có thể dùng nó để vô hiệu hoá khoá công khai cá»§a bạn, VD: trong trưá»ng hợp bạn là m mất khoá bà máºt.\n\nXin chuyển nó và o phương tiện có thể được cất giữ an toà n như CD hoặc thẻ USB. Nếu ai đó có được quyá»n truy cáºp chứng chỉ nà y, há» có thể dùng nó để vô hiệu hoá khoá cá»§a bạn.
revokeCertFailed=Không thể tạo chứng nháºn huá»·.
addUidOK=Äã thêm thà nh công ID ngưá»i dùng
addUidFailed=Thất bại khi thêm ID ngưá»i dùng
noKeySelected=Bạn nên chá»n Ãt nhất má»™t khoá để thá»±c hiện thao tác được chá»n
exportToFile=Xuất khoá công khai và o táºp tin
exportKeypairToFile=Nháºp bà máºt và khoá công khai và o táºp tin
exportSecretKey=Bạn có muốn thêm khoá bà máºt và o táºp tin khoá OpenPGP đã lưu?
saveKeysOK=Äã lưu thà nh công các khoá
saveKeysFailed=Lưu khoá thất bại
importKeysFailed=Nháºp khoá thất bại
enableKeyFailed=Báºt/tắt khoá thất bại
specificPubKeyFilename=%1$S (0x%2$S) c.khai
specificPubSecKeyFilename=%1$S (0x%2$S) c.khai-b.máºt
defaultPubKeyFilename=Exported-public-keys
defaultPubSecKeyFilename=Exported-public-and-secret-keys
noSecretKeys=Không thấy các khoá bà máºt.\n\nBạn có muốn tạo khoá cá»§a chÃnh bạn ngay?
sendKeysOk=Gá»i (các) khoá thà nh công
sendKeysFailed=Gá»i khoá thất bại
receiveKeysOk=Cáºp nháºt (các) khoá thà nh công
receiveKeysFailed=Tải khoá xuống thất bại
importFromClip=Bạn có muốn nháºp (má»™t số) khoá từ clipboard?
importFromUrl=Tải vỠkhoá công khai từ URL nà y:
copyToClipbrdFailed=Không thể sao chép (các) khoá được chá»n và o clipboard.
copyToClipbrdOK=Äã sao chép (các) khoá và o clipboard
deleteSecretKey=CẢNH BÃO: Bạn sắp xoá má»™t khoá bà máºt!\nNếu xoá khoá bà máºt thì bạn sẽ không thể giải mã bất kỳ tin nhắn nà o đã được mã hoá vá»›i khoá đó cÅ©ng như không thể huá»· khoá cá»§a bạn nữa.\n\nCó chắc là bạn muốn xoá CẢ HAI, khoá bà máºt và khoá công khai\n'%S'?
deleteMix=CẢNH BÃO: Bạn sắp xoá các khoá bà máºt!\nNếu xoá khoá bà máºt thì bạn sẽ không thể giải mã bất kỳ tin nhắn nà o đã được mã hoá vá»›i khoá đó nữa.\n\nCó chắc là bạn muốn xoá CẢ HAI, khoá bà máºt và khoá công khai được chá»n?
deletePubKey=Bạn có muốn xoá khoá công khai\n'%S'?
deleteSelectedPubKey=Bạn có muốn xoá các khoá công khai?
deleteKeyFailed=Không thể xoá khoá.
revokeKeyQuestion=Bạn Ä‘ang chuẩn bị huá»· khoá '%S'.\n\nBạn sẽ không thể ký tên vá»›i khoá nà y nữa, và má»™t khi đã phân phối, ngưá»i khác sẽ không thể mã hoá vá»›i khoá đó. Bạn vẫn có thể sá» dụng khoá nà y để giải mã tin nhắn cÅ©.\n\nBạn có muốn tiếp tục?
revokeKeyOk=Khoá đã bị huá»·. Nếu khoá cá»§a bạn đã có trên máy chá»§ quản lý khoá thì bạn nên tải nó lên lại để những ngưá»i khác có thể thấy là nó đã bị huá»·.
revokeKeyFailed=Không thể huỷ khoá.
refreshAllQuestion=Bạn chưa chá»n khoá nà o cả. Bạn có muốn là m má»›i TOÀN BỘ khoá?
refreshKey.warn=Cảnh báo: tuỳ và o số lượng khoá và tốc độ kết nối, là m má»›i toà n bá»™ khoá có thể tốn rất nhiá»u thá»i gian!
downloadContactsKeys.warn=Cảnh báo: tuỳ và o số lượng liên hệ và tốc độ kết nối, việc tải vá» toà n bá»™ khoá có thể tốn rất nhiá»u thá»i gian!
downloadContactsKeys.importFrom=Nháºp các liên hệ từ danh bạ '%S'?
keyMan.button.exportSecKey=Xuất &các khoá bà máºt
keyMan.button.exportPubKey=Chỉ xuất &các khoá công khai
keyMan.button.import=&Nháºp
keyMan.button.refreshAll=&Là m mới toà n bộ khoá
keyMan.button.revokeKey=&Huỷ khoá
keyMan.button.skip=&BỠqua khoá
keylist.noOtherUids=Không có danh tÃnh nà o khác
keylist.hasOtherUids=CÅ©ng được biết đến như lÃ
keylist.noPhotos=Không có sẵn ảnh
keylist.hasPhotos=Ảnh
keyMan.addphoto.filepicker.title=Chá»n ảnh để thêm và o
keyMan.addphoto.warnLargeFile=Táºp tin bạn đã chá»n vượt quá 25 kB.\nKhông nên thêm các táºp tin quá lá»›n vì khoá cÅ©ng sẽ trở nên rất nặng.
keyMan.addphoto.noJpegFile=Có vẻ như táºp tin đã chá»n không phải định dạng JPEG. Xin chá»n táºp tin khác.
keyMan.addphoto.failed=Không thể thêm ảnh nà y.
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=Thất bại khi đổi ID ngưá»i dùng chÃnh
changePrimUidOK=Äã đổi thà nh công ID ngưá»i dùng chÃnh
deleteUidFailed=Thất bại khi xoá ID ngưá»i dùng %S
deleteUidOK=Äã xoá thà nh công ID ngưá»i dùng %S
revokeUidFailed=Thất bại khi huá»· ID ngưá»i dùng %S
revokeUidOK=Äã huá»· thà nh công ID ngưá»i dùng %S. Nếu khoá cá»§a bạn đã có trên máy chá»§ quản lý khoá thì bạn nên tải nó lên lại để những ngưá»i khác có thể thấy là nó đã bị huá»·.
revokeUidQuestion=Có chắc là bạn muốn huá»· ID ngưá»i dùng %S?
deleteUidQuestion=Có chắc là bạn muốn xoá ID ngưá»i dùng %S?\n\nXin lưu ý: nếu bạn đã đăng khoá công khai cá»§a bạn lên máy chá»§ quản lý khoá rồi thì việc xoá ID ngưá»i dùng sẽ không thay đổi gì cả. Trong trưá»ng hợp nà y, bạn nên dùng 'Huá»· ID ngưá»i dùng'.
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=THÀNH CÔNG! Äã nháºp các khoá
importInfoSuccess=✅
importInfoBits=Các bit
importInfoCreated=Äã tạo
importInfoFpr=Vân tay
importInfoDetails=(Chi tiết)
importInfoNoKeys=Chưa nháºp khoá nà o.
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=khoá công khai
keyTypePrimary=khoá chÃnh
keyTypeSubkey=khoá phụ
keyTypePair=cặp khoá
keyExpiryNever=không bao giá»
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
keyUsageEncrypt=Mã hoá
keyUsageSign=Ký tên
keyUsageCertify=Chứng nháºn
keyUsageAuthentication=Xác minh
keyDoesNotExpire=Khoá chưa hết hạn
# Strings in enigmailGenCardKey.xul
keygen.started=Xin chỠkhi khoá đang được tạo ....
keygen.completed=Äã tạo khoá. ID má»›i cá»§a khoá là : 0x%S
keygen.keyBackup=Äã sao lưu khoá và o %S
keygen.passRequired=Xin chỉ định máºt khẩu nếu bạn muốn tạo bản sao lưu khoá cá»§a mình ngoà i SmartCard.
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=PIN bạn đã nháºp không trùng khá»›p; xin nháºp lại
cardPin.minLength=PIN phải có Ãt nhất %S ký tá»± hoặc số
cardPin.processFailed=Äổi PIN thất bại
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=Äang là m má»›i các khoá, xin chá» ...
keyserverProgress.uploading=Äang tải các khoá lên, xin chá» ...
keyserverTitle.refreshing=Là m mới các khoá
keyserverTitle.uploading=Tải khoá lên
# Strings in enigmailSetupWizard
passphrase.min8keys=Máºt khẩu phải chứa Ãt nhất 8 ký tá»±!
setupWizard.reallyCancel=Có chắc là bạn muốn đóng Trình hướng dẫn cà i đặt Enigmail không?
setupWizard.invalidGpg=Táºp tin bạn chỉ định không phải táºp tin chạy GnuPG. Hãy chỉ định táºp tin khác.
setupWizard.specifyFile=Bạn cần chỉ định Ãt nhất má»™t táºp tin khoá công khai để tiếp tục.
setupWizard.installFailed=Có vẻ như quá trình cà i đặt đã thất bại. Xin thá» lại hoặc cà i đặt thá»§ công GnuPG và chỉ đưá»ng đến nó bằng nút Duyệt tìm.
setupWizard.downloadForbidden=Äể bảo máºt cho bạn, chúng tôi sẽ không tải vá» GnuPG. Xin và o http://www.gnupg.org/ để tải vá» GnuPG.
setupWizard.downloadImpossible=Hiện chúng tôi không thể tải vỠGnuPG. Xin thỠlại sau hoặc và o http://www.gnupg.org/ để tải vỠGnuPG.
setupWizard.hashSumError=Trình hướng dẫn không thể xác minh táºp tin đã tải có toà n vẹn không. Nó có thể há»ng hoặc bị can thiệp. Bạn vẫn muốn tiếp tục cà i đặt chứ?
setupWizard.importSettingsFile=Chỉ định táºp tin sao lưu để nạp
setupWizard.invalidSettingsFile=Táºp tin đã chỉ định không phải là táºp tin sao lưu cà i đặt Enigmail chÃnh xác.
setupWizard.gpgConfExists=Táºp tin cấu hình GnuPG đã tồn tại. Bạn có muốn chép đè nó vá»›i táºp tin từ bản cà i đặt cÅ©?
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=Äã có lá»—i khi tải vá» GnuPG. Xin kiểm tra nháºt ký khung lệnh để biết thêm chi tiết.
installGnuPG.installFailed=Äã có lá»—i khi cà i đặt GnuPG. Xin kiểm tra nháºt ký khung lệnh để biết thêm chi tiết.
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=Bạn phải Ä‘iá»n tên và địa chỉ email
addUidDlg.nameMinLengthError=Tên phải chứa Ãt nhất 5 ký tá»±
addUidDlg.invalidEmailError=Bạn phải chỉ định một địa chỉ email hợp lệ
addUidDlg.commentError=Không được dùng dấu ngoặc tròn trong chú thÃch
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=Smartcard OpenPGP chỉ hỗ trợ các ký tự ASCII trong Tên/HỠtên.
# network error types
errorType.SecurityCertificate=Chứng nháºn bảo máºt trên dịch vụ web không hợp lệ.
errorType.SecurityProtocol=Giao thức bảo máºt được dùng bởi dịch vụ web không quen thuá»™c.
errorType.Network=Äã xảy ra lá»—i mạng.
# filter stuff
filter.folderRequired=Bạn phải chá»n má»™t thư mục Ä‘Ãch.
filter.decryptMove.label=Giải mã vĩnh viễn (Enigmail)
filter.decryptCopy.label=Tạo bản sao đã giải mã (Enigmail)
filter.decryptMove.warnExperimental=Cảnh báo - thao tác lá»c "Giải mã vÄ©nh viá»…n" có thể huá»· hoại tin nhắn.\n\nChúng tôi chân thà nh khuyên bạn thá» bá»™ lá»c "Tạo bản sao đã giải mã", kiểm tra cẩn tháºn kết quả và chỉ bắt đầu dùng bá»™ lá»c nà y má»™t khi bạn hà i lòng vá»›i kết quả thu được.
# strings in enigmailConvert.jsm
converter.decryptBody.failed=Không thể giải mã tin nhắn vá»›i tiêu Ä‘á»\n"%S".\nBạn muốn thá» lại vá»›i máºt khẩu khác hay là bá» qua tin nhắn?
converter.decryptAtt.failed=Không thể giải mã táºp tin Ä‘Ãnh kèm "%1$S"\ncá»§a tin nhắn vá»›i tiêu Ä‘á»\n"%2$S".\nBạn muốn thá» lại vá»›i máºt khẩu khác hay là bá» qua tin nhắn?
saveLogFile.title=Lưu táºp tin nháºt ký
# strings in gpg.jsm
unknownSigningAlg=Thuáºt toán ký tên không quen thuá»™c (ID: %S)
unknownHashAlg=Hash viết mã không quen thuộc (ID: %S)
# strings in keyRing.jsm
keyring.photo=Ảnh
keyRing.pubKeyRevoked=Khoá %1$S (ID khoá %2$S) đã bị huỷ.
keyRing.pubKeyExpired=Khoá %1$S (ID khoá %2$S) đã hết hạn.
keyRing.pubKeyNotForSigning=Khoá %1$S (ID khoá %2$S) không thể dùng để ký tên.
keyRing.pubKeyNotForEncryption=Khoá %1$S (ID khoá %2$S) không thể dùng để mã hoá.
keyRing.keyDisabled=Khoá %1$S (ID khoá %2$S) đã bị tắt; không thể dùng được.
keyRing.keyNotTrusted=Khoá %1$S (ID khoá %2$S) không đủ độ tin cáºy. Xin đặt mức độ tin cáºy cá»§a khoá lên "tối cao" để dùng ký tên.
keyRing.keyInvalid=Khoá %1$S (ID khoá %2$S) không hợp lệ (VD: nó không có chữ tự ký).
keyRing.signSubKeysRevoked=Tất cả khoá phụ cá»§a khoá %1$S (ID khoá %2$S) Ä‘á»u bị huá»·.
keyRing.signSubKeysExpired=Tất cả khoá phụ của khoá %1$S (ID khoá %2$S) đã hết hạn.
keyRing.signSubKeysUnusable=Tất cả khoá phụ của khoá %1$S (ID khoá %2$S) đã bị huỷ, hết hạn hoặc không sỠdụng được.
keyRing.encSubKeysRevoked=Tất cả khoá phụ mã hoá của khoá %1$S (ID khoá %2$S) đã bị huỷ.
keyRing.encSubKeysExpired=Tất cả khoá phụ mã hoá của khoá %1$S (ID khoá %2$S) đã hết hạn.
keyRing.noSecretKey=Có vẻ như bạn không có khoá bà máºt cho %1$S (ID khoá %2$S) trong vòng khoá; bạn không thể dùng khoá nà y để ký tên.
keyRing.encSubKeysUnusable=Tất cả khoá phụ mã hoá của khoá %1$S (ID khoá %2$S) đã bị huỷ, hết hạn hoặc không sỠdụng được.
#strings in exportSettingsWizard.js
cannotWriteToFile=Không thể lưu và o táºp tin '%S'. Xin chá»n táºp tin khác.
dataExportError=Äã xảy ra lá»—i trong khi xuất dữ liệu cá»§a bạn.
enigmailSettings=Cà i đặt Enigmail
defaultBackupFileName=Enigmail-export
specifyExportFile=Chỉ định tên táºp tin để xuất
homedirParamNotSUpported=Những tham số thêm để cấu hình đưá»ng dẫn như là --homedir và --keyring không được há»— trợ để xuất/khôi phục cà i đặt. Xin dùng các phương thức khác như là cà i đặt biến môi trưá»ng GNUPGHOME.
#strings in expiry.jsm
expiry.keyExpiresSoon=Khoá %1$S của bạn sẽ hết hạn trong %2$S ngà y.\n\nChúng tôi khuyên bạn tạo một cặp khoá mới và cấu hình tà i khoản tương ứng để sỠdụng chúng.
expiry.keysExpireSoon=Những khoá sau của bạn sẽ hết hạn trong %1$S ngà y:\n%2$S. Chúng tôi khuyên bạn tạo khoá mới và cấu hình các tà i khoản tương ứng để sỠdụng chúng.
enigmail/lang/vi/help/ 0000775 0000000 0000000 00000000000 12667016244 0015142 5 ustar 00root root 0000000 0000000 enigmail/lang/vi/help/compose.html 0000664 0000000 0000000 00000012143 12667016244 0017476 0 ustar 00root root 0000000 0000000
Trợ giúp Enigmail: Soạn Tin nhắn
Trợ giúp Enigmail
SỠdụng Enigmail trong khi soạn tin nhắn
- Trình đơn Enigmail trong cá»a sổ Thư/Soạn
-
- Ký tên tin nhắn
- Báºt/Tắt khi gá»i thư được ký. Ngưá»i dùng được thông báo, nếu không ký tên được.
- Mã hóa tin nhắn
-
Báºt/Tắt mã hóa cho tất cả ngưá»i nháºn trước khi gá»i. Ngưá»i dùng được thông báo, nếu không mã hóa được.
Nếu Hiển thị lá»±a chá»n khi cần thiết được đặt trong Tùy thÃch -> thẻ Chá»n Khóa, má»™t danh sách các khóa sẽ báºt lên nếu có địa chỉ trong danh sách những ngưá»i nháºn cho tin nhắn cho ngưá»i mà bạn không có khóa công.
Nếu Không bao giá» hiển thị thoại lá»±a chá»n khóa OpenPGP được đặt trong Tùy thÃch -> thẻ Chá»n Khóa, và có địa chỉ trong danh sách những ngưá»i nháºn cho tin nhắn cho ngưá»i mà bạn không có khóa công, tin nhắn sẽ được gá»i mà không được mã hóa.
- SỠdụng PGP/MIME cho tin nhắn nà y
-
Báºt/Tắt việc sá» dụng PGP/MIME cho tin nhắn nà y.
Nếu bạn biết (những) ngưá»i nháºn có thể Ä‘á»c thư bằng cách dùng định dạng PGP/MIME thì bạn nên sá» dụng nó.
TÃnh năng nà y phụ thuá»™c và o các thiết láºp trong Tùy thÃch -> thẻ PGP/MIME Ä‘ang được đặt để Cho phép sá» dụng PGP/MIME hoặc Luôn luôn sá» dụng PGP/MIME.
- Tùy chá»n mặc định cá»§a soạn tin
-
- Các Tùy chá»n cá»§a Ký tên/Mã hóa...: lối tắt đến Thiết láºp Tà i khoản -> Các tùy chá»n cá»§a OpenPGP.
- Các tùy chá»n cá»§a Gá»i tin...: lối tắt đến Tùy thÃch -> thẻ Gá»i tin.
- Các tùy chá»n cá»§a chá»n khóa...: lối tắt đến Tùy thÃch -> thẻ Chá»n Khóa.
- Các tùy chá»n cá»§a PGP/MIME...: lối tắt đến Tùy thÃch -> thẻ PGP/MIME.
- Hủy bước mã hóa
-
Nếu bị trục trặc khi tháºt sá»± gá»i thư, chẳng hạn như máy chá»§ POP không chấp nháºn yêu cầu, Enigmail sẽ không biết gì vá» nó, và tin nhắn được mã hóa sẽ tiếp tục được hiển thị trong cá»a sổ Soạn tin. Chá»n mục trình đơn nà y sẽ há»§y bước mã hóa/ký tên, rồi trở ngược lại văn bản ban đầu cá»§a cá»a sổ Soạn tin.
Tùy chá»n nà y là má»™t sá»a chữa tạm thá»i nhưng cÅ©ng có thể được sá» dụng để giải mã các văn bản trÃch dẫn khi trả lá»i các tin nhắn được mã hóa. Enigmail sẽ tá»± động giải mã tin trÃch dẫn, nhưng nếu không là m được vì lý do nà o đó thì bạn có thể sá» dụng mục trình đơn nà y để ép buá»™c nó.
- Chèn khóa công
- Chèn khối giáp khóa công ASCII ở vị trà con trá» hiện tại trong cá»a sổ Soạn tin. Bạn sẽ được há»i nhắc địa chỉ thư Ä‘iện tá» cá»§a (các) khóa để được chèn và o. Các khóa được chèn theo cách nà y sẽ tá»± động được Enigmai nháºn diện ở đầu tiếp nháºn. Sau khi chèn khóa, bạn vẫn có thể chá»n để ký tên/mã hóa thưl khi cần thiết. Ngoà i ra, đừng chèn nhiá»u hÆ¡n má»™t khối khóa trong má»™t tin nhắn, chỉ cần Ä‘iá»n rõ nhiá»u địa chỉ thư Ä‘iện tá», phân biệt bằng dấu phẩy hoặc dấu cách, khi được nhắc.
- Xóa cụm từ máºt khẩu đưá»c lưu
- Xóa cụm từ máºt khẩu được nhá»› tạm. Hữu Ãch nếu bạn có nhiá»u cụm từ máºt khẩu.
- Trợ giúp
- Hiển thị tin tức Trợ giúp từ trang web (trang nà y).
Trợ giúp thêm nữa có sẵn trên Trang web Trợ giúp Enigmail
enigmail/lang/vi/help/editRcptRule.html 0000664 0000000 0000000 00000014137 12667016244 0020444 0 ustar 00root root 0000000 0000000
Trợ giúp Enigmail: Sá»a đổi Quy Tắc cá»§a OpenPGP
Trợ giúp Enigmail
Sá» dụng Chỉnh sá»a Quy tắc cá»§a Enigmail: Sá»a đổi Quy Tắc cá»§a OpenPGP
Trong Chỉnh sá»a Quy tắc, bạn có thể Ä‘iá»n rõ các mặc định cho má»—i ngưá»i nháºn để báºt mã hóa lên, ký tên và PGP/MIME, và để xác định (các) khóa OpenPGP nà o để sá» dụng. Trong há»™p thoại nà y, bạn có thể Ä‘iá»n rõ các quy tắc cho má»™t ngưá»i nháºn duy nhất, và cho má»™t nhóm ngưá»i nháºn vá»›i các thuá»™c tÃnh rất giống nhau.
- Äặt Quy tắc cá»§a OpenPGP cho
- Chứa các địa chỉ email cá»§a ngưá»i nháºn (không có tên, tức là chỉ cần má»™t địa chỉ như somebody@email.domain). Bạn có thể Ä‘iá»n rõ má»™t số địa chỉ thư Ä‘iện tá», phân biệt bằng dấu cách. Các địa chỉ Ä‘iá»n rõ ở đây có thể chỉ gồm có phần miá»n để thư gá»i đến bất kỳ địa chỉ nà o tại miá»n đó sẽ được so sánh, và dụn như @email.domain sẽ cho phép so sánh vá»›i body@email.domain, somebody@email.domain, anybody@email.domain, v.v.
- Ãp dụng quy tắc nếu ngưá»i nháºn ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- ChÃnh xác là : vá»›i thiết láºp nà y, các quy tắc sẽ chỉ kÃch hoạt ở những thư Ä‘iện tỠđến body@email.domain (chÃnh xác, không so sánh chữ hoa/thưá»ng).
- Chứa : vá»›i thiết láºp nà y, bất kỳ địa chỉ thư Ä‘iện tá» nà o có chứa chuá»—i được so sánh, và dụ như anybody@email.domain hoặc body@email.domain.net
- Bắt đầu vá»›i: vá»›i thiết láºp nà y, bất kỳ địa chỉ thư Ä‘iện tá» nà o bắt đầu vá»›i chuá»—i được so sánh, và dụ như body@email.domain.net, body@email.domain-name.com.
- Kết thúc bằng: vá»›i thiết láºp nà y, bất kỳ địa chỉ thư Ä‘iện tá» nà o kết thúc vá»›i chuá»—i được so sánh, và dụ như anybody@email.domain , somebody@email.domain .
- Tiếp tục với quy tắc kế tiếp cho địa chỉ trùng hợp
- Báºt chức năng nà y lên sẽ cho phép bạn xác định má»™t quy tắc nhưng không phải Ä‘iá»n rõ má»™t KeyID trong trưá»ng Sá» dụng những khóa OpenPGP sau đây:, để địa chỉ thư Ä‘iện tỠđược dùng để kiếm má»™t chiếc khóa ở thá»i Ä‘iểm gá»i. Ngoà i ra, các quy tắc khác nữa cho cùng (các) địa chỉ cÅ©ng sẽ được xá» lý.
- Äừng kiểm soát thêm quy tắc nữa cho địa chỉ trùng hợp
- Báºt chức năng nà y lên ngưng xá» lý bất kỳ quy tắc nà o khác cho (các) địa chỉ trùng hợp nếu quy tắc nà y trùng hợp; nghÄ©a là xá» lý quy tắc tiếp tục vá»›i ngưá»i nháºn kế tiếp.
- SỠdụng các khóa OpenPGP sau đây:
- Sá» dụng nút Chá»n (các) Khóa.. để chá»n các khóa cá»§a ngưá»i nháºn dùng để mã hóa. Như hà nh động bên trên, không có thêm quy tắc nà o nữa cho (các) địa chỉ trùng hợp được xá» lý.
- Mặc định cho Ký tên
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Không bao giá»: tắt ký tên, ngay cả khi nó đã được báºt lên trong cá»a sổ viết tin nhắn (baÍc bỏ các giá trị khác)
- Có, nếu được chá»n từ trong Soạn Tin nhắn: để việc ký tên như đã được Ä‘iá»n rõ trong cá»a sổ soạn tin nhắn
- Luôn luôn: báºt ký tên lên, ngay cả nếu nó đã không được báºt lên trong cá»a sổ soạn tin nhắn
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Mã hóa
- Báºt hoặc tắt việc mã hóa tin nhắn. Các thiết láºp cho phép và ý nghÄ©a cá»§a chúng cÅ©ng giống như cho việc ký tên tin nhắn.
- PGP/MIME
- Báºt hoặc tắt việc sá» dụng PGP/MIME (RFC 3156) để mã hóa tin nhắn. Nếu PGP/MIME bị tắt, các tin nhắn được mã hoá bằng cách dùng "PGP trá»±c tiếp". Các giá trị được cho phép và ý nghÄ©a cá»§a chúng cÅ©ng giống như cho việc ký tên tin nhắn.
Các quy tắc được xá» lý theo thứ tá»± hiển thị trong danh sách trong Chỉnh sá»a Quy tắc cá»§a OpenPGP. Bất cứ khi nà o má»™t quy tắc trùng hợp vá»›i má»™t ngưá»i nháºn và chứa má»™t ID khóa OpenPGP, ngoà i việc sá» dụng ID khóa được Ä‘iá»n rõ, ngưá»i nháºn không được lưu ý đến nữa khi tiếp tục xá» lý các quy tắc khác.
Trợ Giúp thêm nữa có sẵn trên trang Thiết láºp Từng-Ngưá»i nháºn cá»§a Enigmail
enigmail/lang/vi/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020015 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/vi/help/messenger.html 0000664 0000000 0000000 00000012164 12667016244 0020024 0 ustar 00root root 0000000 0000000
Trợ giúp Enigmail: Äá»c tin nhắn
Trợ giúp Enigmail
Sá» dụng Enigmail khi Ä‘á»c tin nhắn
- Nút Giải mã trong cá»a sổ Thư chÃnh
- Nút nà y có thể được dùng cho nhiá»u mục Ä‘Ãch: giải mã, xác nháºn, hoặc nháºp các khóa công và o. Thông thưá»ng thì việc giải mã/xác nháºn xảy ra tá»± động, mặc dù Ä‘iá»u nà y có thể bị tắt qua má»™t tùy thÃch. Tuy nhiên, nếu Ä‘iá»u nà y không là m được thì má»™t thông báo lá»—i ngắn sẽ thưá»ng xuất hiện trong dòng trạng thái cá»§a Enigmail. Nếu bạn nhấn nút Giải mã, bạn sẽ có thể thấy má»™t thông báo lá»—i chi tiết hÆ¡n, kể luôn kết qá»§a cá»§a lệnh GnuPG.
- Các biểu tượng cá»§a Bút và Khóa trong hiển thị Äầu đỠTin nhắn
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- Tin tức Bảo máºt cá»§a OpenPGP: cho phép bạn xem trạng thái kết xuất từ GnuPG cho tin nhắn.
- Chép tin tức Bảo máºt cá»§a OpenPGP: chép tình trạng kết xuất từ GnuPG và o bá»™ nhá»› tạm; để dán và o má»™t tin nhắn trả lá»i, v.v.
- Xem ID Hình cá»§a OpenPGP: cho phép bạn xem các ID Hình cá»§a ngưá»i gá»i tin nhắn, nếu há» có má»™t hình ảnh được nhúng và o Khóa Công cá»§a há». ( Tùy chá»n nà y sẽ chỉ được báºt lên nếu má»™t ID Hình có sẵn trong khóa cá»§a há».)
- Tin tức Bảo máºt cá»§a S/MIME: cho phép bạn xem tin tức Bảo máºt cá»§a S/MIME cho tin nhắn.
Nếu bạn không có tùy chá»n-máy phục vụ khóa tá»± động-lấy-khóa đặt trong táºp tin gpg.conf cá»§a bạn và bạn Ä‘á»c tin nhắn mà đã được ký tên hoặc mã hóa, bạn sẽ thấy má»™t biểu tượng Bút trong khu vá»±c hiển thị đầu đỠvá»›i má»™t Dấu Há»itrên đó, dòng trạng thái Enigmail trong khu vá»±c đầu đỠsẽ nói là Má»™t phần tin nhắn đã được ký; nhấn biểu tượng bút để có chi tiết và tin nhắn trong Cá»a sổ tin nhắn sẽ hiển thị tất cả các OpenPGP chỉ số khối tin và ngăn chặn các chữ ký.
Bạn cÅ©ng có thể thấy Ä‘iá»u nà y nếu bạn có tùy chá»n-máy phục vụ khóa tá»± động-lấy-khóa đặt trong táºp tin gpg.conf cá»§a bạn và khoá OpenPGP không có sẵn trên máy phục vụ khóa mặc định.
Nhấp và o biểu tượng Bút và dấu Há»i sẽ Ä‘em đến má»™t cá»a sổ cho biết rằng khóa không có sẵn trong vòng khoá cá»§a bạn. Nhấn OK sẽ Ä‘em đến má»™t cá»a sổ khác vá»›i má»™t danh sách các máy phục vụ khóa để từ đó bạn có thể chá»n để tải xuống khoá công cá»§a ngưá»i gá»i.
Äể cấu hình danh sách các máy phục vụ khóa mà bạn muốn sá» dụng, hãy và o thẻ Enigmail -> Tùy thÃch -> Căn bản và nháºp địa chỉ máy phục vụ khóa và o há»™p (Các) máy phục vụ khóa:, phân biệt bằng dấu phẩy. Máy phục vụ khóa đầu tiên trong danh sách sẽ được dùng là m mặc định.
- Mở các Ä‘Ãnh kèm được mã hóa / nháºp các khóa OpenPGP Ä‘Ãnh kèm
- Các Ä‘Ãnh kèm có tên là *.pgp, *.asc và *.gpg được nháºn diện là các Ä‘Ãnh kèm có thể được đặc biệt xá» lý bởi Enigmail. Nhấn phải và o má»™t Ä‘Ãnh kèm như váºy cho phép hai mục trình đơn đặc biệt trong trình đơn ngữ cảnh: Giải mã và Mở ra và Giải mã và Lưu lại. Sá» dụng hai mục trình đơn nà y nếu bạn muốn Enigmail giải mã má»™t Ä‘Ãnh kèm trước khi mở hoặc lưu nó. Nếu má»™t Ä‘Ãnh kèm được nháºn diện là má»™t táºp tin khóa OpenPGP, bạn được má»i để nháºp các khóa và o những vòng khóa cá»§a bạn.
Trợ Giúp thêm nữa có sẵn trên Trang web Trợ giúp của Enigmail
enigmail/lang/vi/help/rulesEditor.html 0000664 0000000 0000000 00000007434 12667016244 0020341 0 ustar 00root root 0000000 0000000
Trợ giúp Enigmail: Chỉnh sá»a Quy tắc
Trợ giúp Enigmail
Sá» dụng Chỉnh sá»a Quy tắc cá»§a Enigmail
Trong Chỉnh sá»a Quy tắc, bạn có thể Ä‘iá»n rõ các mặc định cho má»—i ngưá»i nháºn để báºt mã hóa lên, ký tên và PGP/MIME, và để xác định (các) khóa OpenPGP nà o để sá» dụng. Má»—i quy tắc bao gồm 5 lÄ©nh vá»±c và được biểu hiện trên má»™t dòng đơn:
- Thư Ä‘iện tá»
- (Các) thư Ä‘iện tá» từ trưá»ng To:, Cc: và Bcc: để so sánh. Việc trùng hợp dá»±a và o chuá»—i phụ (Những chi tiết khác có thể được tìm thấy trong há»™p thoại Sá»a đổi Quy Tắc)
- (Các) khóa OpenPGP
- má»™t danh sách cá»§a các ID khóa OpenPGP để sá» dụng cho ngưá»i nháºn
- Ký tên
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Không bao giá»: tắt ký tên, ngay cả khi nó đã được báºt lên trong cá»a sổ viết tin nhắn (baÍc bỏ các giá trị khác)
- Có thể: để việc ký tên như đã được Ä‘iá»n rõ trong cá»a sổ soạn tin nhắn
- Luôn luôn: báºt ký tên lên, ngay cả nếu nó đã không được báºt lên trong cá»a sổ soạn tin nhắn
Các thiết láºp ký tên nà y được áp dụng cho tất cả các quy tắc trùng hợp. Nếu má»™t trong những quy tắc tắt việc ký tên thì tin nhắn sẽ không được ký, ngay cả những quy tắc khác có Ä‘iá»n rõ là Luôn luôn.
- Mã hóa
- báºt hoặc tắt việc mã hóa tin nhắn. Các thiết láºp cho phép và ý nghÄ©a cá»§a chúng cÅ©ng giống như cho việc ký tên tin nhắn.
- PGP/MIME
- Báºt hoặc tắt việc sá» dụng PGP/MIME (RFC 3156) để mã hóa tin nhắn. Nếu PGP/MIME bị tắt, các tin nhắn được mã hoá bằng cách dùng "PGP trá»±c tiếp". Các giá trị được cho phép và ý nghÄ©a cá»§a chúng cÅ©ng giống như cho việc ký tên tin nhắn.
Các quy tắc được xá» lý theo thứ tá»± hiển thị trong danh sách. Bất cứ khi nà o má»™t quy tắc trùng hợp vá»›i má»™t ngưá»i nháºn và chứa má»™t ID khóa OpenPGP, ngoà i việc sá» dụng ID khóa được Ä‘iá»n rõ, ngưá»i nháºn không được lưu ý đến nữa khi tiếp tục xá» lý các quy tắc khác.
Lưu ý: Chỉnh sá»a quy tắc chưa được hoà n tất. Có thể viết thêm má»™t số quy tắc tiên tiến hÆ¡n bằng cách trá»±c tiếp chỉnh sá»a táºp tin quy tắc (các quy tắc nà y sau đó không nên được chỉnh sá»a nữa trong chỉnh sá»a quy tắc). Tin tức thêm nữa để trá»±c tiếp chỉnh sá»a táºp tin có sẵn trên Trang chá»§ Enigmail
Giúp hơn nữa có sẵn trên Enigmail Help web page
enigmail/lang/vi/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020476 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/zh-CN/ 0000775 0000000 0000000 00000000000 12667016244 0014513 5 ustar 00root root 0000000 0000000 enigmail/lang/zh-CN/am-enigprefs.properties 0000664 0000000 0000000 00000000117 12667016244 0021205 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP 安全
enigmail/lang/zh-CN/enigmail.dtd 0000664 0000000 0000000 00000131710 12667016244 0017000 0 ustar 00root root 0000000 0000000
OpenPGP 安全)">
注æ„:密钥生æˆè¿‡ç¨‹å¯èƒ½ä¼šæŒç»æ•°åˆ†é’Ÿã€‚生æˆå¯†é’¥çš„过程ä¸è¯·ä¸è¦é€€å‡ºæœ¬ç¨‹åºã€‚åœ¨æ¤æœŸé—´æµè§ˆç½‘页或者执行能产生大é‡ç£ç›˜æ“作的程åºå°†å¸®åŠ©å¡«å……â€œéšæœºæ•°æ± â€å¹¶èƒ½åŠ é€Ÿå¯†é’¥åˆ›å»ºè¿›ç¨‹ã€‚å¯†é’¥åˆ›å»ºç»“æŸæ—¶æ‚¨å°†æ”¶åˆ°å®Œæˆé€šçŸ¥ã€‚">
' æ˜¯æ— æ•ˆçš„">
注æ„:密钥生æˆè¿‡ç¨‹å¯èƒ½ä¼šæŒç»æ•°åˆ†é’Ÿã€‚ 生æˆå¯†é’¥çš„过程ä¸è¯·ä¸è¦é€€å‡ºæœ¬ç¨‹åºã€‚密钥生æˆç»“æŸæ—¶æ‚¨å°†æ”¶åˆ°å®Œæˆé€šçŸ¥ã€‚">
注æ„: Enigmail å°†æ€»æ˜¯éªŒè¯æ¯ä¸ªå¸å·æˆ–èº«ä»½æ ‡è¯†é‚®ä»¶çš„æ•° å—ç¾åï¼Œè€Œæ— è®ºå®ƒæ˜¯å¦è¢«å…许或ä¸">
å…¬é’¥æ˜¯ç»™å…¶ä»–äººç”¨ä»¥å‘æ‚¨å‘é€åŠ å¯†é‚®ä»¶çš„ä¸œè¥¿ã€‚æ‚¨å¯ä»¥å°†å®ƒåˆ†å‘给任何人。">
ç§é’¥æ˜¯ä»…供您自己使用的用æ¥è§£å¯†è¿™äº›é‚®ä»¶ï¼Œä»¥åŠç¾åè¦å‘出的邮件时使用。
您应该ä¸å°†å®ƒæ³„露给任何人。">
ç§é’¥æ˜¯ä»…供您自己使用的用æ¥è§£å¯†è¿™äº›é‚®ä»¶ï¼Œä»¥åŠç¾åè¦å‘出的邮件时使用。
您应该ä¸å°†å®ƒæ³„露给任何人。
为了您的ç§é’¥çš„安全,您需è¦åœ¨æŽ¥ä¸‹æ¥çš„ä¸¤ä¸ªå¯¹è¯æ¡†ä¸è¾“入一个å£ä»¤ã€‚">
å£ä»¤æ˜¯ç”¨æ¥ä¿æŠ¤æ‚¨çš„ç§é’¥çš„密ç 。它用以é¿å…您的ç§é’¥è¢«æ»¥ç”¨ã€‚">
䏿ލè使用元音 (e.g. ä, é, ñ) 和特定è¯è¨€çš„å—符。">
您将需è¦ä¸ºæ¤è¾“入您的密ç 。">
使用 Enigmail 首选项ä¸çš„备份å‘导,从您的旧电脑导出您的数æ®ï¼š
使用本å‘导将您的数æ®å¯¼å…¥æ‚¨çš„æ–°ç”µè„‘:
">
感谢您使用 Enigmail。">
使用本å‘导从您的旧电脑导出您的数æ®ï¼š
使用本å‘导将您的数æ®å¯¼å…¥æ‚¨çš„æ–°ç”µè„‘:
">
enigmail/lang/zh-CN/enigmail.properties 0000664 0000000 0000000 00000077143 12667016244 0020432 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail è¦å‘Š
enigConfirm=Enigmail 确认
enigError=Enigmail 错误
enigPrompt=Enigmail æç¤º
dlgYes=是
dlgNo=å¦
dlgKeepSetting=è®°ä½è®¾ç½®ä¸‹æ¬¡ä¸å†è¯¢é—®
dlgNoPrompt=ä¸å†æ˜¾ç¤ºæ¤å¯¹è¯æ¡†
dlg.button.delete=åˆ é™¤(&D)
dlg.button.cancel=å–æ¶ˆ(&C)
dlg.button.close=å…³é—(&C)
dlg.button.continue=ç»§ç»(&T)
dlg.button.skip=忽略(&S)
dlg.button.overwrite=覆盖(&O)
dlg.button.view=查看(&V)
dlg.button.retry=回å¤(&R)
dlg.button.ignore=忽略(&I)
repeatPrefix=\n\næ¤è¦å‘Šå°†ä¼šé‡å¤å‡ºçް %S
repeatSuffixSingular=次
repeatSuffixPlural=或更多次
noRepeat=\n\n在您å‡çº§ Enigmail 之å‰ï¼Œæ¤è¦å‘Šå°†ä¸å†å‡ºçŽ°ã€‚
pgpNotSupported=æ‚¨ä¼¼ä¹Žåœ¨åŒæ—¶ä½¿ç”¨ Enigmail å’Œ PGP 6.x \n\né—æ†¾çš„æ˜¯ï¼ŒPGP 6.x å˜åœ¨ä¸€äº›é—®é¢˜ï¼Œè‡´ä½¿ Enigmail æ— æ³•æ£å¸¸å·¥ä½œã€‚å› æ¤ï¼Œ Enigmail ä¸å†æ”¯æŒ PGP 6.x;请用 GnuPG (GPG)æ¥ä»£æ›¿ã€‚\n\n如果您在转移到 GnuPG 上需è¦å¸®åŠ©ï¼Œè¯·æŸ¥è¯¢ Enigmail ä¸»é¡µä¸Šçš„å¸®åŠ©ç« èŠ‚ã€‚
initErr.howToFixIt=为了使用 Enigmail,GnuPG 是必须的。如果您还未安装 GnuPG,最简å•的方法是使用斜线的“安装å‘å¯¼â€æŒ‰é’®ã€‚
initErr.setupWizard.button=安装å‘导(&S)
passphraseCleared=å£ä»¤å·²è¢«æ¸…除。
cannotClearPassphrase=æ‚¨åœ¨ä½¿ç”¨éžæ ‡å‡†çš„工具 (例如 gnome-keyring) 进行密钥处ç†ã€‚å› æ¤ä¸èƒ½åœ¨ Enigmail 内部清除å£ä»¤ã€‚
noPhotoAvailable=æ— å¯ç”¨ç…§ç‰‡
debugLog.title=Enigmail 调试日志
error.photoPathNotReadable=照片路径 '%S' ä¸å¯è¯»
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=Enigmail 的新版本在首选项和选项的处ç†ä¸Šæœ‰æ˜¾è‘—çš„å˜åŒ–。我们在å°è¯•è½¬ç§»æ—§ç‰ˆæœ¬çš„è®¾ç½®åˆ°æ¤æ–°ç‰ˆæœ¬ã€‚但我们ä¸èƒ½è‡ªåŠ¨å®Œæˆæ‰€æœ‰æƒ…况。请仔细检查新产生的首选项和选项。
enigmailCommon.checkPreferences=请检查首选项 ...
usingVersion=当å‰è¿è¡Œçš„ Enigmail 版本 %S
usingAgent=使用 %S 工具的 %S 程åºè¿›è¡ŒåŠ å¯†æˆ–è§£å¯†
agentError=错误: æ— æ³•è®¿é—® Enigmail æœåŠ¡ï¼
accessError=访问 Enigmail æœåŠ¡æ—¶å‘生错误
onlyGPG=密钥创建功能仅支æŒä½¿ç”¨ GnuPG (䏿”¯æŒ PGP)ï¼
keygenComplete=密钥创建结æŸï¼ è¯¥å¯†é’¥å°†ç”¨äºŽæ ‡è¯† <%S> 的数å—ç¾å。
revokeCertRecommended=我们强烈推è为您的密钥创将一个撤销è¯ä¹¦ã€‚当您的ç§é’¥ä¸¢å¤±æˆ–被窃å–的时候,您å¯ä»¥é€šè¿‡æ¤è¯ä¹¦å°†æ‚¨çš„密钥失效。您希望立å³åˆ›å»ºä¸€ä¸ªè¿™æ ·çš„æ’¤é”€è¯ä¹¦ä¹ˆï¼Ÿ
keyMan.button.generateCert=生æˆè¯ä¹¦(&G)
genCompleteNoSign=密钥创建结æŸï¼
genGoing=密钥创建æ£åœ¨æ‰§è¡Œä¸ï¼
passNoMatch=å£ä»¤ä¸ç¬¦ï¼›è¯·é‡æ–°è¾“å…¥
passCheckBox=如果ä¸ä¸ºå¯†é’¥è®¾ç½®å£ä»¤è¯·é€‰æ‹©æ¤é¡¹
passUserName=è¯·ä¸ºæ¤æ ‡è¯†è®¾ç½®ç”¨æˆ·å
keygen.passCharProblem=您在您的å£ä»¤ä¸ä½¿ç”¨äº†ç‰¹æ®Šå—ç¬¦ã€‚é—æ†¾çš„æ˜¯è¿™å¯èƒ½å¯¼è‡´å…¶ä»–应用程åºå‡ºçŽ°é—®é¢˜ã€‚æˆ‘ä»¬æŽ¨èæ‚¨é€‰æ‹©ä¸€ä¸ªåªåŒ…å«ä¸‹åˆ—å—符的å£ä»¤ï¼ša-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=å› ä¸ºæŠ€æœ¯åŽŸå› ï¼Œæ‚¨çš„å£ä»¤å¯èƒ½ä¸èƒ½ä»¥ç©ºæ ¼å—符开头或结尾。
changePassFailed=更改å£ä»¤å¤±è´¥ã€‚
keyConfirm=为“%Sâ€åˆ›å»ºå…¬é’¥å’Œç§é’¥ä¹ˆï¼Ÿ
keyMan.button.generateKey=生æˆå¯†é’¥(&G)
keyAbort=䏿¢å¯†é’¥ç”Ÿæˆï¼Ÿ
keyMan.button.generateKeyAbort=放弃密钥生æˆ(&A)
keyMan.button.generateKeyContinue=ç»§ç»å¯†é’¥ç”Ÿæˆ(&C)
expiryTooLong=您ä¸èƒ½åˆ›å»ºæœ‰æ•ˆæœŸè¶…过 100 年的密钥。
expiryTooLongShorter=您ä¸èƒ½åˆ›å»ºæœ‰æ•ˆæœŸè¶…过 90 年的密钥。
expiryTooShort=您的密钥必须至少在一天内有效。
dsaSizeLimit=DSA ç¾å的密钥被é™åˆ¶ä¸º 3072 ä½ã€‚密钥大å°å°†è¢«ç›¸åº”å‡å°‘。
keyGenFailed=密钥生æˆå¤±è´¥ï¼Œè¯·æ£€æŸ¥ Enigmail 终端 (èœå• 安全 > 调试 Enigmail) 了解详细信æ¯ã€‚
setKeyExpirationDateFailed=过期时间ä¸èƒ½æ›´æ”¹
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail 安全信æ¯\n\n
enigHeader=Enigmail :
enigContentNote=Enigmail : *本邮件的附件未被数å—ç¾åæˆ–åŠ å¯†*\n\n
possiblyPgpMime=本邮件å¯èƒ½ä½¿ç”¨ PGP/MIME æ–¹å¼åŠ å¯†æˆ–æ•°å—ç¾åï¼›ç‚¹å‡»â€œè§£å¯†â€æŒ‰é’®ä»¥éªŒè¯
noDecrypted=æ— éœ€è¦ä¿å˜çš„已解密邮件ï¼\n请使用“文件â€èœå•ä¸çš„“ä¿å˜â€å‘½ä»¤
noMessage=没有邮件需è¦ä¿å˜ï¼
useButton=请点击解密按钮æ¥è§£å¯†é‚®ä»¶
saveHeader=Enigmail : ä¿å˜å·²è§£å¯†é‚®ä»¶
saveAttachmentHeader=Enigmail : ä¿å˜å·²è§£å¯†é™„ä»¶
noTempDir=æ— æ³•å†™å…¥ä¸´æ—¶ç›®å½•\n请设置有效的环境å˜é‡ TEMP
attachmentPgpKey=æ‚¨è¦æ‰“开的附件“%Sâ€æ˜¯ä¸€ä¸ª OpenPGP 密钥文件。\n\n点击“是â€ä»¥å¯¼å…¥è¯¥é™„ä»¶ä¸çš„密钥或者点击“å¦â€ä»¥ä¾¿åœ¨æµè§ˆå™¨ä¸æŸ¥çœ‹æ–‡ä»¶å†…容
beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* *********
endPgpPart=********** *END ENCRYPTED or SIGNED PART* **********
notePartEncrypted=Enigmail : *该邮件的æŸäº›éƒ¨åˆ†â€œæœªç»â€æ•°å—ç¾åæˆ–åŠ å¯†*
noteCutMessage=Enigmail: *找到多个消æ¯å— -- 解密/验è¯ä¸æ¢*
decryptOkNoSig=è¦å‘Š\n\n解密æˆåŠŸï¼Œä½†æ— æ³•éªŒè¯æ•°å—ç¾åçš„æ£ç¡®æ€§
msgOvl.button.contAnyway=åšæŒç»§ç»(&C)
signature.verifiedOK=附件 %S çš„ç¾åéªŒè¯æˆåŠŸ
signature.verifyFailed=附件 %S çš„ç¾å未能验è¯
attachment.noMatchToSignature=附件 '%S' ä¸åŒ¹é…ç¾å文件
attachment.noMatchFromSignature=ç¾å文件 '%S' ä¸åŒ¹é…附件
fixBrokenExchangeMsg.failed=ä¿®å¤æ¶ˆæ¯æœªæˆåŠŸã€‚
keysToExport=选择è¦åµŒå…¥çš„ OpenPGP 密钥
keysToUse=选择用于 %S 的 OpenPGP 密钥
pubKey=%S 的公钥\n
windowLocked=编辑窗å£å·²é”定;å‘é€å–消
sendUnencrypted=åˆå§‹åŒ– Enigmail 失败。\nå‘逿œªåŠ å¯†çš„é‚®ä»¶å—?
composeSpecifyEmail=请指定您è¦ä½¿ç”¨çš„主è¦é‚®ä»¶åœ°å€ï¼Œè¯¥åœ°å€å°†è¢«ç”¨äºŽä¸ºå¾…å‘邮件选择数å—ç¾å密钥。\n å¦‚æžœä¿æŒæ¤é¡¹ç©ºç™½ï¼Œé‚®ä»¶çš„ FROM 地å€å°†è¢«ç”¨äºŽé€‰æ‹©æ•°å—ç¾å密钥。
sendingHiddenRcpt=æ¤é‚®ä»¶æœ‰ BCC(密é€ï¼‰æ”¶ä»¶äººã€‚å¦‚æžœæ¤æ¶ˆæ¯å·²åŠ å¯†ï¼Œå®ƒå¯ä»¥éšè—坆逿”¶ä»¶äººï¼Œä½†ä¸€äº›äº§å“(例如 PGP)的用户将ä¸èƒ½è§£å¯†è¯¥é‚®ä»¶ã€‚有鉴于æ¤ï¼Œæˆ‘们建议ä¸è¦åŒæ—¶ä½¿ç”¨å¯†é€ä¸Žé‚®ä»¶åŠ å¯†ã€‚
sendWithHiddenBcc=éšè—坆逿”¶ä»¶äºº
sendWithShownBcc=æ£å¸¸åР坆
sendingNews=åŠ å¯†çš„å‘逿“ä½œå·²å–æ¶ˆã€‚\n\næ¤é‚®ä»¶åŒ…嫿–°é—»ç»„æ”¶ä»¶äººï¼Œå› æ¤ä¸èƒ½è¢«åŠ å¯†ã€‚è¯·é‡æ–°å‘逿œªåŠ å¯†çš„å‰¯æœ¬ã€‚
sendToNewsWarning=è¦å‘Šï¼šæ‚¨å³å°†å‘é€ä¸€å°åŠ å¯†çš„é‚®ä»¶åˆ°ä¸€ä¸ªæ–°é—»ç»„ã€‚\n\n仅在该组的所有æˆå‘˜éƒ½èƒ½è§£å¯†è¯¥é‚®ä»¶æ—¶æ‰é¼“励这么åšï¼Œå› ä¸ºè¿™æ‰æœ‰æ„义。请仅在您明确知é“他们能åšåˆ°è¿™ç‚¹çš„æƒ…况下å‘逿¤é‚®ä»¶ã€‚\n\nç»§ç»å—?
hasHTML=HTML 邮件è¦å‘Š:\næ¤é‚®ä»¶å¯èƒ½å«æœ‰ HTML,这有å¯èƒ½å¯¼è‡´æ•°å—ç¾å/åŠ å¯†å¤±è´¥ã€‚ä¸ºé˜²æ¢å†æ¬¡å‡ºçްæ¤ç±»æç¤ºï¼Œæ‚¨åº”该在按下 SHIFT é”®çš„åŒæ—¶ç‚¹å‡» 撰写/å›žå¤ æŒ‰é’®ä»¥ä¾¿å‘逿•°å—ç¾å邮件。\n如果您选择了默认情况下数å—ç¾åæ‰€æœ‰é‚®ä»¶ï¼Œé‚£ä¹ˆæ‚¨åº”è¯¥å–æ¶ˆé€‰é¡¹å¯¹è¯æ¡†ä¸çš„“撰写 HTML é‚®ä»¶â€æ¥æ°¸ä¹…关闿¤é‚®ä»¶æˆ·çš„ HTML 邮件功能。
strippingHTML=å°†é‚®ä»¶è½¬æ¢æˆçº¯æ–‡æœ¬è¿›è¡Œæ•°å—ç¾å/åŠ å¯†ä¼šå¯¼è‡´ HTML 邮件ä¸åŒ…å«çš„æ ¼å¼ä¿¡æ¯ä¸¢å¤±ã€‚æ‚¨å¸Œæœ›ç»§ç»æ‰§è¡Œå—?
msgCompose.button.sendAnyway=åšæŒå‘é€é‚®ä»¶(&S)
attachWarning=本邮件的附件没有本地副本,ä¸èƒ½è¢«åŠ å¯†ã€‚è¦åР坆æ¤ç±»é™„件,您必须将其ä¿å˜è‡³æœ¬åœ°ç¡¬ç›˜ç„¶åŽé‡æ–°å¢žåŠ å…¶ä¸ºé™„ä»¶ã€‚æ‚¨ä»è¦ç»§ç»å—?
quotedPrintableWarn=您选择了在å‘é€é‚®ä»¶æ—¶è¿›è¡Œâ€œquoted-printableâ€ç¼–ç 。这å¯èƒ½ä¼šå¯¼è‡´æ‚¨çš„é‚®ä»¶æ— æ³•è¢«æ£ç¡®è§£å¯†æˆ–验è¯ã€‚\n 您希望立å³å…³é—“å‘é€â€œquoted-printableâ€é‚®ä»¶â€é€‰é¡¹å—?
minimalLineWrapping=您已ç»è®¾ç½®äº†åœ¨ %S 个å—符处自动æ¢è¡Œã€‚æ¤å€¼å¿…é¡»ä¸å°äºŽ 68 以ä¿è¯æ£ç¡®åŠ å¯†æˆ–æ•°å—ç¾å。\n您希望立å³å°†è‡ªåЍæ¢è¡Œè®¾ç½®ä¸º 68 个å—符å—?
warning=è¦å‘Š
signIconClicked=æ‚¨å·²ç»æ‰‹å·¥æ›´æ”¹äº†æ•°å—ç¾åè®¾ç½®ã€‚å› æ¤ï¼Œæ‚¨æ’°å†™æ¤é‚®ä»¶æ—¶ï¼Œå…³é—或激活邮件数å—ç¾åå°†ä¸å†ä¾èµ–äºŽå…³é—æˆ–æ¿€æ´»é‚®ä»¶åŠ å¯†ã€‚
pgpMime_sMime.dlg.text=您已ç»åŒæ—¶å¯ç”¨äº† PGP/MIME å’Œ S/MIMEã€‚é—æ†¾çš„æ˜¯ç›®å‰ä¸èƒ½åŒæ—¶æ”¯æŒè¿™ä¸¤ç§å议。请选择一项您想使用的å议,PGP/MIME 或者 S/MIME。
pgpMime_sMime.dlg.pgpMime.button=使用 &PGP/MIME
pgpMime_sMime.dlg.sMime.button=使用 &PGP/MIME
errorKeyUnusable=密钥 ID “%Sâ€çš„电åé‚®ä»¶åœ°å€æ— 法匹é…åˆ°ä¸€ä¸ªæœ‰æ•ˆçš„ã€æœªè¿‡æœŸçš„ OpenPGP 密钥。\n请确定您拥有一个有效的 OpenPGP 密钥,并且您的账户设置指å‘该密钥。
msgCompose.cannotSaveDraft=ä¿å˜è‰ç¨¿æ—¶å‡ºé”™
msgCompose.internalEncryptionError=内部错误:ä¿è¯åР坆已ç¦ç”¨
msgCompose.internalError=å‘生内部错误。
msgCompose.toolbarTxt.signAndEncrypt=æ¤æ¶ˆæ¯å°†è¢«ç¾åå’ŒåŠ å¯†
msgCompose.toolbarTxt.signOnly=æ¤æ¶ˆæ¯å°†è¢«ç¾å
msgCompose.toolbarTxt.encryptOnly=æ¤æ¶ˆæ¯å°†è¢«åР坆
msgCompose.toolbarTxt.noEncryption=æ¤æ¶ˆæ¯å°†ä¸è¢«ç¾å且ä¸è¢«åР坆
msgCompose.toolbarTxt.disabled=Enigmail 已对选定的身份ç¦ç”¨
msgCompose.toolbarTxt.smime=S/MIME å·²å¯ç”¨ - å¯èƒ½ä¸Ž Enigmail å‘生潜在冲çª
msgCompose.toolbarTxt.smimeOff=- S/MIME å› æ¤ä¸ä½¿ç”¨
msgCompose.toolbarTxt.smimeSignOrEncrypt=S/MIME å·²å¯ç”¨ - Enigmail å› æ¤ä¸ä½¿ç”¨
msgCompose.toolbarTxt.smimeNoDraftEncryption=- è‰ç¨¿å°†ä¸è¢«åР坆
msgCompose.toolbarTxt.smimeConflict=Enigmail ä¸ä¼šä½¿ç”¨ï¼Œå› 为 S/MIME ç›®å‰å·²å¯ç”¨ã€‚è¯·å…³é— S/MIME ç¾åå’Œ/æˆ–åŠ å¯†ï¼Œç„¶åŽå¯ç”¨ Enigmail åŠ å¯†ã€‚
msgCompose.encryptedSubjectStub=å·²åŠ å¯†çš„é‚®ä»¶
msgCompose.detailsButton.label=详细信æ¯...
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=å‘逿“ä½œå·²å–æ¶ˆã€‚\n\n
# details:
keyNotTrusted=对“%Sâ€å¯†é’¥æ²¡æœ‰è¶³å¤Ÿçš„ä¿¡ä»»
keyNotFound=找ä¸åˆ°â€œ%Sâ€å¯†é’¥
keyRevoked=密钥“%Sâ€å·²åºŸé™¤
keyExpired=密钥“%Sâ€å·²è¿‡æœŸ
statPGPMIME=PGP/MIME
statSigned=已数å—ç¾å
statEncrypted=å·²åŠ å¯†
statPlain=纯文本
offlineSave=将待å‘邮件 %S ä¿å˜è‡³å‘ä»¶ç®±ä¸çš„ %S 目录?
onlineSend=ç«‹å³å°†é‚®ä»¶ %S å‘é€ç»™ %S?
encryptKeysNote=注æ„: æ¤é‚®ä»¶å·²ä½¿ç”¨ä¸‹åˆ—用户/å¯†é’¥æ ‡è¯†çš„å¯†é’¥åŠ å¯†: %S
hiddenKey=<密钥已éšè—>
signFailed=Enigmail é”™è¯¯ï¼›åŠ å¯†/æ•°å—ç¾å失败;å‘逿œªåŠ å¯†é‚®ä»¶ï¼Ÿ
msgCompose.button.sendUnencrypted=å‘逿œªåŠ å¯†çš„é‚®ä»¶(&S)
recipientsSelectionHdr=é€‰æ‹©åŠ å¯†æ”¶ä»¶äºº
configureNow=æ‚¨æœªå°†é€‰æ‹©çš„æ ‡è¯†é…置为使用 Enigmail 安全邮件 (Enigmail) 。立å³é…置?
# encryption/signing status and associated reasons:
encryptMessageAuto=åŠ å¯†é‚®ä»¶ï¼ˆè‡ªåŠ¨ï¼‰
encryptMessageNorm=åŠ å¯†é‚®ä»¶
signMessageAuto=ç¾å邮件(自动)
signMessageNorm=ç¾å邮件
encryptOff=åŠ å¯†ï¼šå…³
encryptOnWithReason=åŠ å¯†ï¼šå¼€ (%S)
encryptOffWithReason=åŠ å¯†ï¼šå…³ (%S)
encryptOn=åŠ å¯†ï¼šå¼€
signOn=ç¾å:开
signOff=ç¾å:关
signOnWithReason=ç¾å:开 (%S)
signOffWithReason=ç¾å:关 (%S)
reasonEnabledByDefault=默认å¯ç”¨
reasonManuallyForced=手动强制
reasonByRecipientRules=收件人规则强制
reasonByAutoEncryption=è‡ªåŠ¨åŠ å¯†å¼ºåˆ¶
reasonByConflict=收件人规则冲çª
reasonByEncryptionMode=åŠ å¯†æ¨¡å¼å†²çª
reasonSmimeConflict=å› S/MIME å·²å¯ç”¨è€Œä»£æ›¿
# should not be used anymore:
encryptYes=é‚®ä»¶å°†è¢«åŠ å¯†
encryptNo=邮件将ä¸è¢«åР坆
# should not be used anymore:
signYes=邮件将被数å—ç¾å
signNo=邮件将ä¸è¢«æ•°å—ç¾å
# PGP/MIME status:
pgpmimeNormal=å议:PGP/MIME
inlinePGPNormal=å议:内嵌 PGP
pgpmimeAuto=å议:PGP/MIME(自动)
inlinePGPAuto=å议:内嵌 PGP(自动)
# should not be used anymore
pgpmimeYes=PGP/MIME 将被使用
pgpmimeNo=å†…è” PGP 将被使用
# Attach own key status (tooltip strings):
attachOwnKeyNo=您拥有的密钥将ä¸ä¼šé™„åŠ
attachOwnKeyYes=您拥有的密钥将被附åŠ
attachOwnKeyDisabled=æ‚¨è‡ªå·±çš„å¯†é’¥æ— æ³•é™„åŠ ã€‚æ‚¨å¿…é¡»åœ¨â€œè´¦æˆ·è®¾ç½®â€ä¸çš„ OpenPGP 部分选择一个密钥æ‰èƒ½ä½¿ç”¨æ¤åŠŸèƒ½ã€‚
rulesConflict=检测到与收件人规则冲çª\n%S\n\n使用这些设置å‘é€é‚®ä»¶ï¼Ÿ
msgCompose.button.configure=é…ç½®(&C)
msgCompose.button.send=å‘逿¶ˆæ¯(&S)
msgCompose.button.save=ä¿å˜æ¶ˆæ¯(&S)
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=需è¦å…¬é’¥ %S ä»¥éªŒè¯æ•°å—ç¾å
keyUsed=使用公钥 %S æ¥éªŒè¯ç¾å
clickDecrypt=;请点击解密按钮
clickDecryptRetry=;请点击解密按钮é‡è¯•
clickDetailsButton=;点击“详细信æ¯â€æŒ‰é’®èŽ·å–æ›´å¤šä¿¡æ¯
clickImportButton=ï¼›ç‚¹å‡»â€œå¯¼å…¥å¯†é’¥â€æŒ‰é’®ä¸‹è½½å¯†é’¥
keyTypeUnsupported=;您的 GnuPG ç‰ˆæœ¬çš„å¯†é’¥ç±»åž‹ä¸æ”¯æŒ
msgPart=邮件包å«å·² %S 部分
msgSigned=æ•°å—ç¾å
msgSignedUnkownKey=使用未知密钥ç¾å
msgEncrypted=åŠ å¯†
msgSignedAndEnc=æ•°å—ç¾åå¹¶åŠ å¯†
unverifiedSig=未验è¯çš„æ•°å—ç¾å
incompleteDecrypt=解密ä¸å®Œæ•´
needKey=错误 - 需è¦ä½¿ç”¨ç§é’¥è¿›è¡Œé‚®ä»¶è§£å¯†
failedDecrypt=错误 - 解密失败
badPhrase=错误 - å£ä»¤ä¸ç¬¦
failedDecryptVerify=错误 - 解密/验è¯å¤±è´¥
viewInfo=;选择“查看 > Enigmail ä¿¡æ¯â€æŸ¥çœ‹è¯¦ç»†ä¿¡æ¯
decryptedMsg=已解密的邮件
decryptedMsgWithFormatError=已解密消æ¯ï¼ˆå·²æ¢å¤æ ¼å¼å¼‚常的 PHP 邮件,这å¯èƒ½æ˜¯ç”±äºŽä¸€ä¸ªæ—§ç‰ˆæœ¬çš„ Exchange æœåŠ¡å™¨å¯¼è‡´ï¼Œå› æ¤è¿™å¯èƒ½å¹¶ä¸å®Œæ•´ï¼‰
usedAlgorithms=使用算法:%S 和 %S
locateGpg=å®šä½ GnuPG 程åº
invalidGpgPath=指定的 GnuPG 执行路径ä¸å¯ç”¨ã€‚ Enigmail 功能将被关é—ç›´è‡³æ‚¨å°†è¯¥è·¯å¾„é‡æ–°æŒ‡å‘ GnuPG æˆ–ç›´è‡³æ‚¨é‡æ–°å¯åŠ¨ç¨‹åºã€‚
warningsAreReset=所有è¦å‘Šå·²ç»å¤ä½
prefs.gpgFound=GnuPG 在 %S 找到
prefs.gpgNotFound=未能å‘现 GnuPG
prefs.warnAskNever=è¦å‘Š: 选择æ¤é¡¹å°†å¯¼è‡´åœ¨ä»»ä½•一个收件人没有公钥时都会使邮件ä¸èƒ½è¢«åŠ å¯†çš„ç»“æžœ -- æ¤æ—¶Enigmail也ä¸èƒ½é€šçŸ¥åˆ°ä½ !
prefs.warnIdleTimeForUnknownAgent=æ— æ³•è¿žæŽ¥åˆ° gpg-agent。也许您的系统使用了一个特殊工具进行å£ä»¤å¤„ç†ï¼ˆä¾‹å¦‚ gnome-keyringã€seahorse-agentã€KDE 钱包管ç†å™¨...ï¼‰ã€‚é—æ†¾çš„æ˜¯ Enigmail æ— æ³•æŽ§åˆ¶æ‚¨æ‰€ä½¿ç”¨çš„å·¥å…·çš„å£ä»¤è¶…æ—¶ã€‚å› æ¤ï¼ŒEnigmail ä¸è®¾ç½®çš„超时将被忽略。
prefEnigmail.oneKeyserverOnly=错误 - 您åªèƒ½æŒ‡å®šä¸€ä¸ªå¯†é’¥æœåŠ¡å™¨ç”¨äºŽè‡ªåŠ¨ä¸‹è½½ç¼ºå¤±çš„ OpenPGP 密钥。
enterAdminPin=请输入您的智能å¡ç®¡ç†è¯†åˆ«ç
enterCardPin=请输入您的智能å¡è¯†åˆ«ç
notInit=错误 - Enigmail æœåŠ¡æœªåˆå§‹åŒ–
badCommand=错误 - åŠ å¯†å‘½ä»¤å¤±è´¥
cmdLine=命令åŠè¾“å…¥:
notRequired=错误 - æ— éœ€åŠ å¯†
notComplete=错误 - 密钥创建未完æˆ
invalidEmail=错误 - æ— æ•ˆé‚®ä»¶åœ°å€
noPassphrase=错误 - 未æä¾›å£ä»¤
noPGPblock=错误 - 未找到任何有效 ASCII ARMORED OpenPGP æ•°æ®æ®µ
unverifiedReply=邮件的缩进部分 (回å¤) å¯èƒ½å·²è¢«ä¿®æ”¹
keyInMessageBody=消æ¯ä¸»ä½“䏿‰¾åˆ°å¯†é’¥ã€‚点击“导入密钥â€å¯¼å…¥å®ƒ
sigMismatch=错误 - æ•°å—ç¾åä¸ç¬¦
cantImport=导入公钥时å‘生错误\n\n
doImportOne=导入 %1$S (%2$S)?
doImportMultiple=导入下列密钥?\n\n%S
previewFailed=æ— æ³•è¯»å–公钥文件。
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=在您的读å¡å™¨ä¸æ‰¾åˆ°çš„æ™ºèƒ½å¡ %S ä¸èƒ½ç”¨æ¥å¤„ç†è¯¥é‚®ä»¶ã€‚\n请æ’å…¥æ‚¨çš„æ™ºèƒ½å¡ %S,然åŽé‡æ–°è¿›è¡Œæ¤æ“作。
sc.insertCard=æ¤æ“ä½œéœ€è¦æ‚¨çš„æ™ºèƒ½å¡ %S。\n请æ’入所需的智能å¡ï¼Œç„¶åŽé‡æ–°è¿›è¡Œæ¤æ“作。
sc.removeCard=æ¤æ“作ä¸éœ€è¦æ™ºèƒ½å¡æ”¾åœ¨è¯»å¡å™¨ä¸ã€‚\n请从读å¡å™¨ä¸åŽ»é™¤æ‚¨çš„æ™ºèƒ½å¡ï¼Œç„¶åŽé‡æ–°è¿›è¡Œæ¤æ“作。
sc.noCardAvailable=您的读å¡å™¨ä¸æ— æ™ºèƒ½å¡ \n è¯·å°†æ™ºèƒ½å¡æ’入读å¡å™¨å¹¶é‡è¯•
sc.noReaderAvailable=æ— æ³•è®¿é—®æ‚¨çš„æ™ºèƒ½å¡è¯»å¡å™¨ \n 请连接您的智能å¡è¯»å¡å™¨ï¼Œæ’入您的智能å¡ï¼Œå¹¶é‡è¯•
keyError.keySpecNotFound=电åé‚®ä»¶åœ°å€ "%S" æ— æ³•åŒ¹é…到您的钥匙环上的密钥。
keyError.keyIdNotFound=å·²é…置的密钥 ID "%S" æ— æ³•åœ¨æ‚¨çš„é’¥åŒ™çŽ¯ä¸æ‰¾åˆ°ã€‚
keyError.resolutionAction=请在您的“账户设置â€ä¸çš„ OpenPGP 部分选择一个有效密钥。
missingPassphrase=缺少å£ä»¤
errorHandling.gpgAgentInvalid=您的系统è¿è¡Œçš„ gpg-agent 版本ä¸é€‚åˆæ‚¨çš„ GnuPG 版本。
errorHandling.gpgAgentError=GnuPG 与 gpg-agent (GnuPG 的一个组件) 通信时报告了一个错误。
errorHandling.dirmngrError=GnuPG 与 dirmngr (GnuPG 的一个组件) 通信时报告了一个错误。
errorHandling.pinentryError=GnuPG æ— æ³•é€šè¿‡ pinentry 查询您的å£ä»¤ã€‚
gpgNotFound=ä¸èƒ½åœ¨ '%S' 定ä½åˆ°GnuPG程åº.\nç¡®è®¤ä½ åœ¨Enigmail傿•°ä¸å·²ç»æ£ç¡®è®¾ç½®GnuPG坿‰§è¡Œç¨‹åºè·¯å¾„
gpgNotInPath=ä¸èƒ½åœ¨è¿™ä¸ªè·¯å¾„定ä½åˆ°GnuPG程åº.\nç¡®è®¤ä½ åœ¨Enigmail傿•°ä¸å·²ç»æ£ç¡®è®¾ç½®GnuPG坿‰§è¡Œç¨‹åºè·¯å¾„
enigmailNotAvailable=Enigmail æ ¸å¿ƒæœåŠ¡ä¸å¯ç”¨
gpgAgentNotStarted=ä¸èƒ½å¯åЍ GPGå‘导程åºï¼Œéœ€è¦ä½ çš„GnuPG版本为 %S.
prefUntrusted=密钥未被信任
prefRevoked=密钥已撤销
prefExpiredKey=密钥已过期
prefExpired=已过期
prefGood=该邮件已ç»ç”± %S æ•°å—ç¾åï¼Œä¸”åœ¨ä¼ è¾“è¿‡ç¨‹ä¸æœªè¢«ç¯¡æ”¹è¿‡
prefBad=该邮件已ç»ç”± %S æ•°å—ç¾å,但“已被â€ç¯¡æ”¹
failCancel=错误 - å¯†é’¥æŽ¥æ”¶è¢«ç”¨æˆ·ä¸æ–
failNoServer=错误 - 为指定接收密钥使用的密钥æœåС噍
failNoID=错误 - æœªæŒ‡å®šè¦æŽ¥æ”¶çš„å¯†é’¥çš„å¯†é’¥æ ‡è¯†
failKeyExtract=错误 - 密钥æå–命令失败
notFirstBlock=错误 - 第一个 OpenPGP æ®µä¸æ˜¯å…¬é’¥æ®µ
importKeyConfirm=从邮件ä¸å¯¼å…¥åµŒå…¥çš„密钥么?
failKeyImport=错误 - 密钥导入失败
fileWriteFailed=写入文件 %S 失败
importKey=从密钥æœåС噍坼入公钥 %S:
uploadKey=将公钥 %S å‘é€åˆ°å¯†é’¥æœåС噍:
keyId=å¯†é’¥æ ‡è¯†
keyAndSigDate=å¯†é’¥æ ‡è¯†: 0x%S / ç¾å日期: %S
keyFpr=密钥指纹: %S
noEmailProvided=您未æä¾›é‚®ä»¶åœ°å€ï¼
keyAlreadySigned=该密钥已被ç¾ç½²ï¼Œæ‚¨ä¸èƒ½å¯¹å…¶é‡å¤ç¾ç½²ã€‚
gnupg.invalidKey.desc=密钥 %S æœªæ‰¾åˆ°æˆ–è€…æ— æ•ˆã€‚å密钥å¯èƒ½å·²è¿‡æœŸã€‚
selKeyExpired=%S 已过期
createdHeader=已创建
atLeastOneKey=æœªé€‰æ‹©å¯†é’¥ï¼æ‚¨å¿…é¡»è‡³å°‘é€‰æ‹©ä¸€ä¸ªå¯†é’¥ä»¥æŽ¥å—æ¤å¯¹è¯æ¡†
fewerKeysThanRecipients=您选择了一个比收件人人数还å°çš„æ•°å—。您确定è¦ç”¨ä½œåŠ å¯†çš„å¯†é’¥åˆ—è¡¨å·²å®Œæˆï¼Ÿ
userSel.button.goBack=选择更多密钥
userSel.secretKeySel.title=选择一个秘密的 OpenPGP 密钥æ¥ç¾æ³¨æ‚¨çš„æ¶ˆæ¯
userSel.problemNoKey=没有有效的密钥
userSel.problemMultipleKeys=多个密钥
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=以åŽå‘é€
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=注æ„: æ”¯æŒ PGP/MIME çš„é‚®ä»¶å®¢æˆ·ç«¯ç¨‹åºæ•°é‡å¾ˆæœ‰é™ï¼åœ¨ Windows å¹³å°ä¸Šå·²çŸ¥çš„æ”¯æŒè¯¥æ ‡å‡†çš„邮件客户端仅有 Mozilla/Thunderbirdã€Sylpheedã€Pegasus å’Œ Mulberry;在 Linux/UNIX å’Œ Mac OS X 多数æµè¡Œé‚®ä»¶å®¢æˆ·ç«¯éƒ½èƒ½æ”¯æŒè¯¥æ ‡å‡†ã€‚如果您ä¸èƒ½ç¡®å®šï¼Œè¯·é€‰æ‹© %S 。
first=第一个
second=第二个
# Strings used in am-enigprefs.js
encryptKeyHeader=é€‰æ‹©åŠ å¯†ç”¨çš„ OpenPGP 密钥
identityName=æ ‡è¯†: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=æ‚¨å·²ç»æ¿€æ´»åŠ å¯†åŠŸèƒ½ï¼Œä½†æ‚¨å¹¶æœªé€‰æ‹©ä»»ä½•å¯†é’¥ã€‚è¦åР坆å‘é€ç»™ %S 的邮件,您必须从您的密钥列表ä¸é€‰æ‹©ä¸€ä¸ªæˆ–å¤šä¸ªæœ‰æ•ˆå¯†é’¥ã€‚æ‚¨å¸Œæœ›å–æ¶ˆå¯¹ %S çš„åŠ å¯†ä¹ˆï¼Ÿ
noKeyToUse=(æ— - ä¸åР坆)
noEmptyRule=规则ä¸èƒ½ä¸ºç©ºï¼è¯·åœ¨è§„则区域输入电å邮件地å€ã€‚
invalidAddress=您输入的电åé‚®ä»¶åœ°å€æ— 效。请ä¸è¦è®¾ç½®æ”¶ä»¶äººå§“å,仅输入电å邮件地å€å³å¯ã€‚例如:\næ£ç¡®çš„: å¼ ä¸‰ \n错误的: zhang.san@address.net
noCurlyBrackets=å¤§æ‹¬å· {} 有特殊æ„义,ä¸åº”在电å邮件地之ä¸ä½¿ç”¨ã€‚如果您希望修改本规则的应用æ¡ä»¶ï¼Œè¯·ä½¿ç”¨â€œå¦‚æžœæ”¶ä»¶äººåœ°å€ ...â€é€‰é¡¹ã€‚\n您å¯ä»¥ä½¿ç”¨å¸®åŠ©æŒ‰é’®èŽ·å–æ›´å¤šä¿¡æ¯ã€‚
# Strings used in enigmailRulesEditor.js
never=从ä¸
always=总是
possible=å¯èƒ½
deleteRule=确实è¦åˆ 除选ä¸çš„规则?
nextRcpt=(下一收件人)
negateRule=éž
addKeyToRule=æ·»åŠ å¯†é’¥ %S (%S) 到收件人规则
# Strings used in enigmailSearchKey.js
needOnline=您选择的功能ä¸èƒ½åœ¨ç¦»çº¿çжæ€ä¸‹ä½¿ç”¨ã€‚请连线é‡è¯•。
protocolNotSupported=æš‚ä¸æ”¯æŒä½¿ç”¨â€œ%S://â€å议下载 OpenPGP 密钥。
gpgkeysDisabled=å¼€å¯â€œextensions.enigmail.useGpgKeysToolâ€ä¹Ÿè®¸ä¼šæœ‰å¸®åŠ©ã€‚
noKeyserverConn=æ— æ³•è¿žæŽ¥å¯†é’¥æœåС噍 %S。
keyDownloadFailed=从密钥æœåŠ¡å™¨ä¸‹è½½å¯†é’¥å¤±è´¥ã€‚çŠ¶æ€ä¿¡æ¯ä¸º:\n%S
internalError=å‘ç”Ÿå†…éƒ¨é”™è¯¯ã€‚å¯†é’¥æ— æ³•è¢«ä¸‹è½½æˆ–å¯¼å…¥ã€‚
noKeyFound=éžå¸¸æŠ±æ‰ï¼Œæ‰¾ä¸åˆ°ä»»ä½•ç¬¦åˆæœç´¢æ¡ä»¶çš„密钥。\n请注æ„ï¼Œå¯†é’¥æ ‡è¯†åº”è¯¥ä½¿ç”¨â€œ0xâ€å¼€å¤´(例如 0xABCDEF12)。
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=从密钥æœåŠ¡å™¨æŸ¥æ‰¾æˆ–ä¸‹è½½å¯†é’¥å¤±è´¥: æ— æ³•æ‰§è¡Œ gpgkeys_%S。
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=设置密钥信任级别失败
# Strings in enigmailSignKeyDlg.js
signKeyFailed=密钥ç¾ç½²å¤±è´¥
alreadySigned.label=注æ„:该密钥 %S å·²ç»ç”¨é€‰å®šçš„密钥ç¾å。
alreadySignedexportable.label=注æ„:密钥 %S å·²ç»ä½¿ç”¨é€‰å®šçš„ç§é’¥ç¾åå¯è¾“出。本地ç¾å没有æ„义。
partlySigned.label=注æ„:密钥 %S 的一些用户IDå·²ç»ä½¿ç”¨é€‰å®šçš„ç§é’¥ç¾å。
noTrustedOwnKeys=没有找到å¯ç¾åçš„å¯†é’¥ï¼æ‚¨éœ€è¦è‡³å°‘一个完全å—信任的ç§é’¥ä½œä¸ºç¾å密钥。
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=åŠ è½½å¯†é’¥, 请ç¨å€™ ...
keyValid.unknown=未知
keyValid.invalid=æ— æ•ˆ
keyValid.disabled=å·²ç¦ç”¨
keyValid.revoked=已撤销
keyValid.expired=已过期
keyValid.noSubkey=æ— æœ‰æ•ˆå密钥
keyTrust.untrusted=ä¸ä¿¡ä»»
keyTrust.marginal=åŠä¿¡åŠç–‘
keyTrust.full=ä¿¡ä»»
keyTrust.ultimate=完全信任
keyTrust.group=(组)
keyType.public=公钥
keyType.publicAndSec=公钥/ç§é’¥
keyMan.enableKey=å¯ç”¨å¯†é’¥
keyMan.disableKey=ç¦ç”¨å¯†é’¥
userAtt.photo=用户属性 (JPEG 图åƒ)
asciiArmorFile=ASCII æ ¼å¼ä¿å˜æ–‡ä»¶ (*.asc)
importKeyFile=导入 OpenPGP 密钥文件
gnupgFile=GnuPG 文件
saveRevokeCertAs=创建并ä¿å˜æ’¤é”€è¯ä¹¦
revokeCertOK=撤销è¯ä¹¦åˆ›å»ºæˆåŠŸã€‚å½“æ‚¨ä¸¢å¤±äº†æ‚¨çš„ç§é’¥æ—¶ï¼Œæ‚¨å¯ä»¥ä½¿ç”¨å®ƒå°†æ‚¨å…¬é’¥è®¾ä¸ºæ— 效。\n\n请将它ä¿å˜åœ¨ç±»ä¼¼ CD 或 软盘一类的å¯ä»¥ä¸Žè®¡ç®—机分离的安全媒体ä¸ã€‚如果有人得到了æ¤è¯ä¹¦ä»–å°†å¯ä»¥åˆ©ç”¨å®ƒä½¿æ‚¨çš„密钥失效。
revokeCertFailed=æ— æ³•åˆ›å»ºæ’¤é”€è¯ä¹¦ã€‚
addUidOK=æ·»åŠ ç”¨æˆ·æ ‡è¯†æˆåŠŸ
addUidFailed=æ·»åŠ ç”¨æˆ·æ ‡è¯†å¤±è´¥
noKeySelected=è¦æ‰§è¡Œâ€œé€‰å–â€ç±»åž‹å¯†é’¥æ“作您必须至少选å–一个密钥
exportToFile=将公有密钥导出到文件
exportKeypairToFile=导出ç§é’¥å’Œå…¬é’¥åˆ°æ–‡ä»¶
exportSecretKey=您希望在ä¿å˜çš„ OpenPGP 密钥文件ä¸åŒ…å«ç§é’¥ä¹ˆï¼Ÿ
saveKeysOK=æˆåŠŸä¿å˜å¯†é’¥
saveKeysFailed=ä¿å˜å¯†é’¥å¤±è´¥
importKeysFailed=导入密钥失败
enableKeyFailed=å¯ç”¨/ç¦ç”¨å¯†é’¥å¤±è´¥
specificPubKeyFilename=%S (0x%S) 公钥
specificPubSecKeyFilename=%S (0x%S) 公钥+ç§é’¥
defaultPubKeyFilename=已导出的公钥
defaultPubSecKeyFilename=已导出的公钥/ç§é’¥
noSecretKeys=未找到ç§é’¥ã€‚\n\n您希望立å³åˆ›å»ºè‡ªå·±çš„密钥么?
sendKeysOk=密钥å‘逿ˆåŠŸ
sendKeysFailed=å‘é€å¯†é’¥å¤±è´¥
receiveKeysOk=密钥更新æˆåŠŸ
receiveKeysFailed=下载密钥失败
importFromClip=您希望从剪贴æ¿å¯¼å…¥å¯†é’¥ä¹ˆï¼Ÿ
importFromUrl=从æ¤ç½‘å€ä¸‹è½½å…¬é’¥ï¼š
copyToClipbrdFailed=æ— æ³•å°†é€‰ä¸çš„密钥å¤åˆ¶åˆ°å‰ªè´´æ¿ã€‚
copyToClipbrdOK=密钥已被å¤åˆ¶åˆ°å‰ªè´´æ¿
deleteSecretKey=è¦å‘Š: 您æ£åœ¨è¯•å›¾åˆ é™¤ç§é’¥ï¼\nå¦‚æžœæ‚¨åˆ é™¤äº†ç§é’¥ï¼Œæ‚¨å°†æ— æ³•è§£å¯†ä»»ä½•ä¸ºè¯¥å¯†é’¥åŠ å¯†çš„é‚®ä»¶ã€‚\n\næ‚¨ç¡®å®žè¦æŠŠé€‰ä¸çš„ç§é’¥å’Œå…¬é’¥â€œéƒ½â€åˆ 除么?
deleteMix=è¦å‘Š: 您æ£åœ¨è¯•å›¾åˆ é™¤ç§é’¥ï¼\nå¦‚æžœæ‚¨åˆ é™¤äº†ç§é’¥ï¼Œæ‚¨å°†æ— æ³•è§£å¯†ä»»ä½•ä¸ºè¯¥å¯†é’¥åŠ å¯†çš„é‚®ä»¶ã€‚\n\næ‚¨ç¡®å®žè¦æŠŠé€‰ä¸çš„ç§é’¥å’Œå…¬é’¥â€œéƒ½â€åˆ 除么?
deletePubKey=æ‚¨å¸Œæœ›åˆ é™¤æ¤å…¬é’¥\n'%S'?
deleteSelectedPubKey=您确实è¦åˆ 除æ¤å…¬é’¥ä¹ˆï¼Ÿ
deleteKeyFailed=该密钥ä¸èƒ½åˆ 除。
revokeKeyQuestion=您å³å°†åºŸé™¤å¯†é’¥â€œ%Sâ€ã€‚\n\n您将ä¸èƒ½å†ä½¿ç”¨æ¤å¯†é’¥ç¾å,并且一旦分å‘,其他人将ä¸èƒ½å†ä½¿ç”¨è¯¥å¯†é’¥æ¥åŠ å¯†ã€‚æ‚¨ä»ç„¶å¯ä»¥ä½¿ç”¨æ¤å¯†é’¥è§£å¯†æ—§çš„邮件。\n\n您确定è¦ç»§ç»å—?
revokeKeyOk=è¯¥å¯†é’¥å·²ç»æˆåŠŸæ’¤é”€ã€‚å¦‚æžœæ‚¨æ›¾ç»å°†å¯†é’¥ä¸Šä¼ 到了æŸä¸ªå¯†é’¥æœåŠ¡å™¨ï¼Œæ‚¨åº”è¯¥é‡æ–°ä¸Šä¼ 一次,以便其他人能得到您的密钥撤销信æ¯ã€‚
revokeKeyFailed=该密钥ä¸èƒ½æ’¤é”€ã€‚
refreshAllQuestion=您未选择任何密钥。您想更新“所有â€çš„密钥么?
refreshKey.warn=è¦å‘Š: æ ¹æ®å¯†é’¥æ•°é‡å’Œè¿žæŽ¥é€Ÿåº¦çš„ä¸åŒï¼Œæ›´æ–°æ‰€æœ‰å¯†é’¥å¯èƒ½è€—费很长时间ï¼\n\nç»§ç»ï¼Ÿ
downloadContactsKeys.warn=è¦å‘Šï¼šå–决于è”系人的数é‡å’Œè¿žæŽ¥é€Ÿåº¦ï¼Œä¸‹è½½æ‰€æœ‰å¯†é’¥å¯èƒ½æ˜¯ä¸€ä¸ªç›¸å½“漫长的过程ï¼
downloadContactsKeys.importFrom=从通讯录 '%S' 导入è”系人?
keyMan.button.exportSecKey=导出ç§é’¥(&E)
keyMan.button.exportPubKey=åªå¯¼å‡ºå…¬é’¥(&P)
keyMan.button.import=导入(&I)
keyMan.button.refreshAll=刷新所有密钥(&R)
keyMan.button.revokeKey=废除密钥(&R)
keyMan.button.skip=跳过密钥(&S)
keylist.noOtherUids=已没有其他身份
keylist.hasOtherUids=也称为
keylist.noPhotos=没有å¯ç”¨çš„照片
keylist.hasPhotos=照片
keyMan.addphoto.filepicker.title=é€‰æ‹©è¦æ·»åŠ çš„ç…§ç‰‡
keyMan.addphoto.warnLargeFile=您已ç»é€‰æ‹©çš„æ–‡ä»¶è¶…过了 25 kB。\nä¸æŽ¨èæ·»åŠ å¾ˆå¤§çš„æ–‡ä»¶ï¼Œå› ä¸ºè¿™ä¼šå¯¼è‡´å¾—åˆ°çš„å¯†é’¥éžå¸¸å¤§ã€‚
keyMan.addphoto.noJpegFile=é€‰æ‹©çš„æ–‡ä»¶ä¸æ˜¯ JPEG 文件。请选择其他文件。
keyMan.addphoto.failed=æ¤ç…§ç‰‡ä¸èƒ½è¢«æ·»åŠ ã€‚
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=ä¿®æ”¹ä¸»ç”¨æˆ·æ ‡è¯†å¤±è´¥
changePrimUidOK=æˆåŠŸä¿®æ”¹ä¸»ç”¨æˆ·æ ‡è¯†
deleteUidFailed=åˆ é™¤ç”¨æˆ·æ ‡è¯† %S 失败
deleteUidOK=æˆåŠŸåˆ é™¤ç”¨æˆ·æ ‡è¯† %S
revokeUidFailed=æ’¤é”€ç”¨æˆ·æ ‡è¯† %S 失败
revokeUidOK=æˆåŠŸæ’¤é”€ç”¨æˆ·æ ‡è¯† %S。如果您曾ç»å°†å¯†é’¥ä¸Šä¼ 到了æŸä¸ªå¯†é’¥æœåŠ¡å™¨ï¼Œæ‚¨åº”è¯¥é‡æ–°ä¸Šä¼ 一次,以便其他人能得到您的密钥撤销信æ¯ã€‚
revokeUidQuestion=æ‚¨ç¡®å®žè¦æ’¤é”€ç”¨æˆ·æ ‡è¯† %S 么?
deleteUidQuestion=您确实è¦åˆ é™¤ç”¨æˆ·æ ‡è¯† %S 么?\n\n请注æ„: 如果您曾ç»å°†æ‚¨çš„å…¬é’¥ä¸Šä¼ è‡³æŸä¸ªå¯†é’¥æœåŠ¡å™¨ï¼Œåˆ é™¤å¯†é’¥ä¸çš„æŸä¸ªç”¨æˆ·æ ‡è¯†ä¸ä¼šæ”¹å˜ä»»ä½•äº‹ã€‚è¿™ç§æƒ…å†µä¸‹æ‚¨åº”è¯¥ä½¿ç”¨â€œæ’¤é”€ç”¨æˆ·æ ‡è¯†â€åŠŸèƒ½ã€‚
# Strings in enigmailKeyImportInfo.xul
importInfoTitle=æˆåŠŸï¼å¯†é’¥å·²å¯¼å…¥
importInfoSuccess=✅
importInfoBits=ä½
importInfoCreated=创建时间
importInfoFpr=指纹
importInfoDetails=(详细信æ¯)
importInfoNoKeys=没有导入密钥。
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=公钥
keyTypePrimary=主密钥
keyTypeSubkey=å密钥
keyTypePair=密钥对
keyExpiryNever=从ä¸
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyAlgorithm_22=EDDSA
keyUsageEncrypt=åŠ å¯†
keyUsageSign=ç¾å
keyUsageCertify=è¯æ˜Ž
keyUsageAuthentication=身份验è¯
keyDoesNotExpire=密钥ä¸ä¼šè¿‡æœŸ
# Strings in enigmailGenCardKey.xul
keygen.started=æ£åœ¨ç”Ÿæˆå¯†é’¥ï¼Œè¯·è€å¿ƒç‰å¾………
keygen.completed=密钥已生æˆã€‚新密钥ID为: 0x%S
keygen.keyBackup=密钥已被备份为 %S
keygen.passRequired=如果您希望在智能å¡å¤–部为自己的密钥创建备份,请设置一个å£ä»¤ã€‚
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=识别ç è¾“å…¥é”™è¯¯ï¼›è¯·é‡æ–°è¾“å…¥
cardPin.minLength=识别ç 至少为 %S 个å—符或数å—
cardPin.processFailed=æ›´æ¢è¯†åˆ«ç 失败
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=密钥刷新ä¸ï¼Œè¯·ç‰å¾… ...
keyserverProgress.uploading=å¯†é’¥ä¸Šä¼ ä¸ï¼Œè¯·ç‰å¾… ...
keyserverTitle.refreshing=刷新密钥
keyserverTitle.uploading=ä¸Šä¼ å¯†é’¥
# Strings in enigmailSetupWizard
passphrase.min8keys=您的å£ä»¤è‡³å°‘è¦åŒ…å«8个å—符ï¼
setupWizard.reallyCancel=ä½ çœŸçš„æƒ³é€€å‡º Enigmail 安装å‘导?
setupWizard.invalidGpg=æ‚¨æŒ‡å®šçš„æ–‡ä»¶ä¸æ˜¯ä¸€ä¸ª GnuPG 程åºã€‚请指定å¦ä¸€ä¸ªæ–‡ä»¶ã€‚
setupWizard.specifyFile=æ‚¨éœ€è¦æŒ‡å®šè‡³å°‘一个公钥文件æ‰èƒ½ç»§ç»ã€‚
setupWizard.installFailed=看起æ¥å®‰è£…未æˆåŠŸã€‚è¯·é‡è¯•安装,或者手动安装 GnuPG ç„¶åŽä½¿ç”¨â€œæµè§ˆâ€æŒ‰é’®å®šä½ã€‚
setupWizard.downloadForbidden=为了您的安全,我们ä¸ä¼šä¸ºæ‚¨ä¸‹è½½ GnuPG。请访问 http://www.gnupg.org/ 自行下载 GnuPG。
setupWizard.downloadImpossible=æˆ‘ä»¬ç›®å‰æ— 法下载 GnuPG。请ç¨åŽå†è¯•,或者访问 http://www.gnupg.org/ 自行下载 GnuPG。
setupWizard.hashSumError=本å‘导未能验è¯å·²ä¸‹è½½æ–‡ä»¶çš„å®Œæ•´æ€§ã€‚æ¤æ–‡ä»¶å¯èƒ½å·²æŸå或者被篡改。您è¦ç»§ç»å®‰è£…å—?
setupWizard.importSettingsFile=指定è¦è½½å…¥çš„备份文件
setupWizard.invalidSettingsFile=æŒ‡å®šæ–‡ä»¶ä¸æ˜¯æ£ç¡®çš„ Enigmail 设置备份文件。
setupWizard.gpgConfExists=GnuPG é…置文件已ç»å˜åœ¨ã€‚您是å¦è¦ä½¿ç”¨æ‚¨çš„æ—§å®‰è£…覆盖它。
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=å°è¯•下载 GnuPG æ—¶å‡ºé”™ã€‚è¯·æ£€æŸ¥æŽ§åˆ¶å°æ—¥å¿—获å–进一æ¥ç»†èŠ‚ã€‚
installGnuPG.installFailed=å°è¯•安装 GnuPG æ—¶å‡ºé”™ã€‚è¯·æ£€æŸ¥æŽ§åˆ¶å°æ—¥å¿—获å–进一æ¥ç»†èŠ‚ã€‚
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=您必须填写一个å称和一个电å邮件地å€
addUidDlg.nameMinLengthError=åç§°ä¸èƒ½å°‘于5个å—符
addUidDlg.invalidEmailError=您必须指定一个有效的电å邮件地å€
addUidDlg.commentError=注释ä¸ä¸å…许有括å·
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP 智能å¡åªæ”¯æŒ ASCII å—符的å/å称。
# network error types
errorType.SecurityCertificate=网络æœåŠ¡å‘ˆé€’çš„å®‰å…¨è¯ä¹¦æ— 效。
errorType.SecurityProtocol=网络æœåŠ¡ä½¿ç”¨çš„å®‰å…¨å议未知。
errorType.Network=å‘生网络错误。
# filter stuff
filter.folderRequired=æ‚¨å¿…é¡»é€‰æ‹©ä¸€ä¸ªç›®æ ‡æ–‡ä»¶å¤¹ã€‚
filter.decryptMove.label=永久解密 (Enigmail)
filter.decryptCopy.label=创建解密的副本 (Enigmail)
filter.decryptMove.warnExperimental=è¦å‘Š - “永久解密â€è¿‡æ»¤å™¨å¯èƒ½å¯¼è‡´æ¶ˆæ¯è¢«æ‘§æ¯ã€‚\n\n我们强烈建议您先å°è¯•“创建解密的副本â€è¿‡æ»¤å™¨ï¼Œä»”细测试其结果,åªåœ¨å®Œå…¨ç¡®å®šè¯¥è¿‡æ»¤å™¨çš„结果是您想è¦çš„æ•ˆæžœæ—¶ä½¿ç”¨æ¤è¿‡æ»¤å™¨ã€‚
# strings in enigmailConvert.jsm
converter.decryptBody.failed=未能解密主题为“%Sâ€çš„邮件。\n您想使用å¦ä¸€ä¸ªå£ä»¤é‡è¯•å—,或者您想跳过æ¤é‚®ä»¶å—?
converter.decryptAtt.failed=未能解密附件“%1$Sâ€ï¼Œé‚®ä»¶ä¸»é¢˜ä¸ºâ€œ%2$Sâ€ã€‚\n您想使用å¦ä¸€ä¸ªå£ä»¤é‡è¯•å—,或者您想跳过æ¤é‚®ä»¶å—?
saveLogFile.title=ä¿å˜æ—¥å¿—文件
# strings in gpg.jsm
unknownSigningAlg=未知ç¾å算法 (ID: %S)
unknownHashAlg=æœªçŸ¥åŠ å¯†ç®—æ³• (ID: %S)
# strings in keyRing.jsm
keyring.photo=照片
keyRing.pubKeyRevoked=密钥 %1$S (密钥 ID %2$S) 已废除。
keyRing.pubKeyExpired=密钥 %1$S (密钥 ID %2$S) 已过期。
keyRing.pubKeyNotForSigning=密钥 %1$S (密钥 ID %2$S) æ— æ³•ç”¨ä½œç¾å。
keyRing.pubKeyNotForEncryption=密钥 %1$S (密钥 ID %2$S) æ— æ³•ç”¨ä½œåŠ å¯†ã€‚
keyRing.keyDisabled=密钥 %1$S (密钥 ID %2$S) å·²ç¦ç”¨ï¼Œä¸èƒ½ä½¿ç”¨å®ƒã€‚
keyRing.keyNotTrusted=密钥 %1$S (密钥 ID %2$S) ä¸è¶³å¤Ÿå¯ä¿¡ã€‚请设置您的密钥的信任级别至“终æžâ€ä»¥ä½¿ç”¨å®ƒè¿›è¡Œç¾å。
keyRing.keyInvalid=密钥 %1$S (密钥 ID %2$S) æ— æ•ˆï¼ˆä¾‹å¦‚ï¼Œå®ƒæ²¡æœ‰è‡ªç¾å)。
keyRing.signSubKeysRevoked=密钥 %1$S (密钥 ID %2$S) 的所有ç¾åå密钥å‡å·²åºŸé™¤ã€‚
keyRing.signSubKeysExpired=密钥 %1$S (密钥 ID %2$S) 的所有ç¾åå密钥å‡å·²è¿‡æœŸã€‚
keyRing.signSubKeysUnusable=密钥 %1$S (密钥 ID %2$S) 的所有ç¾åå密钥å‡å·²åºŸé™¤ã€è¿‡æœŸæˆ–è€…æ— æ³•ä½¿ç”¨ã€‚
keyRing.encSubKeysRevoked=密钥 %1$S (密钥 ID %2$S) çš„æ‰€æœ‰åŠ å¯†å密钥å‡å·²åºŸé™¤ã€‚
keyRing.encSubKeysExpired=密钥 %1$S (密钥 ID %2$S) çš„æ‰€æœ‰åŠ å¯†å密钥å‡å·²è¿‡æœŸã€‚
keyRing.noSecretKey=您的钥匙链似乎没有 %1$S (密钥 ID %2$S) çš„ç§é’¥ï¼Œæ‚¨ä¸èƒ½ä½¿ç”¨è¯¥å¯†é’¥è¿›è¡Œç¾å。
keyRing.encSubKeysUnusable=密钥 %1$S (密钥 ID %2$S) çš„æ‰€æœ‰åŠ å¯†å密钥å‡å·²åºŸé™¤ã€è¿‡æœŸæˆ–è€…æ— æ³•ä½¿ç”¨ã€‚
#strings in exportSettingsWizard.js
cannotWriteToFile=æ— æ³•ä¿å˜åˆ°æ–‡ä»¶â€œ%Sâ€ã€‚请指定其他文件å。
dataExportError=å¯¼å‡ºæ‚¨çš„æ•°æ®æ—¶å‘生错误。
enigmailSettings=Enigmail设置
defaultBackupFileName=Enigmail导出结果
specifyExportFile=指定导出文件å
enigmail/lang/zh-CN/enigmail.properties.big5 0000664 0000000 0000000 00000014654 12667016244 0021255 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
# Strings used within enigmailCommon.js
enigAlert=Enigmail ֪ͨ
enigConfirm=Enigmail È·ÈÏ
enigError=Enigmail ´íÎó
enigPrompt=Enigmail Ìáʾ
dlgYes=È·¶¨
dlgNo=·ñ
dlgNever=Ï´β»ÐëÔÙÎÊÎÒ
specifyEmail=ÇëÖ¸¶¨ÄúµÄÖ÷ÒªÓÊÖ·ÒÔÓÃì¶Ç©Ö¤¼Ä³öÓʼþʱʹÓá£\n Èç¹ûÄúÒªÓ᰼ijö¡±µÄÓÊÖ·×÷Ϊǩ֤Çë°Ñ´ËÀ¸Öÿա£\n\n×¢Ò⣺Enigmail 0.60 ÒÔÉÏÒÑ°Ñ default signing key Õ⺬ºýµÄÑ¡ÏîÈ¥³ý.
usingFrom=¡°¼Ä³ö¡±ÓÊÖ·½«»áÓÃì¶Ç©Ö¤¼Ä³öµÄÓʼþ
usingId=ʹÓÃÕß %S ½«»áÓÃì¶Ç©Ö¤¼Ä³öµÄÓʼþ
configNow=ÄúҪΪ enigmail %S ½øÐÐÉ趨Âð£¿
configEnigmail=É趨 Enigmail£¿
turnOffFlowed=Mozilla ÖÐµÄ Allow flowed text (RFC 2646) ÊÇÔ¤ÖÃÑ¡Ïî¡£\nµ«È´»áÔÚ½øÐÐÉú´¿ÎÄ×ÖµÄÓʼþ½øÐÐÇ©ÃûÈÏ֤ʱ·¢ÉúÎÊÌâ¡£\nËùÒÔÎÒÃǽ¨Òé°Ñ´Ë׫Ïî¹ØÉÏ¡£\n\nÄúÒª Enigmail ΪÄúÖ´Ðйرա¡Allow flowed text (RFC 2646) Õâ¸öÑ¡ÏîÂð?
repeatPrefix=\n\n´ËÌáʾ½«»áÔÙ³öÏÖ%S
repeatSuffixSingular=´Î¡£
repeatSuffixPlural=´Î¡£
noRepeat=\n\n´ËÌáʾ½«²»»áÔÙ³öÏÖÖµ½ÄãÏ´θüРEnigmail¡£
noLogDir=ÇëΪ½ø½×Æ«ºÃÉ趨ÖеÄÈÕ־·¾¶½øÐÐÉ趨ÒÔ±ãÐÂÔöÈÕÖ¾µµ
noLogFile=ÈÕÖ¾µµ°¸²»´æÔÚ£¡
restartForLog=ÇëÖØÐÂÆô¶¯ Mozilla ÒÔ±ãÐÂÔöÈÕÖ¾µµ
# Strings in enigmailAbout.js
usingVersion=Enigmail %S ÔÚÖ´ÐÐÖÐ
versionWarning=¾¯¸æ£ºEnigMime °æ±¾ %S ²»Ðµ÷
enigmimeWarning=¾¯¸æ£º EnigMime Ä£×é²»´æÔÚ
usingAgent=ʹÓà %S Ö´Ðеµ %S ÒÔ¼ÓÃÜ»ò½âÃÜ
agentError=´íÎ󣺲»ÄÜ´æÈ¡ enigmail ʧ°Ü£¡
# Strings in enigmailKeygen.js
accessError=´æÈ¡ enigmail ʧ°Ü
onlyGPG=²úÉúеÄÔ¿³×Ö»ÄÜÔÚGPGÖÐʹÓã¨PGP ½«²»ÄÜʹÓã©£¡
genComplete=²úÉúеÄÔ¿³×Íê³É£¡\nʹÓÃÕßÔ¿³× <%S> ½«»áÔÚδÀ´ÓÃì¶¼ÓÃÜ»òǩ֤
genCompleteNoSign=²úÉúеÄÔ¿³×Íê³É£¡
genGoing=²úÉúеÄÔ¿³×ÕýÔÚ½øÐÐÖУ¡
passNoMatch=ÊäÈëµÄÃÜÂë²»Ïàͬ£¬ÇëÖØÊäÈë
passCheckBox=²»ÓÃÃÜÂëÇëÑ¡Ôñ´ËÏî
passUserName=´ËÈÏÖ¤µÄʹÓÃÕßÃû³ÆÎª
keyConfirm=ҪΪ'%S'²úÉúµÄ¹«¿ªºÍÒþÃܵÄÔ¿³×Âð£¿
keyAbort=ÖÐÖ¹Ô¿³×²úÉúÂð£¿
# Strings in enigmailMessengerOverlay.js
securityInfo=OpenPGP °²È«×ÊѶ\n\n
enigHeader=Enigmail:
enigNote=Note from Enigmail: Attachments to this message have not been signed or encrypted.
enigContentNote=Enigmail: *Attachments to this message have not been signed or encrypted*\r\n\r\n
# Make Comment due to this translation will not display right.
# enigNote=Enigmail:´ËÓʼþÖеĸ½¼þ²¢Ã»Óо¹ý¼ÓÃÜ»òǩ֤¡£
# enigContentNote=Enigmail: *´ËÓʼþÖеĸ½¼þ²¢Ã»Óо¹ý¼ÓÃÜ»òǩ֤*\r\n\r\n
noDecrypted=ûÓпɽâÂëµÄÐÅÏ¢¿ÉÒÔ´¢´æ£¡\nÇëÔÚµµ°¸Ä¿Â¼Ñ¡Óô¢´æ
noMessage=ûÓÐÐÅÏ¢¿ÉÒÔ´¢´æ£¡
useButton=ÇëÔÚĿ¼ÖÐÑ¡Ôñ½âÂëÓëÇ©ÃûÈÏÖ¤ÒÔ½âÂë
saveHeader=Enigmail£º´¢´æ½âÂëááµÄÐÅÏ¢
# Strings in enigmailMsgComposeOverlay.js
keysToExport=»ã³öʹÓÃÕߵĹ«¿ªÔ¿³×µÄÓÊÖ·
exportPrompt=Enigmail Ô¿³×»ã³ö
pubKey=%SʹÓÃÕß¹«¿ªÔ¿³×\n
windowLocked=±àдÓʼþÒѱ»Ïú¶¨£¬¼Ä³ö±»È¡Ïû
sendUnencrypted=EnigmailÆô¶¯Ê§³£¡£\n¼Ä³öδ¼ÓÃܵÄÓʼþÂð£¿
composeSpecifyEmail=ÇëÖ¸¶¨ÄúµÄÖ÷ÒªÓÊÖ·ÒÔÓÃì¶Ç©Ö¤¼Ä³öÓʼþʱʹÓá£\n Èç¹ûÄúÒªÓ᰼ijö¡±µÄÓÊÖ·×÷Ϊǩ֤Çë°Ñ´ËÀ¸Öÿա£
sendingBCC=´ËÓʼþÓÐÒþÃÜÊÕÐÅÕßBCC¡£Èç¹û¼ÓÃÜ´ËÓʼþËùÓеÄÊÕÐÅÕß¶¼¿ÉÒÔͨ¹ý¼ì²ì¼ÓÃÜÔ¿³×Ãûµ¥µÃÖªËÊÇÒþÃÜÊÕÐÅÕßÖÂʹÒþÃܱ£°²Ê§Ð§¡£\n\n°´È·¶¨ÒԼ̼¨¼ÓÃÜ»òÈ¡ÏûÖÐÖ¹¼Ä³ö¡£
sendingNews=¼ÓÃܼijöÖÐÖ¹.\n\nÓÉì¶ÓÐÐÂÎÅ×éµÄ´æÔÚ´ËÓʼþ²»ÄܼÓÃÜ¡£ÇëÓò»¼ÓÃܵķ½·¨ÖØÐ¼ijö¡£
sendingPGPMIME=ÓʼþÖеĸ½¼þÒ²»áÒ»ÆðµÄ±»¼ÓÃÜ»òǩ֤£¬Ö»ÓÐÄÜÖ§Ô®PGP/MIME¸ñʽµÄµçÓʳÌʽ¿ÉÒÔ¶ÁÈ¡´ËÀàÓʼþ¡£ÒÑÖªµÄÖ§Ô®µçÓʳÌʽÓÐ Enigmail, Evolution, and Mutt¡£\n °´È·¶¨ÒԼ̼¨Ê¹ÓÃPGP/MIME¸ñʽ»òÈ¡ÏûʹÓÃǶÈë¸ñʽ¼Ä³ö¡£
noPGPMIME=PGP/MIME²»´æÔÚ£¡\n ÓÃǶÈë¸ñʽ¼ÓÃÜ»òǩ֤£¿
hasHTML=HTML Óʼþ¾¯¸æ£º\n´ËÓʼþ´øÓÐHTML¸ñʽÕâ¿ÉÄÜ»áʹµ½¼ÓÃÜ»òǩ֤ʧ°Ü¡£ÎªÁ˱ÜÃâ´ËÀàÎÊÌâµÄ·¢ÉúÄú¿ÉÒÔÔڼijö»ò»Ø¸²Óʼþʱ°´ÏÂSHIFT¼üÒԼijöǩ֤µÄÓʼþ¡£\nÈç¹ûÄúÊÇÔ¤ÖüÓÃÜ»òǩ֤¼Ä³öÓʼþÄúÓ¦¸ÃÔÚÈ¡ÏûÑ¡Ôñ±àдHTML¸ñʽÓʼþÑ¡ÏîÒÔÈ¡ÏûHTML¸ñʽµÄÓʼþ¡£
strippingHTML="ÓʼþÖк¬ÓеĸñʽHTML½«»áÔÚת»»³É´¿ÎÄ×Ö¸ñʽ¼ÓÃÜ»òǩ֤ʱʧЧ¡£ÄúÒª¼Ì¼¨Âð£¿
sendAborted=¼Ä³öÖÐÖ¹¡£\n\n
statPGPMIME=PGP/MIME
statSigned=ÒÑǩ֤
statEncrypted=ÒѼÓÃÜ
statPlain=´¿ÎÄ×Ö
offlineSave=´¢´æ %S Óʼþ %S µ½Î´¼Ä³öµÄÓʼþÂð£¿
onlineSend=¼Ä³ö %S Óʼþµ½ %SÂð£¿
offlineNote=ÄãÏÖÔÚÕýʹÓÃÀëÏßģʽ¡£Òª´¢´æ´ËÓʼþµ½Î´¼Ä³öµÄÓʼþÂð£¿
signFailed=Enigmail·¢Éú´íÎ󣬼ÓÃÜ»òǩ֤ʧ°ÜÒª¼Ä³öδ¼ÓÃܵÄÓʼþÂð£¿
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=ÐèÒª¹«¿ªÔ¿³×±àºÅ %S ÒÔ×÷Ç©ÃûÈÏÖ¤
clickDecrypt=£»°´Ï¡¸½âÃÜ¡¹¼ü
clickDecryptRetry=£»°´Ï¡¸½âÃÜ¡¹¼üÖØÊÔ
clickPen=£»°´Ï±Êͼ£¿
clickPenDetails=£»°´Ï¶ϱÊͼȡµÃÏêϸµÄ×ÊÁÏ£¿
clickQueryPenDetails=£»°´Ï±ÊͼȡµÃÏêϸµÄ×ÊÁÏ£¿
clickKey=£»°´Ï¶ÏÔ¿³×ͼ£¿
clickKeyDetails=£»°´Ï¶ÏÔ¿³×ͼȡµÃÏêϸµÄ×ÊÁÏ£¿
reloadImapMessage=ÖØÐÂÔØÈëÍêÕûµÄIMAPÓʼþÒÔ½øÐнâÂëÓëÇ©ÃûÈÏÖ¤£¿
reloadImapError=´íÎó£IMAPÓʼþ¹ý´óÎÞ·¨½øÐнâÂëÓëÇ©ÃûÈÏÖ¤
unverifiedSig=δÈÏÖ¤µÄÇ©Ãû
incompleteDecrypt=½âÃܲ»ÍêÕû
failedSig=´íÎó£Ç©ÃûÈÏ֤ʧ°Ü
needKey=´íÎó£ÐèÒªÒþÃܵÄÔ¿³×ÒÔ½øÐÐÓʼþ½âÂë
failedDecrypt=´íÎó£½âÂëʧ°Ü
badPhrase=´íÎó£ÃÜÂë´íÎó
failedDecryptVerify=´íÎó£½âÂëÓëÇ©ÃûÈÏ֤ʧ°Ü
viewInfo=; View > Message security info for details
decryptedMsg=ÒѽâÂë Óʼþ
# Strings in enigmailNavigatorOverlay.js
navEncryptError=¼ÓÃÜ»òǩ֤ʱʧ°Ü¡£\n
navDecryptError=½âÂëʱʧ°Ü¡£\n
# Strings in pref-enigmail-adv.js
testNoSvc=EnigTest£ºEnigmail ´æÈ¡Ê§°Ü
testNoEmail=EnigTest£ºÇëÊäÈëÓÊÖ·ÒÔ±ã²âÊÔ
# Strings in pref-enigmail.js
uninstallConfirm=ÄúÕæµÄҪɾ³ýËùÓÐÔÚMozilla component ºÍ chrome Ŀ¼ÄÚÓë EnigMail Óйصĵµ°¸Âð£¿
uninstallFailOverlay=ÓÉ춸²¸ÇµÄRDFÒÆ³ý EnigMail ʧ°Ü£»²»É¾³ý chrome jar µµ°¸
uninstallFailDelete=ɾ³ýµµ°¸Ê±·¢ÉúÎÊÌâ
uninstallFail=ÒÆ³ý EnigMail ʧ°Ü
uninstallSuccess=EnigMail Òѱ»ÒƳý
# Strings used in components/enigmail.js
# (said file also re-uses some strings given above)
enterPass=ÇëÊäÈëÄú %S µÄÃÜÂë
rememberPass=¼ÇÒä %S ·ÖÖÓ
notInit=´íÎó£Enigmail »¹Î´³õʼ»¯
badCommand=´íÎó£¼Ó½âÖ¸Áîʧ°Ü
cmdLine=Ö¸ÁîģʽºÍÊä³ö£º
notRequired=´íÎó£²»Ðë¼ÓÃÜ
notComplete=´íÎó£²úÉúÔ¿³×δÍê³É
invalidEmail=´íÎó£²»ÕýÈ·µÄÓÊÖ·
noPassphrase=´íÎó£ÎÞÃÜÂëÌṩ
noPGPblock=´íÎó£Ã»ÓÐÎÄ×ÖʽµÄ PGP ×ÊÁÏ
decryptToImport=°´Ï½âÂëÒÔ»ãÈëÓʼþÄڵĹ«¿ªÔ¿³×
extraText=¸½¼ÓÎÄ×ÖÖк¬Óиü¶àµÄ PGP ×ÊÁÏ¡£°´Ï½âÃܼü
toVerify=ÒÔÇ©ÃûÈÏÖ¤¡£
sigMismatch=´íÎó£Ç©ÃûÈÏ֤ʧÅä
cantImport=»ãÈ빫¿ªÔ¿³×ʧ°Ü\n\n
prefUntrusted=²»±»ÐÅÈεÄ
prefRevoked=ÒѷϳýµÄ
prefExpiredKey=ÓâÆÚµÄÔ¿³×
prefExpired=ÓâÆÚµÄ
prefGood=³É¹¦ÈÏÖ¤%SµÄÇ©Ãû
prefBad=ʧ°ÜÈÏÖ¤%SµÄÇ©Ãû
failFingerprint=´íÎó£²ÉÖ¸ÎÆÖ¸Áîʧ°Ü
failMultiple=´íÎó£%SÓжà¸ö¹«¿ªÔ¿³×
failNoKey=´íÎó£ÕÒ²»µ½µÄ%S¹«¿ªÔ¿³×
failOnlyGPG=´íÎó£Ö»ÓÐGPGÔ¿³×¿ÉÒÔ´ÓÔ¿³×ËÅ·þÆ÷ÖÐÈ¡µÃ
failCancel=´íÎó£´ÓÔ¿³×ËÅ·þÆ÷ÖÐÈ¡µÃÔ¿³×±»Ê¹ÓÃÕßÈ¡Ïû
failNoServer=´íÎó£Ã»ÓÐÖ¸¶¨µÄÔ¿³×ËÅ·þÆ÷ÒÔÈ¡µÃÔ¿³×
failNoID=´íÎó£Ã»ÓÐÖ¸¶¨µÄÔ¿³×±àºÅ
failKeyExtract=´íÎó£Ô¿³×È¡µÃÖ¸Áîʧ°Ü
notFirstBlock=´íÎó£µÚÒ» PGP×ÊÁϷǹ«¿ªÔ¿³××ÊÁÏ
importKeyConfirm=ÔÚµÄǶÈëµÄÓʼþÖлãÈ빫¿ªÔ¿³×
importKey=´Ó»ãÈëÔ¿³×ËÅ·þÆ÷¹«¿ªÔ¿³×±àºÅ%S
enigmail/lang/zh-CN/help/ 0000775 0000000 0000000 00000000000 12667016244 0015443 5 ustar 00root root 0000000 0000000 enigmail/lang/zh-CN/help/compose.html 0000664 0000000 0000000 00000007043 12667016244 0020002 0 ustar 00root root 0000000 0000000
Enigmail 帮助: 撰写邮件
Enigmail 帮助
在撰写邮件时使用 Enigmail
- 邮件/撰写窗å£ä¸çš„ Enigmail èœå•
- æ•°å—ç¾å邮件: å¯ç”¨/ç¦ç”¨å‘逿•°å—ç¾å邮件。数å—ç¾å失败时用户将收到æç¤ºã€‚
- åŠ å¯†é‚®ä»¶: 在邮件å‘出之å‰å¯ç”¨/ç¦ç”¨é’ˆå¯¹æ‰€æœ‰æ”¶ä»¶äººçš„é‚®ä»¶åŠ å¯†ã€‚åŠ å¯†å¤±è´¥æ—¶ç”¨æˆ·å°†æ”¶åˆ°æç¤ºã€‚
如果您在 选项 -> 密钥选择 æ ‡ç¾ä¸è®¾ç½®äº† 在需è¦çš„æ—¶å€™æç¤ºé€‰å–密钥 , å½“æ— æ³•æ‰¾åˆ°æ‚¨çš„é‚®ä»¶æ”¶ä»¶äººä¸æŸä¸ªæ”¶ä»¶äººåœ°å€å¯¹åº”的公用密钥时将会弹出一个密钥列表。
如果您在 选项 -> 密钥选择 æ ‡ç¾ä¸è®¾ç½®äº† ä¸è¦æç¤ºé€‰å–密钥 , å½“æ— æ³•æ‰¾åˆ°æ‚¨çš„é‚®ä»¶æ”¶ä»¶äººä¸æŸä¸ªæ”¶ä»¶äººåœ°å€å¯¹åº”的公用密钥时, å°†ä¸åР坆å‘é€é‚®ä»¶ã€‚
- 在本邮件ä¸ä½¿ç”¨ PGP/MIME: å¯ç”¨/ç¦æ¢åœ¨å½“å‰é‚®ä»¶ä¸ä½¿ç”¨
PGP/MIME。
å¦‚æžœæ‚¨ç¡®è®¤æ‚¨çš„æ”¶ä»¶äººèƒ½å¤Ÿå¤„ç† PGP/MIME æ ¼å¼çš„邮件, 您应该使用它。
è¦ä½¿ç”¨æœ¬åŠŸèƒ½, 您必须设置 选项 -> PGP/MIME æ ‡ç¾ä¸çš„ å…许使用 PGP/MIME 或 总是使用 PGP/MIME。
- 默认撰写选项: åèœå•。
- æ•°å—ç¾å/åŠ å¯†é€‰é¡¹...: 访问 叿ˆ·è®¾ç½® ->
OpenPGP é€‰é¡¹çš„å¿«æ·æ–¹å¼
- å‘é€é€‰é¡¹...: 访问 选项 ->
å‘é€ æ ‡ç¾çš„å¿«æ·æ–¹å¼ã€‚
- 密钥选择选项...: 访问 选项 ->
密钥选择 æ ‡ç¾çš„å¿«æ·æ–¹å¼ã€‚
- PGP/MIME 选项...: 访问 选项 -> PGP/MIME æ ‡ç¾çš„å¿«æ·æ–¹å¼ã€‚
- å–æ¶ˆåР坆: Enigmail ä¸ä¼šæŽ¢æµ‹åˆ°å‘é€é‚®ä»¶è¿‡ç¨‹ä¸çš„错误,例如 POP 未接å—è¯·æ±‚ï¼Œå½“å› å‡ºçŽ°æ¤ç±»æƒ…况导致å‘é€é‚®ä»¶å¤±è´¥æ—¶ï¼Œæ¯«æ— æ„ä¹‰çš„å·²åŠ å¯†ä¿¡ä»¶å°†ä¼šæ˜¾ç¤ºåœ¨é‚®ä»¶æ’°å†™çª—å£ä¸ã€‚通过选择æ¤èœå•您å¯ä»¥å–æ¶ˆåŠ å¯†/æ•°å—ç¾åï¼Œå°†é‚®ä»¶æ’°å†™çª—å£æ¢å¤æˆåŽŸå§‹æ–‡æœ¬ã€‚
作为一个临时的解决方案,该选项也å¯ç”¨äºŽåœ¨å›žå¤æŸåŠ å¯†é‚®ä»¶æ—¶è§£å¯†è¢«å¼•ç”¨çš„æ–‡æœ¬ã€‚Enigmail 应该å¯ä»¥è‡ªåŠ¨è§£å¯†è¢«å¼•ç”¨çš„é‚®ä»¶ï¼Œä½†æ˜¯å¦‚æžœå®ƒæ²¡èƒ½è‡ªåŠ¨è§£å¯†ï¼Œæ‚¨å¯ä»¥ä½¿ç”¨æ¤èœå•强制其执行解密动作。
- æ’入公用密钥: 在邮件撰写窗å£çš„当å‰å…‰æ ‡ä½ç½®æ’å…¥ ASCII-armored æ ¼å¼çš„公用密钥段。它还将æç¤ºæ‚¨è¾“å…¥è¦æ’入的密钥对应的邮件地å€ã€‚ä»¥è¿™ç§æ–¹å¼æ’入的密钥å¯ä»¥è¢«æŽ¥å—方的 Enigmail 自动识别。æ’入密钥之åŽï¼Œæ‚¨ä»å¯ä»¥æ ¹æ®éœ€è¦é€‰æ‹©å¯¹é‚®ä»¶è¿›è¡Œæ•°å—ç¾å/åŠ å¯†ã€‚é™¤æ¤ä¹‹å¤–,请ä¸è¦åœ¨é‚®ä»¶ä¸æ’入多个密钥段; è¿™ç§æƒ…况下åªè¦åœ¨æŽ¥æ”¶åˆ°æç¤ºçš„æ—¶å€™æŒ‡å®šå¤šä¸ªç”¨é€—å·æˆ–è€…ç©ºæ ¼åˆ†éš”çš„é‚®ä»¶åœ°å€å³å¯ã€‚
- 清除缓å˜çš„å£ä»¤: 清除缓å˜çš„å£ä»¤ã€‚å¦‚æžœæ‚¨åŒæ—¶ä½¿ç”¨å¤šä¸ªå£ä»¤è¿™ä¸ªåŠŸèƒ½å°†ä¼šå¾ˆæœ‰ç”¨ã€‚
- 帮助: 从网站获å–å¸®åŠ©ä¿¡æ¯ (本页)。
您å¯ä»¥ä»Ž
Enigmail 帮助网页获得更多的帮助
enigmail/lang/zh-CN/help/editRcptRule.html 0000664 0000000 0000000 00000012125 12667016244 0020740 0 ustar 00root root 0000000 0000000
Enigmail 帮助: 编辑 OpenPGP 规则
Enigmail 帮助
使用 Enigmail 规则编辑器: 编辑 OpenPGP 规则
在规则编辑器ä¸ï¼Œæ‚¨å¯ä»¥ä¸ºæ¯ä¸ªæ”¶ä»¶äººå•独指定
åŠ å¯†ï¼Œæ•°å—ç¾åå’Œ PGP/MIME,并定义è¦ä½¿ç”¨çš„ OpenPGP 密钥。通过这个
å¯¹è¯æ¡†ï¼Œæ‚¨å¯ä»¥ä¸ºå•个收件人定义规则,也å¯ä»¥ä¸ºå…·æœ‰ç›¸ä¼¼å±žæ€§çš„一组
收件人定义规则。
- 为如下收件人设置 OpenPGP 规则: åŒ…å«æ”¶ä»¶äººçš„电åé‚®ä»¶åœ°å€ (ä¸åŒ…å«å§“å,例如: 类似
somebody@email.domain 的电å邮件地å€)。您å¯ä»¥ä½¿ç”¨ç©ºæ ¼åˆ†éš”多个ä¸åŒçš„电å邮件地å€ã€‚
电å邮件地å€ä»…包å«åŸŸå部分则å¯ä»¥åŒ¹é…å‘往该域的任何邮件,
例如: @email.domain å°†åŒ¹é… body@email.domainã€
somebody@email.domainã€anybody@email.domain ç‰ç‰ã€‚
- å¦‚æžœæ”¶ä»¶äººåœ°å€ ...:
æ¤é¡¹ä¿®æ”¹é‚®ä»¶åœ°å€çš„匹é…规则。
如果输入了多个地å€ï¼Œè¯¥è®¾ç½®å°†åº”用于所有地å€ã€‚
下é¢çš„示例å‡å®šåœ¨ä¸Šé¢çš„ OpenPGP 规则 æ ä¸è¾“入了 body@email.domain。
- 与上述æŸé‚®ä»¶åœ°å€å®Œå…¨ç›¸åŒ: 使用æ¤è®¾ç½®ï¼Œåªæœ‰é‚®ä»¶åœ°å€ä¸Ž body@email.domain å®Œå…¨ç›¸åŒæ‰ä¼šè§¦å‘规则(完全相åŒï¼Œå¤§å°å†™æ•感匹é…)。
- 包å«ä¸Šè¿°é‚®ä»¶åœ°å€ä¸çš„å—符: 使用æ¤è®¾ç½®ï¼Œä»»ä½•包å«ä¸Šè¿°å—符的邮件地å€éƒ½å°†è¢«
匹é…到,
例如: anybody@email.domain 或 body@email.domain.net
- 以上述æŸé‚®ä»¶åœ°å€å¼€å¤´: 使用æ¤è®¾ç½®ï¼Œä»»ä½•以上述å—符开头的邮件地å€éƒ½å°†è¢«
匹é…到,例如: body@email.domain.netã€
body@email.domain-name.com。
- 以上述æŸé‚®ä»¶åœ°å€ç»“å°¾: 使用æ¤è®¾ç½®ï¼Œä»»ä½•以上述å—符结尾的邮件地å€éƒ½å°†è¢«
匹é…到,例如: anybody@email.domainã€
somebody@email.domain。
- 如果邮件地å€ç¬¦åˆæ¡ä»¶åˆ™æµ‹è¯•下一æ¡è§„则
通过å¯ç”¨æ¤åŠŸèƒ½ï¼Œæ‚¨å°†å¯ä»¥ä¸å¿…为æŸä¸ªé‚®ä»¶åœ°å€åœ¨ 使用下列 OpenPGP å¯†é’¥è¿›è¡ŒåŠ å¯†æˆ–æ•°å—ç¾å: æ 䏿Œ‡å®š
密钥,直到å‘é€çš„æ—¶å€™å†ä¸ºå‘往该地å€çš„邮件选择一个è¦ä½¿ç”¨çš„密钥。
æ¤å¤–,匹é…这些邮件地å€çš„åŽç»è§„则还会相继处ç†ã€‚
- 如果邮件地å€ç¬¦åˆæ¡ä»¶åˆ™ä¸å†æµ‹è¯•åŽç»è§„则
å¯ç”¨æ¤åŠŸèƒ½å°†ä¼šåœæ¢å¤„ç†ä»»ä½•匹é…这些邮件地å€çš„åŽç»è§„则; 例如: 如果邮件地å€ç¬¦åˆ
æ¡ä»¶åˆ™æµ‹è¯•下一æ¡è§„则。
- 使用下列 OpenPGP å¯†é’¥è¿›è¡ŒåŠ å¯†æˆ–æ•°å—ç¾å:
通过 选择密钥(S)... æŒ‰é’®é€‰æ‹©åŠ å¯†ç”¨çš„æ”¶ä»¶äººå¯†é’¥ã€‚
与上é¢çš„动作相åŒï¼Œæ¤é¡¹è§„则匹é…åŽå°†ä¸å†å¤„ç†èƒ½å¤ŸåŒ¹é…çš„åŽç»è§„则。
- æ•°å—ç¾å: å¯ç”¨æˆ–ç¦ç”¨
电å邮件数å—ç¾å。æ¤é€‰é¡¹å°†ä½¿ç”¨æˆ–者å–代您在邮件撰写窗å£é€‰æ‹©çš„设置。
其值为:
- 从ä¸: ç¦ç”¨æ•°å—ç¾å,å³ä¾¿å·²ç»åœ¨é‚®ä»¶æ’°å†™çª—å£åšå‡ºé€‰æ‹©
(å–代其他值)
- 在撰写邮件时选择: 使用在邮件撰写窗å£ä¸é€‰æ‹©çš„设置
- 总是: å¯ç”¨æ•°å—ç¾å,å³ä¾¿æ‚¨åœ¨é‚®ä»¶æ’°å†™çª—å£ å¹¶æœª å¯ç”¨æ•°å—ç¾å
这些数å—ç¾å设置将应用于所有匹é…的规则。如果有任æ„一æ¡
规则ç¦ç”¨äº†æ•°å—ç¾å,ä¸ç®¡å…¶ä»–è§„åˆ™æ˜¯å¦æŒ‡å®šäº†æ€»æ˜¯è¿›è¡Œæ•°å—ç¾å,该邮件都ä¸ä¼šè¢«æ•°å—ç¾å.
- åŠ å¯†: å¯ç”¨æˆ–ç¦ç”¨
é‚®ä»¶åŠ å¯†ã€‚å¯é€‰çš„设置åŠå…¶å«ä¹‰åŒæ•°å—ç¾å.
- PGP/MIME: å¯ç”¨æˆ–ç¦ç”¨
PGP/MIME (RFC 3156) 邮件编ç 。
如果ç¦ç”¨äº† PGP/MIME,信件将使用 "åµŒå…¥å¼ PGP" ç¼–ç 。å¯é€‰çš„设置åŠå…¶å«ä¹‰åŒæ•°å—ç¾å。
所有的规则将会按照 OpenPGP 规则编辑器 列表ä¸çš„顺åºé€ä¸ªå¤„ç†ã€‚å½“ä»»ä¸€åŒ…å« OpenPGP
å¯†é’¥æ ‡è¯†çš„è§„åˆ™æˆåŠŸåŒ¹é…一个收件人,我们除了为这个收件人使用规则ä¸åŒ…å«çš„密钥之外,还将在åŽç»çš„规则
测试ä¸å¿½ç•¥è¯¥æ”¶ä»¶äººã€‚
您å¯ä»¥ä»Ž
Enigmail æ¯æ”¶ä»¶äººè®¾ç½®å¸®åЩ页 获得更多帮助
enigmail/lang/zh-CN/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020316 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/zh-CN/help/messenger.html 0000664 0000000 0000000 00000007460 12667016244 0020330 0 ustar 00root root 0000000 0000000
Enigmail 帮助: 阅读邮件
Enigmail 帮助
在阅读邮件的时候使用 Enigmail
- 主邮件窗å£ä¸çš„解密按钮
这个按钮有多ç§ç”¨é€”: 解密ã€éªŒè¯æˆ–导入
公用密钥。一般情况下 解密/éªŒè¯ åŠ¨ä½œåº”è¯¥è‡ªåŠ¨æ‰§è¡Œ(å¯ä»¥ä»Žå±žæ€§è®¾ç½®é‡Œç¦ç”¨è‡ªåŠ¨è§£å¯†/验è¯)。
当å‘生错误时 Enigmail 状æ€è¡Œä¼šæ˜¾ç¤ºä¸€ä¸ªç®€çŸçš„错误信æ¯ã€‚这时如果您点击
解密按钮,您将会看到错误的详细信æ¯ï¼Œä»¥åŠ GnuPG 命令的输出信æ¯ã€‚
- 邮件头显示区域ä¸çš„é’¢ç¬”å›¾æ ‡å’Œé’¥åŒ™å›¾æ ‡
è¿™äº›åœ¨é‚®ä»¶å¤´æ˜¾ç¤ºåŒºåŸŸä¸æ˜¾ç¤ºçš„ 钢笔 å’Œ 钥匙 å›¾æ ‡å¯ä»¥æŒ‡ç¤ºæ‚¨æ£åœ¨é˜…读的邮件
是å¦ç»è¿‡æ•°å—ç¾åæˆ–åŠ å¯†ä»¥åŠè¿™ä¸ªæ•°å—ç¾å是å¦å®Œå¥½ï¼Œä¾‹å¦‚: 该邮件在数å—ç¾å之åŽä¸ºè¢«ç¯¡æ”¹ã€‚如果邮件
å·²ç»è¢«ç¯¡æ”¹ï¼Œé‚£ä¸ª 钢笔 å›¾æ ‡å°†ä¼šå˜æˆä¸€ä¸ª 折æ–的钢笔 æ¥æŒ‡ç¤ºæ•°å—ç¾åå·²ç»
éåˆ°ç ´åã€‚åœ¨é’¢ç¬”æˆ–è€…é’¥åŒ™å›¾æ ‡ä¸Šé¢ç‚¹å‡»å³é”®å°†ä¼šå‡ºçŽ°å¸¦æœ‰å¦‚ä¸‹é€‰é¡¹çš„èœå•:
- OpenPGP 安全信æ¯: å…许您查看该邮件的 GnuPG 命令输出的状æ€ä¿¡æ¯ã€‚
- å¤åˆ¶ OpenPGP 安全信æ¯: å°† GnuPG 输出的状æ€ä¿¡æ¯å¤åˆ¶åˆ°å‰ªè´´æ¿ï¼›ä»¥ä¾¿ç²˜è´´åˆ°
回å¤é‚®ä»¶ä¸ï¼Œç‰ç‰ã€‚
- 查看 OpenPGP 相片: 如果å‘件人在他的公用密钥ä¸åµŒå…¥äº†ç›¸ç‰‡ï¼Œè¿™ä¸ª
选项将å…许您查看它。
(æ¤é€‰é¡¹ä»…在密钥ä¸å˜åœ¨ç›¸ç‰‡æ—¶å¯ç”¨ã€‚)
- S/MIME 安全信æ¯: å…许您查看该邮件的 S/MIME 安全信æ¯ã€‚
如果您的 gpg.conf æ–‡ä»¶ä¸æ²¡æœ‰è®¾ç½®
keyserver-options auto-key-retrieve,当您阅读一å°ç»è¿‡æ•°å—ç¾å或者
åŠ å¯†çš„é‚®ä»¶çš„æ—¶å€™ï¼Œæ‚¨ä¼šçœ‹åˆ°é‚®ä»¶å¤´æ˜¾ç¤ºåŒºåŸŸçš„ 钢笔 å›¾æ ‡ä¸Šé¢æœ‰ä¸ª é—®å·ï¼Œ
邮件头区域ä¸çš„ Enigmail 状æ€è¡Œå°†ä¼šæ˜¾ç¤º 邮件包å«å·² æ•°å—ç¾å 部分
;请点击“钢笔â€å›¾æ ‡æŸ¥çœ‹è¯¦ç»†ä¿¡æ¯ å¹¶ä¸”é‚®ä»¶æ£æ–‡æ˜¾ç¤ºéƒ¨åˆ†
将显示全部 OpenPGP 段指示符å·å’Œå…¨éƒ¨æ•°å—ç¾å段。
䏿žœå³ä½¿æ‚¨åœ¨ gpg.conf 文件ä¸è®¾ç½®äº† keyserver-options auto-key-retrieveï¼Œå½“æ— æ³•ä»Žé»˜è®¤å¯†é’¥æœåŠ¡å™¨æ‰¾åˆ°å‘ä»¶äººçš„å¯†é’¥æ—¶æ‚¨ä¹Ÿä¼šçœ‹åˆ°æ¤æç¤ºã€‚
点击该 带有问å·çš„钢笔 å°†ä¼šå¼¹å‡ºä¸€ä¸ªçª—å£æç¤ºæ‚¨çš„å¯†é’¥é“¾ä¸åŒ…å«è¯¥å‘件人的密钥。
æ¤æ—¶ç‚¹å‡»â€œç¡®å®šâ€å°±ä¼šå¼¹å‡ºå¦ä¸€ä¸ªå¸¦æœ‰å¯†é’¥æœåŠ¡å™¨åˆ—è¡¨çš„çª—å£ä»¥ä¾¿æ‚¨ä»Žä¸é€‰æ‹©ä¸€ä¸ªæœåС噍æ¥ä¸‹è½½
å‘件人的公用密钥。
您å¯ä»¥é€šè¿‡åœ¨ Enigmail -> 选项 -> 基本 æ ‡ç¾çš„ 密钥æœåС噍:
框ä¸è¾“入以逗å·åˆ†éš”的密钥æœåŠ¡å™¨åœ°å€æ¥é…ç½®ä¸Šé¢æåˆ°çš„å¯†é’¥æœåŠ¡å™¨åˆ—è¡¨çª—å£ä¸æ˜¾ç¤ºçš„æœåŠ¡å™¨ã€‚
这里所填写的第一个密钥æœåŠ¡å™¨å°†è¢«ä½œä¸ºé»˜è®¤å¯†é’¥æœåŠ¡å™¨ã€‚
- æŸ¥çœ‹åŠ å¯†çš„é™„ä»¶ / 导入附件ä¸çš„ OpenPGP 密钥
Enigmail 将自动识别文件å为 *.pgp〠*.asc å’Œ *.gpg 的附件并对其进行特别处ç†ã€‚
在æ¤ç±»é™„件上é¢ç‚¹å‡»å³é”®å¼¹å‡ºçš„èœå•将会有两个特殊的选项: 解密并打开
å’Œ 解密并ä¿å˜ã€‚如果您希望利用 Enigmail 查看或ä¿å˜åŠ å¯†çš„é™„ä»¶ï¼Œ
å¯ä»¥ä½¿ç”¨è¿™ä¸¤ä¸ªé€‰é¡¹ã€‚如果附件被识别为 OpenPGP 密钥文件,Enigmail
将引导您将它导入您的密钥链。
您å¯ä»¥ä»Ž
Enigmail 帮助网页获得更多帮助
enigmail/lang/zh-CN/help/rulesEditor.html 0000664 0000000 0000000 00000005615 12667016244 0020641 0 ustar 00root root 0000000 0000000
Enigmail帮助: 规则编辑器
Enigmail帮助
使用 Enigmail 规则编辑器
åœ¨è§„åˆ™ç¼–è¾‘å™¨ä¸æ‚¨å¯ä»¥ä¸ºæ¯ä¸ªæ”¶ä»¶äººé»˜è®¤è®¾ç½®åР坆ã€ç¾åå’ŒPGP/MIME,以åŠå®šä¹‰ä½¿ç”¨æŸä¸ª OpenPGP 密钥。æ¯ä¸€æ¡è§„则由5ä¸ªå—æ®µç»„æˆï¼Œå¹¶ä¸”æ¯æ¡è§„则å 一行:
- 电å邮件: è¦ä»Ž To:ã€Cc: å’Œ Bcc: å—æ®µ
ä¸åŒ¹é…的电å邮件地å€ã€‚该匹é…使用 åå—串 åŒ¹é…æ–¹å¼å·¥ä½œ(详细信æ¯è¯·è§
è§„åˆ™ç¼–è¾‘å¯¹è¯æ¡†)
- OpenPGP 密钥: 为收件人使用的 OpenPGP
å¯†é’¥æ ‡è¯†çš„åˆ—è¡¨
- æ•°å—ç¾å: å¯ç”¨æˆ–ç¦ç”¨
电å邮件数å—ç¾å。æ¤é€‰é¡¹å°†ä½¿ç”¨æˆ–者å–代您在邮件撰写窗å£é€‰æ‹©çš„设置。
其值为:
- 从ä¸: ç¦ç”¨æ•°å—ç¾å,å³ä¾¿å·²ç»åœ¨é‚®ä»¶æ’°å†™çª—å£åšå‡ºé€‰æ‹©
(å–代其他值)
- 在撰写邮件时选择: 使用在邮件撰写窗å£ä¸é€‰æ‹©çš„设置
- 总是: å¯ç”¨æ•°å—ç¾å,å³ä¾¿æ‚¨åœ¨é‚®ä»¶æ’°å†™çª—å£ å¹¶æœª å¯ç”¨æ•°å—ç¾å
这些数å—ç¾å设置将应用于所有匹é…的规则。如果有任æ„一æ¡
规则ç¦ç”¨äº†æ•°å—ç¾å,ä¸ç®¡å…¶ä»–è§„åˆ™æ˜¯å¦æŒ‡å®šäº†æ€»æ˜¯è¿›è¡Œæ•°å—ç¾å,该邮件都ä¸ä¼šè¢«æ•°å—ç¾å。
- åŠ å¯†: å¯ç”¨æˆ–ç¦ç”¨
é‚®ä»¶åŠ å¯†ã€‚å¯é€‰çš„设置åŠå…¶å«ä¹‰åŒæ•°å—ç¾å。
- PGP/MIME: å¯ç”¨æˆ–ç¦ç”¨
PGP/MIME (RFC 3156) 邮件编ç 。
如果ç¦ç”¨äº† PGP/MIME,信件将使用 "åµŒå…¥å¼ PGP" ç¼–ç 。å¯é€‰çš„设置åŠå…¶å«ä¹‰åŒæ•°å—ç¾å。
所有的规则将会按照 OpenPGP 规则编辑器 列表ä¸çš„顺åºé€ä¸ªå¤„ç†ã€‚å½“ä»»ä¸€åŒ…å« OpenPGP
å¯†é’¥æ ‡è¯†çš„è§„åˆ™æˆåŠŸåŒ¹é…一个收件人,我们除了为这个收件人使用规则ä¸åŒ…å«çš„密钥之外,还将在åŽç»çš„规则
测试ä¸å¿½ç•¥è¯¥æ”¶ä»¶äººã€‚
注æ„: 规则编辑器的功能还ä¸å®Œå…¨ã€‚ ä½ å¯ä»¥é€šè¿‡ç›´æŽ¥ç¼–辑规则文件æ¥å†™æ›´å¤šé«˜çº§çš„规则(ä¸è¦å†åœ¨è§„则编辑器ä¸ç¼–辑这些规则)。直接编辑规则文件的更详细帮助 å¯ä»¥ Enigmail 的主页上找到
您å¯ä»¥ä»Ž
Enigmail 帮助web页上获得更多的帮助信æ¯
enigmail/lang/zh-CN/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0020777 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/lang/zh-TW/ 0000775 0000000 0000000 00000000000 12667016244 0014545 5 ustar 00root root 0000000 0000000 enigmail/lang/zh-TW/am-enigprefs.properties 0000664 0000000 0000000 00000000122 12667016244 0021233 0 ustar 00root root 0000000 0000000 # Strings used in the Mozill AccountManager
prefPanel-enigprefs=OpenPGP 安全性
enigmail/lang/zh-TW/enigmail.dtd 0000664 0000000 0000000 00000120136 12667016244 0017032 0 ustar 00root root 0000000 0000000
OpenPGP 安全性)">
注æ„:生æˆå¯†é‘°éœ€è¦æ•¸åˆ†é¾æ™‚é–“ã€‚åœ¨æ¤æœŸé–“è«‹ä¸è¦é€€å‡ºç¨‹å¼ã€‚活跃的网é ç€è¦½æˆ–ç£ç›¤æ“作å¯ä»¥åˆ·æ–°ã€Žéš¨æ©Ÿæ± ã€ï¼Œå¾žè€ŒåŠ å¿«é€Ÿåº¦ã€‚å¯†é‘°ç”Ÿæˆå®Œæˆæ™‚您將會得到æç¤ºã€‚">
ã€æ˜¯ç„¡æ•ˆçš„。">
注æ„:密鑰生æˆéœ€è¦æ•¸åˆ†é˜çš„æ™‚間。密鑰生æˆéŽç¨‹ä¸è«‹å‹¿é€€å‡ºç¨‹å¼ã€‚密鑰生æˆå®Œæˆæ™‚您將會收到æç¤ºã€‚">
注æ„:無論是å¦å•Ÿç”¨ï¼ŒEnigmailå°‡å§‹çµ‚é©—è‰æ‰€æœ‰å¸³è™Ÿæˆ–身份的郵件ä¸çš„ç°½å。">
公鑰 是 用來讓其他人 å¯„åŠ å¯†è¨Šæ¯çµ¦æ‚¨çš„。您å¯ä»¥ç™¼çµ¦ä»»ä½•人。">
ç§é‘° 是 用來讓您自己 è§£é–‹åŠ å¯†éƒµä»¶æˆ–ç°½ç½²éƒµä»¶ç”¨çš„ã€‚
ä¸è¦æ´©æ¼çµ¦ä»»ä½•人。">
ç§é‘° 是 用來讓您自己 è§£é–‹åŠ å¯†éƒµä»¶æˆ–ç°½ç½²éƒµä»¶ç”¨çš„ã€‚
ä¸è¦æ´©æ¼çµ¦ä»»ä½•人。
為了讓您的ç§é‘°æœ‰å¤šä¸€å±¤ä¿è·ï¼Œæ‚¨å°‡åœ¨æŽ¥ä¸‹ä¾†å…©å€‹è¦–窗被æç¤ºè¼¸å…¥å¯†èªžã€‚">
密語 是用來ä¿è·æ‚¨çš„ç§é‘°çš„密碼,å¯é˜²æ¢æ‚¨çš„ç§é‘°è¢«æ¿«ç”¨ã€‚">
ä¸ å»ºè°æ‚¨ä½¿ç”¨è®ŠéŸ³å—æ¯ï¼ˆä¾‹å¦‚ äã€Ã©ã€Ã±ï¼‰æˆ–其他語言的特殊å—元。">
您將會為æ¤è¢«æç¤ºè¼¸å…¥å¯†ç¢¼ã€‚">
感è¬ä½¿ç”¨Enigmail。">
enigmail/lang/zh-TW/enigmail.properties 0000664 0000000 0000000 00000063307 12667016244 0020461 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
enigAlert=Enigmail è¦å‘Š
enigConfirm=Enigmail 確èª
enigError=Enigmail 錯誤
enigPrompt=Enigmail æç¤º
dlgYes=是 (&Y)
dlgNo=å¦ (&N)
dlgKeepSetting=è¨˜ä½æˆ‘çš„ç”æ¡ˆï¼Œä¸è¦å†å•我
dlgNoPrompt=ä¸å†é¡¯ç¤ºæ¤å°è©±æ¡†
dlg.button.delete=刪除 (&D)
dlg.button.cancel=å–æ¶ˆ (&C)
dlg.button.close=關閉 (&C)
dlg.button.continue=繼續 (&T)
dlg.button.skip=ç•¥éŽ (&S)
dlg.button.view=檢視 (&V)
dlg.button.retry=é‡è©¦ (&R)
dlg.button.ignore=忽略 (&I)
repeatPrefix=\n\n該è¦å‘Šé‡è¤‡ %S。
repeatSuffixSingular=次
repeatSuffixPlural=次
noRepeat=\n\n您å‡ç´š Enigmail å‰å°‡ä¸å†é‡è¤‡å‡ºç¾æ¤è¦å‘Šã€‚
pgpNotSupported=您似乎æ£åŒæ™‚使用 Enigmail å’Œ PGP 6.x。\n\nPGP 6.x 有諸多å•é¡Œï¼Œé€ æˆ Enigmail 無法æ£å¸¸å·¥ä½œã€‚å› æ¤ï¼ŒEnigmail ä¸å†æ”¯æŒ PGP 6.x,請改用 GnuPG(GPG)。\n\n如果您需è¦è½‰æ›è‡³ GnuPG 的幫助,請åƒè€ƒ Enigmail 網站的 Help 段è½ã€‚
initErr.howToFixIt=å¿…é ˆè¦æœ‰ GnuPG æ‰èƒ½ä½¿ç”¨ Enigmailã€‚è‹¥æ‚¨é‚„æ²’æœ‰å®‰è£ GnuPG,最簡單的方å¼å°±æ˜¯ç›´æŽ¥ä½¿ç”¨ä¸‹æ–¹çš„「安è£ç²¾éˆã€ã€‚
initErr.setupWizard.button=安è£ç²¾éˆ (&S)
passphraseCleared=已清除密碼。
noPhotoAvailable=ç„¡å¯ç”¨ç…§ç‰‡
debugLog.title=Enigmail 除錯紀錄
error.photoPathNotReadable=無法讀å–照片路徑「%Sã€ã€‚
# Strings in configure.jsm
enigmailCommon.versionSignificantlyChanged=這個新版的 Enigmail 在處ç†è¨å®šèˆ‡é¸é …上有大幅度的變更。我們已嘗試移轉舊版的è¨å®šåˆ°é€™å€‹ç‰ˆæœ¬ï¼Œä½†ç„¡æ³•è‡ªå‹•è½‰æ›æ‰€æœ‰è¨å®šã€‚è«‹å†æ¬¡æª¢æŸ¥æ–°çš„è¨å®šæœ‰æ²’有å•題。
enigmailCommon.checkPreferences=檢查å好è¨å®šâ€¦
usingVersion=使用 Enigmail 版本 %S
usingAgent=使用 %1$S 執行檔 %2$S ä¾†é€²è¡ŒåŠ è§£å¯†
agentError=錯誤: 無法å˜å– Enigmime æœå‹™ï¼
accessError=å˜å– Enigmail æœå‹™æ™‚發生錯誤
onlyGPG=Enigmail 僅能使用 GnuPGï¼ˆéž PGP)產生金鑰ï¼
keygenComplete=金鑰產生完æˆï¼å°‡ä½¿ç”¨ <%S> 身份簽署。
revokeCertRecommended=æˆ‘å€‘å¼·çƒˆå»ºè°æ‚¨ç‚ºé‡‘鑰產生撤銷憑è‰ã€‚當金鑰éºå¤±æˆ–æ´©æ¼æ™‚,å¯ä½¿ç”¨è©²æ†‘è‰è®“金鑰失效。您è¦ç”¢ç”Ÿé€™æ¨£çš„æ’¤éŠ·æ†‘è‰å—Žï¼Ÿ
keyMan.button.generateCert=ç”¢ç”Ÿæ†‘è‰ (&G)
genCompleteNoSign=金鑰產生完æˆï¼
genGoing=已在產生金鑰ï¼
passNoMatch=密語ä¸ç›¸åŒï¼Œè«‹é‡æ–°è¼¸å…¥ã€‚
passCheckBox=è‹¥ä¸è¦ç‚ºé‡‘é‘°æŒ‡å®šå¯†èªžè«‹å‹¾é¸æ¤æ¬„ä½
passUserName=請指定æ¤èº«ä»½çš„使用者å稱。
keygen.passCharProblem=您在密語ä¸ä½¿ç”¨ç‰¹æ®Šå—元,但å¯èƒ½æœƒåœ¨å…¶ä»–應用程å¼ä¸é€ æˆå•é¡Œã€‚æˆ‘å€‘å»ºè°æ‚¨åªä½¿ç”¨ä¸‹åˆ—å—å…ƒ:\na-z A-Z 0-9 /.;:-,!?(){}[]%*
passSpaceProblem=由於技術å•題,您的密語ä¸èƒ½ä»¥ç©ºç™½é–‹å§‹æˆ–çµæŸã€‚
changePassFailed=密語更改失敗。
keyConfirm=是å¦ç‚ºã€Œ%Sã€ç”¢ç”Ÿå…¬é‘°å’Œç§é‘°ï¼Ÿ
keyMan.button.generateKey=產生金鑰 (&G)
keyAbort=åœæ¢ç”¢ç”Ÿé‡‘鑰?
keyMan.button.generateKeyAbort=åœæ¢ç”¢ç”Ÿé‡‘é‘° (&A)
keyMan.button.generateKeyContinue=繼續產生金鑰 (&C)
expiryTooLong=æ‚¨ç„¡æ³•å»ºç«‹ä¸€æŠŠè¶…éŽ 100 å¹´å¾Œæ‰æœƒéŽæœŸçš„金鑰。
expiryTooLongShorter=æ‚¨ç„¡æ³•å»ºç«‹ä¸€æŠŠè¶…éŽ 90 å¹´å¾Œæ‰æœƒéŽæœŸçš„金鑰。
expiryTooShort=æ‚¨çš„é‡‘é‘°å¿…é ˆè‡³å°‘æœ‰æ•ˆ 1 天。
dsaSizeLimit=DSA 簽署金鑰被é™åˆ¶ç‚º 3072 bit。金鑰將會被縮å°ã€‚
keyGenFailed=金鑰產生失敗。請檢查 Enigmail 主控å°ï¼ˆé¸å–® > Enigmail > Enigmail 除錯)以å–得更多資訊。
setKeyExpirationDateFailed=ç„¡æ³•è®Šæ›´éŽæœŸæ—¥
# Strings in enigmailMessengerOverlay.js
securityInfo=Enigmail 安全資訊\n\n\n
enigHeader=Enigmail:
enigContentNote=Enigmail: * æ¤è¨Šæ¯é™„ä»¶å°šæœªç¶“ç°½ç½²æˆ–åŠ å¯† *\n\n\n
possiblyPgpMime=å¯èƒ½æ˜¯ç”± PGP/MIME åŠ å¯†æˆ–ç°½ç½²çš„è¨Šæ¯ï¼Œè«‹é»žæ“Šã€Œè§£å¯†ã€æŒ‰éˆ•以驗è‰ã€‚
noDecrypted=沒有已解密的訊æ¯å¯ä»¥å„²å˜ï¼\n請使用「檔案ã€é¸å–®çš„「儲å˜ã€æŒ‡ä»¤ã€‚
noMessage=沒有å¯å„²å˜çš„訊æ¯ï¼
useButton=è«‹é»žæ“Šã€Œè§£å¯†ã€æŒ‰éˆ•來解密訊æ¯ã€‚
saveHeader=Enigmail: 儲å˜è§£å¯†è¨Šæ¯
saveAttachmentHeader=Enigmail: 儲å˜è§£å¯†é™„ä»¶
noTempDir=找ä¸åˆ°å¯å¯«å…¥çš„ç«™å˜ç›®éŒ„,\nè«‹è¨å®š TEMP ç’°å¢ƒåƒæ•¸
attachmentPgpKey=您æ£è¦é–‹å•Ÿçš„附件「%Sã€å¯èƒ½æ˜¯ OpenPGP 金鑰。\n\n點擊「匯入ã€ä¾†åŒ¯å…¥åŒ…å«çš„金鑰,或點擊「檢視ã€åœ¨ç€è¦½å™¨è¦–çª—ä¸æª¢è¦–該檔案
beginPgpPart=********* *BEGIN ENCRYPTED or SIGNED PART* *********
endPgpPart=********** *END ENCRYPTED or SIGNED PART* **********
notePartEncrypted=Enigmail: * æ¤è¨Šæ¯éƒ¨åˆ†å…§å®¹æœªç¶“ç°½ç½²æˆ–åŠ å¯† *
noteCutMessage=Enigmail: * 發ç¾å¤šå€‹è¨Šæ¯å€å¡Šï¼Œçµ‚æ¢è§£å¯†/é©—è‰ *
decryptOkNoSig=è¦å‘Š\n\nå·²æˆåŠŸè§£å¯†ï¼Œä½†ç„¡æ³•æ£ç¢ºé©—è‰ç°½ç«
msgOvl.button.contAnyway=還是繼續 (&C)
signature.verifiedOK=æˆåŠŸé©—è‰é™„ä»¶ %S 的簽ç«
signature.verifyFailed=無法驗è‰é™„ä»¶ %S 的簽ç«
attachment.noMatchToSignature=ç°½ç« æª”æ¡ˆä¸æ²’有與「%Sã€ç¬¦åˆçš„ç°½ç«
attachment.noMatchFromSignature=附件䏿²’有與「%Sã€ç¬¦åˆçš„ç°½ç«
fixBrokenExchangeMsg.failed=並未æˆåŠŸä¿®å¾©è¨Šæ¯ã€‚
keysToExport=鏿“‡è¦æ’入的 OpenPGP 金鑰
keysToUse=鏿“‡è¦ç”¨ä¾† %S çš„ OpenPGP 金鑰
pubKey=%S 的公鑰\n
windowLocked=編輯窗å£å·²éŽ–å®šï¼Œå·²å–æ¶ˆå‚³é€ã€‚
sendUnencrypted=Enigmail åˆå§‹åŒ–失敗。\n是å¦è¦å¯„逿œªåŠ å¯†çš„è¨Šæ¯ï¼Ÿ
composeSpecifyEmail=請指定您的主è¦é›»å郵件地å€ï¼Œå®ƒå°‡åœ¨å¯„é€è¨Šæ¯æ™‚ç”¨ä¾†é¸æ“‡è¦ç°½ç½²é‡‘鑰。\n若您留空,將ä¾ç…§è¨Šæ¯çš„寄件地å€ä¾†é¸æ“‡ç°½ç½²ç”¨é‡‘鑰。
sendingHiddenRcpt=æ¤è¨Šæ¯æœ‰å¯†ä»¶å‰¯æœ¬æ”¶ä»¶äººã€‚è‹¥æ¤è¨Šæ¯æ˜¯åŠ å¯†è¨Šæ¯ï¼Œæ‚¨å¯ä»¥éš±è—密件副本收件者,但æŸäº›ç”¢å“使用者(例如 PGP)將無法解密該訊æ¯ã€‚å› æ¤æˆ‘å€‘å»ºè°æ‚¨ä¸è¦åŠ å¯†æœ‰å¯†ä»¶å‰¯æœ¬æ”¶ä»¶è€…çš„è¨Šæ¯ã€‚
sendWithHiddenBcc=éš±è—密件副本收件者
sendWithShownBcc=æ£å¸¸åР坆
sendingNews=åŠ å¯†å‚³é€æ“ä½œä¸æ¢ã€‚\n\nå› ç‚ºæœ‰æ–°èžç¾¤çµ„æ”¶ä»¶è€…ï¼Œç„¡æ³•åŠ å¯†æ¤è¨Šæ¯ã€‚è«‹å–æ¶ˆåŠ å¯†å¾Œå†ç™¼é€ã€‚
sendToNewsWarning=è¦å‘Šï¼šæ‚¨æ£è¦å‘æ–°èžç¾¤çµ„傳é€åŠ å¯†éƒµä»¶ã€‚\n\nåªæœ‰æ–°èžç¾¤çµ„的所有æˆå“¡éƒ½èƒ½è§£å¯†è¨Šæ¯çš„æƒ…å†µä¸‹æ‰æœ‰æ„義(也就是說,訊æ¯éœ€è¦ä½¿ç”¨ç¾¤çµ„䏿‰€æœ‰æˆå“¡çš„é‡‘é‘°åŠ å¯†ï¼‰ï¼Œå› æ¤ä¸æŽ¨è–¦é€™æ¨£åšã€‚請確定您知é“自己æ£åœ¨åšä»€éº¼ã€‚\n\nè¦ç¹¼çºŒå—Žï¼Ÿ
hasHTML=HTML 郵件è¦å‘Š:\næ¤è¨Šæ¯åŒ…å« HTML,å¯èƒ½æœƒä½¿ç°½ç½²æˆ–åŠ å¯†å¤±æ•—ã€‚ç‚ºé¿å…這個情况,您應該在點擊「寫信/å›žè¦†ã€æ™‚æŒ‰ä½ Shift éµä¾†å‚³é€ç¶“簽署的郵件。\n如果您é è¨è¦ç°½ç½²éƒµä»¶ï¼Œæ‚¨æ‡‰è©²ç‚ºæ¤å¸³è™Ÿå–æ¶ˆé¸æ“‡ã€Œç”¨ HTML æ ¼å¼æ’°å¯«éƒµä»¶ã€ä¾†æ°¸ä¹…åœç”¨ HTML。
strippingHTML=訊æ¯ä¸çš„ HTML æ ¼å¼å°‡åœ¨è½‰æ›æˆç´”æ–‡å—以進行簽署/åŠ å¯†æ¶ˆå¤±ã€‚æ‚¨è¦ç¹¼çºŒå—Žï¼Ÿ
msgCompose.button.sendAnyway=還是傳é€è¨Šæ¯ (&S)
attachWarning=æ¤è¨Šæ¯çš„附件ä¸åœ¨æœ¬æ©Ÿï¼Œç„¡æ³•åŠ å¯†ã€‚è‹¥è¦åŠ å¯†é™„ä»¶ï¼Œè«‹å…ˆå°‡å®ƒå€‘å„²å˜è‡³æœ¬æ©Ÿå¾Œå†æ–°å¢žç‚ºé™„件。您還是è¦ç™¼é€è¨Šæ¯å—Žï¼Ÿ
quotedPrintableWarn=您為è¦å‚³é€çš„訊æ¯å•Ÿç”¨äº†ã€Œquoted-printableã€ç·¨ç¢¼ã€‚å¯èƒ½æœƒåœ¨è§£å¯†æˆ–é©—è‰æ™‚出ç¾éŒ¯èª¤ã€‚\n您是å¦è¦é—œé–‰ä»¥ã€Œquoted-printableã€ç·¨ç¢¼ç™¼é€è¨Šæ¯ï¼Ÿ
minimalLineWrapping=您è¨å®šæ¯è¡Œåœ¨ %S å—元後æ›è¡Œã€‚為了æ£ç¢ºåŠ å¯†å’Œç°½ç½²ï¼Œé€™å€‹å€¼æ‡‰è‡³å°‘ç‚º 68。\n您ç¾åœ¨æ˜¯å¦æƒ³æ”¹æˆ 68 å—元後æ›è¡Œï¼Ÿ
warning=è¦å‘Š
signIconClicked=æ‚¨å·²ç¶“æ‰‹å‹•ä¿®æ”¹ç°½ç« ã€‚æ‰€ä»¥ç•¶æ‚¨æ’°å¯«éƒµä»¶çš„æ™‚å€™ï¼Œå•Ÿï¼ˆåœï¼‰ç”¨ç°½ç½²ä¸å†è·Ÿéš¨å•Ÿï¼ˆåœï¼‰ç”¨åŠ å¯†ã€‚
pgpMime_sMime.dlg.text=ç„¡æ³•åŒæ™‚使用 PGP/MIME å’Œ S/MIMEï¼Œè«‹é¸æ“‡æ‚¨è¦å•Ÿç”¨å“ªä¸€å€‹é€šè¨Šå”定。
pgpMime_sMime.dlg.pgpMime.button=使用 PGP/MIME (&P)
pgpMime_sMime.dlg.sMime.button=使用 S/MIME (&S)
errorKeyUnusable=é›»åéƒµä»¶åœ°å€æˆ–金鑰 ID「%Sã€ç„¡æ³•å°æ‡‰åˆ°ä¸€æŠŠå¯ç”¨ä¸”æœªéŽæœŸçš„ OpenPGP 金鑰。\nè«‹ç¢ºèªæ‚¨æœ‰æœ‰æ•ˆçš„ OpenPGP 金鑰,並在帳戶è¨å®šä¸æŒ‡å®šäº†è©²é‡‘鑰。
msgCompose.internalEncryptionError=內部錯誤: promised encryption disabled
msgCompose.toolbarTxt.signAndEncrypt=å°‡ç°½ç½²ä¸¦åŠ å¯†æ¤è¨Šæ¯
msgCompose.toolbarTxt.signOnly=將簽署æ¤è¨Šæ¯
msgCompose.toolbarTxt.encryptOnly=å°‡åŠ å¯†æ¤è¨Šæ¯
msgCompose.toolbarTxt.noEncryption=將䏿œƒç°½ç½²ä¸¦åР坆æ¤è¨Šæ¯
msgCompose.toolbarTxt.disabled=å·²ç‚ºæ‰€é¸æ“‡çš„身分åœç”¨ Enigmail
msgCompose.toolbarTxt.smime=已啟用 S/MIME,å¯èƒ½æœƒèˆ‡ Enigmail è¡çª
msgCompose.detailsButton.accessKey=D
# note: should end with double newline:
sendAborted=已䏿¢å‚³é€ã€‚\n
# details:
keyNotTrusted=金鑰「%Sã€çš„ä¿¡ä»»ç‰ç´šä¸è¶³
keyNotFound=找ä¸åˆ°é‡‘鑰「%Sã€
keyRevoked=金鑰「%Sã€å·²è¢«æ’¤éŠ·
keyExpired=金鑰「%Sã€å·²éŽæœŸ
statPGPMIME=PGP/MIME
statSigned=已簽署
statEncrypted=å·²åŠ å¯†
statPlain=æœªç°½ç½²æˆ–åŠ å¯†
offlineSave=è¦å„²å˜çµ¦ %2$S çš„ %1$S å°è¨Šæ¯åˆ°æœªå¯„出訊æ¯ä¿¡ä»¶åŒ£ä¸å—Žï¼Ÿ
onlineSend=è¦å¯„é€ %1$S å°è¨Šæ¯çµ¦ %1$S 嗎?
encryptKeysNote=註: æ¤è¨Šæ¯ä»¥ä½¿ç”¨ä¸‹åˆ—使用者身分/é‡‘é‘°åŠ å¯†: %S
hiddenKey=<金鑰已隱è—>
signFailed=Enigmail ç™¼ç”ŸéŒ¯èª¤ï¼ŒåŠ å¯†/簽署失敗,è¦å¯„逿œªåŠ å¯†çš„è¨Šæ¯å—Žï¼Ÿ
msgCompose.button.sendUnencrypted=傳逿œªåŠ å¯†çš„è¨Šæ¯ (&S)
recipientsSelectionHdr=鏿“‡è¦åŠ å¯†çš„æ”¶ä»¶äºº
configureNow=您尚未為這個身份è¨å®š Enigmail 安全資訊,您è¦ç¾åœ¨è¨å®šå—Žï¼Ÿ
encryptOff=åŠ å¯†: é—œ
encryptOnWithReason=åŠ å¯†: é–‹ (%S)
encryptOffWithReason=åŠ å¯†: é—œ (%S)
encryptOn=åŠ å¯†: é–‹
signOn=簽署: 開
signOff=簽署: 關
signOnWithReason=簽署: 開 (%S)
signOffWithReason=簽署: 關 (%S)
reasonEnabledByDefault=é è¨é–‹å•Ÿ
reasonManuallyForced=手動強制
reasonByRecipientRules=å› æ”¶ä»¶è€…è¦å‰‡è€Œå¼·åˆ¶
reasonByAutoEncryption=å› è‡ªå‹•åŠ å¯†è€Œå¼·åˆ¶
reasonByConflict=å› æ”¶ä»¶è€…è¦å‰‡è¡çª
reasonByEncryptionMode=å› åŠ å¯†æ¨¡å¼
# should not be used anymore:
encryptYes=訊æ¯å°‡è¢«åР坆
encryptNo=訊æ¯å°‡ä¸è¢«åР坆
# should not be used anymore:
signYes=訊æ¯å°‡è¢«ç°½ç½²
signNo=訊æ¯å°‡ä¸è¢«ç°½ç½²
# should not be used anymore
pgpmimeYes=將使用 PGP/MIME
pgpmimeNo=將使用行內 PGP
rulesConflict=嵿¸¬åˆ°æ”¶ä»¶è€…è¦å‰‡è¡çªã€‚\n%S\n\n您是è¦ä»ç„¶æŒ‰ç…§æ¤è¨å®šå‚³é€è¨Šæ¯å—Žï¼Ÿ
msgCompose.button.configure=è¨å®š (&C)
msgCompose.button.send=傳é€è¨Šæ¯ (&S)
msgCompose.button.save=儲å˜è¨Šæ¯ (&S)
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=需è¦å…¬é‘° %S æ‰èƒ½é©—è‰ç°½å
keyUsed=已用公鑰 %S é©—è‰ç°½ç«
clickDecrypt=ï¼Œé»žæ“Šã€Œè§£å¯†ã€æŒ‰éˆ•
clickDecryptRetry=ï¼Œé»žæ“Šã€Œè§£å¯†ã€æŒ‰éˆ•以é‡è©¦
clickDetailsButton=ï¼Œé»žæ“Šã€Œè©³ç´°è³‡è¨Šã€æŒ‰éˆ•å–得更多資訊
clickImportButton=ï¼Œé»žæ“Šã€ŒåŒ¯å…¥é‡‘é‘°ã€æŒ‰éˆ•下載金鑰
keyTypeUnsupported=,您的版本的 GnuPG 䏿”¯æ´è©²é¡žåž‹é‡‘é‘°
msgPart=郵件 %S 的片段
msgSigned=已簽署
msgSignedUnkownKey=已用未知金鑰簽署
msgEncrypted=å·²åŠ å¯†
msgSignedAndEnc=å·²ç°½ç½²ä¸¦åŠ å¯†
unverifiedSig=未驗è‰çš„ç°½ç«
incompleteDecrypt=解密未完æˆ
needKey=錯誤 - 缺少用於解密訊æ¯çš„ç§é‘°
failedDecrypt=錯誤 - 解密失敗
badPhrase=錯誤 - 密語無效
failedDecryptVerify=錯誤 - 解密/é©—è‰å¤±æ•—
viewInfo=,請åƒè€ƒæª¢è¦– > 訊æ¯å®‰å…¨æ€§è³‡è¨Š
decryptedMsg=解密後的訊æ¯
decryptedMsgWithFormatError=已解密的訊æ¯ï¼ˆå¯èƒ½å› 舊版的 Exchange 伺æœå™¨æ¯€æäº† PGP 郵件,已æ¢å¾©çš„內容å¯èƒ½ä¸èƒ½æ£å¸¸é–±è®€ï¼‰
locateGpg=尋找 GnuPG 程å¼
invalidGpgPath=無法執行指定路徑下的 GnuPGã€‚åœ¨æ‚¨é‡æ–°å•Ÿå‹•軟體或更改路徑å‰å°‡ç„¡æ³•使用 Enigmail。
warningsAreReset=å·²é‡è¨æ‰€æœ‰è¦å‘Šã€‚
prefs.gpgFound=在 %S 找到 GnuPG
prefs.gpgNotFound=找ä¸åˆ° GnuPG
prefs.warnAskNever=è¦å‘Š: 啟用該é¸é …æœƒé€ æˆç•¶æ‚¨ç¼ºå°‘ä»»ä½•æ”¶ä»¶è€…çš„å…¬é‘°æ™‚å‚³é€æœªåŠ å¯†çš„éƒµä»¶ï¼Œä¸” Enigmail 將䏿œƒæé†’您。
prefs.warnIdleTimeForUnknownAgent=無法連線至 gpg-agent。å¯èƒ½æ˜¯æ‚¨çš„系統使用了特別的工具來管ç†å¯†èªžï¼ˆä¾‹: gnome-keyring, seahorse-agent, KDE wallet manager ç‰ç‰ï¼‰ã€‚坿ƒœçš„æ˜¯ Enigmail 無法控制您使用的工具的密語逾時è¨å®šï¼Œæ‰€ä»¥ Enigmail ç•¶ä¸çš„逾時è¨å®šå°‡è¢«å¿½ç•¥ã€‚
prefEnigmail.oneKeyserverOnly=錯誤 - 您僅能指定一組金鑰伺æœå™¨ä¾†è‡ªå‹•下載缺少的 OpenPGP 金鑰。
enterAdminPin=請输入您智慧å¡çš„ç®¡ç† PIN 碼
enterCardPin=è«‹è¼¸å…¥æ‚¨çš„æ™ºæ…§å¡ PIN 碼
notInit=錯誤 - Enigmail æœå‹™å°šæœªåˆå§‹åŒ–
badCommand=錯誤 - åŠ å¯†æŒ‡ä»¤å¤±æ•—
cmdLine=命令列和輸出資料:
notRequired=錯誤 - ç„¡åŠ å¯†éœ€æ±‚
notComplete=錯誤 - 金鑰尚未產生完æˆ
invalidEmail=錯誤 - é›»å郵件地å€ç„¡æ•ˆ
noPassphrase=錯誤 - 未指定密語
noPGPblock=錯誤 - 找ä¸åˆ°æœ‰æ•ˆçš„ armored OpenPGP 資料å€å¡Š
unverifiedReply=訊æ¯çš„ç¸®æŽ’éƒ¨åˆ†ï¼ˆå¼•ç”¨æ–‡ç« ï¼‰å¯èƒ½è¢«ä¿®æ”¹éŽ
sigMismatch=錯誤 - ç°½ç« ä¸ç¬¦
cantImport=匯入公鑰時發生錯誤\n\n
# Strings used in errorHandling.jsm
sc.wrongCardAvailable=è®€å¡æ©Ÿä¸çš„æ™ºæ…§å¡ %S 無法用於處ç†è¨Šæ¯ã€‚\nè«‹æ’å…¥æ™ºæ…§å¡ %S 後é‡è©¦ã€‚
sc.insertCard=æ¤æ“ä½œéœ€è¦æ‚¨çš„æ™ºæ…§å¡ %S。\nè«‹æ’入智慧å¡å¾Œé‡è©¦ã€‚
sc.removeCard=è®€å¡æ©Ÿä¸ä¸èƒ½æœ‰æ™ºæ…§å¡ã€‚\n請移除智慧å¡å¾Œé‡è©¦ã€‚
sc.noCardAvailable=è®€å¡æ©Ÿä¸æ‰¾ä¸åˆ°ä»»ä½•智慧å¡ã€‚\nè«‹æ’入智慧å¡å¾Œé‡è©¦ã€‚
sc.noReaderAvailable=無法å˜å–您的智慧å¡è®€å¡æ©Ÿ\nè«‹é€£çµæ‚¨çš„è®€å¡æ©Ÿä¸¦æ’入智慧å¡å¾Œé‡è©¦ã€‚
gpgNotFound=找ä¸åˆ° GnuPG 程å¼ã€Œ%Sã€ã€‚\nè«‹ç¢ºå®šä½ å·²ç¶“åœ¨ Enigmail å好è¨å®šä¸è¨å®šæ£ç¢ºçš„ GnuPG 執行檔路徑。
gpgNotInPath=無法在 PATH ç’°å¢ƒè®Šæ•¸çš„è·¯å¾‘ä¸æ‰¾åˆ° GnuPG。\nè«‹ç¢ºå®šä½ å·²ç¶“åœ¨ Enigmail å好è¨å®šä¸è¨å®šæ£ç¢ºçš„ GnuPG 執行檔路徑。
gpgAgentNotStarted=無法啟動您的 GnuPG 版本 %S 所需的 gpg-agent 程å¼ã€‚
prefUntrusted=未信任
prefRevoked=已撤銷的金鑰
prefExpiredKey=å·²éŽæœŸçš„金鑰
prefExpired=å·²éŽæœŸ
prefGood=來自 %S 的有效簽ç«
prefBad=來自 %S 的無效簽ç«
failCancel=錯誤 - ä½¿ç”¨è€…å–æ¶ˆæŽ¥æ”¶é‡‘é‘°
failNoServer=錯誤 - 未指定è¦å¾žå“ªå°é‡‘鑰伺æœå™¨å–得金鑰
failNoID=錯誤 - 未指定è¦ä¸‹è¼‰çš„金鑰身分
failKeyExtract=錯誤 - 金鑰解壓縮指令失敗
notFirstBlock=錯誤 -第一個 OpenPGP å€å¡Šä¸æ˜¯å…¬é‘°å€å¡Š
importKeyConfirm=è¦åŒ¯å…¥è¨Šæ¯ä¸åµŒå…¥çš„公鑰嗎?
failKeyImport=錯誤 - 金鑰匯入失敗
fileWriteFailed=檔案 %S 寫入失敗
importKey=自下列金鑰伺æœå™¨åŒ¯å…¥å…¬é‘° %S:
uploadKey=傳é€å…¬é‘° %S 發é€åˆ°é‡‘鑰伺æœå™¨:
keyId=金鑰 ID
keyAndSigDate=金鑰 ID:0x%1$S / 簽署於 %2$S
keyFpr=金鑰指紋: %S
noEmailProvided=未指定電å郵件地å€ï¼
keyAlreadySigned=已經簽署éŽé€™æŠŠé‡‘鑰,您ä¸èƒ½å†æ¬¡ç°½ç½²ã€‚
gnupg.invalidKey.desc=找ä¸åˆ°é‡‘é‘° %S 或金鑰無效,該金鑰或å金鑰å¯èƒ½å·²ç¶“éŽæœŸã€‚
selKeyExpired=å·²éŽæœŸ %S
createdHeader=已建立
atLeastOneKey=æœªé¸æ“‡é‡‘é‘°ï¼æ‚¨å¿…é ˆè‡³å°‘é¸æ“‡ä¸€æŠŠé‡‘é‘°æ‰èƒ½æŽ¥å—æ¤å°è©±
fewerKeysThanRecipients=æ‚¨é¸æ“‡çš„金鑰數é‡å°‘於收件者數é‡ï¼Œæ‚¨ç¢ºå®šæ¤åŠ å¯†é‡‘é‘°æ¸…å–®æ˜¯å®Œæ•´çš„å—Žï¼Ÿ
userSel.button.goBack=鏿“‡æ›´å¤šé‡‘é‘°
userSel.secretKeySel.title=鏿“‡ä¸€æŠŠ OpenPGP ç§é‘°ä¾†ç°½ç½²æ‚¨çš„訊æ¯
userSel.problemNoKey=無有效金鑰
userSel.problemMultipleKeys=多é‡é‡‘é‘°
# should be same as thunderbird ENTITY sendLaterCmd.label:
sendLaterCmd.label=ç¨å¾Œå†å¯„
# Strings used in enigmailAttachmentDialog.js
pgpMimeNote=注æ„: ç›®å‰åªæœ‰éƒ¨åˆ†éƒµä»¶è»Ÿé«”æ”¯æ´ PGP/MIMEï¼Windows 下僅有Mozilla/Thunderbirdã€Sylpheedã€Pegasus 與 Mulberry æ”¯æ´æ¤æ¨™æº–,在 Linux/UNIX å’Œ Mac OS X 下,大部分知åçš„è»Ÿé«”éƒ½æ”¯æ´æ¤æ¨™æº–。若您ä¸ç¢ºå®šï¼Œè«‹é¸æ“‡ %S é¸é …。
first=第一
second=第二
# Strings used in am-enigprefs.js
encryptKeyHeader=鏿“‡ç”¨ä¾†åŠ å¯†çš„ OpenPGP 金鑰
identityName=身份: %S
# Strings used in enigmailSingleRcptSettings.js
noEncryption=æ‚¨å·²ç¶“å•Ÿç”¨åŠ å¯†ï¼Œä½†æ‚¨æ²’æœ‰é¸æ“‡æ‰€ä½¿ç”¨çš„金鑰。您需è¦å¾žæ‚¨çš„é‡‘é‘°æ¸…å–®ä¸æŒ‡å®šæœ‰æ•ˆçš„金鑰來發é€åŠ å¯†éƒµä»¶çµ¦ %1$S。您是å¦è¦ç‚º %2$S å–æ¶ˆåŠ å¯†ï¼Ÿ
noKeyToUse=(無 — ä¸åŠ å¯†ï¼‰
noEmptyRule=è¦å‰‡ä¸èƒ½ç‚ºç©ºï¼è«‹åœ¨è¦å‰‡æ¬„ä½ä¸è¼¸å…¥é›»å郵件地å€ã€‚
invalidAddress=您輸入的電å郵件地å€ç„¡æ•ˆã€‚è«‹ä¸è¦è¼¸å…¥æ”¶ä»¶äººçš„åå—,åªéœ€è¦é›»å郵件地å€å³å¯ã€‚例如:\n無效:Some Name \n有效:some.name@address.net
noCurlyBrackets=大括號 { } 有特殊æ„義,ä¸èƒ½ç”¨æ–¼é›»å郵件地å€ã€‚如果您需è¦ä¿®æ”¹é€™å€‹è¦å‰‡çš„符åˆè¡Œç‚ºï¼Œè«‹ä½¿ç”¨ã€Œç•¶æ”¶ä»¶äººâ€¦ï¼Œå¥—用è¦å‰‡ã€é¸é …。\né»žæ“Šã€Œèªªæ˜Žã€æŒ‰éˆ•檢視更多資訊。
# Strings used in enigmailRulesEditor.js
never=從ä¸
always=總是
possible=å¯èƒ½
deleteRule=真的è¦è¦åˆ 除所é¸çš„è¦å‰‡å—Žï¼Ÿ
nextRcpt=(下個收件者)
negateRule=éž
addKeyToRule=將金鑰 %1$S(%2$Sï¼‰åŠ å…¥è‡³æ”¶ä»¶äººè¦å‰‡
# Strings used in enigmailSearchKey.js
needOnline=æ‚¨é¸æ“‡çš„功能在離線模å¼ä¸‹ç„¡æ³•使用。請連線後é‡è©¦ã€‚
protocolNotSupported=ç„¡æ³•ä½¿ç”¨æ‚¨é¸æ“‡çš„通訊å”定「%S://ã€ä¾†ä¸‹è¼‰ OpenPGP 金鑰。
gpgkeysDisabled=啟用「extensions.enigmail.useGpgKeysToolã€é¸é …å¯èƒ½æœƒæœ‰å¹«åŠ©ã€‚
noKeyserverConn=無法連線至金鑰伺æœå™¨ %S。
keyDownloadFailed=從金鑰伺æœå™¨ä¸‹è¼‰é‡‘鑰失敗。錯誤資訊如下:\n%S
internalError=發生內部錯誤。無法下載或匯入金鑰。
noKeyFound=很抱æ‰ï¼Œæ‰¾ä¸åˆ°ç¬¦åˆæœå°‹æ¢ä»¶çš„金鑰。\n請注æ„金鑰 ID å‰éœ€è¦åŠ 0x å—æ¨£ï¼ˆä¾‹å¦‚ 0xABCDEF12)。
# gpgkeys_%S is one of the gpg command line tools gpgkeys_hkp, gpgkeys_ldap, etc.
gpgKeysFailed=從金鑰伺æœå™¨æœå°‹æˆ–下載金鑰失敗: 無法執行 gpgkeys_%S。
# Strings in enigmailEditKeyTrustDlg.xul
setKeyTrustFailed=è¨å®šæ‰€æœ‰äººä¿¡ä»»ç¨‹åº¦å¤±æ•—
# Strings in enigmailSignKeyDlg.js
signKeyFailed=金鑰簽署失敗
alreadySigned.label=註: 已使用指定的ç§é‘°ç°½ç½²é‡‘é‘° %S。
partlySigned.label=註: å·²ä½¿ç”¨é¸æ“‡çš„ç§é‘°ç°½ç½²é‡‘é‘° %S çš„æŸäº›ä½¿ç”¨è€…身分。
# Strings in enigmailKeyManager.js
keyMan.loadingKeys=金鑰載入ä¸ï¼Œè«‹ç¨å€™â€¦
keyValid.unknown=未知
keyValid.invalid=無效
keyValid.disabled=å·²åœç”¨
keyValid.revoked=已撤銷
keyValid.expired=已失效
keyValid.noSubkey=無有效的åé‘°
keyTrust.untrusted=ä¸ä¿¡ä»»
keyTrust.marginal=部分信任
keyTrust.full=å—ä¿¡ä»»
keyTrust.ultimate=完全信任
keyTrust.group=(群組)
keyType.public=公鑰
keyType.publicAndSec=公鑰/ç§é‘°
keyMan.enableKey=啟用金鑰
keyMan.disableKey=åœç”¨é‡‘é‘°
userAtt.photo=使用者屬性(JPEG 圖片)
asciiArmorFile=ASCII Armored 檔案(*.asc)
importKeyFile=匯入 OpenPGP 金鑰檔案
gnupgFile=GnuPG 檔案
saveRevokeCertAs=å»ºç«‹ä¸¦å„²å˜æ’¤éŠ·æ†‘è‰
revokeCertOK=å·²æˆåŠŸå»ºç«‹æ’¤éŠ·æ†‘è‰ã€‚當您æžä¸Ÿå¯†é‘°æ™‚,您å¯ä»¥ä½¿ç”¨å®ƒè®“您的公鑰失效。\n\nè«‹å°‡å®ƒå˜æ”¾åœ¨å®‰å…¨çš„媒體,例如 CD 或隨身碟當ä¸ï¼Œè‹¥å…¶å®ƒäººå¾—到它一樣å¯ä½¿æ‚¨çš„金鑰失效。
revokeCertFailed=無法建立撤銷憑è‰ã€‚
addUidOK=使用者 ID 新增æˆåŠŸ
addUidFailed=使用者 ID 新增失敗
noKeySelected=您需è¦é¸æ“‡è‡³å°‘一把金鑰æ‰èƒ½é€²è¡Œé¸æ“‡çš„æ“ä½œã€‚
exportToFile=導出公鑰至檔案
exportKeypairToFile=匯出公鑰與ç§é‘°è‡³æª”案
exportSecretKey=您想è¦åœ¨å„²å˜çš„ OpenPGP 金鑰檔案ä¸åŠ å…¥ç§é‘°å—Žï¼Ÿ
saveKeysOK=æˆåŠŸå„²å˜é‡‘é‘°
saveKeysFailed=金鑰儲å˜å¤±æ•—
importKeysFailed=金鑰匯入失敗
enableKeyFailed=啟(åœï¼‰ç”¨é‡‘鑰失敗
specificPubKeyFilename=%S (0x%S) 公鑰
specificPubSecKeyFilename=%S (0x%S) 公鑰-ç§é‘°
defaultPubKeyFilename=匯入公鑰
defaultPubSecKeyFilename=匯入公鑰和ç§é‘°
noSecretKeys=未找到ç§é‘°ã€‚\n\n是å¦è¦ç«‹åˆ»ç”¢ç”Ÿæ‚¨è‡ªå·±çš„金鑰?
sendKeysOk=金鑰傳逿ˆåŠŸ
sendKeysFailed=金鑰傳é€å¤±æ•—
receiveKeysOk=金鑰更新æˆåŠŸ
receiveKeysFailed=金鑰下載失敗
importFromClip=您想è¦å¾žå‰ªè²¼ç°¿ä¸åŒ¯å…¥é‡‘鑰嗎?
copyToClipbrdFailed=ç„¡æ³•è¤‡è£½é¸æ“‡çš„金鑰到剪貼簿。
copyToClipbrdOK=已複製金鑰至剪貼簿。
deleteSecretKey=è¦å‘Šï¼šæ‚¨æ£è¦åˆ 除一把ç§é‘°ï¼\nå¦‚æžœæ‚¨åˆ é™¤äº†æ‚¨çš„ç§é‘°ï¼Œæ‚¨å°‡ä¸å†èƒ½å¤ 解開任何為該ç§é‘°åŠ å¯†çš„è¨Šæ¯ï¼Œä¹Ÿå°‡ç„¡æ³•撤銷您的金鑰了。\n\n您真的è¦åˆ 除公鑰和ç§é‘°\n「%Sã€å—Žï¼Ÿ
deleteMix=è¦å‘Šï¼šæ‚¨æ£è¦åˆ 除一個ç§é‘°ï¼\nå¦‚æžœæ‚¨åˆ é™¤äº†æ‚¨çš„ç§é‘°ï¼Œæ‚¨å°‡ä¸å†èƒ½å¤ 解密任何為該ç§é‘°åŠ å¯†çš„éƒµä»¶ã€‚\n\n您真的è¦åˆ 除公鑰和ç§é‘°å°\n%S嗎?
deletePubKey=您是è¦åˆ 除公鑰\n%S嗎?
deleteSelectedPubKey=您是è¦åˆ 除公鑰嗎?
deleteKeyFailed=ç„¡æ³•åˆ é™¤é‡‘é‘°ã€‚
revokeKeyQuestion=您å³å°‡æ’¤éŠ·é‡‘é‘°ã€Œ%Sã€ã€‚\n\n您將ä¸å†èƒ½ä½¿ç”¨è©²é‡‘鑰進行簽署,且一旦公開後,其他人也將ä¸å†èƒ½ä½¿ç”¨è©²é‡‘é‘°é€²è¡ŒåŠ å¯†ã€‚æ‚¨é‚„æ˜¯èƒ½ä½¿ç”¨è©²é‡‘é‘°è§£é–‹èˆŠè¨Šæ¯ã€‚\n\n您è¦ç¹¼çºŒå—Žï¼Ÿ
revokeKeyOk=金鑰已被撤銷。如果您的金鑰在æŸé‡‘鑰伺æœå™¨ä¸Šï¼Œå»ºè°æ‚¨é‡æ–°ä¸Šå‚³ä¸€æ¬¡ï¼Œè®“其它人å¯ä»¥å¾—知撤銷消æ¯ã€‚
revokeKeyFailed=無法撤銷金鑰。
refreshAllQuestion=æ‚¨å°šæœªé¸æ“‡ä»»ä½•金鑰,您是å¦è¦é‡æ–°æ•´ç†æ‰€æœ‰é‡‘鑰?
refreshKey.warn=è¦å‘Š: 視金鑰數é‡èˆ‡é€£ç·šé€Ÿåº¦è€Œå®šï¼Œé‡æ–°æ•´ç†é‡‘é‘°å¯èƒ½è¦èŠ±ä¸Šä¸å°‘時間ï¼
downloadContactsKeys.warn=è¦å‘Š: 視è¯çµ¡äººæ•¸é‡èˆ‡é€£ç·šé€Ÿåº¦è€Œå®šï¼Œä¸‹è¼‰é‡‘é‘°å¯èƒ½è¦èŠ±ä¸€é»žæ™‚é–“ï¼
downloadContactsKeys.importFrom=è¦å¾žé€šè¨ŠéŒ„「%Sã€åŒ¯å…¥è¯çµ¡äººå—Žï¼Ÿ
keyMan.button.exportSecKey=匯出ç§é‘° (&S)
keyMan.button.exportPubKey=僅匯出公鑰 (&P)
keyMan.button.import=匯入 (&I)
keyMan.button.refreshAll=釿–°è¼‰å…¥æ‰€æœ‰é‡‘é‘° (&R)
keyMan.button.revokeKey=撤銷金鑰 (&R)
keyMan.button.skip=ç•¥éŽé‡‘é‘° (&S)
keylist.noOtherUids=無其它身份
keylist.hasOtherUids=別å
keylist.noPhotos=無相片
keylist.hasPhotos=相片
keyMan.addphoto.filepicker.title=鏿“‡è¦åŠ å…¥çš„ç›¸ç‰‡
keyMan.addphoto.warnLargeFile=æ‚¨é¸æ“‡çš„æª”æ¡ˆè¶…éŽ 25 kB。\nä¸æŽ¨è–¦æ‚¨åŠ å…¥å¤§æª”æ¡ˆï¼Œå› ç‚ºé€™æ¨£æœƒä½¿æ‚¨çš„é‡‘é‘°ä¹Ÿè®Šå¤§ã€‚
keyMan.addphoto.noJpegFile=鏿“‡çš„æª”æ¡ˆä¸æ˜¯ JPEG æª”æ¡ˆï¼Œè«‹é‡æ–°é¸æ“‡ã€‚
keyMan.addphoto.failed=無法新增相片。
# Strings in enigmailManageUidDlg.xul
changePrimUidFailed=主è¦ä½¿ç”¨è€… ID 變更失敗
changePrimUidOK=主è¦ä½¿ç”¨è€… ID 變更æˆåŠŸ
deleteUidFailed=用戶ID %S åˆ é™¤å¤±æ•—
deleteUidOK=用戶ID %S åˆ é™¤æˆåŠŸ
revokeUidFailed=用戶ID %S 撤銷失敗
revokeUidOK=å·²æˆåŠŸæ’¤éŠ·ä½¿ç”¨è€… ID %S,若您曾將金鑰上傳到金鑰伺æœå™¨ï¼Œå»ºè°æ‚¨é‡æ–°ä¸Šå‚³ä¸€æ¬¡ï¼Œè®“å…¶å®ƒäººèƒ½å¤ å¾—çŸ¥é‡‘é‘°å·²æ’¤éŠ·ã€‚
revokeUidQuestion=æ‚¨çœŸçš„æƒ³è¦æ’¤éŠ·ä½¿ç”¨è€… ID %S 嗎?
deleteUidQuestion=您真的想è¦åˆªé™¤ä½¿ç”¨è€… ID %S 嗎?\n\n請注æ„: 若您曾å‘金鑰伺æœå™¨ä¸Šå‚³éŽå…¬é‘°ï¼Œåˆ 除該使用者 ID 將䏿œƒé€ æˆä»»ä½•改變。這時您應該使用「撤銷使用者 IDã€åŠŸèƒ½ã€‚
importInfoSuccess=✅
# Strings in enigmailKeyDetailsDlg.xul
keyTypePublic=公鑰
keyTypePrimary=主金鑰
keyTypeSubkey=åé‘°
keyTypePair=金鑰å°
keyExpiryNever=從ä¸
keyAlgorithm_1=RSA
keyAlgorithm_2=RSA
keyAlgorithm_3=RSA
keyAlgorithm_16=ELG
keyAlgorithm_17=DSA
keyAlgorithm_18=ECC
keyAlgorithm_19=ECC
keyAlgorithm_20=ELG
keyUsageEncrypt=åŠ å¯†
keyUsageSign=簽署
keyUsageCertify=確èª
keyUsageAuthentication=é©—è‰
# Strings in enigmailGenCardKey.xul
keygen.started=è«‹ç¨å€™é‡‘鑰產生…
keygen.completed=已產生金鑰。新金鑰 ID 為: 0x%S
keygen.keyBackup=已備份金鑰至 %S
keygen.passRequired=如果您需è¦åœ¨æ™ºæ…§å¡å¤–åšé‡‘鑰備份,請指定一組密語。
# Strings in enigmailSetCardPin.xul
cardPin.dontMatch=您输入的 PIN 碼ä¸ç›¸åŒï¼Œè«‹é‡æ–°è¾“å…¥
cardPin.minLength=PIN ç¢¼è‡³å°‘éœ€è¦ %S 個å—符或數å—
cardPin.processFailed=PIN 碼修改失敗
# Strings in enigRetrieveProgres.xul
keyserverProgress.refreshing=æ£åœ¨é‡æ–°æ•´ç†é‡‘鑰,請ç¨å€™â€¦
keyserverProgress.uploading=æ£åœ¨ä¸Šå‚³é‡‘鑰,請ç¨å€™â€¦
keyserverTitle.refreshing=釿–°æ•´ç†é‡‘é‘°
keyserverTitle.uploading=上傳金鑰
# Strings in enigmailSetupWizard
passphrase.min8keys=最少應有 8 å—元的密語ï¼
setupWizard.reallyCancel=您確定è¦é—œé–‰ Enigmail è¨å®šç²¾éˆå—Žï¼Ÿ
setupWizard.invalidGpg=æ‚¨æŒ‡å®šçš„æª”æ¡ˆä¸æ˜¯ GnuPG 執行檔,請指定å¦ä¸€å€‹æª”案。
setupWizard.specifyFile=您需è¦è‡³å°‘指定一個公鑰檔案æ‰èƒ½ç¹¼çºŒã€‚
setupWizard.installFailed=看來安è£ä¸¦æœªæˆåŠŸï¼Œè«‹é‡è©¦å®‰è£ç¨‹å¼ï¼Œæˆ–æ‰‹å‹•å®‰è£ GnuPG 並用ç€è¦½æŒ‰éˆ•手動尋找該程å¼ã€‚
setupWizard.downloadForbidden=ç‚ºäº†æ‚¨çš„å®‰å…¨ï¼Œæˆ‘å€‘ä¸æœƒä¸‹è¼‰ GnuPG。請å‰å¾€å‰å¾€ http://www.gnupg.org/ 下載 GnuPG。
setupWizard.downloadImpossible=ç›®å‰ç„¡æ³•下載 GnuPG,請ç¨å¾Œå†è©¦æˆ–å‰å¾€ http://www.gnupg.org/ 下載 GnuPG。
setupWizard.hashSumError=本精éˆç„¡æ³•é©—è‰å·²ä¸‹è¼‰æª”æ¡ˆçš„å®Œæ•´æ€§ï¼Œæ¤æª”案å¯èƒ½å·²ææ¯€æˆ–被竄改。您還è¦ç¹¼çºŒå®‰è£å—Žï¼Ÿ
# Strings in installGnuPG.jsm
installGnuPG.downloadFailed=嘗試下載 GnuPG 時發生錯誤,若需更多資訊,請檢查主控å°çš„記錄。
installGnuPG.installFailed=å®‰è£ GnuPG 時發生錯誤,若需更多資訊,請檢查主控å°çš„記錄。
# Strings in enigmailAddUidDlg.xul
addUidDlg.nameOrEmailError=您需è¦è¾“入一個åå—和一個電å郵件地å€
addUidDlg.nameMinLengthError=åå—è‡³å°‘éœ€è¦æœ‰ 5 個å—å…ƒ
addUidDlg.invalidEmailError=æ‚¨å¿…é ˆæŒ‡å®šä¸€å€‹æœ‰æ•ˆçš„éƒµç®±åœ°å€
addUidDlg.commentError=註解ä¸ä¸å¾—åŒ…å«æ‹¬è™Ÿ
# Strings in enigmailCardDetails.js
Carddetails.NoASCII=OpenPGP 智慧å¡åƒ…支æ´åœ¨å§“忬„ä½ä¸ä½¿ç”¨ ASCII å—元。
# network error types
errorType.SecurityCertificate=ç¶²é æœå‹™æä¾›çš„安全性憑è‰ç„¡æ•ˆã€‚
errorType.SecurityProtocol=ç¶²é æœå‹™ä½¿ç”¨æœªçŸ¥çš„安全通訊å”定。
errorType.Network=發生網路錯誤。
# filter stuff
filter.folderRequired=æ‚¨å¿…é ˆé¸æ“‡ç›®çš„資訊夾。
filter.decryptMove.label=永久解密(Enigmail)
filter.decryptCopy.label=建立已解密的副本(Enigmail)
filter.decryptMove.warnExperimental=è¦å‘Šï¼šéŽæ¿¾å™¨è¡Œç‚ºã€Œæ°¸ä¹…解密ã€å¯èƒ½æœƒæ¯€æè¨Šæ¯ã€‚\n\næˆ‘å€‘å¼·çƒˆå»ºè°æ‚¨å…ˆä½¿ç”¨ã€Œå»ºç«‹å·²è§£å¯†çš„副本ã€éŽæ¿¾å™¨ï¼Œå°å¿ƒæ¸¬è©¦ä¸€ä¸‹çµæžœï¼Œç¢ºèªçµæžœæ»¿æ„後å†ä½¿ç”¨ã€Œæ°¸ä¹…解密ã€éŽæ¿¾å™¨ã€‚
# strings in enigmailConvert.jsm
converter.decryptBody.failed=無法解密主旨為「%Sã€çš„訊æ¯ã€‚\n\n您想è¦ä½¿ç”¨ä¸åŒçš„密語å†è©¦ä¸€æ¬¡ï¼Œæˆ–是跳éŽè©²è¨Šæ¯ï¼Ÿ
converter.decryptAtt.failed=無法解密主旨為「%2$Sã€è¨Šæ¯çš„附件「%1$Sã€ã€‚\n\n您想è¦ä½¿ç”¨ä¸åŒçš„密語å†è©¦ä¸€æ¬¡ï¼Œæˆ–是跳éŽè©²è¨Šæ¯ï¼Ÿ
saveLogFile.title=儲å˜ç´€éŒ„檔
enigmail/lang/zh-TW/enigmail.properties.big5 0000664 0000000 0000000 00000014654 12667016244 0021307 0 ustar 00root root 0000000 0000000 Enigmail=Enigmail
# Strings used within enigmailCommon.js
enigAlert=Enigmail ³qª¾
enigConfirm=Enigmail ½T»{
enigError=Enigmail ¿ù»~
enigPrompt=Enigmail ´£¥Ü
dlgYes=½T©w
dlgNo=§_
dlgNever=¤U¦¸¤£¶·¦A°Ý§Ú
specifyEmail=½Ð«ü©w±zªº¥Dn¶l§}¥H¥Î©óñÃÒ±H¥X¶l¥ó®É¨Ï¥Î¡C\n ¦pªG±zn¥Î¡§±H¥X¡¨ªº¶l§}§@¬°Ã±ÃÒ½Ð§â¦¹Äæ¸mªÅ¡C\n\nª`·N¡GEnigmail 0.60 ¥H¤W¤w§â default signing key ³o§t½kªº¿ï¶µ¥h°£.
usingFrom=¡§±H¥X¡¨¶l§}±N·|¥Î©óñÃÒ±H¥Xªº¶l¥ó
usingId=¨Ï¥ÎªÌ %S ±N·|¥Î©óñÃÒ±H¥Xªº¶l¥ó
configNow=±zn¬° enigmail %S ¶i¦æ³]©w¶Ü¡H
configEnigmail=³]©w Enigmail¡H
turnOffFlowed=Mozilla ¤¤ªº Allow flowed text (RFC 2646) ¬O¹w¸m¿ï¶µ¡C\n¦ý«o·|¦b¶i¦æ¥Í¯Â¤å¦rªº¶l¥ó¶i¦æÃ±¦W»{ÃҮɵo¥Í°ÝÃD¡C\n©Ò¥H§ÚÌ«ØÄ³§â¦¹¼¶¶µÃö¤W¡C\n\n±zn Enigmail ¬°±z°õ¦æÃö³¬¡@Allow flowed text (RFC 2646) ³oÓ¿ï¶µ¶Ü?
repeatPrefix=\n\n¦¹´£¥Ü±N·|¦A¥X²{%S
repeatSuffixSingular=¦¸¡C
repeatSuffixPlural=¦¸¡C
noRepeat=\n\n¦¹´£¥Ü±N¤£·|¦A¥X²{P¨ì§A¤U¦¸§ó·s Enigmail¡C
noLogDir=½Ð¬°¶i¶¥°¾¦n³]©w¤¤ªº¤é»x¸ô®|¶i¦æ³]©w¥H«K·s¼W¤é»xÀÉ
noLogFile=¤é»xÀɮפ£¦s¦b¡I
restartForLog=½Ð«·s±Ò°Ê Mozilla ¥H«K·s¼W¤é»xÀÉ
# Strings in enigmailAbout.js
usingVersion=Enigmail %S ¦b°õ¦æ¤¤
versionWarning=ĵ§i¡GEnigMime ª©¥» %S ¤£¨ó½Õ
enigmimeWarning=ĵ§i¡G EnigMime ¼Ò²Õ¤£¦s¦b
usingAgent=¨Ï¥Î %S °õ¦æÀÉ %S ¥H¥[±K©Î¸Ñ±K
agentError=¿ù»~¡G¤£¯à¦s¨ú enigmail ¥¢±Ñ¡I
# Strings in enigmailKeygen.js
accessError=¦s¨ú enigmail ¥¢±Ñ
onlyGPG=²£¥Í·sªºÆ_°Í¥u¯à¦bGPG¤¤¨Ï¥Î¡]PGP ±N¤£¯à¨Ï¥Î¡^¡I
genComplete=²£¥Í·sªºÆ_°Í§¹¦¨¡I\n¨Ï¥ÎªÌÆ_°Í <%S> ±N·|¦b¥¼¨Ó¥Î©ó¥[±K©ÎñÃÒ
genCompleteNoSign=²£¥Í·sªºÆ_°Í§¹¦¨¡I
genGoing=²£¥Í·sªºÆ_°Í¥¿¦b¶i¦æ¤¤¡I
passNoMatch=¿é¤Jªº±K½X¤£¬Û¦P¡A½Ð«¿é¤J
passCheckBox=¤£¥Î±K½X½Ð¿ï¾Ü¦¹¶µ
passUserName=¦¹»{ÃÒªº¨Ï¥ÎªÌ¦WºÙ¬°
keyConfirm=n¬°'%S'²£¥Íªº¤½¶}©MÁô±KªºÆ_°Í¶Ü¡H
keyAbort=¤¤¤îÆ_°Í²£¥Í¶Ü¡H
# Strings in enigmailMessengerOverlay.js
securityInfo=OpenPGP ¦w¥þ¸ê°T\n\n
enigHeader=Enigmail:
enigNote=Note from Enigmail: Attachments to this message have not been signed or encrypted.
enigContentNote=Enigmail: *Attachments to this message have not been signed or encrypted*\r\n\r\n
# Make Comment due to this translation will not display right.
# enigNote=Enigmail:¦¹¶l¥ó¤¤ªºªþ¥ó¨Ã¨S¦³¸g¹L¥[±K©ÎñÃÒ¡C
# enigContentNote=Enigmail: *¦¹¶l¥ó¤¤ªºªþ¥ó¨Ã¨S¦³¸g¹L¥[±K©ÎñÃÒ*\r\n\r\n
noDecrypted=¨S¦³¥i¸Ñ½Xªº«H®§¥i¥HÀx¦s¡I\n½Ð¦bÀɮץؿý¿ï¥ÎÀx¦s
noMessage=¨S¦³«H®§¥i¥HÀx¦s¡I
useButton=½Ð¦b¥Ø¿ý¤¤¿ï¾Ü¸Ñ½X»Pñ¦W»{ÃÒ¥H¸Ñ½X
saveHeader=Enigmail¡GÀx¦s¸Ñ½X«áªº«H®§
# Strings in enigmailMsgComposeOverlay.js
keysToExport=¶×¥X¨Ï¥ÎªÌªº¤½¶}Æ_°Íªº¶l§}
exportPrompt=Enigmail Æ_°Í¶×¥X
pubKey=%S¨Ï¥ÎªÌ¤½¶}Æ_°Í\n
windowLocked=½s¼g¶l¥ó¤w³Q¾P©w¡A±H¥X³Q¨ú®ø
sendUnencrypted=Enigmail±Ò°Ê¥¢±`¡C\n±H¥X¥¼¥[±Kªº¶l¥ó¶Ü¡H
composeSpecifyEmail=½Ð«ü©w±zªº¥Dn¶l§}¥H¥Î©óñÃÒ±H¥X¶l¥ó®É¨Ï¥Î¡C\n ¦pªG±zn¥Î¡§±H¥X¡¨ªº¶l§}§@¬°Ã±ÃÒ½Ð§â¦¹Äæ¸mªÅ¡C
sendingBCC=¦¹¶l¥ó¦³Áô±K¦¬«HªÌBCC¡C¦pªG¥[±K¦¹¶l¥ó©Ò¦³ªº¦¬«HªÌ³£¥i¥H³q¹LÀ˹î¥[±KÆ_°Í¦W³æ±oª¾½Ö¬OÁô±K¦¬«HªÌP¨ÏÁô±K«O¦w¥¢®Ä¡C\n\n«ö½T©w¥HÄ~ÁZ¥[±K©Î¨ú®ø¤¤¤î±H¥X¡C
sendingNews=¥[±K±H¥X¤¤¤î.\n\n¥Ñ©ó¦³·s»D²Õªº¦s¦b¦¹¶l¥ó¤£¯à¥[±K¡C½Ð¥Î¤£¥[±Kªº¤èªk«·s±H¥X¡C
sendingPGPMIME=¶l¥ó¤¤ªºªþ¥ó¤]·|¤@°_ªº³Q¥[±K©ÎñÃÒ¡A¥u¦³¯à¤ä´©PGP/MIME®æ¦¡ªº¹q¶lµ{¦¡¥i¥HŪ¨ú¦¹Ãþ¶l¥ó¡C¤wª¾ªº¤ä´©¹q¶lµ{¦¡¦³ Enigmail, Evolution, and Mutt¡C\n «ö½T©w¥HÄ~ÁZ¨Ï¥ÎPGP/MIME®æ¦¡©Î¨ú®ø¨Ï¥Î´O¤J®æ¦¡±H¥X¡C
noPGPMIME=PGP/MIME¤£¦s¦b¡I\n ¥Î´O¤J®æ¦¡¥[±K©ÎñÃÒ¡H
hasHTML=HTML ¶l¥óĵ§i¡G\n¦¹¶l¥ó±a¦³HTML®æ¦¡³o¥i¯à·|¨Ï¨ì¥[±K©ÎñÃÒ¥¢±Ñ¡C¬°¤FÁ×§K¦¹Ãþ°ÝÃDªºµo¥Í±z¥i¥H¦b±H¥X©Î¦^Âжl¥ó®É«ö¤USHIFTÁä¥H±H¥XñÃÒªº¶l¥ó¡C\n¦pªG±z¬O¹w¸m¥[±K©ÎñÃÒ±H¥X¶l¥ó±zÀ³¸Ó¦b¨ú®ø¿ï¾Ü½s¼gHTML®æ¦¡¶l¥ó¿ï¶µ¥H¨ú®øHTML®æ¦¡ªº¶l¥ó¡C
strippingHTML="¶l¥ó¤¤§t¦³ªº®æ¦¡HTML±N·|¦bÂà´«¦¨¯Â¤å¦r®æ¦¡¥[±K©ÎñÃҮɥ¢®Ä¡C±znÄ~ÁZ¶Ü¡H
sendAborted=±H¥X¤¤¤î¡C\n\n
statPGPMIME=PGP/MIME
statSigned=¤wñÃÒ
statEncrypted=¤w¥[±K
statPlain=¯Â¤å¦r
offlineSave=Àx¦s %S ¶l¥ó %S ¨ì¥¼±H¥Xªº¶l¥ó¶Ü¡H
onlineSend=±H¥X %S ¶l¥ó¨ì %S¶Ü¡H
offlineNote=§A²{¦b¥¿¨Ï¥ÎÂ÷½u¼Ò¦¡¡CnÀx¦s¦¹¶l¥ó¨ì¥¼±H¥Xªº¶l¥ó¶Ü¡H
signFailed=Enigmailµo¥Í¿ù»~¡A¥[±K©ÎñÃÒ¥¢±Ñn±H¥X¥¼¥[±Kªº¶l¥ó¶Ü¡H
# Strings in enigmailMsgHdrViewOverlay.js
keyNeeded=»Ýn¤½¶}Æ_°Í½s¸¹ %S ¥H§@ñ¦W»{ÃÒ
clickDecrypt=¡F«ö¤U¡u¸Ñ±K¡vÁä
clickDecryptRetry=¡F«ö¤U¡u¸Ñ±K¡vÁ䫸Õ
clickPen=¡F«ö¤Uµ§¹Ï¡H
clickPenDetails=¡F«ö¤UÂ_µ§¹Ï¨ú±o¸Ô²Óªº¸ê®Æ¡H
clickQueryPenDetails=¡F«ö¤Uµ§¹Ï¨ú±o¸Ô²Óªº¸ê®Æ¡H
clickKey=¡F«ö¤UÂ_Æ_°Í¹Ï¡H
clickKeyDetails=¡F«ö¤UÂ_Æ_°Í¹Ï¨ú±o¸Ô²Óªº¸ê®Æ¡H
reloadImapMessage=«·s¸ü¤J§¹¾ãªºIMAP¶l¥ó¥H¶i¦æ¸Ñ½X»Pñ¦W»{ÃÒ¡H
reloadImapError=¿ù»~¡ÐIMAP¶l¥ó¹L¤jµLªk¶i¦æ¸Ñ½X»Pñ¦W»{ÃÒ
unverifiedSig=¥¼»{ÃÒªºÃ±¦W
incompleteDecrypt=¸Ñ±K¤£§¹¾ã
failedSig=¿ù»~¡Ðñ¦W»{ÃÒ¥¢±Ñ
needKey=¿ù»~¡Ð»ÝnÁô±KªºÆ_°Í¥H¶i¦æ¶l¥ó¸Ñ½X
failedDecrypt=¿ù»~¡Ð¸Ñ½X¥¢±Ñ
badPhrase=¿ù»~¡Ð±K½X¿ù»~
failedDecryptVerify=¿ù»~¡Ð¸Ñ½X»Pñ¦W»{ÃÒ¥¢±Ñ
viewInfo=; View > Message security info for details
decryptedMsg=¤w¸Ñ½XÊú¶l¥ó
# Strings in enigmailNavigatorOverlay.js
navEncryptError=¥[±K©ÎñÃҮɥ¢±Ñ¡C\n
navDecryptError=¸Ñ½X®É¥¢±Ñ¡C\n
# Strings in pref-enigmail-adv.js
testNoSvc=EnigTest¡GEnigmail ¦s¨ú¥¢±Ñ
testNoEmail=EnigTest¡G½Ð¿é¤J¶l§}¥H«K´ú¸Õ
# Strings in pref-enigmail.js
uninstallConfirm=±z¯uªºn§R°£©Ò¦³¦bMozilla component ©M chrome ¥Ø¿ý¤º»P EnigMail ¦³ÃöªºÀÉ®×¶Ü¡H
uninstallFailOverlay=¥Ñ©óÂл\ªºRDF²¾°£ EnigMail ¥¢±Ñ¡F¤£§R°£ chrome jar ÀÉ®×
uninstallFailDelete=§R°£Àɮ׮ɵo¥Í°ÝÃD
uninstallFail=²¾°£ EnigMail ¥¢±Ñ
uninstallSuccess=EnigMail ¤w³Q²¾°£
# Strings used in components/enigmail.js
# (said file also re-uses some strings given above)
enterPass=½Ð¿é¤J±z %S ªº±K½X
rememberPass=°O¾Ð %S ¤ÀÄÁ
notInit=¿ù»~¡ÐEnigmail ÁÙ¥¼ªì©l¤Æ
badCommand=¿ù»~¡Ð¥[¸Ñ«ü¥O¥¢±Ñ
cmdLine=«ü¥O¼Ò¦¡©M¿é¥X¡G
notRequired=¿ù»~¡Ð¤£¶·¥[±K
notComplete=¿ù»~¡Ð²£¥ÍÆ_°Í¥¼§¹¦¨
invalidEmail=¿ù»~¡Ð¤£¥¿½Tªº¶l§}
noPassphrase=¿ù»~¡ÐµL±K½X´£¨Ñ
noPGPblock=¿ù»~¡Ð¨S¦³¤å¦r¦¡ªº PGP ¸ê®Æ
decryptToImport=«ö¤U¸Ñ½X¥H¶×¤J¶l¥ó¤ºªº¤½¶}Æ_°Í
extraText=ªþ¥[¤å¦r¤¤§t¦³§ó¦hªº PGP ¸ê®Æ¡C«ö¤U¸Ñ±KÁä
toVerify=¥Hñ¦W»{ÃÒ¡C
sigMismatch=¿ù»~¡Ðñ¦W»{ÃÒ¥¢°t
cantImport=¶×¤J¤½¶}Æ_°Í¥¢±Ñ\n\n
prefUntrusted=¤£³Q«H¥ôªº
prefRevoked=¤w¼o°£ªº
prefExpiredKey=¹O´ÁªºÆ_°Í
prefExpired=¹O´Áªº
prefGood=¦¨¥\»{ÃÒ%SªºÃ±¦W
prefBad=¥¢±Ñ»{ÃÒ%SªºÃ±¦W
failFingerprint=¿ù»~¡Ðªö«ü¯¾«ü¥O¥¢±Ñ
failMultiple=¿ù»~¡Ð%S¦³¦hÓ¤½¶}Æ_°Í
failNoKey=¿ù»~¡Ð§ä¤£¨ìªº%S¤½¶}Æ_°Í
failOnlyGPG=¿ù»~¡Ð¥u¦³GPGÆ_°Í¥i¥H±qÆ_°Í¦øªA¾¹¤¤¨ú±o
failCancel=¿ù»~¡Ð±qÆ_°Í¦øªA¾¹¤¤¨ú±oÆ_°Í³Q¨Ï¥ÎªÌ¨ú®ø
failNoServer=¿ù»~¡Ð¨S¦³«ü©wªºÆ_°Í¦øªA¾¹¥H¨ú±oÆ_°Í
failNoID=¿ù»~¡Ð¨S¦³«ü©wªºÆ_°Í½s¸¹
failKeyExtract=¿ù»~¡ÐÆ_°Í¨ú±o«ü¥O¥¢±Ñ
notFirstBlock=¿ù»~¡Ð²Ä¤@ PGP¸ê®Æ«D¤½¶}Æ_°Í¸ê®Æ
importKeyConfirm=¦bªº´O¤Jªº¶l¥ó¤¤¶×¤J¤½¶}Æ_°Í
importKey=±q¶×¤JÆ_°Í¦øªA¾¹¤½¶}Æ_°Í½s¸¹%S
enigmail/lang/zh-TW/help/ 0000775 0000000 0000000 00000000000 12667016244 0015475 5 ustar 00root root 0000000 0000000 enigmail/lang/zh-TW/help/compose.html 0000664 0000000 0000000 00000010075 12667016244 0020033 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Composition
Enigmail Help
Using Enigmail when composing messages
- Enigmail menu in Mail/Compose window
-
- Sign message
- Enable/Disable sending signed mail. User is notified, if signing fails.
- Encrypt message
-
Enable/Disable encryption to all recipient(s) before sending. User is notified, if encryption fails.
If Display selection when necessary is set in Preferences -> Key Selection tab, a list of keys will pop up if there are addresses in the list of recipients for the message for whom you have no public key.
If Never display OpenPGP key selection dialog is set in Preferences -> Key Selection tab, and there are addresses in the list of recipients for the message for whom you have no public key, the message will be sent unencrypted.
- Use PGP/MIME for this message
-
Enable/Disable the use of PGP/MIME for this message.
If you know the recipient(s) can read mail using the PGP/MIME format, you should use it.
This feature is dependent on the settings in Preferences -> PGP/MIME tab being set to Allow to use PGP/MIME or Always use PGP/MIME.
- Default composition options
-
- Signing/Encryption Options...: shortcut to Account Settings -> OpenPGP Options.
- Send options...: shortcut to Preferences -> Send tab.
- Key selection options...: shortcut to Preferences -> Key Selection tab.
- PGP/MIME options...: shortcut to Preferences -> PGP/MIME tab.
- Undo encryption
-
If there is a failure when actually sending mail, such as the POP server not accepting the request, Enigmail will not know about it, and the encrypted message will continue to be displayed in the Compose window. Choosing this menu item will undo the encryption/signing, reverting the Compose window back to its original text.
As a temporary fix, this option may also be used to decrypt the quoted text when replying to encrypted messages. Enigmail should automatically decrypt the quoted message, but if that fails for some reason, you can use this menu item to force it.
- Insert public key
- insert ASCII-armored public key block at the current cursor location in the Compose window. You will be prompted for the email addresses of the key(s) to be inserted. Keys inserted in this manner will automatically be recognized at the receiving end by Enigmail. After key insertion, you may still choose to sign/encrypt the mail as needed. Also, do not insert more than one key block in a message; just specify multiple email addresses, separated by commas or spaces, when prompted.
- Clear save passphrase
- Clears cached passphrase. Useful if you have multiple passphrases.
- Help
- Displays Help information from the website (this page).
Further help is available on the Enigmail Help web page
enigmail/lang/zh-TW/help/editRcptRule.html 0000664 0000000 0000000 00000011557 12667016244 0021002 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Using the Enigmail Rules Editor: Edit OpenPGP Rule
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. In this dialog, you can specify the rules for a single recipient, and for a group of recipients with very similar attributes.
- Set OpenPGP Rules for
- Contains the email addresses of the recipients (without names, i.e. just an address like somebody@email.domain). You can specify several email addresses, separated by spaces. The address specified here can consist of only the domain section so that mail to any address at that domain will be matched, e.g. @email.domain will allow matching to body@email.domain, somebody@email.domain, anybody@email.domain, etc.
- Apply rule if recipient ...
-
This modifies the matching of the email addresses. If multiple addresses are entered, the setting will apply to all. The examples below are based on body@email.domain entered in the OpenPGP Rules field above.
- Is exactly: with this setting, the rule will only trigger on emails to body@email.domain (exact, case insensitive matching).
- Contains: with this setting, any email address containing the string is matched, e.g. anybody@email.domain or body@email.domain.net
- Begins with: with this setting, any email address starting with the string is matched, e.g. body@email.domain.net, body@email.domain-name.com.
- Ends with: with this setting, any email address ending with the string is matched, e.g. anybody@email.domain , somebody@email.domain.
- Continue with the next rule for the matching address
- Enabling this function will allow you to define a rule but not have to specify a KeyID in the Use the following OpenPGP keys: field, so that the email address is used to check for a key at the time of sending. Also, further rules for the same address(es) will be processed as well.
- Do not check further rules for the matching address
- Enabling this function stops processing any other rules for the matching address(es) if this rule is matched; i.e. rule processing continues with the next recipient.
- Use the following OpenPGP keys:
- Use the Select Key(s).. button to select the recipient keys to be used for encryption. As in the action above, no further rules for the matching address(es) are processed.
- Default for Signing
-
Enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Yes, if selected from in Message Composition: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encryption
- Enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- Enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning are the same as for message signing.
The rules are processed in the order displayed in the list in the OpenPGP Rules Editor. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Further help is available on the Enigmail Per-Recipient Settings page
enigmail/lang/zh-TW/help/initError.html 0000664 0000000 0000000 00000004536 12667016244 0020350 0 ustar 00root root 0000000 0000000
Enigmail Help: How to Resolve Problems with Initializing OpenPGP
Enigmail Help
How to Resolve Problems with Initializing OpenPGP
There are several reasons why initializing OpenPGP does not succeed. The most common ones are described below;
for more information please visit the Enigmail Support page.
- GnuPG could not be found
-
In order for OpenPGP to work, the tool GnuPG needs to be installed.
If GnuPG cannot be found, then first make sure that the executable gpg.exe (on Windows; gpg on other platforms) is installed on your computer.
If GnuPG is installed, and OpenPGP cannot find it, then you need to manually set the path to GnuPG in the OpenPGP Preferences (menu OpenPGP > Preferences)
- Enigmime failed to initialize
-
OpenPGP works only if it is built using the same build environment as Thunderbird or SeaMonkey was built. This means that you can use the official Enigmail releases only if you use the official releases of Thunderbird or SeaMonkey provided by mozilla.org.
If you use a Thunderbird or SeaMonkey version coming from some other source (e.g. the provider of your Linux distribution), or if you built the application yourself, you should either use an Enigmail version built by the same source, or build Enigmail yourself. For building Enigmail, refer to the Source Code section on the Enigmail home page. Please don't file any bug report concerning this problem, it is not solvable.
Further help is available on the Enigmail Support Web Site.
enigmail/lang/zh-TW/help/messenger.html 0000664 0000000 0000000 00000010121 12667016244 0020346 0 ustar 00root root 0000000 0000000
Enigmail Help: Message Reading
Enigmail Help
Using Enigmail when reading messages
- Decrypt button in main Mail window
- This button can be used for several purposes: decrypt, verify, or import public keys. Normally decryption/verification happens automatically, although this can be disabled through a preference. However, if this fails, usually a short error message will appear in the Enigmail status line. If you click the Decrypt button, you will be able to see a more detailed error message, including the output from the GnuPG command.
- Pen and Key icons in Message Header display
-
The Pen and Key icons in the Message Header display indicate if the message you are reading was signed and/or encrypted and if the signature is good, i.e. the message has not been changed since it was signed. If the message has been changed, the Pen icon will change to a Broken Pen to indicate that the signature is bad. Right clicking on either the Pen or Key icons will bring up a menu with the following options:
- OpenPGP Security info: allows you to view the output status from GnuPG for the message.
- Copy OpenPGP Security info: copies the output status from GnuPG to the clipboard; to paste into a reply message, etc.
- View OpenPGP Photo ID: allows you to view the Photo ID of the person who sent the message, if they have a photo embedded in their Public Key. (This option will only be enabled if a Photo ID exists in their key.)
- S/MIME Security info: allows you to view the S/MIME Security Info for the message.
If you do not have keyserver-options auto-key-retrieve set in your gpg.conf file and you read a message which is signed or encrypted, you will see a Pen icon in the headers display area with a Question mark on it, the Enigmail status line in the headers area will say Part of the message signed; click pen icon for details and the message in the Message Pane will show all the OpenPGP message block indicators and the signature block.
You may also see this if you have keyserver-options auto-key-retrieve set in your gpg.conf file and the OpenPGP key is not available on the default keyserver.
Clicking on the Pen and Question mark icon will bring up a window advising that the key is unavailable in your keyring. Clicking on OK will bring up another window with a list of keyservers from which you can select to download the sender's public key from.
To configure the list of keyservers you wish to use, go to Enigmail -> Preferences -> Basic tab and enter the keyserver addresses in the Keyserver(s): box, separated by a comma. The first keyserver in the list will be used as the default.
- Opening encrypted attachments / importing attached OpenPGP keys
- Attachments named *.pgp, *.asc and *.gpg are recognized as attachments that can be handled specially by Enigmail. Right clicking on such an attachment enables two special menu items in the context menu: Decrypt and Open and Decrypt and Save. Use these two menu items if you want Enigmail to decrypt an attachment before opening or saving it. If an attachment is recognized as an OpenPGP key file, you are offered to import the keys it into your keyrings.
Further help is available on the Enigmail Help web page
enigmail/lang/zh-TW/help/rulesEditor.html 0000664 0000000 0000000 00000006031 12667016244 0020664 0 ustar 00root root 0000000 0000000
Enigmail Help: Rules Editor
Enigmail Help
Using the Enigmail Rules Editor
In the Rules Editor, you can specify defaults per recipient for enabling encryption, signing and PGP/MIME, and to define what OpenPGP key(s) to use. Each rule consists of 5 fields and is represented on a single line:
- Email
- The e-mail(s) from the To:, Cc: and Bcc: fields to match. The matching works on substrings (Further details can be found in the Edit Rule dialog)
- OpenPGP Key(s)
- a list of OpenPGP Key ID's to use for the recipient
- Sign
-
enable or disable message signing. This either uses or overrides what you have specified in the message composition window. The values are:
- Never: disable signing, even if it was enabled in the message composition window (overrules the other values)
- Possible: leave signing as specified in the message composition window
- Always: enable signing, even if it was not enabled in the message composition window
These signing settings are applied for all rules that match. If one of the rules disables signing, the message will not be signed, regardless of other rules that specify Always.
- Encrypt
- enable or disable message encryption. The allowed settings and their meaning are the same as for message signing.
- PGP/MIME
- enable or disable the use of the PGP/MIME (RFC 3156) message encoding. If PGP/MIME is disabled, the messages are encoded using "inline PGP". The allowed values and their meaning a re the same as for message signing.
The rules are processed in the order displayed in the list. Whenever a rule matches a recipient and contains a OpenPGP Key ID, in addition to using the specified Key ID, the recipient is not considered anymore when processing further rules.
Note: The rule editor is not yet complete. It is possible to write some more advanced rules by directly editing the rules file (these rules should then not be edited anymore in the rule editor). Further information for directly editing the file is available on the Enigmail Homepage
Further help is available on the Enigmail Help web page
enigmail/lang/zh-TW/help/sendingPrefs.html 0000664 0000000 0000000 00000004777 12667016244 0021031 0 ustar 00root root 0000000 0000000
Enigmail Help: Edit OpenPGP Rule
Enigmail Help
Defining Preferences to Send Encrypted
In the Sending Preferences you can choose the general model and preferences for encryption.
- Convenient Encryption
- With these settings, emails are encrypted without confirmation whenever possible.
This setup is appropriate, if you just want to improve your privacy by sending emails encyrpted instead of unencrypted if that's possible.
The effect is like sending emails as letters instead of postcards. Unlike postcards, letters usually hide their contents while in transit.
Note however that as with letters you can't be sure that nobody is opening the letter while it is in transit (although, some technical effort is necessary for that).
A concrete risk is that you accidentally use "faked keys" you got from somewhere or somebody claiming that the key belongs to the person you want to send emails to. To avoid this risk, you can either use the trust model of PGP (see below) or you should always verify, whether the fingerprint of a public key is correct.
- Manual Encryption
- This option allows you to specify the different preferences for encryption according to your needs. You can specify
- whether replies to encrypted/signed emails should automatically also be encrypted/signed-
- whether to use the trust model of OpenPGP to accept keys (this means that to use a key you either have to sign the key or have enough other people you trust having signed the key).
- whether you want to automatically send emails encrypted if all keys are accepted.
- whether and when you want to finally confirm sending an email.
If it is important for you that content you send encrypted can't be read by other people or organizations, you should use the manual preferences at least choose the option to accept keys only if you or other people signed them. While this model reduces the risk of using faked keys, it requires that you actively sign keys and declare owner trust using the key managament dialog.
enigmail/package/ 0000775 0000000 0000000 00000000000 12667016244 0014246 5 ustar 00root root 0000000 0000000 enigmail/package/.gitattributes 0000664 0000000 0000000 00000000013 12667016244 0017133 0 ustar 00root root 0000000 0000000 *.rdf text
enigmail/package/Makefile 0000664 0000000 0000000 00000004444 12667016244 0015714 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ..
include $(DEPTH)/config/autoconf.mk
PREF_JS_EXPORTS = $(srcdir)/prefs/enigmail.js
COMPFILES = \
enigmail.js \
pgpmimeHandler.js \
mimeEncrypt.js \
prefs-service.js \
msgCompFields.js
PREFFILES = prefs/enigmail.js
MODFILES = \
app.jsm \
armor.jsm \
attachment.jsm \
card.jsm \
commandLine.jsm \
configBackup.jsm \
configure.jsm \
constants.jsm \
data.jsm \
decryption.jsm \
decryptPermanently.jsm \
dialog.jsm \
encryption.jsm \
core.jsm \
errorHandling.jsm \
funcs.jsm \
gpgAgent.jsm \
protocolHandler.jsm \
events.jsm \
execution.jsm \
expiry.jsm \
files.jsm \
filters.jsm \
fixExchangeMsg.jsm \
glodaMime.jsm \
glodaUtils.jsm \
gpg.jsm \
hash.jsm \
httpProxy.jsm \
installGnuPG.jsm \
key.jsm \
keyEditor.jsm \
keyRing.jsm \
keyserver.jsm \
lazy.jsm \
locale.jsm \
log.jsm \
mime.jsm \
mimeDecrypt.jsm \
mimeVerify.jsm \
os.jsm \
passwordCheck.jsm \
passwords.jsm \
pipeConsole.jsm \
prefs.jsm \
promise.jsm \
rules.jsm \
streams.jsm \
system.jsm \
time.jsm \
timer.jsm \
trust.jsm \
uris.jsm \
verify.jsm \
windows.jsm
all: deploy
deploy: $(PREFFILES) $(COMPFILES) $(MODFILES)
$(DEPTH)/util/install -m 644 $(DIST)/components $(COMPFILES)
$(DEPTH)/util/install -m 644 $(DIST)/defaults/preferences $(PREFFILES)
$(DEPTH)/util/install -m 644 $(DIST)/modules $(MODFILES)
clean:
$(DEPTH)/util/install -u $(DIST)/components $(COMPFILES)
$(DEPTH)/util/install -u $(DIST)/defaults/preferences $(PREFFILES)
$(DEPTH)/util/install -u $(DIST)/modules $(MODFILES)
enigmail/package/app.jsm 0000664 0000000 0000000 00000004156 12667016244 0015547 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailApp"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://gre/modules/AddonManager.jsm"); /*global AddonManager: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1";
const ENIG_EXTENSION_GUID = "{847b3a00-7ab1-11d4-8f02-006008948af5}";
const SEAMONKEY_ID = "{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}";
const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1";
const EnigmailApp = {
/**
* Platform application name (e.g. Thunderbird)
*/
getName: function() {
return Cc[XPCOM_APPINFO].getService(Ci.nsIXULAppInfo).name;
},
/**
* Return the directory holding the current profile as nsIFile object
*/
getProfileDirectory: function() {
let ds = Cc[DIR_SERV_CONTRACTID].getService(Ci.nsIProperties);
return ds.get("ProfD", Ci.nsIFile);
},
isSuite: function() {
// return true if Seamonkey, false otherwise
return Cc[XPCOM_APPINFO].getService(Ci.nsIXULAppInfo).ID == SEAMONKEY_ID;
},
getVersion: function() {
EnigmailLog.DEBUG("app.jsm: getVersion\n");
EnigmailLog.DEBUG("app.jsm: installed version: " + EnigmailApp.version + "\n");
return EnigmailApp.version;
},
getInstallLocation: function() {
return EnigmailApp.installLocation;
},
setVersion: function(version) {
EnigmailApp.version = version;
},
setInstallLocation: function(location) {
EnigmailApp.installLocation = location;
},
registerAddon: function(addon) {
EnigmailApp.setVersion(addon.version);
EnigmailApp.setInstallLocation(addon.getResourceURI("").QueryInterface(Ci.nsIFileURL).file);
},
initAddon: function() {
AddonManager.getAddonByID(ENIG_EXTENSION_GUID, EnigmailApp.registerAddon);
}
};
EnigmailApp.initAddon();
enigmail/package/armor.jsm 0000664 0000000 0000000 00000013727 12667016244 0016113 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailArmor"];
Components.utils.import("resource://enigmail/log.jsm"); /* global EnigmailLog: false */
const Ci = Components.interfaces;
const nsIEnigmail = Ci.nsIEnigmail;
// Locates STRing in TEXT occurring only at the beginning of a line
function indexOfArmorDelimiter(text, str, offset) {
let currentOffset = offset;
while (currentOffset < text.length) {
let loc = text.indexOf(str, currentOffset);
if (loc === -1 || loc === 0 || text.charAt(loc - 1) == "\n") {
return loc;
}
currentOffset = loc + str.length;
}
return -1;
}
function searchBlankLine(str, then) {
var offset = str.search(/\n\s*\r?\n/);
if (offset === -1) {
return "";
}
else {
return then(offset);
}
}
function indexOfNewline(str, off, then) {
var offset = str.indexOf("\n", off);
if (offset === -1) {
return "";
}
else {
return then(offset);
}
}
const EnigmailArmor = {
// Locates offsets bracketing PGP armored block in text,
// starting from given offset, and returns block type string.
// beginIndex = offset of first character of block
// endIndex = offset of last character of block (newline)
// If block is not found, the null string is returned;
locateArmoredBlock: function(text, offset, indentStr, beginIndexObj, endIndexObj, indentStrObj) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.locateArmoredBlock: " + offset + ", '" + indentStr + "'\n");
beginIndexObj.value = -1;
endIndexObj.value = -1;
var beginIndex = indexOfArmorDelimiter(text, indentStr + "-----BEGIN PGP ", offset);
if (beginIndex == -1) {
var blockStart = text.indexOf("-----BEGIN PGP ");
if (blockStart >= 0) {
var indentStart = text.search(/\n.*\-\-\-\-\-BEGIN PGP /) + 1;
indentStrObj.value = text.substring(indentStart, blockStart);
indentStr = indentStrObj.value;
beginIndex = indexOfArmorDelimiter(text, indentStr + "-----BEGIN PGP ", offset);
}
}
if (beginIndex == -1)
return "";
// Locate newline at end of armor header
offset = text.indexOf("\n", beginIndex);
if (offset == -1)
return "";
var endIndex = indexOfArmorDelimiter(text, indentStr + "-----END PGP ", offset);
if (endIndex == -1)
return "";
// Locate newline at end of PGP block
endIndex = text.indexOf("\n", endIndex);
if (endIndex == -1) {
// No terminating newline
endIndex = text.length - 1;
}
var blockHeader = text.substr(beginIndex, offset - beginIndex + 1);
var blockRegex = new RegExp("^" + indentStr +
"-----BEGIN PGP (.*)-----\\s*\\r?\\n");
var matches = blockHeader.match(blockRegex);
var blockType = "";
if (matches && (matches.length > 1)) {
blockType = matches[1];
EnigmailLog.DEBUG("enigmail.js: Enigmail.locateArmoredBlock: blockType=" + blockType + "\n");
}
if (blockType == "UNVERIFIED MESSAGE") {
// Skip any unverified message block
return EnigmailArmor.locateArmoredBlock(text, endIndex + 1, indentStr, beginIndexObj, endIndexObj, indentStrObj);
}
beginIndexObj.value = beginIndex;
endIndexObj.value = endIndex;
return blockType;
},
/*
* locateArmoredBlocks returns an array with GPGBlock positions
*
* Struct:
* int obj.begin
* int obj.end
* string obj.blocktype
*
*
* @param string text
*
* @return empty array if no block was found
*
*/
locateArmoredBlocks: function(text) {
var beginObj = {};
var endObj = {};
var blocks = [];
var i = 0;
var b;
while ((b = EnigmailArmor.locateArmoredBlock(text, i, "", beginObj, endObj, {})) !== "") {
blocks.push({
begin: beginObj.value,
end: endObj.value,
blocktype: b
});
i = endObj.value;
}
EnigmailLog.DEBUG("enigmail.js: locateArmorBlocks: Found " + blocks.length + " Blocks\n");
return blocks;
},
extractSignaturePart: function(signatureBlock, part) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.extractSignaturePart: part=" + part + "\n");
return searchBlankLine(signatureBlock, function(offset) {
return indexOfNewline(signatureBlock, offset + 1, function(offset) {
var beginIndex = signatureBlock.indexOf("-----BEGIN PGP SIGNATURE-----", offset + 1);
if (beginIndex == -1) {
return "";
}
if (part === nsIEnigmail.SIGNATURE_TEXT) {
return signatureBlock.substr(offset + 1, beginIndex - offset - 1).
replace(/^- -/, "-").
replace(/\n- -/g, "\n-").
replace(/\r- -/g, "\r-");
}
return indexOfNewline(signatureBlock, beginIndex, function(offset) {
var endIndex = signatureBlock.indexOf("-----END PGP SIGNATURE-----", offset);
if (endIndex == -1) {
return "";
}
var signBlock = signatureBlock.substr(offset, endIndex - offset);
return searchBlankLine(signBlock, function(armorIndex) {
if (part == nsIEnigmail.SIGNATURE_HEADERS) {
return signBlock.substr(1, armorIndex);
}
return indexOfNewline(signBlock, armorIndex + 1, function(armorIndex) {
if (part == nsIEnigmail.SIGNATURE_ARMOR) {
return signBlock.substr(armorIndex, endIndex - armorIndex).
replace(/\s*/g, "");
}
else {
return "";
}
});
});
});
});
});
},
registerOn: function(target) {
target.locateArmoredBlock = EnigmailArmor.locateArmoredBlock;
target.locateArmoredBlocks = EnigmailArmor.locateArmoredBlocks;
target.extractSignaturePart = EnigmailArmor.extractSignaturePart;
}
};
enigmail/package/attachment.jsm 0000664 0000000 0000000 00000003471 12667016244 0017116 0 ustar 00root root 0000000 0000000 /*global Components: false, escape: false, unescape: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailAttachment"];
const Cu = Components.utils;
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Cu.import("resource://enigmail/passwords.jsm"); /*global EnigmailPassword: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
const EnigmailAttachment = {
getFileName: function(parent, byteData) {
EnigmailLog.DEBUG("attachment.jsm: getFileName\n");
const args = EnigmailGpg.getStandardArgs(true).
concat(EnigmailPassword.command()).
concat(["--list-packets"]);
const listener = EnigmailExecution.newSimpleListener(
function _stdin(pipe) {
EnigmailLog.DEBUG("attachment.jsm: getFileName: _stdin\n");
pipe.write(byteData);
pipe.write("\n");
pipe.close();
});
const proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath, args, false, parent, listener, {});
if (!proc) {
return null;
}
proc.wait();
const matches = listener.stdoutData.match(/:literal data packet:\r?\n.*name="(.*)",/m);
if (matches && (matches.length > 1)) {
var filename = escape(matches[1]).replace(/%5Cx/g, "%");
return EnigmailData.convertToUnicode(unescape(filename), "utf-8");
}
else {
return null;
}
}
};
enigmail/package/card.jsm 0000664 0000000 0000000 00000002254 12667016244 0015675 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailCard"];
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
const EnigmailCard = {
getCardStatus: function(exitCodeObj, errorMsgObj) {
EnigmailLog.DEBUG("card.jsm: EnigmailCard.getCardStatus\n");
const args = EnigmailGpg.getStandardArgs(false).
concat(["--status-fd", "2", "--fixed-list-mode", "--with-colons", "--card-status"]);
const statusMsgObj = {};
const statusFlagsObj = {};
const outputTxt = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, statusMsgObj, errorMsgObj);
if ((exitCodeObj.value === 0) && !outputTxt) {
exitCodeObj.value = -1;
return "";
}
return outputTxt;
}
};
enigmail/package/chrome.manifest 0000775 0000000 0000000 00000015171 12667016244 0017263 0 ustar 00root root 0000000 0000000 content enigmail jar:chrome/enigmail.jar!/content/enigmail/
locale enigmail en-US jar:chrome/enigmail.jar!/locale/en-US/
# Skin for TBird Mac OS X
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-mac/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=Darwin
# Skin for TBird Windows
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-win-xp/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=WINNT osversion<6
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/aero/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=WINNT osversion>=6
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-win-xp/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=OS2
# Skin for TBird other OS (e.g. Linux)
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=Linux
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=SunOS
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=FreeBSD
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=OpenBSD
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=NetBSD
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=AIX
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=HP-UX
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/tb-linux/enigmail/ application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} os=DragonFly
# Skin for SeaMonkey
skin enigmail classic/1.0 jar:chrome/enigmail.jar!/skin/classic-seamonkey/enigmail/ application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
skin enigmail modern/1.0 jar:chrome/enigmail.jar!/skin/modern/enigmail/
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://enigmail/content/enigmailCheckLanguage.xul
overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://enigmail/content/enigmailMsgComposeOverlay.xul
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/enigmailCheckLanguage.xul
overlay chrome://messenger/content/messenger.xul chrome://enigmail/content/columnOverlay.xul
overlay chrome://messenger/content/csMailWindowOverlay.xul chrome://enigmail/content/enigmailCheckLanguage.xul
# Overlay for mailWindowOverlay on Spicebird
overlay chrome://messenger/content/csMailWindowOverlay.xul chrome://enigmail/content/messengerOverlay-tbird.xul
# Overlay for mailWindowOverlay on Thunderbird
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/messengerOverlay-tbird.xul application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
overlay chrome://enigmail/content/messengerOverlay-tbird.xul chrome://enigmail/content/enigmailMessengerOverlay.xul application!={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
# Overlay for mailWindowOverlay on SeaMonkey
overlay chrome://messenger/content/mailWindowOverlay.xul chrome://enigmail/content/messengerOverlay-sm.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
overlay chrome://enigmail/content/messengerOverlay-sm.xul chrome://enigmail/content/enigmailMessengerOverlay.xul application={92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://enigmail/content/enigmailMsgHdrViewOverlay.xul
overlay chrome://messenger/content/FilterEditor.xul chrome://enigmail/content/enigmailFilterEditorOverlay.xul
overlay chrome://messenger/content/msgPrintEngine.xul chrome://enigmail/content/enigmailMsgPrintOverlay.xul
overlay chrome://messenger/content/am-identity-edit.xul chrome://enigmail/content/enigmailAmIdEditOverlay.xul
overlay chrome://messenger/content/am-identity-edit.xul chrome://enigmail/content/enigmailEditIdentity.xul
overlay chrome://messenger/content/addressbook/addressbook.xul chrome://enigmail/content/enigmailAbCardViewOverlay.xul
overlay chrome://messenger/content/addressbook/csContactsOverlay.xul chrome://enigmail/content/enigmailAbCardViewOverlay.xul
overlay chrome://messenger/content/addressbook/abContactsPanel.xul chrome://enigmail/content/enigmailAbContactsPanel.xul
overlay chrome://global/content/customizeToolbar.xul chrome://enigmail/content/enigmailCustToolOverlay.xul
overlay chrome://enigmail/content/am-enigprefs.xul chrome://enigmail/content/enigmailEditIdentity.xul
overlay chrome://enigmail/content/am-enigprefs-edit.xul chrome://enigmail/content/enigmailEditIdentity.xul
# Resource module registration
resource enigmail modules/
## Gecko 2.0 JavaScript component registration
# Enigmail
component {847b3a01-7ab1-11d4-8f02-006008948af5} components/enigmail.js
contract @mozdev.org/enigmail/enigmail;1 {847b3a01-7ab1-11d4-8f02-006008948af5}
# EnigmailProtocolHandler
component {847b3a11-7ab1-11d4-8f02-006008948af5} components/enigmail.js
contract @mozilla.org/network/protocol;1?name=enigmail {847b3a11-7ab1-11d4-8f02-006008948af5}
# Command line service
component {847b3ab1-7ab1-11d4-8f02-006008948af5} components/enigmail.js
contract @mozilla.org/enigmail/cline-handler;1 {847b3ab1-7ab1-11d4-8f02-006008948af5}
category command-line-handler cline-enigmail @mozilla.org/enigmail/cline-handler;1
# EnigMsgCompFields
component {847b3a30-7ab1-11d4-8f02-006008948af5} components/msgCompFields.js
contract @mozdev.org/enigmail/composefields;1 {847b3a30-7ab1-11d4-8f02-006008948af5}
# registration of service to decrypt PGP/MIME messages
component {7514cbeb-2bfd-4b2c-829b-1a4691fa0ac8} components/pgpmimeHandler.js
contract @mozilla.org/mime/pgp-mime-js-decrypt;1 {7514cbeb-2bfd-4b2c-829b-1a4691fa0ac8}
# registration of service to create PGP/MIME enrypted messages
component {1b040e64-e704-42b9-b05a-942e569afffc} components/mimeEncrypt.js
contract @mozilla.org/messengercompose/composesecure;1 {1b040e64-e704-42b9-b05a-942e569afffc}
# Preference Service
component {847b3ab0-7ab1-11d4-8f02-006008948af5} components/prefs-service.js
contract @mozilla.org/accountmanager/extension;1?name=enigprefs {847b3ab0-7ab1-11d4-8f02-006008948af5}
category mailnews-accountmanager-extensions enigmail-account-manager-extension @mozilla.org/accountmanager/extension;1?name=enigprefs
## interface specifiacations
interfaces components/enigmail.xpt
enigmail/package/commandLine.jsm 0000664 0000000 0000000 00000003355 12667016244 0017215 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailCommandLine"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
const NS_ENIGCLINE_SERVICE_CID = Components.ID("{847b3ab1-7ab1-11d4-8f02-006008948af5}");
const NS_CLINE_SERVICE_CONTRACTID = "@mozilla.org/enigmail/cline-handler;1";
const nsICommandLineHandler = Ci.nsICommandLineHandler;
const nsIFactory = Ci.nsIFactory;
const nsISupports = Ci.nsISupports;
function Handler() {}
Handler.prototype = {
classDescription: "Enigmail Key Management CommandLine Service",
classID: NS_ENIGCLINE_SERVICE_CID,
contractID: NS_CLINE_SERVICE_CONTRACTID,
_xpcom_categories: [{
category: "command-line-handler",
entry: "m-cline-enigmail",
service: false
}],
QueryInterface: XPCOMUtils.generateQI([nsICommandLineHandler, nsIFactory, nsISupports]),
// nsICommandLineHandler
handle: function(cmdLine) {
if (cmdLine.handleFlag("pgpkeyman", false)) {
cmdLine.preventDefault = true; // do not open main app window
const wwatch = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher);
wwatch.openWindow(null, "chrome://enigmail/content/enigmailKeyManager.xul", "_blank", "chrome,dialog=no,all", cmdLine);
}
},
helpInfo: " -pgpkeyman Open the OpenPGP key management.\n",
lockFactory: function(lock) {}
};
const EnigmailCommandLine = {
Handler: Handler
};
enigmail/package/configBackup.jsm 0000664 0000000 0000000 00000015276 12667016244 0017367 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailConfigBackup"];
Components.utils.import("resource://enigmail/log.jsm"); /* global EnigmailLog: false */
Components.utils.import("resource://enigmail/rules.jsm"); /* global EnigmailRules: false */
Components.utils.import("resource://enigmail/files.jsm"); /* global EnigmailFiles: false */
Components.utils.import("resource://enigmail/prefs.jsm"); /* global EnigmailPrefs: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const TYPE_BOOL = 1;
const TYPE_CHAR = 2;
const TYPE_INT = 3;
const IdentityPref = {
enablePgp: TYPE_BOOL,
pgpkeyId: TYPE_CHAR,
pgpKeyMode: TYPE_INT,
pgpSignPlain: TYPE_BOOL,
pgpSignEncrypted: TYPE_BOOL,
defaultSigningPolicy: TYPE_INT,
defaultEncryptionPolicy: TYPE_INT,
openPgpHeaderMode: TYPE_INT,
openPgpUrlName: TYPE_CHAR,
pgpMimeMode: TYPE_BOOL,
attachPgpKey: TYPE_BOOL,
autoEncryptDrafts: TYPE_BOOL
};
var EnigmailConfigBackup = {
getAccountManager: function() {
let amService = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager);
return amService;
},
/**
* itereate over all identities and execute a callback function for each found element
*
* @param callbackFunc function - the callback for each identity
* The function takes the identity as 1st argument, i.e.
* callbackFunc(nsIMsgIdentity)
* @return - undefined
*/
forAllIdentitites: function(callbackFunc) {
let amService = this.getAccountManager();
amService.LoadAccounts(); // ensure accounts are really loaded
let a = amService.allIdentities;
for (let i = 0; i < a.length; i++) {
let id = a.queryElementAt(i, Ci.nsIMsgIdentity);
try {
callbackFunc(id);
}
catch (ex) {
EnigmailLog.DEBUG("configBackup.jsm: forAllIdentitites: exception " + ex.toString() + "\n");
}
}
},
/**
* backup Enigmail preferences to a file
*
* @param outputFile nsIFile - handle to file to be saved
*
* @return 0: success, other values: failure
*/
backupPrefs: function(outputFile) {
EnigmailLog.DEBUG("configBackup.jsm: backupPrefs\n");
// user preference
let prefObj = {
enigmailPrefs: EnigmailPrefs.getAllPrefs(),
mailIdentities: {}
};
function getIdentityPrefs(identity) {
if (!identity.getBoolAttribute("enablePgp")) return; // do nothing if Enigmail disabled
let keyObj = {
emailAddress: identity.email.toLowerCase(),
identityName: identity.identityName
};
for (let pref in IdentityPref) {
switch (IdentityPref[pref]) {
case TYPE_BOOL:
keyObj[pref] = identity.getBoolAttribute(pref);
break;
case TYPE_INT:
keyObj[pref] = identity.getIntAttribute(pref);
break;
case TYPE_CHAR:
keyObj[pref] = identity.getCharAttribute(pref);
break;
}
}
prefObj.mailIdentities[identity.key] = keyObj;
}
this.forAllIdentitites(getIdentityPrefs);
// per-recipient rules (aka pgpRules.xml)
var rulesFile = EnigmailRules.getRulesFile();
if (rulesFile.exists()) {
prefObj.rules = EnigmailFiles.readFile(rulesFile);
}
// serialize everything to UTF-8 encoded JSON.
var strm = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
var nativeJSON = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON);
try {
strm.init(outputFile, -1, -1, 0);
nativeJSON.encodeToStream(strm, "UTF-8", false, prefObj);
strm.close();
}
catch (ex) {
return -1;
}
return 0;
},
/**
* Restore Enigmail preferences from a file as generated by backpPrefs()
*
* @param inputFile nsIFile - handle to file to be saved
*
* @return Object: {
* retVal: Number - 0: success, other values: failure
* unmatchedIds: Array (String): keys of identities
* }
*/
restorePrefs: function(inputFile) {
EnigmailLog.DEBUG("configBackup.jsm: restorePrefs\n");
var prefObj;
var returnObj = {
retVal: -1,
unmatchedIds: []
};
function setIdentityPref(identity) {
for (let k in prefObj.mailIdentities) {
if (prefObj.mailIdentities[k].emailAddress === identity.email.toLowerCase()) {
EnigmailLog.DEBUG("configBackup.jsm: setIdentityPref: restoring values for " + identity.email + "\n");
prefObj.mailIdentities[k].foundMatchingEmail = true;
let keyObj = prefObj.mailIdentities[k];
for (let pref in IdentityPref) {
switch (IdentityPref[pref]) {
case TYPE_BOOL:
identity.setBoolAttribute(pref, keyObj[pref]);
break;
case TYPE_INT:
identity.setIntAttribute(pref, keyObj[pref]);
break;
case TYPE_CHAR:
identity.setCharAttribute(pref, keyObj[pref]);
break;
}
}
return;
}
}
EnigmailLog.DEBUG("configBackup.jsm: setIdentityPref: no matching data for " + identity.email + "\n");
}
// Profile must be a single UTF-8 encoded JSON object.
var strm = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
var nativeJSON = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON);
try {
strm.init(inputFile, -1, -1, 0);
prefObj = nativeJSON.decodeFromStream(strm, "UTF-8", false);
strm.close();
var nsIPB = Ci.nsIPrefBranch;
var branch = EnigmailPrefs.getPrefBranch();
// Set all options recorded in the JSON file.
for (let name in prefObj.enigmailPrefs) {
EnigmailPrefs.setPref(name, prefObj.enigmailPrefs[name]);
}
this.forAllIdentitites(setIdentityPref);
for (let i in prefObj.mailIdentities) {
if (!("foundMatchingEmail" in prefObj.mailIdentities[i])) {
returnObj.unmatchedIds.push(prefObj.mailIdentities[i].identityName);
}
}
let am = this.getAccountManager();
am.saveAccountInfo();
EnigmailPrefs.savePrefs();
if ("rules" in prefObj) {
EnigmailRules.loadRulesFromString(prefObj.rules);
EnigmailRules.saveRulesFile();
}
}
catch (ex) {
EnigmailLog.ERROR("configBackup.jsm: restorePrefs - exception " + ex.toString() + "\n");
return returnObj;
}
returnObj.retVal = 0;
return returnObj;
}
};
enigmail/package/configure.jsm 0000664 0000000 0000000 00000021325 12667016244 0016745 0 ustar 00root root 0000000 0000000 /*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*global Components: false */
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailConfigure"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
/*global EnigmailLog: false, EnigmailPrefs: false, EnigmailTimer: false, EnigmailApp: false, EnigmailLocale: false, EnigmailDialog: false, EnigmailWindows: false */
Cu.import("resource://enigmail/log.jsm");
Cu.import("resource://enigmail/prefs.jsm");
Cu.import("resource://enigmail/timer.jsm");
Cu.import("resource://enigmail/app.jsm");
Cu.import("resource://enigmail/locale.jsm");
Cu.import("resource://enigmail/dialog.jsm");
Cu.import("resource://enigmail/windows.jsm");
function upgradeRecipientsSelection() {
// Upgrade perRecipientRules and recipientsSelectionOption to
// new recipientsSelection
var keySel = EnigmailPrefs.getPref("recipientsSelectionOption");
var perRecipientRules = EnigmailPrefs.getPref("perRecipientRules");
var setVal = 2;
/*
1: rules only
2: rules & email addresses (normal)
3: email address only (no rules)
4: manually (always prompt, no rules)
5: no rules, no key selection
*/
switch (perRecipientRules) {
case 0:
switch (keySel) {
case 0:
setVal = 5;
break;
case 1:
setVal = 3;
break;
case 2:
setVal = 4;
break;
default:
setVal = 2;
}
break;
case 1:
setVal = 2;
break;
case 2:
setVal = 1;
break;
default:
setVal = 2;
}
// set new pref
EnigmailPrefs.setPref("recipientsSelection", setVal);
// clear old prefs
EnigmailPrefs.getPrefBranch().clearUserPref("perRecipientRules");
EnigmailPrefs.getPrefBranch().clearUserPref("recipientsSelectionOption");
}
function upgradePrefsSending() {
EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending()\n");
var cbs = EnigmailPrefs.getPref("confirmBeforeSend");
var ats = EnigmailPrefs.getPref("alwaysTrustSend");
var ksfr = EnigmailPrefs.getPref("keepSettingsForReply");
EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending cbs=" + cbs + " ats=" + ats + " ksfr=" + ksfr + "\n");
// Upgrade confirmBeforeSend (bool) to confirmBeforeSending (int)
switch (cbs) {
case false:
EnigmailPrefs.setPref("confirmBeforeSending", 0); // never
break;
case true:
EnigmailPrefs.setPref("confirmBeforeSending", 1); // always
break;
}
// Upgrade alwaysTrustSend (bool) to acceptedKeys (int)
switch (ats) {
case false:
EnigmailPrefs.setPref("acceptedKeys", 0); // valid
break;
case true:
EnigmailPrefs.setPref("acceptedKeys", 1); // all
break;
}
// if all settings are default settings, use convenient encryption
if (cbs === false && ats === true && ksfr === true) {
EnigmailPrefs.setPref("encryptionModel", 0); // convenient
EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending() encryptionModel=0 (convenient)\n");
}
else {
EnigmailPrefs.setPref("encryptionModel", 1); // manually
EnigmailLog.DEBUG("enigmailCommon.jsm: upgradePrefsSending() encryptionModel=1 (manually)\n");
}
// clear old prefs
EnigmailPrefs.getPrefBranch().clearUserPref("confirmBeforeSend");
EnigmailPrefs.getPrefBranch().clearUserPref("alwaysTrustSend");
}
function upgradeHeadersView() {
// all headers hack removed -> make sure view is correct
var hdrMode = null;
try {
hdrMode = EnigmailPrefs.getPref("show_headers");
}
catch (ex) {}
if (!hdrMode) hdrMode = 1;
try {
EnigmailPrefs.getPrefBranch().clearUserPref("show_headers");
}
catch (ex) {}
EnigmailPrefs.getPrefRoot().setIntPref("mail.show_headers", hdrMode);
}
function upgradeCustomHeaders() {
try {
var extraHdrs = " " + EnigmailPrefs.getPrefRoot().getCharPref("mailnews.headers.extraExpandedHeaders").toLowerCase() + " ";
var extraHdrList = [
"x-enigmail-version",
"content-transfer-encoding",
"openpgp",
"x-mimeole",
"x-bugzilla-reason",
"x-php-bug"
];
for (let hdr in extraHdrList) {
extraHdrs = extraHdrs.replace(" " + extraHdrList[hdr] + " ", " ");
}
extraHdrs = extraHdrs.replace(/^ */, "").replace(/ *$/, "");
EnigmailPrefs.getPrefRoot().setCharPref("mailnews.headers.extraExpandedHeaders", extraHdrs);
}
catch (ex) {}
}
/**
* Change from global PGP/MIME setting to per-identity setting
*/
function upgradeOldPgpMime() {
var pgpMimeMode = false;
try {
pgpMimeMode = (EnigmailPrefs.getPref("usePGPMimeOption") == 2);
}
catch (ex) {
return;
}
try {
var accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager);
for (var i = 0; i < accountManager.allIdentities.length; i++) {
var id = accountManager.allIdentities.queryElementAt(i, Ci.nsIMsgIdentity);
if (id.getBoolAttribute("enablePgp")) {
id.setBoolAttribute("pgpMimeMode", pgpMimeMode);
}
}
EnigmailPrefs.getPrefBranch().clearUserPref("usePGPMimeOption");
}
catch (ex) {}
}
/**
* Change the default to PGP/MIME for all accounts, except nntp
*/
function defaultPgpMime() {
let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager);
let changedSomething = false;
for (let acct = 0; acct < accountManager.accounts.length; acct++) {
let ac = accountManager.accounts.queryElementAt(acct, Ci.nsIMsgAccount);
if (ac.incomingServer.type.search(/(pop3|imap|movemail)/) >= 0) {
for (let i = 0; i < ac.identities.length; i++) {
let id = ac.identities.queryElementAt(i, Ci.nsIMsgIdentity);
if (id.getBoolAttribute("enablePgp") && !id.getBoolAttribute("pgpMimeMode")) {
changedSomething = true;
}
id.setBoolAttribute("pgpMimeMode", true);
}
}
}
if (EnigmailPrefs.getPref("advancedUser") && changedSomething) {
EnigmailDialog.alert(null,
EnigmailLocale.getString("preferences.defaultToPgpMime"));
}
}
const EnigmailConfigure = {
configureEnigmail: function(win, startingPreferences) {
EnigmailLog.DEBUG("configure.jsm: configureEnigmail\n");
let oldVer = EnigmailPrefs.getPref("configuredVersion");
let vc = Cc["@mozilla.org/xpcom/version-comparator;1"].getService(Ci.nsIVersionComparator);
if (oldVer === "") {
EnigmailWindows.openSetupWizard(win, false);
}
else {
if (oldVer < "0.95") {
try {
upgradeHeadersView();
upgradeOldPgpMime();
upgradeRecipientsSelection();
}
catch (ex) {}
}
if (vc.compare(oldVer, "1.0") < 0) {
upgradeCustomHeaders();
}
if (vc.compare(oldVer, "1.7a1pre") < 0) {
// 1: rules only
// => assignKeysByRules true; rest false
// 2: rules & email addresses (normal)
// => assignKeysByRules/assignKeysByEmailAddr/assignKeysManuallyIfMissing true
// 3: email address only (no rules)
// => assignKeysByEmailAddr/assignKeysManuallyIfMissing true
// 4: manually (always prompt, no rules)
// => assignKeysManuallyAlways true
// 5: no rules, no key selection
// => assignKeysByRules/assignKeysByEmailAddr true
upgradePrefsSending();
}
if (vc.compare(oldVer, "1.7") < 0) {
// open a modal dialog. Since this might happen during the opening of another
// window, we have to do this asynchronously
EnigmailTimer.setTimeout(
function _cb() {
var doIt = EnigmailDialog.confirmDlg(win,
EnigmailLocale.getString("enigmailCommon.versionSignificantlyChanged"),
EnigmailLocale.getString("enigmailCommon.checkPreferences"),
EnigmailLocale.getString("dlg.button.close"));
if (!startingPreferences && doIt) {
// same as:
// - EnigmailWindows.openPrefWindow(window, true, 'sendingTab');
// but
// - without starting the service again because we do that right now
// - and modal (waiting for its end)
win.openDialog("chrome://enigmail/content/pref-enigmail.xul",
"_blank", "chrome,resizable=yes,modal", {
'showBasic': true,
'clientType': 'thunderbird',
'selectTab': 'sendingTab'
});
}
}, 100);
}
if (vc.compare(oldVer, "1.9a2pre") < 0) {
defaultPgpMime();
}
}
EnigmailPrefs.setPref("configuredVersion", EnigmailApp.getVersion());
EnigmailPrefs.savePrefs();
}
};
enigmail/package/constants.jsm 0000664 0000000 0000000 00000002106 12667016244 0016774 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailConstants"];
const EnigmailConstants = {
POSSIBLE_PGPMIME: -2081,
// possible values for
// - encryptByRule, signByRules, pgpmimeByRules
// - encryptForced, signForced, pgpmimeForced (except CONFLICT)
// NOTE:
// - values 0/1/2 are used with this fixed semantics in the persistent rules
// - see also enigmailEncryptionDlg.xul
ENIG_NEVER: 0,
ENIG_UNDEF: 1,
ENIG_ALWAYS: 2,
ENIG_AUTO_ALWAYS: 22,
ENIG_CONFLICT: 99,
ENIG_FINAL_UNDEF: -1,
ENIG_FINAL_NO: 0,
ENIG_FINAL_YES: 1,
ENIG_FINAL_FORCENO: 10,
ENIG_FINAL_FORCEYES: 11,
ENIG_FINAL_SMIME_DISABLED: 98, // disabled to to preferring S/MIME
ENIG_FINAL_CONFLICT: 99,
MIME_HANDLER_UNDEF: 0,
MIME_HANDLER_SMIME: 1,
MIME_HANDLER_PGPMIME: 2,
nsIEnigmail: Components.interfaces.nsIEnigmail
};
enigmail/package/core.jsm 0000664 0000000 0000000 00000004743 12667016244 0015721 0 ustar 00root root 0000000 0000000 /*global Components: false, Enigmail: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailCore"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const enigmailHolder = {
svc: null
}; // Global Enigmail Service
let envList = null; // currently filled from enigmail.js
function lazy(importName, name) {
let holder = null;
return function(f) {
if (!holder) {
if (f) {
holder = f();
}
else {
const result = {};
Components.utils.import("resource://enigmail/" + importName, result);
holder = result[name];
}
}
return holder;
};
}
const EnigmailCore = {
version: "",
init: function(enigmailVersion) {
this.version = enigmailVersion;
},
/**
* get and or initialize the Enigmail service,
* including the handling for upgrading old preferences to new versions
*
* @win: - nsIWindow: parent window (optional)
* @startingPreferences - Boolean: true - called while switching to new preferences
* (to avoid re-check for preferences)
*/
getService: function(win, startingPreferences) {
// Lazy initialization of Enigmail JS component (for efficiency)
if (enigmailHolder.svc) {
return enigmailHolder.svc.initialized ? enigmailHolder.svc : null;
}
try {
enigmailHolder.svc = Cc["@mozdev.org/enigmail/enigmail;1"].createInstance(Ci.nsIEnigmail);
return enigmailHolder.svc.wrappedJSObject.getService(enigmailHolder, win, startingPreferences);
}
catch (ex) {
return null;
}
},
getEnigmailService: function() {
return enigmailHolder.svc;
},
setEnigmailService: function(v) {
enigmailHolder.svc = v;
},
ensuredEnigmailService: function(f) {
if (!enigmailHolder.svc) {
EnigmailCore.setEnigmailService(f());
}
return enigmailHolder.svc;
},
getKeyRing: lazy("keyRing.jsm", "EnigmailKeyRing"),
/**
* obtain a list of all environment variables
*
* @return: Array of Strings with the following structrue
* variable_name=variable_content
*/
getEnvList: function() {
return envList;
},
addToEnvList: function(str) {
EnigmailCore.getEnvList().push(str);
},
initEnvList: function() {
envList = [];
}
};
enigmail/package/data.jsm 0000664 0000000 0000000 00000007275 12667016244 0015705 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailLog: false, unescape: false, atob: false, btoa: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailData"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const SCRIPTABLEUNICODECONVERTER_CONTRACTID = "@mozilla.org/intl/scriptableunicodeconverter";
const HEX_TABLE = "0123456789abcdef";
function converter(charset) {
let unicodeConv = Cc[SCRIPTABLEUNICODECONVERTER_CONTRACTID].getService(Ci.nsIScriptableUnicodeConverter);
unicodeConv.charset = charset || "utf-8";
return unicodeConv;
}
const EnigmailData = {
getUnicodeData: function(data) {
// convert output from subprocess to Unicode
var tmpStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
tmpStream.setData(data, data.length);
var inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
inStream.init(tmpStream);
return inStream.read(tmpStream.available());
},
extractMessageId: function(uri) {
var messageId = "";
var matches = uri.match(/^enigmail:message\/(.+)/);
if (matches && (matches.length > 1)) {
messageId = matches[1];
}
return messageId;
},
extractMimeMessageId: function(uri) {
var messageId = "";
var matches = uri.match(/^enigmail:mime-message\/(.+)/);
if (matches && (matches.length > 1)) {
messageId = matches[1];
}
return messageId;
},
decodeQuotedPrintable: function(str) {
return unescape(str.replace(/%/g, "=25").replace(/\=/g, '%'));
},
decodeBase64: function(str) {
return atob(str.replace(/[\s\r\n]*/g, ""));
},
/***
* Encode a string in base64, with a max. line length of 72 characters
*/
encodeBase64: function(str) {
return btoa(str).replace(/(.{72})/g, "$1\r\n");
},
convertToUnicode: function(text, charset) {
if (!text || (charset && (charset.toLowerCase() == "iso-8859-1"))) {
return text;
}
// Encode plaintext
try {
return converter(charset).ConvertToUnicode(text);
}
catch (ex) {
return text;
}
},
convertFromUnicode: function(text, charset) {
if (!text) {
return "";
}
try {
return converter(charset).ConvertFromUnicode(text);
}
catch (ex) {
return text;
}
},
convertGpgToUnicode: function(text) {
if (typeof(text) === "string") {
text = text.replace(/\\x3a/ig, "\\e3A");
var a = text.search(/\\x[0-9a-fA-F]{2}/);
while (a >= 0) {
var ch = unescape('%' + text.substr(a + 2, 2));
var r = new RegExp("\\" + text.substr(a, 4));
text = text.replace(r, ch);
a = text.search(/\\x[0-9a-fA-F]{2}/);
}
text = EnigmailData.convertToUnicode(text, "utf-8").replace(/\\e3A/g, ":");
}
return text;
},
pack: function(value, bytes) {
let str = '';
let mask = 0xff;
for (let j = 0; j < bytes; j++) {
str = String.fromCharCode((value & mask) >> j * 8) + str;
mask <<= 8;
}
return str;
},
unpack: function(str) {
let len = str.length;
let value = 0;
for (let j = 0; j < len; j++) {
value <<= 8;
value |= str.charCodeAt(j);
}
return value;
},
bytesToHex: function(str) {
let len = str.length;
let hex = '';
for (let j = 0; j < len; j++) {
let charCode = str.charCodeAt(j);
hex += HEX_TABLE.charAt((charCode & 0xf0) >> 4) +
HEX_TABLE.charAt((charCode & 0x0f));
}
return hex;
}
};
enigmail/package/decryptPermanently.jsm 0000664 0000000 0000000 00000111400 12667016244 0020647 0 ustar 00root root 0000000 0000000 /*global Components: false, btoa: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailDecryptPermanently"];
const Cu = Components.utils;
Cu.import("resource://gre/modules/AddonManager.jsm"); /*global AddonManager: false */
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/armor.jsm"); /*global EnigmailArmor: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Cu.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */
Cu.import("resource://enigmail/glodaUtils.jsm"); /*global GlodaUtils: false */
Cu.import("resource://enigmail/promise.jsm"); /*global Promise: false */
Cu.import("resource:///modules/MailUtils.js"); /*global MailUtils: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/streams.jsm"); /*global EnigmailStreams: false */
Cu.import("resource://enigmail/passwords.jsm"); /*global EnigmailPassword: false */
Cu.import("resource://enigmail/mime.jsm"); /*global EnigmailMime: false */
Cu.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
Cu.import("resource://enigmail/attachment.jsm"); /*global EnigmailAttachment: false */
/*global MimeBody: false, MimeUnknown: false, MimeMessageAttachment: false */
/*global msgHdrToMimeMessage: false, MimeMessage: false, MimeContainer: false */
Cu.import("resource://enigmail/glodaMime.jsm");
var EC = EnigmailCore;
const Cc = Components.classes;
const Ci = Components.interfaces;
const nsIEnigmail = Components.interfaces.nsIEnigmail;
const STATUS_OK = 0;
const STATUS_FAILURE = 1;
const STATUS_NOT_REQUIRED = 2;
const IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1";
/*
* Decrypt a message and copy it to a folder
*
* @param nsIMsgDBHdr hdr Header of the message
* @param String destFolder Folder URI
* @param Boolean move If true the original message will be deleted
*
* @return a Promise that we do that
*/
const EnigmailDecryptPermanently = {
/***
* dispatchMessages
*
* Because Thunderbird throws all messages at once at us thus we have to rate limit the dispatching
* of the message processing. Because there is only a negligible performance gain when dispatching
* several message at once we serialize to not overwhelm low power devices.
*
* The function is implemented such that the 1st call (requireSync == true) is a synchronous function,
* while any other call is asynchronous. This is required to make the filters work correctly in case
* there are other filters that work on the message. (see bug 374).
*
* Parameters
* aMsgHdrs: Array of nsIMsgDBHdr
* targetFolder: String; target folder URI
* move: Boolean: type of action; true = "move" / false = "copy"
* requireSync: Boolean: true = require function to behave synchronously
* false = async function (no useful return value)
*
**/
dispatchMessages: function(aMsgHdrs, targetFolder, move, requireSync) {
var inspector = Cc["@mozilla.org/jsinspector;1"].getService(Ci.nsIJSInspector);
var promise = EnigmailDecryptPermanently.decryptMessage(aMsgHdrs[0], targetFolder, move);
var done = false;
var processNext = function(data) {
aMsgHdrs.splice(0, 1);
if (aMsgHdrs.length > 0) {
EnigmailDecryptPermanently.dispatchMessages(aMsgHdrs, targetFolder, move, false);
}
else {
// last message was finished processing
done = true;
inspector.exitNestedEventLoop();
}
};
promise.then(processNext);
promise.catch(function(err) {
processNext(null);
});
if (requireSync && !done) {
// wait here until all messages processed, such that the function returns
// synchronously
inspector.enterNestedEventLoop({
value: 0
});
}
},
decryptMessage: function(hdr, destFolder, move) {
return new Promise(
function(resolve, reject) {
let msgUriSpec = hdr.folder.getUriForMsg(hdr);
const msgSvc = Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger).
messageServiceFromURI(msgUriSpec);
const decrypt = new DecryptMessageIntoFolder(destFolder, move, resolve);
try {
msgHdrToMimeMessage(hdr, decrypt, decrypt.messageParseCallback, true, {
examineEncryptedParts: false,
partsOnDemand: false
});
}
catch (ex) {
reject("msgHdrToMimeMessage failed");
}
return;
}
);
}
};
function DecryptMessageIntoFolder(destFolder, move, resolve) {
this.destFolder = destFolder;
this.move = move;
this.resolve = resolve;
this.foundPGP = 0;
this.mime = null;
this.hdr = null;
this.decryptionTasks = [];
this.subject = "";
}
DecryptMessageIntoFolder.prototype = {
messageParseCallback: function(hdr, mime) {
this.hdr = hdr;
this.mime = mime;
var self = this;
try {
if (!mime) {
this.resolve(true);
return;
}
var ct = getContentType(getHeaderValue(mime, 'content-type'));
var pt = getProtocol(getHeaderValue(mime, 'content-type'));
this.subject = GlodaUtils.deMime(getHeaderValue(mime, 'subject'));
if (!ct) {
this.resolve(true);
return;
}
this.walkMimeTree(this.mime, this.mime);
this.decryptINLINE(this.mime);
if (this.foundPGP < 0) {
// decryption failed
this.resolve(true);
return;
}
for (let i in this.mime.allAttachments) {
let a = this.mime.allAttachments[i];
let suffixIndexEnd = a.name.toLowerCase().lastIndexOf('.pgp');
if (suffixIndexEnd < 0) {
suffixIndexEnd = a.name.toLowerCase().lastIndexOf('.asc');
}
if (suffixIndexEnd > 0 &&
a.contentType.search(/application\/pgp-signature/i) < 0) {
// possible OpenPGP attachment
let p = self.decryptAttachment(a, a.name.substring(0, suffixIndexEnd));
this.decryptionTasks.push(p);
}
else {
let p = this.readAttachment(a);
this.decryptionTasks.push(p);
}
}
Promise.all(this.decryptionTasks).then(
function(tasks) {
self.allTasks = tasks;
for (let a in tasks) {
switch (tasks[a].status) {
case STATUS_NOT_REQUIRED:
tasks[a].name = tasks[a].origName;
break;
case STATUS_OK:
++self.foundPGP;
break;
case STATUS_FAILURE:
// attachment did not decrypt successfully
self.resolve(true);
return;
default:
// no valid result?!
tasks[a].name = tasks[a].origName;
}
}
if (self.foundPGP === 0) {
self.resolve(true);
return;
}
var msg = self.mimeToString(self.mime, true);
if (!msg || msg === "") {
// no message data found
self.resolve(true);
return;
}
//XXX Do we wanna use the tmp for this?
var tempFile = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("TmpD", Ci.nsIFile);
tempFile.append("message.eml");
tempFile.createUnique(0, 384); // == 0600, octal is deprecated
// ensure that file gets deleted on exit, if something goes wrong ...
var extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher);
var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
foStream.init(tempFile, 2, 0x200, false); // open as "write only"
foStream.write(msg, msg.length);
foStream.close();
extAppLauncher.deleteTemporaryFileOnExit(tempFile);
//
// This was taken from the HeaderToolsLite Example Addon "original by Frank DiLecce"
//
// this is interesting: nsIMsgFolder.copyFileMessage seems to have a bug on Windows, when
// the nsIFile has been already used by foStream (because of Windows lock system?), so we
// must initialize another nsIFile object, pointing to the temporary file
var fileSpec = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
fileSpec.initWithPath(tempFile.path);
const copySvc = Cc["@mozilla.org/messenger/messagecopyservice;1"].getService(Ci.nsIMsgCopyService);
var copyListener = {
QueryInterface: function(iid) {
if (iid.equals(Ci.nsIMsgCopyServiceListener) || iid.equals(Ci.nsISupports)) {
return this;
}
EnigmailLog.DEBUG("decryptPermanently.jsm: copyListener error\n");
throw Components.results.NS_NOINTERFACE;
},
GetMessageId: function(messageId) {},
OnProgress: function(progress, progressMax) {},
OnStartCopy: function() {},
SetMessageKey: function(key) {},
OnStopCopy: function(statusCode) {
if (statusCode !== 0) {
//XXX complain?
EnigmailLog.DEBUG("decryptPermanently.jsm: Error copying message: " + statusCode + "\n");
try {
tempFile.remove(false);
}
catch (ex) {
try {
fileSpec.remove(false);
}
catch (e2) {
EnigmailLog.DEBUG("decryptPermanently.jsm: Could not delete temp file\n");
}
}
self.resolve(true);
return;
}
EnigmailLog.DEBUG("decryptPermanently.jsm: Copy complete\n");
if (self.move) {
EnigmailLog.DEBUG("decryptPermanently.jsm: Delete original\n");
var folderInfoObj = {};
self.hdr.folder.getDBFolderInfoAndDB(folderInfoObj).DeleteMessage(self.hdr.messageKey, null, true);
}
try {
tempFile.remove(false);
}
catch (ex) {
try {
fileSpec.remove(false);
}
catch (e2) {
EnigmailLog.DEBUG("decryptPermanently.jsm: Could not delete temp file\n");
}
}
EnigmailLog.DEBUG("decryptPermanently.jsm: Cave Johnson. We're done\n");
self.resolve(true);
}
};
copySvc.CopyFileMessage(fileSpec, MailUtils.getFolderForURI(self.destFolder, false), self.hdr,
false, 0, null, copyListener, null);
}
).catch(
function catchErr(errorMsg) {
EnigmailLog.DEBUG("decryptPermanently.jsm: Promise.catchErr: " + errorMsg + "\n");
self.resolve(false);
}
);
}
catch (ex) {
EnigmailLog.DEBUG("decryptPermanently.jsm: messageParseCallback: caught error " + ex.toString() + "\n");
self.resolve(false);
}
},
readAttachment: function(attachment, strippedName) {
return new Promise(
function(resolve, reject) {
EnigmailLog.DEBUG("decryptPermanently.jsm: readAttachment\n");
let o;
var f = function _cb(data) {
EnigmailLog.DEBUG("decryptPermanently.jsm: readAttachment - got data (" + data.length + ")\n");
o = {
type: "attachment",
data: data,
name: strippedName ? strippedName : attachment.name,
partName: attachment.partName,
origName: attachment.name,
status: STATUS_NOT_REQUIRED
};
resolve(o);
};
try {
var bufferListener = EnigmailStreams.newStringStreamListener(f);
var ioServ = Cc[IOSERVICE_CONTRACTID].getService(Components.interfaces.nsIIOService);
var msgUri = ioServ.newURI(attachment.url, null, null);
var channel = ioServ.newChannelFromURI(msgUri);
channel.asyncOpen(bufferListener, msgUri);
}
catch (ex) {
reject(o);
}
}
);
},
decryptAttachment: function(attachment, strippedName) {
var self = this;
return new Promise(
function(resolve, reject) {
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptAttachment\n");
self.readAttachment(attachment, strippedName).then(
function(o) {
var attachmentHead = o.data.substr(0, 30);
if (attachmentHead.match(/\-\-\-\-\-BEGIN PGP \w+ KEY BLOCK\-\-\-\-\-/)) {
// attachment appears to be a PGP key file, we just go-a-head
resolve(o);
return;
}
var enigmailSvc = EnigmailCore.getService();
var args = EnigmailGpg.getStandardArgs(true);
args = args.concat(EnigmailPassword.command());
args.push("-d");
var statusMsgObj = {};
var cmdLineObj = {};
var exitCode = -1;
var statusFlagsObj = {};
var errorMsgObj = {};
statusFlagsObj.value = 0;
var listener = EnigmailExecution.newSimpleListener(
function _stdin(pipe) {
// try to get original file name if file does not contain suffix
if (strippedName.indexOf(".") < 0) {
let s = EnigmailAttachment.getFileName(null, o.data);
if (s) o.name = s;
}
pipe.write(o.data);
pipe.close();
}
);
do {
var proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath, args, false, null, listener, statusFlagsObj);
if (!proc) {
resolve(o);
return;
}
// Wait for child STDOUT to close
proc.wait();
EnigmailExecution.execEnd(listener, statusFlagsObj, statusMsgObj, cmdLineObj, errorMsgObj);
if ((listener.stdoutData && listener.stdoutData.length > 0) ||
(statusFlagsObj.value & nsIEnigmail.DECRYPTION_OKAY)) {
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptAttachment: decryption OK\n");
exitCode = 0;
}
else if (statusFlagsObj.value & nsIEnigmail.DECRYPTION_FAILED) {
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptAttachment: decryption failed\n");
if (EnigmailGpgAgent.useGpgAgent()) {
// since we cannot find out if the user wants to cancel
// we should ask
let msg = EnigmailLocale.getString("converter.decryptAtt.failed", [attachment.name, self.subject]);
if (!EnigmailDialog.confirmDlg(null, msg,
EnigmailLocale.getString("dlg.button.retry"), EnigmailLocale.getString("dlg.button.skip"))) {
o.status = STATUS_FAILURE;
resolve(o);
return;
}
}
}
else if (statusFlagsObj.value & nsIEnigmail.DECRYPTION_INCOMPLETE) {
// failure; message not complete
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptAttachment: decryption incomplete\n");
o.status = STATUS_FAILURE;
resolve(o);
return;
}
else {
// there is nothing to be decrypted
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptAttachment: no decryption required\n");
o.status = STATUS_NOT_REQUIRED;
resolve(o);
return;
}
} while (exitCode !== 0);
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptAttachment: decrypted to " + listener.stdoutData.length + " bytes\n");
o.data = listener.stdoutData;
o.status = STATUS_OK;
resolve(o);
}
);
}
);
},
/*
* The following functions walk the MIME message structure and decrypt if they find something to decrypt
*/
// the sunny world of PGP/MIME
walkMimeTree: function(mime, parent) {
EnigmailLog.DEBUG("decryptPermanently.jsm: walkMimeTree:\n");
let ct = getContentType(getHeaderValue(mime, 'content-type'));
EnigmailLog.DEBUG("decryptPermanently.jsm: walkMimeTree: part=" + mime.partName + " - " + ct + "\n");
// assign part name on lowest possible level -> that's where the attachment
// really belongs to
for (let i in mime.allAttachments) {
mime.allAttachments[i].partName = mime.partName;
}
if (this.isPgpMime(mime) || this.isSMime(mime)) {
let p = this.decryptPGPMIME(parent, mime.partName);
this.decryptionTasks.push(p);
}
else if (this.isBrokenByExchange(mime)) {
let p = this.decryptAttachment(mime.parts[0].parts[2], "decrypted.txt");
mime.isBrokenByExchange = true;
mime.parts[0].parts[2].name = "ignore.txt";
this.decryptionTasks.push(p);
}
else if (typeof(mime.body) == "string") {
EnigmailLog.DEBUG(" body size: " + mime.body.length + "\n");
}
for (var i in mime.parts) {
this.walkMimeTree(mime.parts[i], mime);
}
},
/***
*
* Detect if mime part is PGP/MIME message that got modified by MS-Exchange:
*
* - multipart/mixed Container with
* - application/pgp-encrypted Attachment with name "PGPMIME Version Identification"
* - application/octet-stream Attachment with name "encrypted.asc" having the encrypted content in base64
* - see:
* - http://www.mozilla-enigmail.org/forum/viewtopic.php?f=4&t=425
* - http://sourceforge.net/p/enigmail/forum/support/thread/4add2b69/
*/
isBrokenByExchange: function(mime) {
EnigmailLog.DEBUG("decryptPermanently.jsm: isBrokenByExchange:\n");
try {
if (mime.parts && mime.parts.length && mime.parts.length == 1 &&
mime.parts[0].parts && mime.parts[0].parts.length && mime.parts[0].parts.length == 3 &&
mime.parts[0].headers["content-type"][0].indexOf("multipart/mixed") >= 0 &&
mime.parts[0].parts[0].size === 0 &&
mime.parts[0].parts[0].headers["content-type"][0].search(/multipart\/encrypted/i) < 0 &&
mime.parts[0].parts[0].headers["content-type"][0].indexOf("text/plain") >= 0 &&
mime.parts[0].parts[1].headers["content-type"][0].indexOf("application/pgp-encrypted") >= 0 &&
mime.parts[0].parts[1].headers["content-type"][0].search(/multipart\/encrypted/i) < 0 &&
mime.parts[0].parts[1].headers["content-type"][0].search(/PGPMIME Versions? Identification/i) >= 0 &&
mime.parts[0].parts[2].headers["content-type"][0].indexOf("application/octet-stream") >= 0 &&
mime.parts[0].parts[2].headers["content-type"][0].indexOf("encrypted.asc") >= 0) {
EnigmailLog.DEBUG("decryptPermanently.jsm: isBrokenByExchange: found message broken by MS-Exchange\n");
return true;
}
}
catch (ex) {}
return false;
},
isPgpMime: function(mime) {
EnigmailLog.DEBUG("decryptPermanently.jsm: isPgpMime:\n");
try {
var ct = mime.contentType;
if (!ct) return false;
if (!('content-type' in mime.headers)) return false;
var pt = getProtocol(getHeaderValue(mime, 'content-type'));
if (!pt) return false;
if (ct.toLowerCase() == "multipart/encrypted" && pt == "application/pgp-encrypted") {
return true;
}
}
catch (ex) {
//EnigmailLog.DEBUG("decryptPermanently.jsm: isPgpMime:"+ex+"\n");
}
return false;
},
// smime-type=enveloped-data
isSMime: function(mime) {
EnigmailLog.DEBUG("decryptPermanently.jsm: isSMime:\n");
try {
var ct = mime.contentType;
if (!ct) return false;
if (!('content-type' in mime.headers)) return false;
var pt = getSMimeProtocol(getHeaderValue(mime, 'content-type'));
if (!pt) return false;
if (ct.toLowerCase() == "application/pkcs7-mime" && pt == "enveloped-data") {
return true;
}
}
catch (ex) {
EnigmailLog.DEBUG("decryptPermanently.jsm: isSMime:" + ex + "\n");
}
return false;
},
decryptPGPMIME: function(mime, part) {
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptPGPMIME: part=" + part + "\n");
var self = this;
return new Promise(
function(resolve, reject) {
var m = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger);
let msgSvc = messenger.messageServiceFromURI(self.hdr.folder.getUriForMsg(self.hdr));
let u = {};
msgSvc.GetUrlForUri(self.hdr.folder.getUriForMsg(self.hdr), u, null);
let op = (u.value.spec.indexOf("?") > 0 ? "&" : "?");
let url = u.value.spec + op + 'part=' + part + "&header=enigmailConvert";
EnigmailLog.DEBUG("decryptPermanently.jsm: getting data from URL " + url + "\n");
let s = EnigmailStreams.newStringStreamListener(
function analyzeDecryptedData(data) {
EnigmailLog.DEBUG("decryptPermanently.jsm: analyzeDecryptedData: got " + data.length + " bytes\n");
if (EnigmailLog.getLogLevel() > 5) {
EnigmailLog.DEBUG("*** start data ***\n'" + data + "'\n***end data***\n");
}
let subpart = mime.parts[0];
let o = {
type: "mime",
name: "",
origName: "",
data: "",
partName: part,
status: STATUS_OK
};
if (data.length === 0) {
// fail if no data found
o.status = STATUS_FAILURE;
resolve(o);
return;
}
let bodyIndex = data.search(/\n\s*\r?\n/);
if (bodyIndex < 0) {
bodyIndex = 0;
}
else {
++bodyIndex;
}
if (data.substr(bodyIndex).search(/\r?\n$/) === 0) {
o.status = STATUS_FAILURE;
resolve(o);
return;
}
m.initialize(data.substr(0, bodyIndex));
let ct = m.extractHeader("content-type", false) || "";
let boundary = getBoundary(getHeaderValue(mime, 'content-type'));
if (!boundary) boundary = EnigmailMime.createBoundary();
// append relevant headers
mime.headers['content-type'] = "multipart/mixed; boundary=\"" + boundary + "\"";
o.data = "--" + boundary + "\n";
o.data += "Content-Type: " + ct + "\n";
let h = m.extractHeader("content-transfer-encoding", false);
if (h) o.data += "content-transfer-encoding: " + h + "\n";
h = m.extractHeader("content-description", true);
if (h) o.data += "content-description: " + h + "\n";
o.data += data.substr(bodyIndex);
if (subpart) {
subpart.body = undefined;
subpart.headers['content-type'] = ct;
}
resolve(o);
}
);
var ioServ = Components.classes[IOSERVICE_CONTRACTID].getService(Components.interfaces.nsIIOService);
try {
var channel = ioServ.newChannel(url, null, null);
channel.asyncOpen(s, null);
}
catch (e) {
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptPGPMIME: exception " + e + "\n");
}
}
);
},
//inline wonderland
decryptINLINE: function(mime) {
EnigmailLog.DEBUG("decryptPermanently.jsm: decryptINLINE:\n");
if (typeof mime.body !== 'undefined') {
let ct = getContentType(getHeaderValue(mime, 'content-type'));
if (ct == "text/html") {
mime.body = this.stripHTMLFromArmoredBlocks(mime.body);
}
var enigmailSvc = EnigmailCore.getService();
var exitCodeObj = {};
var statusFlagsObj = {};
var userIdObj = {};
var sigDetailsObj = {};
var errorMsgObj = {};
var keyIdObj = {};
var blockSeparationObj = {
value: ""
};
var encToDetailsObj = {};
var signatureObj = {};
signatureObj.value = "";
var uiFlags = nsIEnigmail.UI_INTERACTIVE | nsIEnigmail.UI_UNVERIFIED_ENC_OK;
var plaintexts = [];
var blocks = EnigmailArmor.locateArmoredBlocks(mime.body);
var tmp = [];
for (let i = 0; i < blocks.length; i++) {
if (blocks[i].blocktype == "MESSAGE") {
tmp.push(blocks[i]);
}
}
blocks = tmp;
if (blocks.length < 1) {
return 0;
}
let charset = "utf-8";
for (let i = 0; i < blocks.length; i++) {
let plaintext = null;
do {
let ciphertext = mime.body.substring(blocks[i].begin, blocks[i].end + 1);
if (ciphertext.length === 0) {
break;
}
let hdr = ciphertext.search(/(\r\r|\n\n|\r\n\r\n)/);
if (hdr > 0) {
let chset = ciphertext.substr(0, hdr).match(/^(charset:)(.*)$/mi);
if (chset && chset.length == 3) {
charset = chset[2].trim();
}
}
plaintext = enigmailSvc.decryptMessage(null, uiFlags, ciphertext, signatureObj, exitCodeObj, statusFlagsObj,
keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj);
if (!plaintext || plaintext.length === 0) {
if (statusFlagsObj.value & nsIEnigmail.DISPLAY_MESSAGE) {
EnigmailDialog.alert(null, errorMsgObj.value);
this.foundPGP = -1;
return -1;
}
if (statusFlagsObj.value & nsIEnigmail.DECRYPTION_FAILED) {
if (EnigmailGpgAgent.useGpgAgent()) {
// since we cannot find out if the user wants to cancel
// we should ask
let msg = EnigmailLocale.getString("converter.decryptBody.failed", this.subject);
if (!EnigmailDialog.confirmDlg(null, msg,
EnigmailLocale.getString("dlg.button.retry"), EnigmailLocale.getString("dlg.button.skip"))) {
this.foundPGP = -1;
return -1;
}
}
}
else if (statusFlagsObj.value & nsIEnigmail.DECRYPTION_INCOMPLETE) {
this.foundPGP = -1;
return -1;
}
}
if (ct == "text/html") {
plaintext = plaintext.replace(/\n/ig, "
\n");
}
if (plaintext) {
plaintexts.push(plaintext);
}
} while (!plaintext || plaintext === "");
}
var decryptedMessage = mime.body.substring(0, blocks[0].begin) + plaintexts[0];
for (let i = 1; i < blocks.length; i++) {
decryptedMessage += mime.body.substring(blocks[i - 1].end + 1, blocks[i].begin + 1) + plaintexts[i];
}
decryptedMessage += mime.body.substring(blocks[(blocks.length - 1)].end + 1);
// enable base64 encoding if non-ASCII character(s) found
let j = decryptedMessage.search(/[^\x01-\x7F]/);
if (j >= 0) {
mime.headers['content-transfer-encoding'] = ['base64'];
mime.body = EnigmailData.encodeBase64(decryptedMessage);
}
else {
mime.body = decryptedMessage;
mime.headers['content-transfer-encoding'] = ['8bit'];
}
let origCharset = getCharset(getHeaderValue(mime, 'content-type'));
if (origCharset) {
mime.headers['content-type'] = getHeaderValue(mime, 'content-type').replace(origCharset, charset);
}
else {
mime.headers['content-type'] = getHeaderValue(mime, 'content-type') + "; charset=" + charset;
}
this.foundPGP = 1;
return 1;
}
if (typeof mime.parts !== 'undefined' && mime.parts.length > 0) {
var ret = 0;
for (let part in mime.parts) {
ret += this.decryptINLINE(mime.parts[part]);
}
return ret;
}
let ct = getContentType(getHeaderValue(mime, 'content-type'));
EnigmailLog.DEBUG("decryptPermanently.jsm: Decryption skipped: " + ct + "\n");
return 0;
},
stripHTMLFromArmoredBlocks: function(text) {
var index = 0;
var begin = text.indexOf("-----BEGIN PGP");
var end = text.indexOf("-----END PGP");
while (begin > -1 && end > -1) {
let sub = text.substring(begin, end);
sub = sub.replace(/(<([^>]+)>)/ig, "");
sub = sub.replace(/&[A-z]+;/ig, "");
text = text.substring(0, begin) + sub + text.substring(end);
index = end + 10;
begin = text.indexOf("-----BEGIN PGP", index);
end = text.indexOf("-----END PGP", index);
}
return text;
},
/******
*
* We have the technology we can rebuild.
*
* Function to reassemble the message from the MIME Tree
* into a String.
*
******/
mimeToString: function(mime, topLevel) {
EnigmailLog.DEBUG("decryptPermanently.jsm: mimeToString: part: '" + mime.partName + "', is of type '" + typeof(mime) + "'\n");
let ct = getContentType(getHeaderValue(mime, 'content-type'));
if (!ct) {
return "";
}
let boundary = getBoundary(getHeaderValue(mime, 'content-type'));
let msg = "";
if (mime.isBrokenByExchange) {
EnigmailLog.DEBUG("decryptPermanently.jsm: mimeToString: MS-Exchange fix\n");
for (let j in this.allTasks) {
if (this.allTasks[j].partName == mime.parts[0].partName) {
boundary = EnigmailMime.createBoundary();
msg += getRfc822Headers(mime.headers, ct, "content-type");
msg += 'Content-Type: multipart/mixed; boundary="' + boundary + '"\r\n\r\n';
msg += "This is a multi-part message in MIME format.";
msg += "\r\n--" + boundary + "\r\n";
msg += this.allTasks[j].data;
msg += "\r\n--" + boundary + "--\r\n";
return msg;
}
}
}
else if (mime instanceof MimeMessageAttachment) {
for (let j in this.allTasks) {
if (this.allTasks[j].partName == mime.partName &&
this.allTasks[j].origName == mime.name) {
let a = this.allTasks[j];
EnigmailLog.DEBUG("decryptPermanently.jsm: mimeToString: attaching " + j + " as '" + a.name + "'\n");
for (let header in mime.headers) {
if (!(a.status == STATUS_OK && header == "content-type")) {
msg += prettyPrintHeader(header, mime.headers[header]) + "\r\n";
}
}
if (a.type == "attachment") {
if (a.status == STATUS_OK) {
msg += "Content-Type: application/octet-stream; name=\"" + a.name + "\"\r\n";
msg += "Content-Disposition: attachment; filename\"" + a.name + "\"\r\n";
}
msg += "Content-Transfer-Encoding: base64\r\n\r\n";
msg += EnigmailData.encodeBase64(a.data) + "\r\n";
}
}
}
}
else if (mime instanceof MimeContainer || mime instanceof MimeUnknown) {
for (let j in this.allTasks) {
if (this.allTasks[j].partName == mime.partName &&
this.allTasks[j].type == "mime") {
let a = this.allTasks[j];
msg += a.data;
mime.noBottomBoundary = true;
}
}
}
else if (mime instanceof MimeMessage && ct.substr(0, 5) == "text/") {
let subct = mime.parts[0].headers['content-type'];
if (subct) {
mime.headers['content-type'] = subct;
}
subct = mime.parts[0].headers['content-transfer-encoding'];
if (subct) {
mime.headers['content-transfer-encoding'] = subct;
}
msg += getRfc822Headers(mime.headers, ct);
msg += "\r\n" + mime.parts[0].body + "\r\n";
return msg;
}
else {
if (!topLevel && (mime instanceof MimeMessage)) {
let mimeName = mime.name;
if (!mimeName || mimeName === "") {
mimeName = getHeaderValue(mime, 'subject') + ".eml";
}
msg += 'Content-Type: message/rfc822; name="' + EnigmailMime.encodeHeaderValue(mimeName) + '\r\n';
msg += 'Content-Transfer-Encoding: 7bit\r\n';
msg += 'Content-Disposition: attachment; filename="' + EnigmailMime.encodeHeaderValue(mimeName) + '"\r\n\r\n';
}
msg += getRfc822Headers(mime.headers, ct);
msg += "\r\n";
if (mime.body) {
msg += mime.body + "\r\n";
}
else if ((mime instanceof MimeMessage) && ct.substr(0, 5) != "text/") {
msg += "This is a multi-part message in MIME format.\r\n";
}
}
for (let i in mime.parts) {
let subPart = this.mimeToString(mime.parts[i], false);
if (subPart.length > 0) {
if (boundary && !(mime instanceof MimeMessage)) {
msg += "--" + boundary + "\r\n";
}
msg += subPart + "\r\n";
}
}
if (ct.indexOf("multipart/") === 0 && !(mime instanceof MimeContainer)) {
if (!mime.noBottomBoundary) {
msg += "--" + boundary + "--\r\n";
}
}
return msg;
}
};
/**
* Format a mime header
*
* e.g. content-type -> Content-Type
*/
function formatHeader(headerLabel) {
return headerLabel.replace(/^.|(\-.)/g, function(match) {
return match.toUpperCase();
});
}
function formatMimeHeader(headerLabel, headerValue) {
if (headerLabel.search(/^(sender|from|reply-to|to|cc|bcc)$/i) === 0) {
return formatHeader(headerLabel) + ": " + EnigmailMime.formatHeaderData(EnigmailMime.formatEmailAddress(headerValue));
}
else {
return formatHeader(headerLabel) + ": " + EnigmailMime.formatHeaderData(EnigmailMime.encodeHeaderValue(headerValue));
}
}
function prettyPrintHeader(headerLabel, headerData) {
let hdrData = "";
if (Array.isArray(headerData)) {
let h = [];
for (let i in headerData) {
h.push(formatMimeHeader(headerLabel, GlodaUtils.deMime(headerData[i])));
}
return h.join("\r\n");
}
else {
return formatMimeHeader(headerLabel, GlodaUtils.deMime(String(headerData)));
}
}
function getHeaderValue(mimeStruct, header) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getHeaderValue: '" + header + "'\n");
try {
if (header in mimeStruct.headers) {
if (typeof mimeStruct.headers[header] == "string") {
return mimeStruct.headers[header];
}
else {
return mimeStruct.headers[header].join(" ");
}
}
else {
return "";
}
}
catch (ex) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getHeaderValue: header not present\n");
return "";
}
}
/***
* get the formatted headers for MimeMessage objects
*
* @headerArr: Array of headers (key/value pairs), such as mime.headers
* @ignoreHeadersArr: Array of headers to exclude from returning
*
* @return: String containing formatted header list
*/
function getRfc822Headers(headerArr, contentType, ignoreHeadersArr) {
let hdrs = "";
let ignore = [];
if (contentType.indexOf("multipart/") >= 0) {
ignore = ['content-transfer-encoding',
'content-disposition',
'content-description'
];
}
if (ignoreHeadersArr) {
ignore = ignore.concat(ignoreHeadersArr);
}
for (let i in headerArr) {
if (ignore.indexOf(i) < 0) {
hdrs += prettyPrintHeader(i, headerArr[i]) + "\r\n";
}
}
return hdrs;
}
function getContentType(shdr) {
try {
shdr = String(shdr);
return shdr.match(/([A-z-]+\/[A-z-]+)/)[1].toLowerCase();
}
catch (e) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getContentType: " + e + "\n");
return null;
}
}
// return the content of the boundary parameter
function getBoundary(shdr) {
try {
shdr = String(shdr);
return shdr.match(/boundary="?([A-z0-9'()+_,-.\/:=?]+)"?/i)[1];
}
catch (e) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getBoundary: " + e + "\n");
return null;
}
}
function getCharset(shdr) {
try {
shdr = String(shdr);
return shdr.match(/charset="?([A-z0-9'()+_,-.\/:=?]+)"?/)[1].toLowerCase();
}
catch (e) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getCharset: " + e + "\n");
return null;
}
}
function getProtocol(shdr) {
try {
shdr = String(shdr);
return shdr.match(/protocol="?([A-z0-9'()+_,-.\/:=?]+)"?/)[1].toLowerCase();
}
catch (e) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getProtocol: " + e + "\n");
return "";
}
}
function getSMimeProtocol(shdr) {
try {
shdr = String(shdr);
return shdr.match(/smime-type="?([A-z0-9'()+_,-.\/:=?]+)"?/)[1].toLowerCase();
}
catch (e) {
EnigmailLog.DEBUG("decryptPermanently.jsm: getSMimeProtocol: " + e + "\n");
return "";
}
}
enigmail/package/decryption.jsm 0000664 0000000 0000000 00000066550 12667016244 0017155 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailData: false, EnigmailLog: false, EnigmailPrefs: false, EnigmailLocale: false, EnigmailArmor: false, EnigmailExecution: false, EnigmailDialog: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailDecryption"];
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/data.jsm");
Cu.import("resource://enigmail/log.jsm");
Cu.import("resource://enigmail/prefs.jsm");
Cu.import("resource://enigmail/armor.jsm");
Cu.import("resource://enigmail/locale.jsm");
Cu.import("resource://enigmail/data.jsm");
Cu.import("resource://enigmail/execution.jsm");
Cu.import("resource://enigmail/dialog.jsm");
Cu.import("resource://enigmail/httpProxy.jsm"); /*global EnigmailHttpProxy: false */
Cu.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/errorHandling.jsm"); /*global EnigmailErrorHandling: false */
Cu.import("resource://enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
Cu.import("resource://enigmail/key.jsm"); /*global EnigmailKey: false */
Cu.import("resource://enigmail/passwords.jsm"); /*global EnigmailPassword: false */
const nsIEnigmail = Ci.nsIEnigmail;
const EC = EnigmailCore;
const STATUS_ERROR = nsIEnigmail.BAD_SIGNATURE | nsIEnigmail.DECRYPTION_FAILED;
const STATUS_DECRYPTION_OK = nsIEnigmail.DECRYPTION_OKAY;
const STATUS_GOODSIG = nsIEnigmail.GOOD_SIGNATURE;
const NS_WRONLY = 0x02;
function statusObjectFrom(signatureObj, exitCodeObj, statusFlagsObj, keyIdObj, userIdObj, sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj) {
return {
signature: signatureObj,
exitCode: exitCodeObj,
statusFlags: statusFlagsObj,
keyId: keyIdObj,
userId: userIdObj,
sigDetails: sigDetailsObj,
message: errorMsgObj,
blockSeparation: blockSeparationObj,
encToDetails: encToDetailsObj
};
}
function newStatusObject() {
return statusObjectFrom({
value: ""
}, {}, {}, {}, {}, {}, {}, {}, {});
}
const EnigmailDecryption = {
decryptMessageStart: function(win, verifyOnly, noOutput, listener,
statusFlagsObj, errorMsgObj, mimeSignatureFile,
maxOutputLength) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageStart: verifyOnly=" + verifyOnly + "\n");
if (!EnigmailCore.getService(win)) {
EnigmailLog.ERROR("enigmailCommon.jsm: decryptMessageStart: not yet initialized\n");
errorMsgObj.value = EnigmailLocale.getString("notInit");
return null;
}
if (EnigmailKeyRing.isGeneratingKey()) {
errorMsgObj.value = EnigmailLocale.getString("notComplete");
return null;
}
var args = EnigmailGpg.getStandardArgs(true);
var keyserver = EnigmailPrefs.getPref("autoKeyRetrieve");
if (keyserver && keyserver !== "") {
keyserver = keyserver.trim();
args.push("--keyserver-options");
var keySrvArgs = "auto-key-retrieve";
var srvProxy = EnigmailHttpProxy.getHttpProxy(keyserver);
if (srvProxy) {
keySrvArgs += ",http-proxy=" + srvProxy;
}
args.push(keySrvArgs);
args.push("--keyserver");
args.push(keyserver);
}
if (noOutput) {
args.push("--verify");
if (mimeSignatureFile) {
args.push(mimeSignatureFile);
args.push("-");
}
}
else {
if (maxOutputLength) {
args.push("--max-output");
args.push(String(maxOutputLength));
}
args.push("--decrypt");
}
var proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath,
args, !verifyOnly, win,
listener, statusFlagsObj);
if (statusFlagsObj.value & nsIEnigmail.MISSING_PASSPHRASE) {
EnigmailLog.ERROR("enigmailCommon.jsm: decryptMessageStart: Error - no passphrase supplied\n");
errorMsgObj.value = EnigmailLocale.getString("noPassphrase");
return null;
}
return proc;
},
decryptMessageEnd: function(stderrStr, exitCode, outputLen, verifyOnly, noOutput, uiFlags, retStatusObj) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: uiFlags=" + uiFlags + ", verifyOnly=" + verifyOnly + ", noOutput=" + noOutput + "\n");
stderrStr = stderrStr.replace(/\r\n/g, "\n");
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: stderrStr=\n" + stderrStr + "\n");
var interactive = uiFlags & nsIEnigmail.UI_INTERACTIVE;
var pgpMime = uiFlags & nsIEnigmail.UI_PGP_MIME;
var allowImport = uiFlags & nsIEnigmail.UI_ALLOW_KEY_IMPORT;
var unverifiedEncryptedOK = uiFlags & nsIEnigmail.UI_UNVERIFIED_ENC_OK;
var j;
retStatusObj.statusFlags = 0;
retStatusObj.errorMsg = "";
retStatusObj.blockSeparation = "";
var errorMsg = EnigmailErrorHandling.parseErrorOutput(stderrStr, retStatusObj);
if (retStatusObj.statusFlags & STATUS_ERROR) {
retStatusObj.errorMsg = errorMsg;
}
else {
retStatusObj.errorMsg = "";
}
if (pgpMime) {
retStatusObj.statusFlags |= verifyOnly ? nsIEnigmail.PGP_MIME_SIGNED : nsIEnigmail.PGP_MIME_ENCRYPTED;
}
var statusMsg = retStatusObj.statusMsg;
exitCode = EnigmailExecution.fixExitCode(exitCode, retStatusObj);
if ((exitCode === 0) && !noOutput && !outputLen &&
((retStatusObj.statusFlags & (STATUS_DECRYPTION_OK | STATUS_GOODSIG)) === 0)) {
exitCode = -1;
}
if (retStatusObj.statusFlags & nsIEnigmail.DISPLAY_MESSAGE && retStatusObj.extendedStatus.search(/\bdisp:/) >= 0) {
EnigmailDialog.alert(null, statusMsg);
return -1;
}
var errLines;
if (statusMsg) {
errLines = statusMsg.split(/\r?\n/);
}
else {
// should not really happen ...
errLines = stderrStr.split(/\r?\n/);
}
// possible STATUS Patterns (see GPG dod DETAILS.txt):
// one of these should be set for a signature:
var goodsigPat = /GOODSIG (\w{16}) (.*)$/i;
var badsigPat = /BADSIG (\w{16}) (.*)$/i;
var expsigPat = /EXPSIG (\w{16}) (.*)$/i;
var expkeysigPat = /EXPKEYSIG (\w{16}) (.*)$/i;
var revkeysigPat = /REVKEYSIG (\w{16}) (.*)$/i;
var errsigPat = /ERRSIG (\w{16}) (.*)$/i;
// additional infos for good signatures:
var validSigPat = /VALIDSIG (\w+) (.*) (\d+) (.*)/i;
// hint for a certain key id:
var userIdHintPat = /USERID_HINT (\w{16}) (.*)$/i;
// to find out for which recipients the email was encrypted:
var encToPat = /ENC_TO (\w{16}) (.*)$/i;
var matches;
var signed = false;
var goodOrExpOrRevSignature = false;
var sigKeyId = ""; // key of sender
var sigUserId = ""; // user ID of sender
var sigDetails = "";
var encToDetails = "";
var encToArray = []; // collect ENC_TO lines here
for (j = 0; j < errLines.length; j++) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: process: " + errLines[j] + "\n");
// ENC_TO entry
// - collect them for later processing to print details
matches = errLines[j].match(encToPat);
if (matches && (matches.length > 2)) {
encToArray.push("0x" + matches[1]);
}
// USERID_HINT entry
// - NOTE: NO END of loop
// ERROR: wrong to set userId because ecom is NOT the sender:
//matches = errLines[j].match(userIdHintPat);
//if (matches && (matches.length > 2)) {
// sigKeyId = matches[1];
// sigUserId = matches[2];
//}
// check for one of the possible SIG entries:
// GOODSIG entry
matches = errLines[j].match(goodsigPat);
if (matches && (matches.length > 2)) {
if (signed) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n");
}
signed = true;
goodOrExpOrRevSignature = true;
sigKeyId = matches[1];
sigUserId = matches[2];
}
else {
// BADSIG entry => signature found but bad
matches = errLines[j].match(badsigPat);
if (matches && (matches.length > 2)) {
if (signed) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n");
}
signed = true;
goodOrExpOrRevSignature = false;
sigKeyId = matches[1];
sigUserId = matches[2];
}
else {
// EXPSIG entry => expired signature found
matches = errLines[j].match(expsigPat);
if (matches && (matches.length > 2)) {
if (signed) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n");
}
signed = true;
goodOrExpOrRevSignature = true;
sigKeyId = matches[1];
sigUserId = matches[2];
}
else {
// EXPKEYSIG entry => signature found but key expired
matches = errLines[j].match(expkeysigPat);
if (matches && (matches.length > 2)) {
if (signed) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n");
}
signed = true;
goodOrExpOrRevSignature = true;
sigKeyId = matches[1];
sigUserId = matches[2];
}
else {
// REVKEYSIG entry => signature found but key revoked
matches = errLines[j].match(revkeysigPat);
if (matches && (matches.length > 2)) {
if (signed) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n");
}
signed = true;
goodOrExpOrRevSignature = true;
sigKeyId = matches[1];
sigUserId = matches[2];
}
else {
// ERRSIG entry => signature found but key not usable or unavailable
matches = errLines[j].match(errsigPat);
if (matches && (matches.length > 2)) {
if (signed) {
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: OOPS: multiple SIGN entries\n");
}
signed = true;
goodOrExpOrRevSignature = false;
sigKeyId = matches[1];
// no user id with ecom istatus entry
}
}
}
}
}
}
} // end loop of processing errLines
if (goodOrExpOrRevSignature) {
for (j = 0; j < errLines.length; j++) {
matches = errLines[j].match(validSigPat);
if (matches && (matches.length > 4)) {
if (matches[4].length == 40)
// in case of several subkeys refer to the main key ID.
// Only works with PGP V4 keys (Fingerprint length ==40)
sigKeyId = matches[4].substr(-16);
}
if (matches && (matches.length > 2)) {
sigDetails = errLines[j].substr(9);
break;
}
}
}
if (sigUserId && sigKeyId && EnigmailPrefs.getPref("displaySecondaryUid")) {
let keyObj = EnigmailKeyRing.getKeyById(sigKeyId);
if (keyObj) {
if (keyObj.photoAvailable) {
retStatusObj.statusFlags |= nsIEnigmail.PHOTO_AVAILABLE;
}
sigUserId = EnigmailKeyRing.getValidUids(sigKeyId).join("\n");
}
}
else if (sigUserId) {
sigUserId = EnigmailData.convertToUnicode(sigUserId, "UTF-8");
}
// add list of keys used for encryption if known (and their user IDs) if known
// Parsed status messages are something like (here the German version):
// [GNUPG:] ENC_TO AAAAAAAAAAAAAAAA 1 0
// [GNUPG:] ENC_TO 5B820D2D4553884F 16 0
// [GNUPG:] ENC_TO 37904DF2E631552F 1 0
// [GNUPG:] ENC_TO BBBBBBBBBBBBBBBB 1 0
// gpg: verschlüsselt mit 3072-Bit RSA Schlüssel, ID BBBBBBBB, erzeugt 2009-11-28
// "Joe Doo "
// [GNUPG:] NO_SECKEY E71712DF47BBCC40
// gpg: verschlüsselt mit RSA Schlüssel, ID AAAAAAAA
// [GNUPG:] NO_SECKEY AAAAAAAAAAAAAAAA
if (encToArray.length > 0) {
// for each key also show an associated user ID if known:
for (var encIdx = 0; encIdx < encToArray.length; ++encIdx) {
var localKeyId = encToArray[encIdx];
// except for ID 00000000, which signals hidden keys
if (localKeyId != "0x0000000000000000") {
let localKey = EnigmailKeyRing.getKeyById(localKeyId);
if (localKey) {
encToArray[encIdx] += " (" + localKey.userId + ")";
}
}
else {
encToArray[encIdx] = EnigmailLocale.getString("hiddenKey");
}
}
encToDetails = "\n " + encToArray.join(",\n ") + "\n";
}
retStatusObj.userId = sigUserId;
retStatusObj.keyId = sigKeyId;
retStatusObj.sigDetails = sigDetails;
retStatusObj.encToDetails = encToDetails;
if (signed) {
var trustPrefix = "";
if (retStatusObj.statusFlags & nsIEnigmail.UNTRUSTED_IDENTITY) {
trustPrefix += EnigmailLocale.getString("prefUntrusted") + " ";
}
if (retStatusObj.statusFlags & nsIEnigmail.REVOKED_KEY) {
trustPrefix += EnigmailLocale.getString("prefRevoked") + " ";
}
if (retStatusObj.statusFlags & nsIEnigmail.EXPIRED_KEY_SIGNATURE) {
trustPrefix += EnigmailLocale.getString("prefExpiredKey") + " ";
}
else if (retStatusObj.statusFlags & nsIEnigmail.EXPIRED_SIGNATURE) {
trustPrefix += EnigmailLocale.getString("prefExpired") + " ";
}
if (goodOrExpOrRevSignature) {
retStatusObj.errorMsg = trustPrefix + EnigmailLocale.getString("prefGood", [sigUserId]);
/* + ", " + EnigmailLocale.getString("keyId") + " 0x" + sigKeyId.substring(8,16); */
}
else {
if (sigUserId.length > 0) {
retStatusObj.errorMsg = trustPrefix + EnigmailLocale.getString("prefBad", [sigUserId]);
}
if (!exitCode)
exitCode = 1;
}
}
if (retStatusObj.statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) {
retStatusObj.keyId = EnigmailKey.extractPubkey(statusMsg);
if (retStatusObj.statusFlags & nsIEnigmail.DECRYPTION_OKAY) {
exitCode = 0;
}
}
if (exitCode !== 0) {
// Error processing
EnigmailLog.DEBUG("enigmailCommon.jsm: decryptMessageEnd: command execution exit code: " + exitCode + "\n");
}
return exitCode;
},
/**
* Decrypts a PGP ciphertext and returns the the plaintext
*
*in @parent a window object
*in @uiFlags see flag options in nsIEnigmail.idl, UI_INTERACTIVE, UI_ALLOW_KEY_IMPORT
*in @cipherText a string containing a PGP Block
*out @signatureObj
*out @exitCodeObj contains the exit code
*out @statusFlagsObj see status flags in nslEnigmail.idl, GOOD_SIGNATURE, BAD_SIGNATURE
*out @keyIdObj holds the key id
*out @userIdObj holds the user id
*out @sigDetailsObj
*out @errorMsgObj error string
*out @blockSeparationObj
*out @encToDetailsObj returns in details, which keys the mesage was encrypted for (ENC_TO entries)
*
* @return string plaintext ("" if error)
*
*/
decryptMessage: function(parent, uiFlags, cipherText,
signatureObj, exitCodeObj,
statusFlagsObj, keyIdObj, userIdObj, sigDetailsObj, errorMsgObj,
blockSeparationObj, encToDetailsObj) {
const esvc = EnigmailCore.getEnigmailService();
EnigmailLog.DEBUG("enigmail.js: Enigmail.decryptMessage: " + cipherText.length + " bytes, " + uiFlags + "\n");
if (!cipherText)
return "";
var interactive = uiFlags & nsIEnigmail.UI_INTERACTIVE;
var allowImport = uiFlags & nsIEnigmail.UI_ALLOW_KEY_IMPORT;
var unverifiedEncryptedOK = uiFlags & nsIEnigmail.UI_UNVERIFIED_ENC_OK;
var oldSignature = signatureObj.value;
EnigmailLog.DEBUG("enigmail.js: Enigmail.decryptMessage: oldSignature=" + oldSignature + "\n");
signatureObj.value = "";
exitCodeObj.value = -1;
statusFlagsObj.value = 0;
keyIdObj.value = "";
userIdObj.value = "";
errorMsgObj.value = "";
var beginIndexObj = {};
var endIndexObj = {};
var indentStrObj = {};
var blockType = EnigmailArmor.locateArmoredBlock(cipherText, 0, "", beginIndexObj, endIndexObj, indentStrObj);
if (!blockType || blockType == "SIGNATURE") {
errorMsgObj.value = EnigmailLocale.getString("noPGPblock");
statusFlagsObj.value |= nsIEnigmail.DISPLAY_MESSAGE;
return "";
}
var publicKey = (blockType == "PUBLIC KEY BLOCK");
var verifyOnly = (blockType == "SIGNED MESSAGE");
var pgpBlock = cipherText.substr(beginIndexObj.value,
endIndexObj.value - beginIndexObj.value + 1);
if (indentStrObj.value) {
var indentRegexp = new RegExp("^" + indentStrObj.value, "gm");
pgpBlock = pgpBlock.replace(indentRegexp, "");
if (indentStrObj.value.substr(-1) == " ") {
var indentRegexpStr = "^" + indentStrObj.value.replace(/ $/m, "$");
indentRegexp = new RegExp(indentRegexpStr, "gm");
pgpBlock = pgpBlock.replace(indentRegexp, "");
}
}
// HACK to better support messages from Outlook: if there are empty lines, drop them
if (pgpBlock.search(/MESSAGE-----\r?\n\r?\nVersion/) >= 0) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.decryptMessage: apply Outlook empty line workaround\n");
pgpBlock = pgpBlock.replace(/\r?\n\r?\n/g, "\n");
}
var head = cipherText.substr(0, beginIndexObj.value);
var tail = cipherText.substr(endIndexObj.value + 1,
cipherText.length - endIndexObj.value - 1);
if (publicKey) {
if (!allowImport) {
errorMsgObj.value = EnigmailLocale.getString("keyInMessageBody");
statusFlagsObj.value |= nsIEnigmail.DISPLAY_MESSAGE;
statusFlagsObj.value |= nsIEnigmail.INLINE_KEY;
return "";
}
// Import public key
exitCodeObj.value = EnigmailKeyRing.importKey(parent, true, pgpBlock, "",
errorMsgObj);
if (exitCodeObj.value === 0) {
statusFlagsObj.value |= nsIEnigmail.IMPORTED_KEY;
}
return "";
}
var newSignature = "";
if (verifyOnly) {
newSignature = EnigmailArmor.extractSignaturePart(pgpBlock, nsIEnigmail.SIGNATURE_ARMOR);
if (oldSignature && (newSignature != oldSignature)) {
EnigmailLog.ERROR("enigmail.js: Enigmail.decryptMessage: Error - signature mismatch " + newSignature + "\n");
errorMsgObj.value = EnigmailLocale.getString("sigMismatch");
statusFlagsObj.value |= nsIEnigmail.DISPLAY_MESSAGE;
return "";
}
}
var startErrorMsgObj = {};
var noOutput = false;
var listener = EnigmailExecution.newSimpleListener(
function _stdin(pipe) {
pipe.write(pgpBlock);
pipe.close();
});
var maxOutput = pgpBlock.length * 100; // limit output to 100 times message size
// to avoid DoS attack
var proc = EnigmailDecryption.decryptMessageStart(parent, verifyOnly, noOutput, listener,
statusFlagsObj, startErrorMsgObj,
null, maxOutput);
if (!proc) {
errorMsgObj.value = startErrorMsgObj.value;
statusFlagsObj.value |= nsIEnigmail.DISPLAY_MESSAGE;
return "";
}
// Wait for child to close
proc.wait();
var plainText = EnigmailData.getUnicodeData(listener.stdoutData);
var retStatusObj = {};
var exitCode = EnigmailDecryption.decryptMessageEnd(EnigmailData.getUnicodeData(listener.stderrData), listener.exitCode,
plainText.length, verifyOnly, noOutput,
uiFlags, retStatusObj);
exitCodeObj.value = exitCode;
statusFlagsObj.value = retStatusObj.statusFlags;
errorMsgObj.value = retStatusObj.errorMsg;
userIdObj.value = retStatusObj.userId;
keyIdObj.value = retStatusObj.keyId;
sigDetailsObj.value = retStatusObj.sigDetails;
if (encToDetailsObj) {
encToDetailsObj.value = retStatusObj.encToDetails;
}
blockSeparationObj.value = retStatusObj.blockSeparation;
if ((head.search(/\S/) >= 0) ||
(tail.search(/\S/) >= 0)) {
statusFlagsObj.value |= nsIEnigmail.PARTIALLY_PGP;
}
if (exitCodeObj.value === 0) {
// Normal return
var doubleDashSeparator = false;
try {
doubleDashSeparator = EnigmailPrefs.getPrefBranch().getBoolPref("doubleDashSeparator");
}
catch (ex) {}
if (doubleDashSeparator && (plainText.search(/(\r|\n)-- +(\r|\n)/) < 0)) {
// Workaround for MsgCompose stripping trailing spaces from sig separator
plainText = plainText.replace(/(\r|\n)--(\r|\n)/, "$1-- $2");
}
statusFlagsObj.value |= nsIEnigmail.DISPLAY_MESSAGE;
if (verifyOnly && indentStrObj.value) {
plainText = plainText.replace(/^/gm, indentStrObj.value);
}
return EnigmailDecryption.inlineInnerVerification(parent, uiFlags, plainText,
statusObjectFrom(signatureObj, exitCodeObj, statusFlagsObj, keyIdObj, userIdObj,
sigDetailsObj, errorMsgObj, blockSeparationObj, encToDetailsObj));
}
var pubKeyId = keyIdObj.value;
if (statusFlagsObj.value & nsIEnigmail.BAD_SIGNATURE) {
if (verifyOnly && indentStrObj.value) {
// Probably replied message that could not be verified
errorMsgObj.value = EnigmailLocale.getString("unverifiedReply") + "\n\n" + errorMsgObj.value;
return "";
}
// Return bad signature (for checking later)
signatureObj.value = newSignature;
}
else if (pubKeyId &&
(statusFlagsObj.value & nsIEnigmail.UNVERIFIED_SIGNATURE)) {
var innerKeyBlock;
if (verifyOnly) {
// Search for indented public key block in signed message
var innerBlockType = EnigmailArmor.locateArmoredBlock(pgpBlock, 0, "- ", beginIndexObj, endIndexObj, indentStrObj);
if (innerBlockType == "PUBLIC KEY BLOCK") {
innerKeyBlock = pgpBlock.substr(beginIndexObj.value,
endIndexObj.value - beginIndexObj.value + 1);
innerKeyBlock = innerKeyBlock.replace(/- -----/g, "-----");
statusFlagsObj.value |= nsIEnigmail.INLINE_KEY;
EnigmailLog.DEBUG("enigmail.js: Enigmail.decryptMessage: innerKeyBlock found\n");
}
}
if (allowImport) {
var importedKey = false;
if (innerKeyBlock) {
var importErrorMsgObj = {};
var exitStatus = EnigmailKeyRing.importKey(parent, true, innerKeyBlock,
pubKeyId, importErrorMsgObj);
importedKey = (exitStatus === 0);
if (exitStatus > 0) {
EnigmailDialog.alert(parent, EnigmailLocale.getString("cantImport") + importErrorMsgObj.value);
}
}
if (importedKey) {
// Recursive call; note that nsIEnigmail.UI_ALLOW_KEY_IMPORT is unset
// to break the recursion
var uiFlagsDeep = interactive ? nsIEnigmail.UI_INTERACTIVE : 0;
signatureObj.value = "";
return EnigmailDecryption.decryptMessage(parent, uiFlagsDeep, pgpBlock,
signatureObj, exitCodeObj, statusFlagsObj,
keyIdObj, userIdObj, sigDetailsObj, errorMsgObj);
}
}
if (plainText && !unverifiedEncryptedOK) {
// Append original PGP block to unverified message
plainText = "-----BEGIN PGP UNVERIFIED MESSAGE-----\r\n" + plainText +
"-----END PGP UNVERIFIED MESSAGE-----\r\n\r\n" + pgpBlock;
}
}
return verifyOnly ? "" : plainText;
},
inlineInnerVerification: function(parent, uiFlags, text, statusObject) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.inlineInnerVerification\n");
if (text && text.indexOf("-----BEGIN PGP SIGNED MESSAGE-----") === 0) {
var status = newStatusObject();
var newText = EnigmailDecryption.decryptMessage(parent, uiFlags, text,
status.signature, status.exitCode, status.statusFlags, status.keyId, status.userId,
status.sigDetails, status.message, status.blockSeparation, status.encToDetails);
if (status.exitCode.value === 0) {
text = newText;
// merge status into status object:
statusObject.statusFlags.value = statusObject.statusFlags.value | status.statusFlags.value;
statusObject.keyId.value = status.keyId.value;
statusObject.userId.value = status.userId.value;
statusObject.sigDetails.value = status.sigDetails.value;
statusObject.message.value = status.message.value;
// we don't merge encToDetails
}
}
return text;
},
decryptAttachment: function(parent, outFile, displayName, byteData,
exitCodeObj, statusFlagsObj, errorMsgObj) {
const esvc = EnigmailCore.getEnigmailService();
EnigmailLog.DEBUG("enigmail.js: Enigmail.decryptAttachment: parent=" + parent + ", outFileName=" + outFile.path + "\n");
var attachmentHead = byteData.substr(0, 200);
if (attachmentHead.match(/\-\-\-\-\-BEGIN PGP \w+ KEY BLOCK\-\-\-\-\-/)) {
// attachment appears to be a PGP key file
if (EnigmailDialog.confirmDlg(parent, EnigmailLocale.getString("attachmentPgpKey", [displayName]),
EnigmailLocale.getString("keyMan.button.import"), EnigmailLocale.getString("dlg.button.view"))) {
var preview = EnigmailKey.getKeyListFromKeyBlock(byteData, errorMsgObj);
exitCodeObj.keyList = preview;
var exitStatus = 0;
if (errorMsgObj.value === "") {
if (preview.length > 0) {
if (preview.length == 1) {
exitStatus = EnigmailDialog.confirmDlg(parent, EnigmailLocale.getString("doImportOne", [preview[0].name, preview[0].id]));
}
else {
exitStatus = EnigmailDialog.confirmDlg(parent,
EnigmailLocale.getString("doImportMultiple", [
preview.map(function(a) {
return "\t" + a.name + " (" + a.id + ")";
}).
join("\n")
]));
}
if (exitStatus) {
exitCodeObj.value = EnigmailKeyRing.importKey(parent, false, byteData, "", errorMsgObj);
statusFlagsObj.value = nsIEnigmail.IMPORTED_KEY;
}
else {
exitCodeObj.value = 0;
statusFlagsObj.value = nsIEnigmail.DISPLAY_MESSAGE;
}
}
}
}
else {
exitCodeObj.value = 0;
statusFlagsObj.value = nsIEnigmail.DISPLAY_MESSAGE;
}
return true;
}
var outFileName = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(outFile.QueryInterface(Ci.nsIFile), NS_WRONLY));
var args = EnigmailGpg.getStandardArgs(true);
args = args.concat(["-o", outFileName, "--yes"]);
args = args.concat(EnigmailPassword.command());
args.push("-d");
statusFlagsObj.value = 0;
var listener = EnigmailExecution.newSimpleListener(
function _stdin(pipe) {
pipe.write(byteData);
pipe.close();
});
var proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath, args, false, parent,
listener, statusFlagsObj);
if (!proc) {
return false;
}
// Wait for child STDOUT to close
proc.wait();
var statusMsgObj = {};
var cmdLineObj = {};
exitCodeObj.value = EnigmailExecution.execEnd(listener, statusFlagsObj, statusMsgObj, cmdLineObj, errorMsgObj);
return true;
},
registerOn: function(target) {
target.decryptMessage = EnigmailDecryption.decryptMessage;
target.decryptAttachment = EnigmailDecryption.decryptAttachment;
}
};
enigmail/package/dialog.jsm 0000664 0000000 0000000 00000032615 12667016244 0016227 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailLocale: false, EnigmailLog: false, EnigmailWindows: false, EnigmailPrefs: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailDialog"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/locale.jsm");
Cu.import("resource://enigmail/log.jsm");
Cu.import("resource://enigmail/windows.jsm");
Cu.import("resource://enigmail/prefs.jsm");
const BUTTON_POS_0 = 1;
const BUTTON_POS_1 = 1 << 8;
const BUTTON_POS_2 = 1 << 16;
const gPromptSvc = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService);
const LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1";
const EnigmailDialog = {
/***
* Confirmation dialog with OK / Cancel buttons (both customizable)
*
* @win: nsIWindow - parent window to display modal dialog; can be null
* @mesg: String - message text
* @okLabel: String - OPTIONAL label for OK button
* @cancelLabel: String - OPTIONAL label for cancel button
*
* @return: Boolean - true: OK pressed / false: Cancel or ESC pressed
*/
confirmDlg: function(win, mesg, okLabel, cancelLabel) {
var buttonTitles = 0;
if (!okLabel && !cancelLabel) {
buttonTitles = (gPromptSvc.BUTTON_TITLE_YES * BUTTON_POS_0) +
(gPromptSvc.BUTTON_TITLE_NO * BUTTON_POS_1);
}
else {
if (okLabel) {
buttonTitles += (gPromptSvc.BUTTON_TITLE_IS_STRING * gPromptSvc.BUTTON_POS_0);
}
else {
buttonTitles += gPromptSvc.BUTTON_TITLE_OK * BUTTON_POS_0;
}
if (cancelLabel) {
buttonTitles += (gPromptSvc.BUTTON_TITLE_IS_STRING * gPromptSvc.BUTTON_POS_1);
}
else {
buttonTitles += gPromptSvc.BUTTON_TITLE_CANCEL * BUTTON_POS_1;
}
}
let buttonPressed = gPromptSvc.confirmEx(win,
EnigmailLocale.getString("enigConfirm"),
mesg,
buttonTitles,
okLabel, cancelLabel, null,
null, {});
return (buttonPressed === 0);
},
/**
* Displays an alert dialog.
*
* @win: nsIWindow - parent window to display modal dialog; can be null
* @mesg: String - message text
*
* no return value
*/
alert: function(win, mesg) {
if (mesg.length > 1000) {
EnigmailDialog.longAlert(win, mesg, null, EnigmailLocale.getString("dlg.button.close"));
}
else {
try {
gPromptSvc.alert(win, EnigmailLocale.getString("enigAlert"), mesg);
}
catch (ex) {
EnigmailLog.writeException("alert", ex);
}
}
},
/**
* Displays an alert dialog with 1-3 optional buttons.
*
* @win: nsIWindow - parent window to display modal dialog; can be null
* @mesg: String - message text
* @checkBoxLabel: String - if not null, display checkbox with text; the
* checkbox state is returned in checkedObj.value
* @button-Labels: String - use "&" to indicate access key
* use "buttonType:label" or ":buttonType" to indicate special button types
* (buttonType is one of cancel, help, extra1, extra2)
* @checkedObj: Object - holding the checkbox value
*
* @return: 0-2: button Number pressed
* -1: ESC or close window button pressed
*
*/
longAlert: function(win, mesg, checkBoxLabel, okLabel, labelButton2, labelButton3, checkedObj) {
var result = {
value: -1,
checked: false
};
if (!win) {
win = EnigmailWindows.getBestParentWin();
}
win.openDialog("chrome://enigmail/content/enigmailAlertDlg.xul", "",
"chrome,dialog,modal,centerscreen,resizable", {
msgtext: mesg,
checkboxLabel: checkBoxLabel,
button1: okLabel,
button2: labelButton2,
button3: labelButton3
},
result);
if (checkBoxLabel) {
checkedObj.value = result.checked;
}
return result.value;
},
/**
* Display a dialog with a message and a text entry field
*
* @win: nsIWindow - parent window to display modal dialog; can be null
* @mesg: String - message text
* @valueObj: Object - object to hold the entered text in .value
*
* @return: Boolean - true if OK was pressed / false otherwise
*/
promptValue: function(win, mesg, valueObj) {
return gPromptSvc.prompt(win, EnigmailLocale.getString("enigPrompt"),
mesg, valueObj, "", {});
},
/**
* Display an alert message with an OK button and a checkbox to hide
* the message in the future.
* In case the checkbox was pressed in the past, the dialog is skipped
*
* @win: nsIWindow - the parent window to hold the modal dialog
* @mesg: String - the localized message to display
* @prefText: String - the name of the Enigmail preference to read/store the
* the future display status
*/
alertPref: function(win, mesg, prefText) {
const display = true;
const dontDisplay = false;
let prefValue = EnigmailPrefs.getPref(prefText);
if (prefValue === display) {
let checkBoxObj = {
value: false
};
let buttonPressed = gPromptSvc.confirmEx(win,
EnigmailLocale.getString("enigAlert"),
mesg, (gPromptSvc.BUTTON_TITLE_OK * BUTTON_POS_0),
null, null, null,
EnigmailLocale.getString("dlgNoPrompt"), checkBoxObj);
if (checkBoxObj.value && buttonPressed === 0) {
EnigmailPrefs.setPref(prefText, dontDisplay);
}
}
},
/**
* Display an alert dialog together with the message "this dialog will be
* displayed |counter| more times".
* If |counter| is 0, the dialog is not displayed.
*
* @win: nsIWindow - the parent window to hold the modal dialog
* @countPrefName: String - the name of the Enigmail preference to read/store the
* the |counter| value
* @mesg: String - the localized message to display
*
*/
alertCount: function(win, countPrefName, mesg) {
let alertCount = EnigmailPrefs.getPref(countPrefName);
if (alertCount <= 0)
return;
alertCount--;
EnigmailPrefs.setPref(countPrefName, alertCount);
if (alertCount > 0) {
mesg += EnigmailLocale.getString("repeatPrefix", [alertCount]) + " ";
mesg += (alertCount == 1) ? EnigmailLocale.getString("repeatSuffixSingular") : EnigmailLocale.getString("repeatSuffixPlural");
}
else {
mesg += EnigmailLocale.getString("noRepeat");
}
EnigmailDialog.alert(win, mesg);
},
/**
* Display a confirmation dialog with OK / Cancel buttons (both customizable) and
* a checkbox to remember the selected choice.
*
*
* @win: nsIWindow - parent window to display modal dialog; can be null
* @mesg: String - message text
* @prefText String - the name of the Enigmail preference to read/store the
* the future display status.
* the default action is chosen
* @okLabel: String - OPTIONAL label for OK button
* @cancelLabel: String - OPTIONAL label for cancel button
*
* @return: Boolean - true: 1 pressed / 0: Cancel pressed / -1: ESC pressed
*
* If the dialog is not displayed:
* - if @prefText is type Boolean: return 1
* - if @prefText is type Number: return the last choice of the user
*/
confirmPref: function(win, mesg, prefText, okLabel, cancelLabel) {
const notSet = 0;
const yes = 1;
const no = 2;
const display = true;
const dontDisplay = false;
var buttonTitles = 0;
if (!okLabel && !cancelLabel) {
buttonTitles = (gPromptSvc.BUTTON_TITLE_YES * BUTTON_POS_0) +
(gPromptSvc.BUTTON_TITLE_NO * BUTTON_POS_1);
}
else {
if (okLabel) {
buttonTitles += (gPromptSvc.BUTTON_TITLE_IS_STRING * gPromptSvc.BUTTON_POS_0);
}
else {
buttonTitles += gPromptSvc.BUTTON_TITLE_OK * BUTTON_POS_0;
}
if (cancelLabel) {
buttonTitles += (gPromptSvc.BUTTON_TITLE_IS_STRING * gPromptSvc.BUTTON_POS_1);
}
else {
buttonTitles += gPromptSvc.BUTTON_TITLE_CANCEL * BUTTON_POS_1;
}
}
var prefValue = EnigmailPrefs.getPref(prefText);
if (typeof(prefValue) != "boolean") {
// number: remember user's choice
switch (prefValue) {
case notSet:
{
let checkBoxObj = {
value: false
};
let buttonPressed = gPromptSvc.confirmEx(win,
EnigmailLocale.getString("enigConfirm"),
mesg,
buttonTitles,
okLabel, cancelLabel, null,
EnigmailLocale.getString("dlgKeepSetting"), checkBoxObj);
if (checkBoxObj.value) {
EnigmailPrefs.setPref(prefText, (buttonPressed === 0 ? yes : no));
}
return (buttonPressed === 0 ? 1 : 0);
}
case yes:
return 1;
case no:
return 0;
default:
return -1;
}
}
else {
// boolean: "do not show this dialog anymore" (and return default)
switch (prefValue) {
case display:
{
let checkBoxObj = {
value: false
};
let buttonPressed = gPromptSvc.confirmEx(win,
EnigmailLocale.getString("enigConfirm"),
mesg,
buttonTitles,
okLabel, cancelLabel, null,
EnigmailLocale.getString("dlgNoPrompt"), checkBoxObj);
if (checkBoxObj.value) {
EnigmailPrefs.setPref(prefText, false);
}
return (buttonPressed === 0 ? 1 : 0);
}
case dontDisplay:
return 1;
default:
return -1;
}
}
},
/**
* Display a "open file" or "save file" dialog
*
* win: nsIWindow - parent window
* title: String - window title
* displayDir: String - optional: directory to be displayed
* save: Boolean - true = Save file / false = Open file
* defaultExtension: String - optional: extension for the type of files to work with, e.g. "asc"
* defaultName: String - optional: filename, incl. extension, that should be suggested to
* the user as default, e.g. "keys.asc"
* filterPairs: Array - optional: [title, extension], e.g. ["Pictures", "*.jpg; *.png"]
*
* return value: nsIFile object representing the file to load or save
*/
filePicker: function(win, title, displayDir, save, defaultExtension, defaultName, filterPairs) {
EnigmailLog.DEBUG("enigmailCommon.jsm: filePicker: " + save + "\n");
let filePicker = Cc["@mozilla.org/filepicker;1"].createInstance();
filePicker = filePicker.QueryInterface(Ci.nsIFilePicker);
let mode = save ? Ci.nsIFilePicker.modeSave : Ci.nsIFilePicker.modeOpen;
filePicker.init(win, title, mode);
if (displayDir) {
var localFile = Cc[LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
try {
localFile.initWithPath(displayDir);
filePicker.displayDirectory = localFile;
}
catch (ex) {}
}
if (defaultExtension) {
filePicker.defaultExtension = defaultExtension;
}
if (defaultName) {
filePicker.defaultString = defaultName;
}
let nfilters = 0;
if (filterPairs && filterPairs.length) {
nfilters = filterPairs.length / 2;
}
for (let index = 0; index < nfilters; index++) {
filePicker.appendFilter(filterPairs[2 * index], filterPairs[2 * index + 1]);
}
filePicker.appendFilters(Ci.nsIFilePicker.filterAll);
if (filePicker.show() == Ci.nsIFilePicker.returnCancel) {
return null;
}
return filePicker.file.QueryInterface(Ci.nsIFile);
},
/**
* Displays a dialog with success/failure information after importing
* keys.
*
* @win: nsIWindow - parent window to display modal dialog; can be null
* @mesg: String - message text
* @checkBoxLabel: String - if not null, display checkbox with text; the
* checkbox state is returned in checkedObj.value
* @button-Labels: String - use "&" to indicate access key
* use "buttonType:label" or ":buttonType" to indicate special button types
* (buttonType is one of cancel, help, extra1, extra2)
* @checkedObj: Object - holding the checkbox value
*
* @return: 0-2: button Number pressed
* -1: ESC or close window button pressed
*
*/
keyImportDlg: function(win, keyList, checkBoxLabel, okLabel, labelButton2, labelButton3, checkedObj) {
var result = {
value: -1,
checked: false
};
if (!win) {
win = EnigmailWindows.getBestParentWin();
}
win.openDialog("chrome://enigmail/content/enigmailKeyImportInfo.xul", "",
"chrome,dialog,modal,centerscreen,resizable", {
keyList: keyList,
checkboxLabel: checkBoxLabel,
button1: okLabel,
},
result);
if (checkBoxLabel) {
checkedObj.value = result.checked;
}
return result.value;
},
/**
* return a pre-initialized prompt service
*/
getPromptSvc: function() {
return gPromptSvc;
}
};
EnigmailWindows.alert = EnigmailDialog.alert;
enigmail/package/encryption.jsm 0000664 0000000 0000000 00000042327 12667016244 0017163 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailCore: false, EnigmailLog: false, EnigmailPrefs: false, EnigmailApp: false, EnigmailLocale: false, EnigmailDialog: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailEncryption"];
Components.utils.import("resource://enigmail/core.jsm");
Components.utils.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
Components.utils.import("resource://enigmail/log.jsm");
Components.utils.import("resource://enigmail/prefs.jsm");
Components.utils.import("resource://enigmail/app.jsm");
Components.utils.import("resource://enigmail/locale.jsm");
Components.utils.import("resource://enigmail/dialog.jsm");
Components.utils.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Components.utils.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Components.utils.import("resource://enigmail/errorHandling.jsm"); /*global EnigmailErrorHandling: false */
Components.utils.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Components.utils.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Components.utils.import("resource://enigmail/passwords.jsm"); /*global EnigmailPassword: false */
Components.utils.import("resource://enigmail/funcs.jsm"); /*global EnigmailFuncs: false */
Components.utils.import("resource://enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const nsIEnigmail = Ci.nsIEnigmail;
var EC = EnigmailCore;
const gMimeHashAlgorithms = [null, "sha1", "ripemd160", "sha256", "sha384", "sha512", "sha224", "md5"];
const ENC_TYPE_MSG = 0;
const ENC_TYPE_ATTACH_BINARY = 1;
const ENC_TYPE_ATTACH_ASCII = 2;
const GPG_COMMENT_OPT = "Using GnuPG with %s - http://www.enigmail.net/";
const EnigmailEncryption = {
getEncryptCommand: function(fromMailAddr, toMailAddr, bccMailAddr, hashAlgorithm, sendFlags, isAscii, errorMsgObj) {
EnigmailLog.DEBUG("encryption.jsm: getEncryptCommand: hashAlgorithm=" + hashAlgorithm + "\n");
try {
fromMailAddr = EnigmailFuncs.stripEmail(fromMailAddr);
toMailAddr = EnigmailFuncs.stripEmail(toMailAddr);
bccMailAddr = EnigmailFuncs.stripEmail(bccMailAddr);
}
catch (ex) {
errorMsgObj.value = EnigmailLocale.getString("invalidEmail");
return null;
}
var defaultSend = sendFlags & nsIEnigmail.SEND_DEFAULT;
var signMsg = sendFlags & nsIEnigmail.SEND_SIGNED;
var encryptMsg = sendFlags & nsIEnigmail.SEND_ENCRYPTED;
var usePgpMime = sendFlags & nsIEnigmail.SEND_PGP_MIME;
var useDefaultComment = false;
try {
useDefaultComment = EnigmailPrefs.getPref("useDefaultComment");
}
catch (ex) {}
var hushMailSupport = false;
try {
hushMailSupport = EnigmailPrefs.getPref("hushMailSupport");
}
catch (ex) {}
var detachedSig = (usePgpMime || (sendFlags & nsIEnigmail.SEND_ATTACHMENT)) && signMsg && !encryptMsg;
var toAddrList = toMailAddr.split(/\s*,\s*/);
var bccAddrList = bccMailAddr.split(/\s*,\s*/);
var k;
var encryptArgs = EnigmailGpg.getStandardArgs(true);
if (!useDefaultComment)
encryptArgs = encryptArgs.concat(["--comment", GPG_COMMENT_OPT.replace(/\%s/, EnigmailApp.getName())]);
var angledFromMailAddr = ((fromMailAddr.search(/^0x/) === 0) || hushMailSupport) ?
fromMailAddr : "<" + fromMailAddr + ">";
angledFromMailAddr = angledFromMailAddr.replace(/([\"\'\`])/g, "\\$1");
if (signMsg && hashAlgorithm) {
encryptArgs = encryptArgs.concat(["--digest-algo", hashAlgorithm]);
}
if (encryptMsg) {
switch (isAscii) {
case ENC_TYPE_MSG:
encryptArgs.push("-a");
encryptArgs.push("-t");
break;
case ENC_TYPE_ATTACH_ASCII:
encryptArgs.push("-a");
}
encryptArgs.push("--encrypt");
if (signMsg)
encryptArgs.push("--sign");
if (sendFlags & nsIEnigmail.SEND_ALWAYS_TRUST) {
encryptArgs.push("--trust-model");
encryptArgs.push("always");
}
if ((sendFlags & nsIEnigmail.SEND_ENCRYPT_TO_SELF) && fromMailAddr)
encryptArgs = encryptArgs.concat(["--encrypt-to", angledFromMailAddr]);
for (k = 0; k < toAddrList.length; k++) {
toAddrList[k] = toAddrList[k].replace(/\'/g, "\\'");
if (toAddrList[k].length > 0) {
encryptArgs.push("-r");
if (toAddrList[k].search(/^GROUP:/) === 0) {
// groups from gpg.conf file
encryptArgs.push(toAddrList[k].substr(6));
}
else {
encryptArgs.push((hushMailSupport || (toAddrList[k].search(/^0x/) === 0)) ? toAddrList[k] : "<" + toAddrList[k] + ">");
}
}
}
for (k = 0; k < bccAddrList.length; k++) {
bccAddrList[k] = bccAddrList[k].replace(/\'/g, "\\'");
if (bccAddrList[k].length > 0) {
encryptArgs.push("--hidden-recipient");
encryptArgs.push((hushMailSupport || (bccAddrList[k].search(/^0x/) === 0)) ? bccAddrList[k] : "<" + bccAddrList[k] + ">");
}
}
}
else if (detachedSig) {
encryptArgs = encryptArgs.concat(["-s", "-b"]);
switch (isAscii) {
case ENC_TYPE_MSG:
encryptArgs = encryptArgs.concat(["-a", "-t"]);
break;
case ENC_TYPE_ATTACH_ASCII:
encryptArgs.push("-a");
}
}
else if (signMsg) {
encryptArgs = encryptArgs.concat(["-t", "--clearsign"]);
}
if (fromMailAddr) {
encryptArgs = encryptArgs.concat(["-u", angledFromMailAddr]);
}
return encryptArgs;
},
/**
* Determine if the sender key ID or user ID can be used for signing and/or encryption
*
* @param sendFlags: Number - the send Flags; need to contain SEND_SIGNED and/or SEND_ENCRYPTED
* @param fromMailAddr: String - the sender email address or key ID
*
* @return Object:
* - keyId: String - the found key ID, or null if fromMailAddr is not valid
* - errorMsg: String - the erorr message if key not valid, or null if key is valid
*/
determineOwnKeyUsability: function(sendFlags, fromMailAddr) {
EnigmailLog.DEBUG("encryption.jsm: determineOwnKeyUsability: sendFlags=" + sendFlags + ", sender=" + fromMailAddr + "\n");
let keyList = [];
let ret = {
keyId: null,
errorMsg: null
};
let sign = (sendFlags & nsIEnigmail.SEND_SIGNED ? true : false);
let encrypt = (sendFlags & nsIEnigmail.SEND_ENCRYPTED ? true : false);
if (fromMailAddr.search(/^(0x)?[A-Z0-9]+$/) === 0) {
// key ID specified
let key = EnigmailKeyRing.getKeyById(fromMailAddr);
keyList.push(key);
}
else {
// email address specified
keyList = EnigmailKeyRing.getKeysByUserId(fromMailAddr);
}
if (keyList.length === 0) {
ret.errorMsg = EnigmailLocale.getString("errorOwnKeyUnusable", fromMailAddr);
return ret;
}
if (sign) {
keyList = keyList.reduce(function _f(p, keyObj) {
if (keyObj.getSigningValidity().keyValid) p.push(keyObj);
return p;
}, []);
}
if (encrypt) {
keyList = keyList.reduce(function _f(p, keyObj) {
if (keyObj.getEncryptionValidity().keyValid) p.push(keyObj);
return p;
}, []);
}
if (keyList.length === 0) {
if (sign) {
ret.errorMsg = EnigmailErrorHandling.determineInvSignReason(fromMailAddr);
}
else {
ret.errorMsg = EnigmailErrorHandling.determineInvRcptReason(fromMailAddr);
}
}
else {
// TODO: use better algorithm
ret.keyId = keyList[0].fpr;
}
return ret;
},
encryptMessageStart: function(win, uiFlags, fromMailAddr, toMailAddr, bccMailAddr,
hashAlgorithm, sendFlags, listener, statusFlagsObj, errorMsgObj) {
EnigmailLog.DEBUG("encryption.jsm: encryptMessageStart: uiFlags=" + uiFlags + ", from " + fromMailAddr + " to " + toMailAddr + ", hashAlgorithm=" + hashAlgorithm + " (" + EnigmailData.bytesToHex(
EnigmailData.pack(sendFlags, 4)) + ")\n");
let keyUseability = this.determineOwnKeyUsability(sendFlags, fromMailAddr);
if (!keyUseability.keyId) {
EnigmailLog.DEBUG("encryption.jsm: encryptMessageStart: own key invalid\n");
errorMsgObj.value = keyUseability.errorMsg;
statusFlagsObj.value = nsIEnigmail.INVALID_RECIPIENT | nsIEnigmail.NO_SECKEY | nsIEnigmail.DISPLAY_MESSAGE;
return null;
}
// TODO: else - use the found key ID
var pgpMime = uiFlags & nsIEnigmail.UI_PGP_MIME;
var hashAlgo = gMimeHashAlgorithms[EnigmailPrefs.getPref("mimeHashAlgorithm")];
if (hashAlgorithm) {
hashAlgo = hashAlgorithm;
}
errorMsgObj.value = "";
if (!sendFlags) {
EnigmailLog.DEBUG("encryption.jsm: encryptMessageStart: NO ENCRYPTION!\n");
errorMsgObj.value = EnigmailLocale.getString("notRequired");
return null;
}
if (!EnigmailCore.getService(win)) {
EnigmailLog.ERROR("encryption.jsm: encryptMessageStart: not yet initialized\n");
errorMsgObj.value = EnigmailLocale.getString("notInit");
return null;
}
var encryptArgs = EnigmailEncryption.getEncryptCommand(fromMailAddr, toMailAddr, bccMailAddr, hashAlgo, sendFlags, ENC_TYPE_MSG, errorMsgObj);
if (!encryptArgs)
return null;
var signMsg = sendFlags & nsIEnigmail.SEND_SIGNED;
var proc = EnigmailExecution.execStart(EnigmailGpgAgent.agentPath, encryptArgs, signMsg, win, listener, statusFlagsObj);
if (statusFlagsObj.value & nsIEnigmail.MISSING_PASSPHRASE) {
EnigmailLog.ERROR("encryption.jsm: encryptMessageStart: Error - no passphrase supplied\n");
errorMsgObj.value = "";
}
if (pgpMime && errorMsgObj.value) {
EnigmailDialog.alert(win, errorMsgObj.value);
}
return proc;
},
encryptMessageEnd: function(fromMailAddr, stderrStr, exitCode, uiFlags, sendFlags, outputLen, retStatusObj) {
EnigmailLog.DEBUG("encryption.jsm: encryptMessageEnd: uiFlags=" + uiFlags + ", sendFlags=" + EnigmailData.bytesToHex(EnigmailData.pack(sendFlags, 4)) + ", outputLen=" + outputLen + "\n");
var pgpMime = uiFlags & nsIEnigmail.UI_PGP_MIME;
var defaultSend = sendFlags & nsIEnigmail.SEND_DEFAULT;
var signMsg = sendFlags & nsIEnigmail.SEND_SIGNED;
var encryptMsg = sendFlags & nsIEnigmail.SEND_ENCRYPTED;
retStatusObj.statusFlags = 0;
retStatusObj.errorMsg = "";
retStatusObj.blockSeparation = "";
if (!EnigmailCore.getService().initialized) {
EnigmailLog.ERROR("encryption.jsm: encryptMessageEnd: not yet initialized\n");
retStatusObj.errorMsg = EnigmailLocale.getString("notInit");
return -1;
}
EnigmailErrorHandling.parseErrorOutput(stderrStr, retStatusObj);
exitCode = EnigmailExecution.fixExitCode(exitCode, retStatusObj);
if ((exitCode === 0) && !outputLen) {
exitCode = -1;
}
if (exitCode !== 0 && (signMsg || encryptMsg)) {
// GnuPG might return a non-zero exit code, even though the message was correctly
// signed or encryped -> try to fix the exit code
var correctedExitCode = 0;
if (signMsg) {
if (!(retStatusObj.statusFlags & nsIEnigmail.SIG_CREATED)) correctedExitCode = exitCode;
}
if (encryptMsg) {
if (!(retStatusObj.statusFlags & nsIEnigmail.END_ENCRYPTION)) correctedExitCode = exitCode;
}
exitCode = correctedExitCode;
}
EnigmailLog.DEBUG("encryption.jsm: encryptMessageEnd: command execution exit code: " + exitCode + "\n");
if (retStatusObj.statusFlags & nsIEnigmail.DISPLAY_MESSAGE) {
if (retStatusObj.extendedStatus.search(/\bdisp:/) >= 0) {
retStatusObj.errorMsg = retStatusObj.statusMsg;
}
else {
if (fromMailAddr.search(/^0x/) === 0) {
fromMailAddr = fromMailAddr.substr(2);
}
if (fromMailAddr.search(/^[A-F0-9]{8,40}$/i) === 0) {
fromMailAddr = "[A-F0-9]+" + fromMailAddr;
}
let s = new RegExp("^(\\[GNUPG:\\] )?INV_(RECP|SGNR) [0-9]+ (\\<|0x)?" + fromMailAddr + "\\>?", "m");
if (retStatusObj.statusMsg.search(s) >= 0) {
retStatusObj.errorMsg += "\n\n" + EnigmailLocale.getString("keyError.resolutionAction");
}
else if (retStatusObj.statusMsg.length > 0) {
retStatusObj.errorMsg = retStatusObj.statusMsg;
}
}
}
else if (retStatusObj.statusFlags & nsIEnigmail.INVALID_RECIPIENT) {
retStatusObj.errorMsg = retStatusObj.statusMsg;
}
else if (exitCode !== 0) {
retStatusObj.errorMsg = EnigmailLocale.getString("badCommand");
}
return exitCode;
},
encryptMessage: function(parent, uiFlags, plainText, fromMailAddr, toMailAddr, bccMailAddr, sendFlags,
exitCodeObj, statusFlagsObj, errorMsgObj) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.encryptMessage: " + plainText.length + " bytes from " + fromMailAddr + " to " + toMailAddr + " (" + sendFlags + ")\n");
exitCodeObj.value = -1;
statusFlagsObj.value = 0;
errorMsgObj.value = "";
if (!plainText) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.encryptMessage: NO ENCRYPTION!\n");
exitCodeObj.value = 0;
EnigmailLog.DEBUG(" <=== encryptMessage()\n");
return plainText;
}
var defaultSend = sendFlags & nsIEnigmail.SEND_DEFAULT;
var signMsg = sendFlags & nsIEnigmail.SEND_SIGNED;
var encryptMsg = sendFlags & nsIEnigmail.SEND_ENCRYPTED;
if (encryptMsg) {
// First convert all linebreaks to newlines
plainText = plainText.replace(/\r\n/g, "\n");
plainText = plainText.replace(/\r/g, "\n");
// we need all data in CRLF according to RFC 4880
plainText = plainText.replace(/\n/g, "\r\n");
}
var inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector);
var listener = EnigmailExecution.newSimpleListener(
function _stdin(pipe) {
pipe.write(plainText);
pipe.close();
},
function _done(exitCode) {
// unlock wait
if (inspector.eventLoopNestLevel > 0) {
inspector.exitNestedEventLoop();
}
});
var proc = EnigmailEncryption.encryptMessageStart(parent, uiFlags,
fromMailAddr, toMailAddr, bccMailAddr,
null, sendFlags,
listener, statusFlagsObj, errorMsgObj);
if (!proc) {
exitCodeObj.value = -1;
EnigmailLog.DEBUG(" <=== encryptMessage()\n");
return "";
}
// Wait for child pipes to close
inspector.enterNestedEventLoop(0);
var retStatusObj = {};
exitCodeObj.value = EnigmailEncryption.encryptMessageEnd(fromMailAddr, EnigmailData.getUnicodeData(listener.stderrData), listener.exitCode,
uiFlags, sendFlags,
listener.stdoutData.length,
retStatusObj);
statusFlagsObj.value = retStatusObj.statusFlags;
statusFlagsObj.statusMsg = retStatusObj.statusMsg;
errorMsgObj.value = retStatusObj.errorMsg;
if ((exitCodeObj.value === 0) && listener.stdoutData.length === 0)
exitCodeObj.value = -1;
if (exitCodeObj.value === 0) {
// Normal return
EnigmailLog.DEBUG(" <=== encryptMessage()\n");
return EnigmailData.getUnicodeData(listener.stdoutData);
}
// Error processing
EnigmailLog.DEBUG("enigmail.js: Enigmail.encryptMessage: command execution exit code: " + exitCodeObj.value + "\n");
return "";
},
encryptAttachment: function(parent, fromMailAddr, toMailAddr, bccMailAddr, sendFlags, inFile, outFile,
exitCodeObj, statusFlagsObj, errorMsgObj) {
EnigmailLog.DEBUG("encryption.jsm: EnigmailEncryption.encryptAttachment infileName=" + inFile.path + "\n");
statusFlagsObj.value = 0;
sendFlags |= nsIEnigmail.SEND_ATTACHMENT;
let asciiArmor = false;
try {
asciiArmor = EnigmailPrefs.getPrefBranch().getBoolPref("inlineAttachAsciiArmor");
}
catch (ex) {}
const asciiFlags = (asciiArmor ? ENC_TYPE_ATTACH_ASCII : ENC_TYPE_ATTACH_BINARY);
let args = EnigmailEncryption.getEncryptCommand(fromMailAddr, toMailAddr, bccMailAddr, "", sendFlags, asciiFlags, errorMsgObj);
if (!args) {
return null;
}
const signMessage = (sendFlags & nsIEnigmail.SEND_SIGNED);
if (signMessage) {
args = args.concat(EnigmailPassword.command());
}
const inFilePath = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(inFile.QueryInterface(Ci.nsIFile)));
const outFilePath = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePathReadonly(outFile.QueryInterface(Ci.nsIFile)));
args = args.concat(["--yes", "-o", outFilePath, inFilePath]);
let cmdErrorMsgObj = {};
const msg = EnigmailExecution.execCmd(EnigmailGpgAgent.agentPath, args, "", exitCodeObj, statusFlagsObj, {}, cmdErrorMsgObj);
if (exitCodeObj.value !== 0) {
if (cmdErrorMsgObj.value) {
errorMsgObj.value = EnigmailFiles.formatCmdLine(EnigmailGpgAgent.agentPath, args);
errorMsgObj.value += "\n" + cmdErrorMsgObj.value;
}
else {
errorMsgObj.value = "An unknown error has occurred";
}
return "";
}
return msg;
},
registerOn: function(target) {
target.encryptMessage = EnigmailEncryption.encryptMessage;
target.encryptAttachment = EnigmailEncryption.encryptAttachment;
}
};
enigmail/package/enigmail.js 0000664 0000000 0000000 00000027264 12667016244 0016404 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
Cu.import("resource://enigmail/pipeConsole.jsm"); /*global EnigmailConsole: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Cu.import("resource://enigmail/encryption.jsm"); /*global EnigmailEncryption: false */
Cu.import("resource://enigmail/decryption.jsm"); /*global EnigmailDecryption: false */
Cu.import("resource://enigmail/protocolHandler.jsm"); /*global EnigmailProtocolHandler: false */
Cu.import("resource://enigmail/rules.jsm"); /*global EnigmailRules: false */
Cu.import("resource://enigmail/filters.jsm"); /*global EnigmailFilters: false */
Cu.import("resource://enigmail/armor.jsm"); /*global EnigmailArmor: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/commandLine.jsm"); /*global EnigmailCommandLine: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/uris.jsm"); /*global EnigmailURIs: false */
Cu.import("resource://enigmail/verify.jsm"); /*global EnigmailVerifyAttachment: false */
Cu.import("resource://enigmail/mimeVerify.jsm"); /*global EnigmailVerify: false */
Cu.import("resource://enigmail/windows.jsm"); /*global EnigmailWindows: false */
Cu.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */
Cu.import("resource://enigmail/configure.jsm"); /*global EnigmailConfigure: false */
Cu.import("resource://enigmail/app.jsm"); /*global EnigmailApp: false */
/* Implementations supplied by this module */
const NS_ENIGMAIL_CONTRACTID = "@mozdev.org/enigmail/enigmail;1";
const NS_ENIGMAIL_CID =
Components.ID("{847b3a01-7ab1-11d4-8f02-006008948af5}");
// Contract IDs and CIDs used by this module
const NS_OBSERVERSERVICE_CONTRACTID = "@mozilla.org/observer-service;1";
const Cc = Components.classes;
const Ci = Components.interfaces;
// Interfaces
const nsISupports = Ci.nsISupports;
const nsIObserver = Ci.nsIObserver;
const nsIEnvironment = Ci.nsIEnvironment;
const nsIEnigmail = Ci.nsIEnigmail;
const NS_XPCOM_SHUTDOWN_OBSERVER_ID = "xpcom-shutdown";
///////////////////////////////////////////////////////////////////////////////
// Enigmail encryption/decryption service
///////////////////////////////////////////////////////////////////////////////
function getLogDirectoryPrefix() {
try {
return EnigmailPrefs.getPrefBranch().getCharPref("logDirectory") || "";
}
catch (ex) {
return "";
}
}
function initializeLogDirectory() {
const prefix = getLogDirectoryPrefix();
if (prefix) {
EnigmailLog.setLogLevel(5);
EnigmailLog.setLogDirectory(prefix);
EnigmailLog.DEBUG("enigmail.js: Logging debug output to " + prefix + "/enigdbug.txt\n");
}
}
function initializeLogging(env) {
const nspr_log_modules = env.get("NSPR_LOG_MODULES");
const matches = nspr_log_modules.match(/enigmail.js:(\d+)/);
if (matches && (matches.length > 1)) {
EnigmailLog.setLogLevel(Number(matches[1]));
EnigmailLog.WARNING("enigmail.js: Enigmail: LogLevel=" + matches[1] + "\n");
}
}
function initializeSubprocessLogging(env) {
const nspr_log_modules = env.get("NSPR_LOG_MODULES");
const matches = nspr_log_modules.match(/subprocess:(\d+)/);
subprocess.registerLogHandler(function(txt) {
EnigmailLog.ERROR("subprocess.jsm: " + txt);
});
if (matches && matches.length > 1 && matches[1] > 2) {
subprocess.registerDebugHandler(function(txt) {
EnigmailLog.DEBUG("subprocess.jsm: " + txt);
});
}
}
function initializeAgentInfo() {
if (EnigmailGpgAgent.useGpgAgent() && (!EnigmailOS.isDosLike())) {
if (!EnigmailGpgAgent.isDummy()) {
EnigmailCore.addToEnvList("GPG_AGENT_INFO=" + EnigmailGpgAgent.gpgAgentInfo.envStr);
}
}
}
function failureOn(ex, status) {
status.initializationError = EnigmailLocale.getString("enigmailNotAvailable");
EnigmailLog.ERROR("enigmail.js: Enigmail.initialize: Error - " + status.initializationError + "\n");
EnigmailLog.DEBUG("enigmail.js: Enigmail.initialize: exception=" + ex.toString() + "\n");
throw Components.results.NS_ERROR_FAILURE;
}
function getEnvironment(status) {
try {
return Cc["@mozilla.org/process/environment;1"].getService(nsIEnvironment);
}
catch (ex) {
failureOn(ex, status);
}
}
function initializeEnvironment(env) {
// Initialize global environment variables list
const passEnv = ["GNUPGHOME", "GPGDIR", "ETC",
"ALLUSERSPROFILE", "APPDATA", "BEGINLIBPATH",
"COMMONPROGRAMFILES", "COMSPEC", "DBUS_SESSION_BUS_ADDRESS", "DISPLAY",
"ENIGMAIL_PASS_ENV", "ENDLIBPATH",
"GTK_IM_MODULE",
"HOME", "HOMEDRIVE", "HOMEPATH",
"LANG", "LANGUAGE", "LC_ALL", "LC_COLLATE", "LC_CTYPE",
"LC_MESSAGES", "LC_MONETARY", "LC_NUMERIC", "LC_TIME",
"LOCPATH", "LOGNAME", "LD_LIBRARY_PATH", "MOZILLA_FIVE_HOME",
"NLSPATH", "PATH", "PATHEXT", "PROGRAMFILES", "PWD",
"QT_IM_MODULE",
"SHELL", "SYSTEMDRIVE", "SYSTEMROOT",
"TEMP", "TMP", "TMPDIR", "TZ", "TZDIR", "UNIXROOT",
"USER", "USERPROFILE", "WINDIR", "XAUTHORITY",
"XMODIFIERS"
];
const passList = env.get("ENIGMAIL_PASS_ENV");
if (passList) {
const passNames = passList.split(":");
for (var k = 0; k < passNames.length; k++) {
passEnv.push(passNames[k]);
}
}
EnigmailCore.initEnvList();
for (var j = 0; j < passEnv.length; j++) {
const envName = passEnv[j];
const envValue = env.get(envName);
if (envValue) {
EnigmailCore.addToEnvList(envName + "=" + envValue);
}
}
EnigmailLog.DEBUG("enigmail.js: Enigmail.initialize: Ec.envList = " + EnigmailCore.getEnvList() + "\n");
}
function initializeObserver(on) {
// Register to observe XPCOM shutdown
const obsServ = Cc[NS_OBSERVERSERVICE_CONTRACTID].getService().
QueryInterface(Ci.nsIObserverService);
obsServ.addObserver(on, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false);
}
function Enigmail() {
this.wrappedJSObject = this;
}
Enigmail.prototype = {
classDescription: "Enigmail",
classID: NS_ENIGMAIL_CID,
contractID: NS_ENIGMAIL_CONTRACTID,
initialized: false,
initializationAttempted: false,
initializationError: "",
_xpcom_factory: {
createInstance: function(aOuter, iid) {
// Enigmail is a service -> only instanciate once
return EnigmailCore.ensuredEnigmailService(function() {
return new Enigmail();
});
},
lockFactory: function(lock) {}
},
QueryInterface: XPCOMUtils.generateQI([nsIEnigmail, nsIObserver, nsISupports]),
observe: function(aSubject, aTopic, aData) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.observe: topic='" + aTopic + "' \n");
if (aTopic == NS_XPCOM_SHUTDOWN_OBSERVER_ID) {
// XPCOM shutdown
this.finalize();
}
else {
EnigmailLog.DEBUG("enigmail.js: Enigmail.observe: no handler for '" + aTopic + "'\n");
}
},
finalize: function() {
EnigmailLog.DEBUG("enigmail.js: Enigmail.finalize:\n");
if (!this.initialized) return;
EnigmailGpgAgent.finalize();
EnigmailLog.onShutdown();
EnigmailLog.setLogLevel(3);
this.initializationError = "";
this.initializationAttempted = false;
this.initialized = false;
},
initialize: function(domWindow, version) {
this.initializationAttempted = true;
EnigmailLog.DEBUG("enigmail.js: Enigmail.initialize: START\n");
if (this.initialized) return;
initializeLogDirectory();
EnigmailCore.setEnigmailService(this);
this.environment = getEnvironment(this);
initializeLogging(this.environment);
initializeSubprocessLogging(this.environment);
initializeEnvironment(this.environment);
try {
EnigmailConsole.write("Initializing Enigmail service ...\n");
}
catch (ex) {
failureOn(ex, this);
}
EnigmailGpgAgent.setAgentPath(domWindow, this);
EnigmailGpgAgent.detectGpgAgent(domWindow, this);
initializeAgentInfo();
initializeObserver(this);
this.initialized = true;
EnigmailLog.DEBUG("enigmail.js: Enigmail.initialize: END\n");
},
reinitialize: function() {
this.initialized = false;
this.initializationAttempted = true;
EnigmailConsole.write("Reinitializing Enigmail service ...\n");
EnigmailGpgAgent.setAgentPath(null, this);
this.initialized = true;
},
getService: function(holder, win, startingPreferences) {
if (!win) {
win = EnigmailWindows.getBestParentWin();
}
EnigmailLog.DEBUG("enigmail.js: svc = " + holder.svc + "\n");
if (!holder.svc.initialized) {
const firstInitialization = !holder.svc.initializationAttempted;
try {
// Initialize enigmail
EnigmailCore.init(EnigmailApp.getVersion());
holder.svc.initialize(win, EnigmailApp.getVersion());
try {
// Reset alert count to default value
EnigmailPrefs.getPrefBranch().clearUserPref("initAlert");
}
catch (ex) {}
}
catch (ex) {
if (firstInitialization) {
// Display initialization error alert
const errMsg = (holder.svc.initializationError ? holder.svc.initializationError : EnigmailLocale.getString("accessError")) +
"\n\n" + EnigmailLocale.getString("initErr.howToFixIt");
const checkedObj = {
value: false
};
if (EnigmailPrefs.getPref("initAlert")) {
const r = EnigmailDialog.longAlert(win, "Enigmail: " + errMsg,
EnigmailLocale.getString("dlgNoPrompt"),
null, EnigmailLocale.getString("initErr.setupWizard.button"),
null, checkedObj);
if (r >= 0 && checkedObj.value) {
EnigmailPrefs.setPref("initAlert", false);
}
if (r == 1) {
// start setup wizard
EnigmailWindows.openSetupWizard(win, false);
return Enigmail.getService(holder, win);
}
}
if (EnigmailPrefs.getPref("initAlert")) {
holder.svc.initializationAttempted = false;
holder.svc = null;
}
}
return null;
}
const configuredVersion = EnigmailPrefs.getPref("configuredVersion");
EnigmailLog.DEBUG("enigmailCommon.jsm: getService: " + configuredVersion + "\n");
if (firstInitialization && holder.svc.initialized &&
EnigmailGpgAgent.agentType === "pgp") {
EnigmailDialog.alert(win, EnigmailLocale.getString("pgpNotSupported"));
}
if (holder.svc.initialized && (EnigmailApp.getVersion() != configuredVersion)) {
EnigmailConfigure.configureEnigmail(win, startingPreferences);
}
}
return holder.svc.initialized ? holder.svc : null;
}
}; // Enigmail.prototype
EnigmailArmor.registerOn(Enigmail.prototype);
EnigmailDecryption.registerOn(Enigmail.prototype);
EnigmailEncryption.registerOn(Enigmail.prototype);
EnigmailRules.registerOn(Enigmail.prototype);
EnigmailURIs.registerOn(Enigmail.prototype);
EnigmailVerifyAttachment.registerOn(Enigmail.prototype);
EnigmailVerify.registerContentTypeHandler();
// This variable is exported implicitly and should not be refactored or removed
const NSGetFactory = XPCOMUtils.generateNSGetFactory([Enigmail, EnigmailProtocolHandler, EnigmailCommandLine.Handler]);
EnigmailFilters.registerAll();
enigmail/package/errorHandling.jsm 0000664 0000000 0000000 00000044650 12667016244 0017570 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailLog: false, EnigmailLocale: false, EnigmailData: false, EnigmailCore: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailErrorHandling"];
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm");
Cu.import("resource://enigmail/locale.jsm");
Cu.import("resource://enigmail/data.jsm");
Cu.import("resource://enigmail/core.jsm");
Cu.import("resource://enigmail/system.jsm"); /* global EnigmailSystem: false */
Cu.import("resource://enigmail/lazy.jsm"); /* global EnigmailLazy: false */
const getEnigmailKeyRing = EnigmailLazy.loader("enigmail/keyRing.jsm", "EnigmailKeyRing");
const nsIEnigmail = Ci.nsIEnigmail;
const gStatusFlags = {
GOODSIG: nsIEnigmail.GOOD_SIGNATURE,
BADSIG: nsIEnigmail.BAD_SIGNATURE,
ERRSIG: nsIEnigmail.UNVERIFIED_SIGNATURE,
EXPSIG: nsIEnigmail.EXPIRED_SIGNATURE,
REVKEYSIG: nsIEnigmail.GOOD_SIGNATURE,
EXPKEYSIG: nsIEnigmail.EXPIRED_KEY_SIGNATURE,
KEYEXPIRED: nsIEnigmail.EXPIRED_KEY,
KEYREVOKED: nsIEnigmail.REVOKED_KEY,
NO_PUBKEY: nsIEnigmail.NO_PUBKEY,
NO_SECKEY: nsIEnigmail.NO_SECKEY,
IMPORTED: nsIEnigmail.IMPORTED_KEY,
INV_RECP: nsIEnigmail.INVALID_RECIPIENT,
MISSING_PASSPHRASE: nsIEnigmail.MISSING_PASSPHRASE,
BAD_PASSPHRASE: nsIEnigmail.BAD_PASSPHRASE,
BADARMOR: nsIEnigmail.BAD_ARMOR,
NODATA: nsIEnigmail.NODATA,
ERROR: nsIEnigmail.BAD_SIGNATURE | nsIEnigmail.DECRYPTION_FAILED,
DECRYPTION_FAILED: nsIEnigmail.DECRYPTION_FAILED,
DECRYPTION_OKAY: nsIEnigmail.DECRYPTION_OKAY,
TRUST_UNDEFINED: nsIEnigmail.UNTRUSTED_IDENTITY,
TRUST_NEVER: nsIEnigmail.UNTRUSTED_IDENTITY,
TRUST_MARGINAL: nsIEnigmail.UNTRUSTED_IDENTITY,
TRUST_FULLY: nsIEnigmail.TRUSTED_IDENTITY,
TRUST_ULTIMATE: nsIEnigmail.TRUSTED_IDENTITY,
CARDCTRL: nsIEnigmail.CARDCTRL,
SC_OP_FAILURE: nsIEnigmail.SC_OP_FAILURE,
UNKNOWN_ALGO: nsIEnigmail.UNKNOWN_ALGO,
SIG_CREATED: nsIEnigmail.SIG_CREATED,
END_ENCRYPTION: nsIEnigmail.END_ENCRYPTION,
INV_SGNR: 0x100000000,
IMPORT_OK: 0x200000000,
FAILURE: 0x400000000
};
// taken from libgpg-error: gpg-error.h
const GPG_SOURCE_SYSTEM = {
GPG_ERR_SOURCE_UNKNOWN: 0,
GPG_ERR_SOURCE_GCRYPT: 1,
GPG_ERR_SOURCE_GPG: 2,
GPG_ERR_SOURCE_GPGSM: 3,
GPG_ERR_SOURCE_GPGAGENT: 4,
GPG_ERR_SOURCE_PINENTRY: 5,
GPG_ERR_SOURCE_SCD: 6,
GPG_ERR_SOURCE_GPGME: 7,
GPG_ERR_SOURCE_KEYBOX: 8,
GPG_ERR_SOURCE_KSBA: 9,
GPG_ERR_SOURCE_DIRMNGR: 10,
GPG_ERR_SOURCE_GSTI: 11,
GPG_ERR_SOURCE_GPA: 12,
GPG_ERR_SOURCE_KLEO: 13,
GPG_ERR_SOURCE_G13: 14,
GPG_ERR_SOURCE_ASSUAN: 15,
GPG_ERR_SOURCE_TLS: 17,
GPG_ERR_SOURCE_ANY: 31
};
/**
* Handling of specific error codes from GnuPG
*
* @param c Object - the retStatusObj
* @param errorNumber String - the error number as printed by GnuPG
*/
function handleErrorCode(c, errorNumber) {
if (errorNumber && errorNumber.search(/^[0-9]+$/) === 0) {
let errNum = Number(errorNumber);
let sourceSystem = errNum >> 24;
let errorCode = errNum & 0xFFFFFF;
switch (errorCode) {
case 11: // bad Passphrase
case 87: // bad PIN
badPassphrase(c);
break;
case 177: // no passphrase
case 178: // no PIN
missingPassphrase(c);
break;
case 99: // operation canceled
if (sourceSystem === GPG_SOURCE_SYSTEM.GPG_ERR_SOURCE_PINENTRY) {
missingPassphrase(c);
}
break;
case 77: // no agent
case 78: // agent error
case 80: // assuan server fault
case 81: // assuan error
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.retStatusObj.extendedStatus += "disp:get_passphrase ";
c.retStatusObj.statusMsg = EnigmailLocale.getString("errorHandling.gpgAgentError") + "\n\n" + EnigmailLocale.getString("errorHandling.readFaq");
c.isError = true;
break;
case 85: // no pinentry
case 86: // pinentry error
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.retStatusObj.extendedStatus += "disp:get_passphrase ";
c.retStatusObj.statusMsg = EnigmailLocale.getString("errorHandling.pinentryError") + "\n\n" + EnigmailLocale.getString("errorHandling.readFaq");
c.isError = true;
break;
case 92: // no dirmngr
case 93: // dirmngr error
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.retStatusObj.extendedStatus += "disp:get_passphrase ";
c.retStatusObj.statusMsg = EnigmailLocale.getString("errorHandling.dirmngrError") + "\n\n" + EnigmailLocale.getString("errorHandling.readFaq");
c.isError = true;
break;
case 2:
case 3:
case 149:
case 188:
c.statusFlags |= Ci.nsIEnigmail.UNKNOWN_ALGO;
break;
case 15:
c.statusFlags |= Ci.nsIEnigmail.BAD_ARMOR;
break;
case 58:
c.statusFlags |= Ci.nsIEnigmail.NODATA;
break;
}
}
}
/**
* Special treatment for some ERROR messages from GnuPG
*
* extendedStatus are preceeded by "disp:" if an error message is set in statusMsg
*
* isError is set to true if this is a hard error that makes further processing of
* the status codes useless
*/
function handleError(c) {
/*
check_hijacking: gpg-agent was hijacked by some other process (like gnome-keyring)
proc_pkt.plaintext: multiple plaintexts seen
pkdecrypt_failed: public key decryption failed
keyedit.passwd: error changing the passphrase
card_key_generate: key generation failed (card)
key_generate: key generation failed
keyserver_send: keyserver send failed
get_passphrase: gpg-agent cannot query the passphrase from pinentry (GnuPG 2.0.x)
*/
var lineSplit = c.statusLine.split(/ +/);
if (lineSplit.length > 0) {
if (lineSplit.length >= 3) {
// first check if the error code is a specifically treated hard failure
handleErrorCode(c, lineSplit[2]);
if (c.isError) return true;
}
switch (lineSplit[1]) {
case "check_hijacking":
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.retStatusObj.extendedStatus += "disp:invalid_gpg_agent ";
c.retStatusObj.statusMsg = EnigmailLocale.getString("errorHandling.gpgAgentInvalid") + "\n\n" + EnigmailLocale.getString("errorHandling.readFaq");
c.isError = true;
break;
case "get_passphrase":
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.retStatusObj.extendedStatus += "disp:get_passphrase ";
c.retStatusObj.statusMsg = EnigmailLocale.getString("errorHandling.pinentryError") + "\n\n" + EnigmailLocale.getString("errorHandling.readFaq");
c.isError = true;
break;
case "proc_pkt.plaintext":
c.retStatusObj.extendedStatus += "multiple_plaintexts ";
c.isError = true;
break;
case "pkdecrypt_failed":
c.retStatusObj.extendedStatus += "pubkey_decrypt ";
handleErrorCode(c, lineSplit[2]);
break;
case "keyedit.passwd":
c.retStatusObj.extendedStatus += "passwd_change_failed ";
break;
case "card_key_generate":
case "key_generate":
c.retStatusObj.extendedStatus += "key_generate_failure ";
break;
case "keyserver_send":
c.retStatusObj.extendedStatus += "keyserver_send_failed ";
c.isError = true;
break;
default:
return false;
}
return true;
}
else {
return false;
}
}
// handle GnuPG FAILURE message (GnuPG 2.1.10 and newer)
function failureMessage(c) {
let lineSplit = c.statusLine.split(/ +/);
if (lineSplit.length >= 3) {
handleErrorCode(c, lineSplit[2]);
}
}
function missingPassphrase(c) {
c.statusFlags |= Ci.nsIEnigmail.MISSING_PASSPHRASE;
if (c.retStatusObj.statusMsg.indexOf(EnigmailLocale.getString("missingPassphrase")) < 0) {
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.flag = 0;
EnigmailLog.DEBUG("errorHandling.jsm: missingPassphrase: missing passphrase\n");
c.retStatusObj.statusMsg += EnigmailLocale.getString("missingPassphrase") + "\n";
}
}
function badPassphrase(c) {
c.statusFlags |= Ci.nsIEnigmail.MISSING_PASSPHRASE;
if (!(c.statusFlags & Ci.nsIEnigmail.BAD_PASSPHRASE)) {
c.statusFlags |= Ci.nsIEnigmail.BAD_PASSPHRASE;
c.flag = 0;
EnigmailLog.DEBUG("errorHandling.jsm: badPassphrase: bad passphrase\n");
c.retStatusObj.statusMsg += EnigmailLocale.getString("badPhrase") + "\n";
}
}
function invalidSignature(c) {
if (c.isError) return;
var lineSplit = c.statusLine.split(/ +/);
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.flag = 0;
let keySpec = lineSplit[2];
if (keySpec) {
EnigmailLog.DEBUG("errorHandling.jsm: invalidRecipient: detected invalid sender " + keySpec + " / code: " + lineSplit[1] + "\n");
c.retStatusObj.errorMsg += EnigmailErrorHandling.determineInvSignReason(keySpec);
}
}
function invalidRecipient(c) {
if (c.isError) return;
var lineSplit = c.statusLine.split(/ +/);
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
c.flag = 0;
let keySpec = lineSplit[2];
if (keySpec) {
EnigmailLog.DEBUG("errorHandling.jsm: invalidRecipient: detected invalid recipient " + keySpec + " / code: " + lineSplit[1] + "\n");
c.retStatusObj.errorMsg += EnigmailErrorHandling.determineInvRcptReason(keySpec);
}
}
function importOk(c) {
var lineSplit = c.statusLine.split(/ +/);
if (lineSplit.length > 1) {
EnigmailLog.DEBUG("errorHandling.jsm: importOk: key imported: " + lineSplit[2] + "\n");
}
else {
EnigmailLog.DEBUG("errorHandling.jsm: importOk: key without FPR imported\n");
}
let importFlag = Number(lineSplit[1]);
if (importFlag & (1 | 2 | 8)) {
EnigmailCore.getKeyRing().clearCache();
}
}
function unverifiedSignature(c) {
var lineSplit = c.statusLine.split(/ +/);
if (lineSplit.length > 7 && lineSplit[7] == "4") {
c.flag = Ci.nsIEnigmail.UNKNOWN_ALGO;
}
}
function noData(c) {
// Recognize only "NODATA 1"
if (c.statusLine.search(/NODATA 1\b/) < 0) {
c.flag = 0;
}
}
function decryptionFailed(c) {
c.inDecryptionFailed = true;
}
function cardControl(c) {
var lineSplit = c.statusLine.split(/ +/);
if (lineSplit[1] == "3") {
c.detectedCard = lineSplit[2];
}
else {
c.errCode = Number(lineSplit[1]);
if (c.errCode == 1) c.requestedCard = lineSplit[2];
}
}
function setupFailureLookup() {
var result = {};
result[Ci.nsIEnigmail.DECRYPTION_FAILED] = decryptionFailed;
result[Ci.nsIEnigmail.NODATA] = noData;
result[Ci.nsIEnigmail.CARDCTRL] = cardControl;
result[Ci.nsIEnigmail.UNVERIFIED_SIGNATURE] = unverifiedSignature;
result[Ci.nsIEnigmail.MISSING_PASSPHRASE] = missingPassphrase;
result[Ci.nsIEnigmail.BAD_PASSPHRASE] = badPassphrase;
result[gStatusFlags.INV_RECP] = invalidRecipient;
result[gStatusFlags.INV_SGNR] = invalidSignature;
result[gStatusFlags.IMPORT_OK] = importOk;
result[gStatusFlags.FAILURE] = failureMessage;
return result;
}
function ignore() {}
const failureLookup = setupFailureLookup();
function handleFailure(c, errorFlag) {
c.flag = gStatusFlags[errorFlag]; // yields known flag or undefined
(failureLookup[c.flag] || ignore)(c);
// if known flag, story it in our status
if (c.flag) {
c.statusFlags |= c.flag;
}
}
function newContext(errOutput, retStatusObj) {
retStatusObj.statusMsg = "";
retStatusObj.errorMsg = "";
retStatusObj.extendedStatus = "";
retStatusObj.blockSeparation = "";
return {
errOutput: errOutput,
retStatusObj: retStatusObj,
errArray: [],
statusArray: [],
errCode: 0,
detectedCard: null,
requestedCard: null,
errorMsg: "",
statusPat: /^\[GNUPG:\] /,
statusFlags: 0,
plaintextCount: 0,
withinCryptoMsg: false,
cryptoStartPat: /^BEGIN_DECRYPTION/,
cryptoEndPat: /^END_DECRYPTION/,
plaintextPat: /^PLAINTEXT /,
plaintextLengthPat: /^PLAINTEXT_LENGTH /
};
}
function splitErrorOutput(errOutput) {
var errLines = errOutput.split(/\r?\n/);
// Discard last null string, if any
if ((errLines.length > 1) && !errLines[errLines.length - 1]) {
errLines.pop();
}
return errLines;
}
function parseErrorLine(errLine, c) {
if (errLine.search(c.statusPat) === 0) {
// status line
c.statusLine = errLine.replace(c.statusPat, "");
c.statusArray.push(c.statusLine);
// extract first word as flag
var matches = c.statusLine.match(/^((\w+)\b)/);
if (matches && (matches.length > 1)) {
let isError = (matches[1] == "ERROR");
(isError ? handleError : handleFailure)(c, matches[1]);
}
}
else {
// non-status line (details of previous status command)
c.errArray.push(errLine);
// save details of DECRYPTION_FAILED message ass error message
if (c.inDecryptionFailed) {
c.errorMsg += errLine;
}
}
}
function detectForgedInsets(c) {
// detect forged message insets
for (var j = 0; j < c.statusArray.length; j++) {
if (c.statusArray[j].search(c.cryptoStartPat) === 0) {
c.withinCryptoMsg = true;
}
else if (c.withinCryptoMsg && c.statusArray[j].search(c.cryptoEndPat) === 0) {
c.withinCryptoMsg = false;
}
else if (c.statusArray[j].search(c.plaintextPat) === 0) {
++c.plaintextCount;
if ((c.statusArray.length > j + 1) && (c.statusArray[j + 1].search(c.plaintextLengthPat) === 0)) {
var matches = c.statusArray[j + 1].match(/(\w+) (\d+)/);
if (matches.length >= 3) {
c.retStatusObj.blockSeparation += (c.withinCryptoMsg ? "1" : "0") + ":" + matches[2] + " ";
}
}
else {
// strange: we got PLAINTEXT XX, but not PLAINTEXT_LENGTH XX
c.retStatusObj.blockSeparation += (c.withinCryptoMsg ? "1" : "0") + ":0 ";
}
}
}
if (c.plaintextCount > 1) {
c.statusFlags |= (Ci.nsIEnigmail.PARTIALLY_PGP | Ci.nsIEnigmail.DECRYPTION_FAILED | Ci.nsIEnigmail.BAD_SIGNATURE);
}
}
function buildErrorMessageForCardCtrl(c, errCode, detectedCard) {
var errorMsg = "";
switch (errCode) {
case 1:
if (detectedCard) {
errorMsg = EnigmailLocale.getString("sc.wrongCardAvailable", [c.detectedCard, c.requestedCard]);
}
else {
errorMsg = EnigmailLocale.getString("sc.insertCard", [c.requestedCard]);
}
break;
case 2:
errorMsg = EnigmailLocale.getString("sc.removeCard");
break;
case 4:
errorMsg = EnigmailLocale.getString("sc.noCardAvailable");
break;
case 5:
errorMsg = EnigmailLocale.getString("sc.noReaderAvailable");
break;
}
return errorMsg;
}
function parseErrorOutputWith(c) {
EnigmailLog.DEBUG("errorHandling.jsm: parseErrorOutputWith: status message: \n" + c.errOutput + "\n");
c.errLines = splitErrorOutput(c.errOutput);
c.isError = false; // set to true if a hard error was found
// parse all error lines
c.inDecryptionFailed = false; // to save details of encryption failed messages
for (var j = 0; j < c.errLines.length; j++) {
var errLine = c.errLines[j];
parseErrorLine(errLine, c);
if (c.isError) break;
}
detectForgedInsets(c);
c.retStatusObj.blockSeparation = c.retStatusObj.blockSeparation.replace(/ $/, "");
c.retStatusObj.statusFlags = c.statusFlags;
if (c.retStatusObj.statusMsg.length === 0) c.retStatusObj.statusMsg = c.statusArray.join("\n");
if (c.errorMsg.length === 0) {
c.errorMsg = c.errArray.map(function f(str, idx) {
return EnigmailSystem.convertNativeToUnicode(str);
}, EnigmailSystem).join("\n");
}
else {
c.errorMsg = EnigmailSystem.convertNativeToUnicode(c.errorMsg);
}
if ((c.statusFlags & Ci.nsIEnigmail.CARDCTRL) && c.errCode > 0) {
c.errorMsg = buildErrorMessageForCardCtrl(c, c.errCode, c.detectedCard);
c.statusFlags |= Ci.nsIEnigmail.DISPLAY_MESSAGE;
}
EnigmailLog.DEBUG("errorHandling.jsm: parseErrorOutputWith: statusFlags = " + EnigmailData.bytesToHex(EnigmailData.pack(c.statusFlags, 4)) + "\n");
EnigmailLog.DEBUG("errorHandling.jsm: parseErrorOutputWith: return with c.errorMsg = " + c.errorMsg + "\n");
return c.errorMsg;
}
var EnigmailErrorHandling = {
parseErrorOutput: function(errOutput, retStatusObj) {
var context = newContext(errOutput, retStatusObj);
return parseErrorOutputWith(context);
},
/**
* Determin why a given key or userID cannot be used for signing
*
* @param keySpec String - key ID or user ID
*
* @return String - the reason(s) as message to display to the user
* "" in case the key is valid
*/
determineInvSignReason: function(keySpec) {
EnigmailLog.DEBUG("errorHandling.jsm: determineInvSignReason: keySpec: " + keySpec + "\n");
let reasonMsg = "";
if (keySpec.search(/^(0x)?[0-9A-F]+$/) === 0) {
let key = getEnigmailKeyRing().getKeyById(keySpec);
if (!key) {
reasonMsg = EnigmailLocale.getString("keyError.keyIdNotFound", keySpec);
}
else {
let r = key.getSigningValidity();
if (!r.keyValid) reasonMsg = r.reason;
}
}
else {
let keys = getEnigmailKeyRing().getKeysByUserId(keySpec);
if (!keys || keys.length === 0) {
reasonMsg = EnigmailLocale.getString("keyError.keySpecNotFound", keySpec);
}
else {
for (let i in keys) {
let r = keys[i].getSigningValidity();
if (!r.keyValid) reasonMsg += r.reason + "\n";
}
}
}
return reasonMsg;
},
/**
* Determin why a given key or userID cannot be used for encryption
*
* @param keySpec String - key ID or user ID
*
* @return String - the reason(s) as message to display to the user
* "" in case the key is valid
*/
determineInvRcptReason: function(keySpec) {
EnigmailLog.DEBUG("errorHandling.jsm: determineInvRcptReason: keySpec: " + keySpec + "\n");
let reasonMsg = "";
if (keySpec.search(/^(0x)?[0-9A-F]+$/) === 0) {
let key = getEnigmailKeyRing().getKeyById(keySpec);
if (!key) {
reasonMsg = EnigmailLocale.getString("keyError.keyIdNotFound", keySpec);
}
else {
let r = key.getEncryptionValidity();
if (!r.keyValid) reasonMsg = r.reason;
}
}
else {
let keys = getEnigmailKeyRing().getKeysByUserId(keySpec);
if (!keys || keys.length === 0) {
reasonMsg = EnigmailLocale.getString("keyError.keySpecNotFound", keySpec);
}
else {
for (let i in keys) {
let r = keys[i].getEncryptionValidity();
if (!r.keyValid) reasonMsg += r.reason + "\n";
}
}
}
return reasonMsg;
}
};
enigmail/package/events.jsm 0000664 0000000 0000000 00000004332 12667016244 0016267 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailEvents"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/timer.jsm"); /*global EnigmailTimer: false */
const EnigmailEvents = {
/**
* dispatch event aynchronously to the main thread
*
* @callbackFunction: Function - any function specification
* @sleepTimeMs: Number - optional number of miliseconds to delay
* (0 if not specified)
* @arrayOfArgs: Array - arguments to pass to callbackFunction
*/
dispatchEvent: function(callbackFunction, sleepTimeMs, arrayOfArgs) {
EnigmailLog.DEBUG("enigmailCommon.jsm: dispatchEvent f=" + callbackFunction.name + "\n");
// object for dispatching callback back to main thread
var MainEvent = function() {};
MainEvent.prototype = {
QueryInterface: function(iid) {
if (iid.equals(Ci.nsIRunnable) ||
iid.equals(Ci.nsISupports)) {
return this;
}
throw Components.results.NS_ERROR_NO_INTERFACE;
},
init: function(cbFunc, arrayOfArgs) {
this.cbFunc = cbFunc;
this.args = arrayOfArgs;
},
run: function() {
EnigmailLog.DEBUG("enigmailCommon.jsm: dispatchEvent running mainEvent\n");
this.cbFunc(this.args);
},
notify: function() {
EnigmailLog.DEBUG("enigmailCommon.jsm: dispatchEvent got notified\n");
this.cbFunc(this.args);
}
};
const event = new MainEvent();
event.init(callbackFunction, arrayOfArgs);
if (sleepTimeMs > 0) {
return EnigmailTimer.setTimeout(event, sleepTimeMs);
}
else {
const tm = Cc["@mozilla.org/thread-manager;1"].getService(Ci.nsIThreadManager);
// dispatch the event to the main thread
tm.mainThread.dispatch(event, Ci.nsIThread.DISPATCH_NORMAL);
}
return event;
}
};
enigmail/package/execution.jsm 0000664 0000000 0000000 00000030557 12667016244 0016776 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailData: false, EnigmailFiles: false, EnigmailLog: false, subprocess: false, EnigmailErrorHandling: false, EnigmailCore: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailExecution"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/data.jsm");
Cu.import("resource://enigmail/files.jsm");
Cu.import("resource://enigmail/log.jsm");
Cu.import("resource://enigmail/subprocess.jsm");
Cu.import("resource://enigmail/errorHandling.jsm");
Cu.import("resource://enigmail/core.jsm");
Cu.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */
Cu.import("resource://enigmail/system.jsm"); /*global EnigmailSystem: false */
const nsIEnigmail = Ci.nsIEnigmail;
const EnigmailExecution = {
agentType: "",
/**
* execStart Listener Object
*
* The listener object must implement at least the following methods:
*
* stdin(pipe) - OPTIONAL - write data to subprocess stdin via |pipe| hanlde
* stdout(data) - receive |data| from subprocess stdout
* stderr(data) - receive |data| from subprocess stderr
* done(exitCode) - receive signal when subprocess has terminated
*/
/**
* start a subprocess (usually gpg) that gets and/or receives data via stdin/stdout/stderr.
*
* @command: either: String - full path to executable
* or: nsIFile object referencing executable
* @args: Array of Strings: command line parameters for executable
* @needPassphrase: Boolean - is a passphrase required for the action?
* if true, the password may be promted using a dialog
* (unless alreday cached or gpg-agent is used)
* @domWindow: nsIWindow - window on top of which password dialog is shown
* @listener: Object - Listener to interact with subprocess; see spec. above
* @statusflagsObj: Object - .value will hold status Flags
*
* @return: handle to suprocess
*/
execStart: function(command, args, needPassphrase, domWindow, listener, statusFlagsObj) {
EnigmailLog.WRITE("execution.jsm: execStart: " +
"command = " + EnigmailFiles.formatCmdLine(command, args) +
", needPassphrase=" + needPassphrase +
", domWindow=" + domWindow +
", listener=" + listener + "\n");
listener = listener || {};
statusFlagsObj.value = 0;
var proc = null;
listener.command = command;
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n");
try {
proc = subprocess.call({
command: command,
arguments: args,
environment: EnigmailCore.getEnvList(),
charset: null,
bufferedOutput: true,
stdin: function(pipe) {
if (listener.stdin) listener.stdin(pipe);
},
stdout: function(data) {
listener.stdout(data);
},
stderr: function(data) {
listener.stderr(data);
},
done: function(result) {
try {
listener.done(result.exitCode);
}
catch (ex) {
EnigmailLog.writeException("execution.jsm", ex);
}
},
mergeStderr: false
});
}
catch (ex) {
EnigmailLog.ERROR("execution.jsm: execStart: subprocess.call failed with '" + ex.toString() + "'\n");
EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n");
return null;
}
EnigmailLog.DEBUG(" enigmail> DONE\n");
return proc;
},
/*
requirements for listener object:
exitCode
stderrData
*/
execEnd: function(listener, statusFlagsObj, statusMsgObj, cmdLineObj, errorMsgObj, blockSeparationObj) {
EnigmailLog.DEBUG("execution.jsm: execEnd:\n");
cmdLineObj.value = listener.command;
var exitCode = listener.exitCode;
var errOutput = listener.stderrData;
EnigmailLog.DEBUG("execution.jsm: execEnd: exitCode = " + exitCode + "\n");
EnigmailLog.DEBUG("execution.jsm: execEnd: errOutput = " + errOutput + "\n");
var retObj = {};
errorMsgObj.value = EnigmailErrorHandling.parseErrorOutput(errOutput, retObj);
statusFlagsObj.value = retObj.statusFlags;
statusMsgObj.value = retObj.statusMsg;
if (!blockSeparationObj) blockSeparationObj = {};
blockSeparationObj.value = retObj.blockSeparation;
if (errOutput.search(/jpeg image of size \d+/) > -1) {
statusFlagsObj.value |= nsIEnigmail.PHOTO_AVAILABLE;
}
if (blockSeparationObj && blockSeparationObj.value.indexOf(" ") > 0) {
exitCode = 2;
}
EnigmailLog.CONSOLE(EnigmailData.convertFromUnicode(errorMsgObj.value) + "\n");
return exitCode;
},
simpleExecCmd: function(command, args, exitCodeObj, errorMsgObj) {
EnigmailLog.WRITE("execution.jsm: EnigmailExecution.simpleExecCmd: command = " + command + " " + args.join(" ") + "\n");
var outputData = "";
var errOutput = "";
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n");
try {
subprocess.call({
command: command,
arguments: args,
charset: null,
environment: EnigmailCore.getEnvList(),
done: function(result) {
exitCodeObj.value = result.exitCode;
outputData = result.stdout;
errOutput = result.stderr;
},
mergeStderr: false
}).wait();
}
catch (ex) {
EnigmailLog.ERROR("execution.jsm: EnigmailExecution.simpleExecCmd: " + command.path + " failed\n");
EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n");
exitCodeObj.value = -1;
}
EnigmailLog.DEBUG(" enigmail> DONE\n");
if (errOutput) {
errorMsgObj.value = errOutput;
}
EnigmailLog.DEBUG("execution.jsm: EnigmailExecution.simpleExecCmd: exitCode = " + exitCodeObj.value + "\n");
EnigmailLog.DEBUG("execution.jsm: EnigmailExecution.simpleExecCmd: errOutput = " + errOutput + "\n");
return outputData;
},
execCmd: function(command, args, input, exitCodeObj, statusFlagsObj, statusMsgObj,
errorMsgObj, retStatusObj) {
EnigmailLog.WRITE("execution.jsm: EnigmailExecution.execCmd: subprocess = '" + command.path + "'\n");
if ((typeof input) != "string") input = "";
var preInput = "";
var outputData = "";
var errOutput = "";
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n");
var procBuilder = new EnigmailExecution.processBuilder();
procBuilder.setCommand(command);
procBuilder.setArguments(args);
procBuilder.setEnvironment(EnigmailCore.getEnvList());
procBuilder.setStdin(
function(pipe) {
if (input.length > 0 || preInput.length > 0) {
pipe.write(preInput + input);
}
pipe.close();
}
);
procBuilder.setDone(
function(result) {
if (result.stdout) outputData = result.stdout;
if (result.stderr) errOutput = result.stderr;
exitCodeObj.value = result.exitCode;
}
);
var proc = procBuilder.build();
try {
subprocess.call(proc).wait();
}
catch (ex) {
EnigmailLog.ERROR("execution.jsm: EnigmailExecution.execCmd: subprocess.call failed with '" + ex.toString() + "'\n");
EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n");
exitCodeObj.value = -1;
}
EnigmailLog.DEBUG(" enigmail> DONE\n");
if (proc.resultData) outputData = proc.resultData;
if (proc.errorData) errOutput = proc.errorData;
EnigmailLog.DEBUG("execution.jsm: EnigmailExecution.execCmd: exitCode = " + exitCodeObj.value + "\n");
EnigmailLog.DEBUG("execution.jsm: EnigmailExecution.execCmd: errOutput = " + errOutput + "\n");
if (!retStatusObj) {
retStatusObj = {};
}
errorMsgObj.value = EnigmailErrorHandling.parseErrorOutput(errOutput, retStatusObj);
statusFlagsObj.value = retStatusObj.statusFlags;
statusMsgObj.value = retStatusObj.statusMsg;
var blockSeparation = retStatusObj.blockSeparation;
exitCodeObj.value = EnigmailExecution.fixExitCode(exitCodeObj.value, statusFlagsObj);
if (blockSeparation.indexOf(" ") > 0) {
exitCodeObj.value = 2;
}
EnigmailLog.CONSOLE(errorMsgObj.value + "\n");
return outputData;
},
/**
* Fix the exit code of GnuPG (which may be wrong in some circumstances)
*
* @exitCode: Number - the exitCode obtained from GnuPG
* @statusFlagsObj: Object - the statusFlagsObj as received from parseErrorOutput()
*
* @return: Number - fixed exit code
*/
fixExitCode: function(exitCode, statusFlagsObj) {
EnigmailLog.DEBUG("execution.jsm: EnigmailExecution.fixExitCode: agentType: " + EnigmailExecution.agentType + " exitCode: " + exitCode + " statusFlags " + statusFlagsObj.statusFlags + "\n");
let statusFlags = statusFlagsObj.statusFlags;
if (exitCode !== 0) {
if ((statusFlags & (nsIEnigmail.BAD_PASSPHRASE | nsIEnigmail.UNVERIFIED_SIGNATURE)) &&
(statusFlags & nsIEnigmail.DECRYPTION_OKAY)) {
EnigmailLog.DEBUG("enigmailCommon.jsm: Enigmail.fixExitCode: Changing exitCode for decrypted msg " + exitCode + "->0\n");
exitCode = 0;
}
if ((EnigmailExecution.agentType === "gpg") && (exitCode == 256) && (EnigmailOS.getOS() == "WINNT")) {
EnigmailLog.WARNING("enigmailCommon.jsm: Enigmail.fixExitCode: Using gpg and exit code is 256. You seem to use cygwin-gpg, activating countermeasures.\n");
if (statusFlags & (nsIEnigmail.BAD_PASSPHRASE | nsIEnigmail.UNVERIFIED_SIGNATURE)) {
EnigmailLog.WARNING("enigmailCommon.jsm: Enigmail.fixExitCode: Changing exitCode 256->2\n");
exitCode = 2;
}
else {
EnigmailLog.WARNING("enigmailCommon.jsm: Enigmail.fixExitCode: Changing exitCode 256->0\n");
exitCode = 0;
}
}
}
else {
if (statusFlags & (nsIEnigmail.INVALID_RECIPIENT | nsIEnigmail.DECRYPTION_FAILED | nsIEnigmail.BAD_ARMOR |
nsIEnigmail.MISSING_PASSPHRASE | nsIEnigmail.BAD_PASSPHRASE)) {
exitCode = 1;
}
else if (typeof(statusFlagsObj.extendedStatus) === "string" && statusFlagsObj.extendedStatus.search(/\bdisp:/) >= 0) {
exitCode = 1;
}
}
return exitCode;
},
processBuilder: function() {
this.process = {};
this.setCommand = function(command) {
this.process.command = command;
};
this.setArguments = function(args) {
this.process.arguments = args;
};
this.setEnvironment = function(envList) {
this.process.environment = envList;
};
this.setStdin = function(stdin) {
this.process.stdin = stdin;
};
this.setStdout = function(stdout) {
this.process.stdout = stdout;
};
this.setDone = function(done) {
this.process.done = done;
};
this.build = function() {
this.process.charset = null;
this.process.mergeStderr = false;
this.process.resultData = "";
this.process.errorData = "";
this.process.exitCode = -1;
return this.process;
};
return this;
},
execCmd2: function(command, args, stdinFunc, stdoutFunc, doneFunc) {
var procBuilder = new EnigmailExecution.processBuilder();
procBuilder.setCommand(command);
procBuilder.setArguments(args);
procBuilder.setEnvironment(EnigmailCore.getEnvList());
procBuilder.setStdin(stdinFunc);
procBuilder.setStdout(stdoutFunc);
procBuilder.setDone(doneFunc);
var proc = procBuilder.build();
subprocess.call(proc).wait();
},
/**
* simple listener for using with execStart
*
* stdinFunc: optional function to write to stdin
* doneFunc : optional function that is called when the process is terminated
*/
newSimpleListener: function(stdinFunc, doneFunc) {
let simpleListener = {
stdoutData: "",
stderrData: "",
exitCode: -1,
stdin: function(pipe) {
if (stdinFunc) {
stdinFunc(pipe);
}
else {
pipe.close();
}
},
stdout: function(data) {
simpleListener.stdoutData += data;
},
stderr: function(data) {
simpleListener.stderrData += data;
},
done: function(exitCode) {
simpleListener.exitCode = exitCode;
if (doneFunc) {
doneFunc(exitCode);
}
}
};
return simpleListener;
}
};
enigmail/package/expiry.jsm 0000664 0000000 0000000 00000013502 12667016244 0016302 0 ustar 00root root 0000000 0000000 /*global Components: false, Number: false, Math: false, Date: false, JSON: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailExpiry"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
const nsIEnigmail = Ci.nsIEnigmail;
const DAY = 86400; // number of seconds of 1 day
var EnigmailExpiry = {
/**
* Check whether some key pairs expire in less than N days from now.
*
* @param keySpecArr - Array: list of key IDs or User IDs
* @param numDay - Number: number of days from now
*
* @return Array - list of keys that will expire
*/
getExpiryForKeySpec: function(keySpecArr, numDays) {
EnigmailLog.DEBUG("expiry.jsm: getExpiryForKeySpec()\n");
let now = Math.floor(Date.now() / 1000);
let enigmailSvc = EnigmailCore.getService();
if (!enigmailSvc) return [];
let result = keySpecArr.reduce(function(p, keySpec) {
let keys;
if (keySpec.search(/^(0x)?[0-9A-F]{8,40}$/i) === 0) {
let key = EnigmailKeyRing.getKeyById(keySpec);
if (!key) return p;
keys = [key];
}
else {
keys = EnigmailKeyRing.getKeysByUserId(keySpec);
if (keys.length === 0) return p;
}
let maxExpiry = Number.MIN_VALUE;
let maxKey = null;
for (let i in keys) {
let ex = keys[i].getKeyExpiry();
if (ex > maxExpiry) {
maxExpiry = ex;
maxKey = keys[i];
}
}
if (maxExpiry < now + (DAY * numDays) && maxExpiry >= now) p.push(maxKey);
return p;
}, []);
result = uniqueKeyList(result);
return result;
},
/**
* Determine the configured key specifications for all identities
* where Enigmail is enabled
*
* @return Array of Strings - list of keyId and email addresses
*/
getKeysSpecForIdentities: function() {
EnigmailLog.DEBUG("expiry.jsm: getKeysSpecForIdentities()\n");
let accountManager = Cc["@mozilla.org/messenger/account-manager;1"].getService(Ci.nsIMsgAccountManager);
let keySpecList = [];
for (let acct = 0; acct < accountManager.accounts.length; acct++) {
let ac = accountManager.accounts.queryElementAt(acct, Ci.nsIMsgAccount);
for (let i = 0; i < ac.identities.length; i++) {
let id = ac.identities.queryElementAt(i, Ci.nsIMsgIdentity);
if (id.getBoolAttribute("enablePgp")) {
if (id.getIntAttribute("pgpKeyMode") === 1) {
keySpecList.push(id.getCharAttribute("pgpkeyId"));
}
else {
keySpecList.push(id.email);
}
}
}
}
return keySpecList;
},
/**
* Check if all keys of all configured identities are still valid in N days.
* (N is configured via warnKeyExpiryNumDays; 0 = disable the check)
*
* @return Array of keys - the keys that have expired since the last check
* null in case no check was performed
*/
getNewlyExpiredKeys: function() {
EnigmailLog.DEBUG("expiry.jsm: getNewlyExpiredKeys()\n");
let numDays = EnigmailPrefs.getPref("warnKeyExpiryNumDays");
if (numDays < 1) return null;
let now = Date.now();
let lastResult = {
expiredList: [],
lastCheck: 0
};
let lastRes = EnigmailPrefs.getPref("keyCheckResult");
if (lastRes.length > 0) {
lastResult = JSON.parse(lastRes);
}
if (now - lastResult.lastCheck < DAY * 1000) return null;
let keys = this.getKeysSpecForIdentities();
if (keys.length === 0) {
lastResult.lastCheck = now;
EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(lastResult));
return [];
}
let expired = this.getExpiryForKeySpec(keys, numDays);
let expiredList = expired.reduce(function _f(p, key) {
p.push(key.keyId);
return p;
}, []);
let newResult = {
expiredList: expiredList,
lastCheck: now
};
EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(newResult));
let warnList = expired.reduce(function _f(p, key) {
if (lastResult.expiredList.indexOf(key.keyId) < 0) {
p.push(key);
}
return p;
}, []);
return warnList;
},
keyExpiryCheck: function() {
EnigmailLog.DEBUG("expiry.jsm: keyExpiryCheck()\n");
let expiredKeys = this.getNewlyExpiredKeys();
if (!expiredKeys || expiredKeys.length === 0) return "";
let numDays = EnigmailPrefs.getPref("warnKeyExpiryNumDays");
if (expiredKeys.length === 1) {
return EnigmailLocale.getString("expiry.keyExpiresSoon", [getKeyDesc(expiredKeys[0]), numDays]);
}
else {
let keyDesc = "";
for (let i = 0; i < expiredKeys.length; i++) {
keyDesc += "- " + getKeyDesc(expiredKeys[i]) + "\n";
}
return EnigmailLocale.getString("expiry.keysExpireSoon", [numDays, keyDesc]);
}
}
};
/**
* Remove duplicate key Object elements from an array
*
* @param arr - Array of key Objects to be worked on
*
* @return Array - the array without duplicates
*/
function uniqueKeyList(arr) {
return arr.reduce(function(p, c) {
let r = p.find(function _f(e, i, a) {
if (e.keyId === c.keyId) return true;
});
if (r === undefined) p.push(c);
return p;
}, []);
}
function getKeyDesc(key) {
return '"' + key.userId + '" (key ID ' + key.fprFormatted + ')';
}
enigmail/package/files.jsm 0000664 0000000 0000000 00000022376 12667016244 0016075 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailLog: false, EnigmailOS: false, EnigmailData: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailFiles"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/os.jsm");
Cu.import("resource://enigmail/data.jsm");
const NS_FILE_CONTRACTID = "@mozilla.org/file/local;1";
const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1";
const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID =
"@mozilla.org/network/file-output-stream;1";
const NS_IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1";
const NS_SCRIPTABLEINPUTSTREAM_CONTRACTID = "@mozilla.org/scriptableinputstream;1";
const DIRSERVICE_CONTRACTID = "@mozilla.org/file/directory_service;1";
const NS_RDONLY = 0x01;
const NS_WRONLY = 0x02;
const NS_CREATE_FILE = 0x08;
const NS_TRUNCATE = 0x20;
const DEFAULT_FILE_PERMS = 0x180; // equals 0600
const lazyLog = (function() {
let log = null;
return function() {
if (!log) {
Components.utils.import("resource://enigmail/log.jsm");
log = EnigmailLog;
}
return log;
};
})();
const EnigmailFiles = {
isAbsolutePath: function(filePath, isDosLike) {
// Check if absolute path
if (isDosLike) {
return ((filePath.search(/^\w+:\\/) === 0) || (filePath.search(/^\\\\/) === 0) ||
(filePath.search(/^\/\//) === 0));
}
else {
return (filePath.search(/^\//) === 0);
}
},
resolvePath: function(filePath, envPath, isDosLike) {
lazyLog().DEBUG("files.jsm: resolvePath: filePath=" + filePath + "\n");
if (EnigmailFiles.isAbsolutePath(filePath, isDosLike))
return filePath;
if (!envPath)
return null;
var fileNames = filePath.split(";");
var pathDirs = envPath.split(isDosLike ? ";" : ":");
for (var i = 0; i < fileNames.length; i++) {
for (var j = 0; j < pathDirs.length; j++) {
try {
var pathDir = Cc[NS_FILE_CONTRACTID].createInstance(Ci.nsIFile);
lazyLog().DEBUG("files.jsm: resolvePath: checking for " + pathDirs[j] + "/" + fileNames[i] + "\n");
EnigmailFiles.initPath(pathDir, pathDirs[j]);
try {
if (pathDir.exists() && pathDir.isDirectory()) {
pathDir.appendRelativePath(fileNames[i]);
if (pathDir.exists() && !pathDir.isDirectory()) {
return pathDir;
}
}
}
catch (ex) {}
}
catch (ex) {}
}
}
return null;
},
createFileStream: function(filePath, permissions) {
try {
var localFile;
if (typeof filePath == "string") {
localFile = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
EnigmailFiles.initPath(localFile, filePath);
}
else {
localFile = filePath.QueryInterface(Ci.nsIFile);
}
if (localFile.exists()) {
if (localFile.isDirectory() || !localFile.isWritable())
throw Components.results.NS_ERROR_FAILURE;
if (!permissions)
permissions = localFile.permissions;
}
if (!permissions)
permissions = DEFAULT_FILE_PERMS;
var flags = NS_WRONLY | NS_CREATE_FILE | NS_TRUNCATE;
var fileStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream);
fileStream.init(localFile, flags, permissions, 0);
return fileStream;
}
catch (ex) {
lazyLog().ERROR("files.jsm: createFileStream: Failed to create " + filePath + "\n");
return null;
}
},
// path initialization function
// uses persistentDescriptor in case that initWithPath fails
// (seems to happen frequently with UTF-8 characters in path names)
initPath: function(localFileObj, pathStr) {
localFileObj.initWithPath(pathStr);
if (!localFileObj.exists()) {
localFileObj.persistentDescriptor = pathStr;
}
},
// Read the contents of a file into a string
readFile: function(filePath) {
// @filePath: nsIFile
if (filePath.exists()) {
var ioServ = Cc[NS_IOSERVICE_CONTRACTID].getService(Ci.nsIIOService);
if (!ioServ)
throw Components.results.NS_ERROR_FAILURE;
var fileURI = ioServ.newFileURI(filePath);
var fileChannel = ioServ.newChannel(fileURI.asciiSpec, null, null);
var rawInStream = fileChannel.open();
var scriptableInStream = Cc[NS_SCRIPTABLEINPUTSTREAM_CONTRACTID].createInstance(Ci.nsIScriptableInputStream);
scriptableInStream.init(rawInStream);
var available = scriptableInStream.available();
var fileContents = scriptableInStream.read(available);
scriptableInStream.close();
return fileContents;
}
return "";
},
formatCmdLine: function(command, args) {
function getQuoted(str) {
let i = str.indexOf(" ");
if (i >= 0) {
return '"' + str + '"';
}
else {
return str;
}
}
var cmdStr = getQuoted(EnigmailFiles.getFilePathDesc(command)) + " ";
var argStr = args.map(getQuoted).join(" ").replace(/\\\\/g, '\\');
return cmdStr + argStr;
},
getFilePathDesc: function(nsFileObj) {
if (EnigmailOS.getOS() == "WINNT") {
return nsFileObj.persistentDescriptor;
}
else {
return nsFileObj.path;
}
},
getFilePath: function(nsFileObj) {
return EnigmailData.convertToUnicode(EnigmailFiles.getFilePathDesc(nsFileObj), "utf-8");
},
getEscapedFilename: function(fileNameStr) {
if (EnigmailOS.isDosLike()) {
// escape the backslashes and the " character (for Windows and OS/2)
fileNameStr = fileNameStr.replace(/([\\\"])/g, "\\$1");
}
if (EnigmailOS.getOS() == "WINNT") {
// replace leading "\\" with "//"
fileNameStr = fileNameStr.replace(/^\\\\*/, "//");
}
return fileNameStr;
},
/**
* get the temporary folder
*
* @return nsIFile object holding a reference to the temp directory
*/
getTempDirObj: function() {
const TEMPDIR_PROP = "TmpD";
try {
let dsprops = Cc[DIRSERVICE_CONTRACTID].getService().
QueryInterface(Ci.nsIProperties);
return dsprops.get(TEMPDIR_PROP, Ci.nsIFile);
}
catch (ex) {
// let's guess ...
let tmpDirObj = Cc[NS_FILE_CONTRACTID].createInstance(Ci.nsIFile);
if (EnigmailOS.getOS() == "WINNT") {
tmpDirObj.initWithPath("C:/TEMP");
}
else {
tmpDirObj.initWithPath("/tmp");
}
return tmpDirObj;
}
},
/**
* get the temporary folder as string
*
* @return String containing the temp directory name
*/
getTempDir: function() {
return EnigmailFiles.getTempDirObj().path;
},
/**
* create a new folder as subfolder of the temporary directory
*
* @param dirName String - name of subfolder
* @param unique Boolean - if true, the directory is guaranteed to be unique
*
* @return nsIFile object holding a reference to the created directory
*/
createTempSubDir: function(dirName, unique = false) {
let localFile = EnigmailFiles.getTempDirObj().clone();
localFile.append(dirName);
if (unique) {
localFile.createUnique(Ci.nsIFile.DIRECTORY_TYPE, 509 /* = 0775 */ );
}
else {
localFile.create(Ci.nsIFile.DIRECTORY_TYPE, 509 /* = 0775 */ );
}
return localFile;
},
/**
* Write data to a file
* @filePath |string| or |nsIFile| object - the file to be created
* @data |string| - the data to write to the file
* @permissions |number| - file permissions according to Unix spec (0600 by default)
*
* @return true if data was written successfully, false otherwise
*/
writeFileContents: function(filePath, data, permissions) {
try {
var fileOutStream = EnigmailFiles.createFileStream(filePath, permissions);
if (data.length) {
if (fileOutStream.write(data, data.length) != data.length) {
throw Components.results.NS_ERROR_FAILURE;
}
fileOutStream.flush();
}
fileOutStream.close();
}
catch (ex) {
EnigmailLog.ERROR("files.jsm: writeFileContents: Failed to write to " + filePath + "\n");
return false;
}
return true;
},
// return the useable path (for gpg) of a file object
getFilePathReadonly: function(nsFileObj, creationMode) {
if (creationMode === null) creationMode = NS_RDONLY;
return nsFileObj.path;
},
/**
* Create an empty ZIP file
*
* @param nsFileObj - nsIFile object: reference to the file to be created
*
* @return nsIZipWriter object allow to perform write operations on the ZIP file
*/
createZipFile: function(nsFileObj) {
let zipW = Cc['@mozilla.org/zipwriter;1'].createInstance(Ci.nsIZipWriter);
zipW.open(nsFileObj, NS_WRONLY | NS_CREATE_FILE | NS_TRUNCATE);
return zipW;
},
/**
* Open a ZIP file for reading
*
* @param nsFileObj - nsIFile object: reference to the file to be created
*
* @return nsIZipReader object allow to perform read operations on the ZIP file
*/
openZipFile: function(nsFileObj) {
let zipR = Cc['@mozilla.org/libjar/zip-reader;1'].createInstance(Ci.nsIZipReader);
zipR.open(nsFileObj);
return zipR;
}
};
enigmail/package/filters.jsm 0000664 0000000 0000000 00000006556 12667016244 0016445 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailDecryptPermanently: false, EnigmailCore: false, EnigmailLog: false, EnigmailLocale: false, EnigmailDialog: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailFilters"];
Components.utils.import("resource://enigmail/core.jsm");
Components.utils.import("resource://enigmail/decryptPermanently.jsm");
Components.utils.import("resource://enigmail/log.jsm");
Components.utils.import("resource://enigmail/locale.jsm");
Components.utils.import("resource://enigmail/dialog.jsm");
const Cc = Components.classes;
const Ci = Components.interfaces;
/********************************************************************************
Filter actions for decrypting messages permanently
********************************************************************************/
/**
* filter action for creating a decrypted version of the mail and
* deleting the original mail at the same time
*/
const filterActionMoveDecrypt = {
id: "enigmail@enigmail.net#filterActionMoveDecrypt",
name: EnigmailLocale.getString("filter.decryptMove.label"),
value: "movemessage",
apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
EnigmailLog.DEBUG("enigmail.js: filterActionMoveDecrypt: Move to: " + aActionValue + "\n");
var msgHdrs = [];
for (var i = 0; i < aMsgHdrs.length; i++) {
msgHdrs.push(aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr));
}
EnigmailDecryptPermanently.dispatchMessages(msgHdrs, aActionValue, true, true);
return;
},
isValidForType: function(type, scope) {
return true;
},
validateActionValue: function(value, folder, type) {
EnigmailDialog.alert(null, EnigmailLocale.getString("filter.decryptMove.warnExperimental"));
if (value === "") {
return EnigmailLocale.getString("filter.folderRequired");
}
return null;
},
allowDuplicates: false,
isAsync: false,
needsBody: true
};
/**
* filter action for creating a decrypted copy of the mail, leaving the original
* message untouched
*/
const filterActionCopyDecrypt = {
id: "enigmail@enigmail.net#filterActionCopyDecrypt",
name: EnigmailLocale.getString("filter.decryptCopy.label"),
value: "copymessage",
apply: function(aMsgHdrs, aActionValue, aListener, aType, aMsgWindow) {
EnigmailLog.DEBUG("enigmail.js: filterActionCopyDecrypt: Copy to: " + aActionValue + "\n");
var msgHdrs = [];
for (var i = 0; i < aMsgHdrs.length; i++) {
msgHdrs.push(aMsgHdrs.queryElementAt(i, Ci.nsIMsgDBHdr));
}
EnigmailDecryptPermanently.dispatchMessages(msgHdrs, aActionValue, false, true);
return;
},
isValidForType: function(type, scope) {
return true;
},
validateActionValue: function(value, folder, type) {
if (value === "") {
return EnigmailLocale.getString("filter.folderRequired");
}
return null;
},
allowDuplicates: false,
isAsync: false,
needsBody: true
};
const EnigmailFilters = {
registerAll: function() {
var filterService = Cc["@mozilla.org/messenger/services/filters;1"].getService(Ci.nsIMsgFilterService);
filterService.addCustomAction(filterActionMoveDecrypt);
filterService.addCustomAction(filterActionCopyDecrypt);
}
};
enigmail/package/fixExchangeMsg.jsm 0000664 0000000 0000000 00000032765 12667016244 0017676 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailFixExchangeMsg"];
const Cu = Components.utils;
Cu.import("resource:///modules/MailUtils.js"); /*global MailUtils: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/funcs.jsm"); /*global EnigmailFuncs: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/promise.jsm"); /*global Promise: false */
Cu.import("resource://enigmail/streams.jsm"); /*global EnigmailStreams: false */
const EC = EnigmailCore;
const Cc = Components.classes;
const Ci = Components.interfaces;
const nsIEnigmail = Components.interfaces.nsIEnigmail;
const IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1";
/*
* Fix a broken message from MS-Exchange and replace it with the original message
*
* @param nsIMsgDBHdr hdr Header of the message to fix (= pointer to message)
* @param String brokenByApp Type of app that created the message. Currently one of
* exchange, iPGMail
* @param String destFolderUri optional destination Folder URI
*
* @return Promise; upon success, the promise returns the messageKey
*/
const EnigmailFixExchangeMsg = {
fixExchangeMessage: function(hdr, brokenByApp, destFolderUri) {
var self = this;
return new Promise(
function fixExchangeMessage_p(resolve, reject) {
let msgUriSpec = hdr.folder.getUriForMsg(hdr);
EnigmailLog.DEBUG("fixExchangeMsg.jsm: fixExchangeMessage: msgUriSpec: " + msgUriSpec + "\n");
self.hdr = hdr;
self.destFolder = hdr.folder;
self.resolve = resolve;
self.reject = reject;
self.brokenByApp = brokenByApp;
if (destFolderUri) {
self.destFolder = MailUtils.getFolderForURI(destFolderUri, false);
}
let messenger = Cc["@mozilla.org/messenger;1"].createInstance(Ci.nsIMessenger);
self.msgSvc = messenger.messageServiceFromURI(msgUriSpec);
let p = self.getMessageBody();
p.then(
function resolved(fixedMsgData) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: fixExchangeMessage: got fixedMsgData\n");
self.copyToTargetFolder(fixedMsgData);
});
p.catch(
function rejected(reason) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: fixExchangeMessage: caught rejection: " + reason + "\n");
reject();
return;
});
}
);
},
getMessageBody: function() {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getMessageBody:\n");
var self = this;
return new Promise(
function(resolve, reject) {
let u = {};
self.msgSvc.GetUrlForUri(self.hdr.folder.getUriForMsg(self.hdr), u, null);
let op = (u.value.spec.indexOf("?") > 0 ? "&" : "?");
let url = u.value.spec; // + op + 'part=' + part+"&header=enigmailConvert";
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getting data from URL " + url + "\n");
let s = EnigmailStreams.newStringStreamListener(
function analyzeData(data) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: analyzeDecryptedData: got " + data.length + " bytes\n");
if (EnigmailLog.getLogLevel() > 5) {
EnigmailLog.DEBUG("*** start data ***\n'" + data + "'\n***end data***\n");
}
let hdrEnd = data.search(/\r?\n\r?\n/);
if (hdrEnd <= 0) {
// cannot find end of header data
reject(0);
return;
}
let hdrLines = data.substr(0, hdrEnd).split(/\r?\n/);
let hdrObj = self.getFixedHeaderData(hdrLines);
if (hdrObj.headers.length === 0 || hdrObj.boundary.length === 0) {
reject(1);
return;
}
let boundary = hdrObj.boundary;
let body;
switch (self.brokenByApp) {
case "exchange":
body = self.getCorrectedExchangeBodyData(data.substr(hdrEnd + 2), boundary);
break;
case "iPGMail":
body = self.getCorrectediPGMailBodyData(data.substr(hdrEnd + 2), boundary);
break;
default:
EnigmailLog.ERROR("fixExchangeMsg.jsm: getMessageBody: unknown appType " + self.brokenByApp + "\n");
reject(99);
return;
}
if (body) {
resolve(hdrObj.headers + "\r\n" + body);
return;
}
else {
reject(2);
return;
}
}
);
var ioServ = Components.classes[IOSERVICE_CONTRACTID].getService(Components.interfaces.nsIIOService);
try {
var channel = ioServ.newChannel(url, null, null);
channel.asyncOpen(s, null);
}
catch (e) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getMessageBody: exception " + e + "\n");
}
}
);
},
/**
* repair header data, such that they are working for PGP/MIME
*
* @return: object: {
* headers: String - all headers ready for appending to message
* boundary: String - MIME part boundary (incl. surrounding "" or '')
* }
*/
getFixedHeaderData: function(hdrLines) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getFixedHeaderData: hdrLines[]:'" + hdrLines.length + "'\n");
let r = {
headers: "",
boundary: ""
};
for (let i = 0; i < hdrLines.length; i++) {
if (hdrLines[i].search(/^content-type:/i) >= 0) {
// Join the rest of the content type lines together.
// See RFC 2425, section 5.8.1
let contentTypeLine = hdrLines[i];
i++;
while (i < hdrLines.length) {
// Does the line start with a space or a tab, followed by something else?
if (hdrLines[i].search(/^[ \t]+?/) === 0) {
contentTypeLine += hdrLines[i];
i++;
}
else {
// we got the complete content-type header
contentTypeLine = contentTypeLine.replace(/[\r\n]/g, "");
let h = EnigmailFuncs.getHeaderData(contentTypeLine);
r.boundary = h.boundary || "";
break;
}
}
}
else {
r.headers += hdrLines[i] + "\r\n";
}
}
r.boundary = r.boundary.replace(/^(['"])(.*)(['"])/, "$2");
r.headers += 'Content-Type: multipart/encrypted;\r\n' +
' protocol="application/pgp-encrypted";\r\n' +
' boundary="' + r.boundary + '"\r\n' +
'X-Enigmail-Info: Fixed broken PGP/MIME message\r\n';
return r;
},
/**
* Get corrected body for MS-Exchange messages
*/
getCorrectedExchangeBodyData: function(bodyData, boundary) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: boundary='" + boundary + "'\n");
let boundRx = new RegExp("^--" + boundary, "gm");
let match = boundRx.exec(bodyData);
if (match.index < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: did not find index of mime type to skip\n");
return null;
}
let skipStart = match.index;
// found first instance -- that's the message part to ignore
match = boundRx.exec(bodyData);
if (match.index <= 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: did not find boundary of PGP/MIME version identification\n");
return null;
}
let versionIdent = match.index;
if (bodyData.substring(skipStart, versionIdent).search(/^content-type:[ \t]*text\/plain/mi) < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: first MIME part is not content-type text/plain\n");
return null;
}
match = boundRx.exec(bodyData);
if (match.index < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: did not find boundary of PGP/MIME encrypted data\n");
return null;
}
let encData = match.index;
let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
mimeHdr.initialize(bodyData.substring(versionIdent, encData));
let ct = mimeHdr.extractHeader("content-type", false);
if (!ct || ct.search(/application\/pgp-encrypted/i) < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: wrong content-type of version-identification\n");
EnigmailLog.DEBUG(" ct = '" + ct + "'\n");
return null;
}
mimeHdr.initialize(bodyData.substr(encData, 500));
ct = mimeHdr.extractHeader("content-type", false);
if (!ct || ct.search(/application\/octet-stream/i) < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectedExchangeBodyData: wrong content-type of PGP/MIME data\n");
EnigmailLog.DEBUG(" ct = '" + ct + "'\n");
return null;
}
return bodyData.substr(versionIdent);
},
/**
* Get corrected body for iPGMail messages
*/
getCorrectediPGMailBodyData: function(bodyData, boundary) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: boundary='" + boundary + "'\n");
let boundRx = new RegExp("^--" + boundary, "gm");
let match = boundRx.exec(bodyData);
if (match.index < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: did not find index of mime type to skip\n");
return null;
}
let skipStart = match.index;
// found first instance -- that's the message part to ignore
match = boundRx.exec(bodyData);
if (match.index <= 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: did not find boundary of text/plain msg part\n");
return null;
}
let encData = match.index;
match = boundRx.exec(bodyData);
if (match.index < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: did not find end boundary of PGP/MIME encrypted data\n");
return null;
}
let mimeHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
mimeHdr.initialize(bodyData.substr(encData, 500));
let ct = mimeHdr.extractHeader("content-type", false);
if (!ct || ct.search(/application\/pgp-encrypted/i) < 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: getCorrectediPGMailBodyData: wrong content-type of PGP/MIME data\n");
EnigmailLog.DEBUG(" ct = '" + ct + "'\n");
return null;
}
return "--" + boundary + "\r\n" +
"Content-Type: application/pgp-encrypted\r\n" +
"Content-Description: PGP/MIME version identification\r\n\r\n" +
"Version: 1\r\n\r\n" +
bodyData.substring(encData, match.index).
replace(/^Content-Type: +application\/pgp-encrypted/im,
"Content-Type: application/octet-stream") +
"--" + boundary + "--\r\n";
},
copyToTargetFolder: function(msgData) {
var self = this;
var tempFile = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("TmpD", Ci.nsIFile);
tempFile.append("message.eml");
tempFile.createUnique(0, 384); // octal 0600 - since octal is deprected in JS
// ensure that file gets deleted on exit, if something goes wrong ...
var extAppLauncher = Cc["@mozilla.org/mime;1"].getService(Ci.nsPIExternalAppLauncher);
var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
foStream.init(tempFile, 2, 0x200, false); // open as "write only"
foStream.write(msgData, msgData.length);
foStream.close();
extAppLauncher.deleteTemporaryFileOnExit(tempFile);
// note: nsIMsgFolder.copyFileMessage seems to have a bug on Windows, when
// the nsIFile has been already used by foStream (because of Windows lock system?), so we
// must initialize another nsIFile object, pointing to the temporary file
var fileSpec = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
fileSpec.initWithPath(tempFile.path);
var copyListener = {
QueryInterface: function(iid) {
if (iid.equals(Ci.nsIMsgCopyServiceListener) || iid.equals(Ci.nsISupports)) {
return this;
}
throw Components.results.NS_NOINTERFACE;
},
msgKey: null,
GetMessageId: function(messageId) {},
OnProgress: function(progress, progressMax) {},
OnStartCopy: function() {},
SetMessageKey: function(key) {
this.msgKey = key;
},
OnStopCopy: function(statusCode) {
if (statusCode !== 0) {
EnigmailLog.DEBUG("fixExchangeMsg.jsm: error copying message: " + statusCode + "\n");
tempFile.remove(false);
self.reject(3);
return;
}
EnigmailLog.DEBUG("fixExchangeMsg.jsm: copy complete\n");
EnigmailLog.DEBUG("fixExchangeMsg.jsm: deleting message key=" + self.hdr.messageKey + "\n");
let msgArray = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
msgArray.appendElement(self.hdr, false);
self.hdr.folder.deleteMessages(msgArray, null, true, false, null, false);
EnigmailLog.DEBUG("fixExchangeMsg.jsm: deleted original message\n");
tempFile.remove(false);
self.resolve(this.msgKey);
return;
}
};
let copySvc = Cc["@mozilla.org/messenger/messagecopyservice;1"].getService(Ci.nsIMsgCopyService);
copySvc.CopyFileMessage(fileSpec, this.destFolder, null, false, this.hdr.flags, null, copyListener, null);
}
};
enigmail/package/funcs.jsm 0000664 0000000 0000000 00000025511 12667016244 0016103 0 ustar 00root root 0000000 0000000 /*global Components: false, escape: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailFuncs"];
/*
* Common Enigmail crypto-related GUI functionality
*
*/
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
var gTxtConverter = null;
const EnigmailFuncsRegexTwoAddr = new RegExp("<[^>,]*>[^,<]*<[^>,]*>");
const EnigmailFuncsRegexExtractPureEmail = new RegExp("(^|,)[^,]*<([^>]+)>[^,]*", "g");
const EnigmailFuncs = {
/**
* get a list of plain email addresses without name or surrounding <>
* @mailAddrs |string| - address-list as specified in RFC 2822, 3.4
* separated by ","
*
* @return |string| - list of pure email addresses separated by ","
*/
stripEmail: function(mailAddrs) {
//EnigmailLog.DEBUG("funcs.jsm: stripEmail(): mailAddrs=" + mailAddrs + "\n");
var qStart, qEnd;
while ((qStart = mailAddrs.indexOf('"')) != -1) {
qEnd = mailAddrs.indexOf('"', qStart + 1);
if (qEnd == -1) {
EnigmailLog.ERROR("funcs.jsm: stripEmail: Unmatched quote in mail address: " + mailAddrs + "\n");
throw Components.results.NS_ERROR_FAILURE;
}
mailAddrs = mailAddrs.substring(0, qStart) + mailAddrs.substring(qEnd + 1);
}
// Eliminate all whitespace, just to be safe
mailAddrs = mailAddrs.replace(/\s+/g, "");
// having two <..> <..> in one email is an error
if (mailAddrs.match(EnigmailFuncsRegexTwoAddr)) {
EnigmailLog.ERROR("funcs.jsm: stripEmail: Two <..> entries in mail address: " + mailAddrs + "\n");
throw Components.results.NS_ERROR_FAILURE;
}
// Extract pure e-mail address list (stripping out angle brackets)
mailAddrs = mailAddrs.replace(EnigmailFuncsRegexExtractPureEmail, "$1$2");
// remove empty email addresses (including removing all ';')
mailAddrs = mailAddrs.replace(/[,;]+/g, ",").replace(/^,/, "").replace(/,$/, "");
return mailAddrs;
},
/**
* Hide all menu entries and other XUL elements that are considered for
* advanced users. The XUL items must contain 'advanced="true"' or
* 'advanced="reverse"'.
*
* @obj: |object| - XUL tree element
* @attribute: |string| - attribute to set or remove (i.e. "hidden" or "collapsed")
* @dummy: |object| - anything
*
* no return value
*/
collapseAdvanced: function(obj, attribute, dummy) {
EnigmailLog.DEBUG("funcs.jsm: collapseAdvanced:\n");
var advancedUser = EnigmailPrefs.getPref("advancedUser");
obj = obj.firstChild;
while (obj) {
if (obj.getAttribute("advanced") == "true") {
if (advancedUser) {
obj.removeAttribute(attribute);
}
else {
obj.setAttribute(attribute, "true");
}
}
else if (obj.getAttribute("advanced") == "reverse") {
if (advancedUser) {
obj.setAttribute(attribute, "true");
}
else {
obj.removeAttribute(attribute);
}
}
obj = obj.nextSibling;
}
},
/**
* determine default values for signing and encryption.
* Translates "old-style" defaults (pre-Enigmail v1.0) to "current" defaults
*
* @identiy - nsIMsgIdentity object
*
* no return values
*/
getSignMsg: function(identity) {
EnigmailLog.DEBUG("funcs.jsm: getSignMsg: identity.key=" + identity.key + "\n");
var sign = null;
EnigmailPrefs.getPref("configuredVersion"); // dummy call to getPref to ensure initialization
var prefRoot = EnigmailPrefs.getPrefRoot();
if (prefRoot.getPrefType("mail.identity." + identity.key + ".pgpSignPlain") === 0) {
if (prefRoot.getPrefType("mail.identity." + identity.key + ".pgpSignMsg") === 0) {
sign = identity.getBoolAttribute("pgpAlwaysSign");
identity.setBoolAttribute("pgpSignEncrypted", sign);
identity.setBoolAttribute("pgpSignPlain", sign);
}
else {
sign = identity.getIntAttribute("pgpSignMsg");
identity.setBoolAttribute("pgpSignEncrypted", sign == 1);
identity.setBoolAttribute("pgpSignPlain", sign > 0);
}
prefRoot.deleteBranch("mail.identity." + identity.key + ".pgpSignMsg");
prefRoot.deleteBranch("mail.identity." + identity.key + ".pgpAlwaysSign");
}
},
/**
* this function tries to mimic the Thunderbird plaintext viewer
*
* @plainTxt - |string| containing the plain text data
*
* @ return HTML markup to display mssage
*/
formatPlaintextMsg: function(plainTxt) {
if (!gTxtConverter)
gTxtConverter = Cc["@mozilla.org/txttohtmlconv;1"].createInstance(Ci.mozITXTToHTMLConv);
var prefRoot = EnigmailPrefs.getPrefRoot();
var fontStyle = "";
// set the style stuff according to perferences
switch (prefRoot.getIntPref("mail.quoted_style")) {
case 1:
fontStyle = "font-weight: bold; ";
break;
case 2:
fontStyle = "font-style: italic; ";
break;
case 3:
fontStyle = "font-weight: bold; font-style: italic; ";
break;
}
switch (prefRoot.getIntPref("mail.quoted_size")) {
case 1:
fontStyle += "font-size: large; ";
break;
case 2:
fontStyle += "font-size: small; ";
break;
}
fontStyle += "color: " + prefRoot.getCharPref("mail.citation_color") + ";";
var convFlags = Ci.mozITXTToHTMLConv.kURLs;
if (prefRoot.getBoolPref("mail.display_glyph"))
convFlags |= Ci.mozITXTToHTMLConv.kGlyphSubstitution;
if (prefRoot.getBoolPref("mail.display_struct"))
convFlags |= Ci.mozITXTToHTMLConv.kStructPhrase;
// start processing the message
plainTxt = plainTxt.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
var lines = plainTxt.split(/\n/);
var oldCiteLevel = 0;
var citeLevel = 0;
var preface = "";
var logLineStart = {
value: 0
};
var isSignature = false;
for (var i = 0; i < lines.length; i++) {
preface = "";
oldCiteLevel = citeLevel;
if (lines[i].search(/^[\> \t]*\>$/) === 0)
lines[i] += " ";
citeLevel = gTxtConverter.citeLevelTXT(lines[i], logLineStart);
if (citeLevel > oldCiteLevel) {
preface = '';
for (let j = 0; j < citeLevel - oldCiteLevel; j++) {
preface += '';
}
preface += '\n';
}
else if (citeLevel < oldCiteLevel) {
preface = '';
for (let j = 0; j < oldCiteLevel - citeLevel; j++)
preface += "
";
preface += '\n';
}
if (logLineStart.value > 0) {
preface += '' +
gTxtConverter.scanTXT(lines[i].substr(0, logLineStart.value), convFlags) +
'';
}
else if (lines[i] == "-- ") {
preface += '';
isSignature = true;
}
lines[i] = preface + gTxtConverter.scanTXT(lines[i].substr(logLineStart.value), convFlags);
}
var r = '
' + lines.join("\n") + (isSignature ? ' ' : '') + '';
//EnigmailLog.DEBUG("funcs.jsm: r='"+r+"'\n");
return r;
},
/**
* extract the data fields following a header.
* e.g. ContentType: xyz; Aa=b; cc=d
* @data: |string| containing a single header
*
* @return |array| of |arrays| containing pairs of aa/b and cc/d
*/
getHeaderData: function(data) {
EnigmailLog.DEBUG("funcs.jsm: getHeaderData: " + data.substr(0, 100) + "\n");
var a = data.split(/\n/);
var res = [];
for (let i = 0; i < a.length; i++) {
if (a[i].length === 0) break;
let b = a[i].split(/;/);
// extract "abc = xyz" tuples
for (let j = 0; j < b.length; j++) {
let m = b[j].match(/^(\s*)([^=\s;]+)(\s*)(=)(\s*)(.*)(\s*)$/);
if (m) {
// m[2]: identifier / m[6]: data
res[m[2].toLowerCase()] = m[6].replace(/\s*$/, "");
EnigmailLog.DEBUG("funcs.jsm: getHeaderData: " + m[2].toLowerCase() + " = " + res[m[2].toLowerCase()] + "\n");
}
}
if (i === 0 && a[i].indexOf(";") < 0) break;
if (i > 0 && a[i].search(/^\s/) < 0) break;
}
return res;
},
/***
* Get the text for the encrypted subject (either configured by user or default)
*/
getProtectedSubjectText: function() {
if (EnigmailPrefs.getPref("protectedSubjectText").length > 0) {
return EnigmailPrefs.getPref("protectedSubjectText");
}
else {
return EnigmailLocale.getString("msgCompose.encryptedSubjectStub");
}
},
cloneObj: function(orig) {
let newObj;
if (typeof orig !== "object" || orig === null || orig === undefined) {
return orig;
}
if ("clone" in orig && typeof orig.clone === "function") {
return orig.clone();
}
if (Array.isArray(orig) && orig.length > 0) {
newObj = [];
for (let i in orig) {
if (typeof orig[i] === "object") {
newObj.push(this.cloneObj(orig[i]));
}
else {
newObj.push(orig[i]);
}
}
}
else {
newObj = {};
for (let i in orig) {
if (typeof orig[i] === "object") {
newObj[i] = this.cloneObj(orig[i]);
}
else
newObj[i] = orig[i];
}
}
return newObj;
},
/**
* Compare two MIME part numbers to determine which of the two is earlier in the tree
* MIME part numbers have the structure "x.y.z...", e.g 1, 1.2, 2.3.1.4.5.1.2
*
* @param mime1, mime2 - String the two mime part numbers to compare.
*
* @return Number (one of -2, -1, 0, 1 , 2)
* - Negative number if mime1 is before mime2
* - Positive number if mime1 is after mime2
* - 0 if mime1 and mime2 are equal
* - if mime1 is a parent of mime2 the return value is -2
* - if mime2 is a parent of mime1 the return value is 2
*
* Throws an error if mime1 or mime2 do not comply to the required format
*/
compareMimePartLevel: function(mime1, mime2) {
let s = new RegExp("^[0-9]+(\.[0-9]+)*$");
if (mime1.search(s) < 0) throw "Invalid mime1";
if (mime2.search(s) < 0) throw "Invalid mime2";
let a1 = mime1.split(/./);
let a2 = mime2.split(/./);
for (let i = 0; i < Math.min(a1.length, a2.length); i++) {
if (Number(mime1[i]) < Number(mime2[i])) return -1;
if (Number(mime1[i]) > Number(mime2[i])) return 1;
}
if (a2.length > a1.length) return -2;
if (a2.length < a1.length) return 2;
return 0;
}
};
enigmail/package/glodaMime.jsm 0000664 0000000 0000000 00000002057 12667016244 0016663 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
This module is a shim module to make it easier to load
the Gloda EnigmailMime utilities from the various potential sources
*/
"use strict";
var EXPORTED_SYMBOLS = ["msgHdrToMimeMessage",
"MimeMessage", "MimeContainer",
"MimeBody", "MimeUnknown",
"MimeMessageAttachment"
];
const Cu = Components.utils;
/*global MsgHdrToMimeMessage: false */
try {
// TB with omnijar
Cu.import("resource:///modules/gloda/mimemsg.js");
}
catch (ex) {
// "old style" TB
Cu.import("resource://app/modules/gloda/mimemsg.js");
}
// The original naming is inconsistent with JS standards for classes vs functions
// Thus we rename it here.
const msgHdrToMimeMessage = MsgHdrToMimeMessage;
// We don't need to explicitly create the other variables, since they will be
// imported into the current namespace anyway
enigmail/package/glodaUtils.jsm 0000664 0000000 0000000 00000001372 12667016244 0017073 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
This module is a shim module to make it easier to load
GlodaUtils from the various potential sources
*/
"use strict";
var EXPORTED_SYMBOLS = ["GlodaUtils"];
const Cu = Components.utils;
try {
// TB with omnijar
Cu.import("resource:///modules/gloda/utils.js");
}
catch (ex) {
// "old style" TB
Cu.import("resource://app/modules/gloda/utils.js");
}
// We don't define the exported symbol here - that is on purpose
// The goal of this module is simply to simplify loading of the component
enigmail/package/gpg.jsm 0000664 0000000 0000000 00000020627 12667016244 0015545 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailGpg"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
const GPG_BATCH_OPT_LIST = ["--batch", "--no-tty", "--status-fd", "2"];
function pushTrimmedStr(arr, str, splitStr) {
// Helper function for pushing a string without leading/trailing spaces
// to an array
str = str.replace(/^ */, "").replace(/ *$/, "");
if (str.length > 0) {
if (splitStr) {
const tmpArr = str.split(/[\t ]+/);
for (let i = 0; i < tmpArr.length; i++) {
arr.push(tmpArr[i]);
}
}
else {
arr.push(str);
}
}
return (str.length > 0);
}
const EnigmailGpg = {
agentVersion: "",
_agentPath: null,
get agentPath() {
return this._agentPath;
},
setAgentPath: function(path) {
this._agentPath = path;
},
/***
determine if a specific feature is available in the GnuPG version used
@featureName: String; one of the following values:
version-supported - is the gpg version supported at all (true for gpg >= 2.0.7)
supports-gpg-agent - is gpg-agent is usually provided (true for gpg >= 2.0)
autostart-gpg-agent - is gpg-agent started automatically by gpg (true for gpg >= 2.0.16)
keygen-passphrase - can the passphrase be specified when generating keys (false for gpg 2.1 and 2.1.1)
windows-photoid-bug - is there a bug in gpg with the output of photoid on Windows (true for gpg < 2.0.16)
@return: depending on featureName - Boolean unless specified differently:
(true if feature is available / false otherwise)
If the feature cannot be found, undefined is returned
*/
getGpgFeature: function(featureName) {
let gpgVersion = EnigmailGpg.agentVersion;
if (!gpgVersion || typeof(gpgVersion) != "string" || gpgVersion.length === 0) {
return undefined;
}
gpgVersion = gpgVersion.replace(/\-.*$/, "");
if (gpgVersion.search(/^\d+\.\d+/) < 0) {
// not a valid version number
return undefined;
}
const vc = Cc["@mozilla.org/xpcom/version-comparator;1"].getService(Ci.nsIVersionComparator);
switch (featureName) {
case 'version-supported':
return vc.compare(gpgVersion, "2.0.7") >= 0;
case 'supports-gpg-agent':
return vc.compare(gpgVersion, "2.0") >= 0;
case 'autostart-gpg-agent':
return vc.compare(gpgVersion, "2.0.16") >= 0;
case 'keygen-passphrase':
return vc.compare(gpgVersion, "2.1") < 0 || vc.compare(gpgVersion, "2.1.2") >= 0;
case 'windows-photoid-bug':
return vc.compare(gpgVersion, "2.0.16") < 0;
}
return undefined;
},
/**
* get the standard arguments to pass to every GnuPG subprocess
*
* @withBatchOpts: Boolean - true: use --batch and some more options
* false: don't use --batch and co.
*
* @return: Array of String - the list of arguments
*/
getStandardArgs: function(withBatchOpts) {
// return the arguments to pass to every GnuPG subprocess
let r = ["--charset", "utf-8", "--display-charset", "utf-8", "--use-agent"]; // mandatory parameter to add in all cases
try {
let p = EnigmailPrefs.getPref("agentAdditionalParam").replace(/\\\\/g, "\\");
let i = 0;
let last = 0;
let foundSign = "";
let startQuote = -1;
while ((i = p.substr(last).search(/['"]/)) >= 0) {
if (startQuote == -1) {
startQuote = i;
foundSign = p.substr(last).charAt(i);
last = i + 1;
}
else if (p.substr(last).charAt(i) == foundSign) {
// found enquoted part
if (startQuote > 1) pushTrimmedStr(r, p.substr(0, startQuote), true);
pushTrimmedStr(r, p.substr(startQuote + 1, last + i - startQuote - 1), false);
p = p.substr(last + i + 1);
last = 0;
startQuote = -1;
foundSign = "";
}
else {
last = last + i + 1;
}
}
pushTrimmedStr(r, p, true);
}
catch (ex) {}
if (withBatchOpts) {
r = r.concat(GPG_BATCH_OPT_LIST);
}
return r;
},
// returns the output of --with-colons --list-config
getGnupgConfig: function(exitCodeObj, errorMsgObj) {
const args = EnigmailGpg.getStandardArgs(true).
concat(["--fixed-list-mode", "--with-colons", "--list-config"]);
const statusMsgObj = {};
const cmdErrorMsgObj = {};
const statusFlagsObj = {};
const listText = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, statusMsgObj, cmdErrorMsgObj);
if (exitCodeObj.value !== 0) {
errorMsgObj.value = EnigmailLocale.getString("badCommand");
if (cmdErrorMsgObj.value) {
errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args);
errorMsgObj.value += "\n" + cmdErrorMsgObj.value;
}
return "";
}
return listText.replace(/(\r\n|\r)/g, "\n");
},
/**
* return an array containing the aliases and the email addresses
* of groups defined in gpg.conf
*
* @return: array of objects with the following properties:
* - alias: group name as used by GnuPG
* - keylist: list of keys (any form that GnuPG accepts), separated by ";"
*
* (see docu for gnupg parameter --group)
*/
getGpgGroups: function() {
let exitCodeObj = {};
let errorMsgObj = {};
let cfgStr = EnigmailGpg.getGnupgConfig(exitCodeObj, errorMsgObj);
if (exitCodeObj.value !== 0) {
EnigmailDialog.alert(errorMsgObj.value);
return null;
}
let groups = [];
let cfg = cfgStr.split(/\n/);
for (let i = 0; i < cfg.length; i++) {
if (cfg[i].indexOf("cfg:group") === 0) {
let groupArr = cfg[i].split(/:/);
groups.push({
alias: groupArr[2],
keylist: groupArr[3]
});
}
}
return groups;
},
/**
* Force GnuPG to recalculate the trust db. This is sometimes required after importing keys.
*
* no return value
*/
recalcTrustDb: function() {
EnigmailLog.DEBUG("enigmailCommon.jsm: recalcTrustDb:\n");
const command = EnigmailGpg.agentPath;
const args = EnigmailGpg.getStandardArgs(false).
concat(["--check-trustdb"]);
try {
const proc = subprocess.call({
command: EnigmailGpg.agentPath,
arguments: args,
environment: EnigmailCore.getEnvList(),
charset: null,
mergeStderr: false
});
proc.wait();
}
catch (ex) {
EnigmailLog.ERROR("enigmailCommon.jsm: recalcTrustDb: subprocess.call failed with '" + ex.toString() + "'\n");
throw ex;
}
},
signingAlgIdToString: function(id) {
// RFC 4880 Sec. 9.1, RFC 6637 Sec. 5 and draft-koch-eddsa-for-openpgp-03 Sec. 8
switch (parseInt(id, 10)) {
case 1:
case 2:
case 3:
return "RSA";
case 16:
return "Elgamal";
case 17:
return "DSA";
case 18:
return "ECDH";
case 19:
return "ECDSA";
case 20:
return "ELG";
case 22:
return "EDDSA";
default:
return EnigmailLocale.getString("unknownSigningAlg", [parseInt(id, 10)]);
}
},
hashAlgIdToString: function(id) {
// RFC 4880 Sec. 9.4
switch (parseInt(id, 10)) {
case 1:
return "MD5";
case 2:
return "SHA-1";
case 3:
return "RIPE-MD/160";
case 8:
return "SHA256";
case 9:
return "SHA384";
case 10:
return "SHA512";
case 11:
return "SHA224";
default:
return EnigmailLocale.getString("unknownHashAlg", [parseInt(id, 10)]);
}
}
};
enigmail/package/gpgAgent.jsm 0000664 0000000 0000000 00000062541 12667016244 0016525 0 ustar 00root root 0000000 0000000 /*global Components: false, unescape: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailGpgAgent"];
const Cu = Components.utils;
Cu.import("resource://gre/modules/ctypes.jsm"); /*global ctypes: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */
Cu.import("resource://enigmail/windows.jsm"); /*global EnigmailWindows: false */
Cu.import("resource://enigmail/app.jsm"); /*global EnigmailApp: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Cu.import("resource://enigmail/passwords.jsm"); /*global EnigmailPassword: false */
Cu.import("resource://enigmail/system.jsm"); /*global EnigmailSystem: false */
Cu.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const nsIEnigmail = Ci.nsIEnigmail;
const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1";
const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1";
const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID = "@mozilla.org/network/file-output-stream;1";
const DEFAULT_FILE_PERMS = 0x180; // equals 0600
// Making this a var makes it possible to test windows things on linux
var nsIWindowsRegKey = Ci.nsIWindowsRegKey;
var gIsGpgAgent = -1;
const DUMMY_AGENT_INFO = "none";
function cloneOrNull(v) {
if (v && typeof v.clone === "function") {
return v.clone();
}
else {
return v;
}
}
function extractAgentInfo(fullStr) {
if (fullStr) {
return fullStr.
replace(/[\r\n]/g, "").
replace(/^.*\=/, "").
replace(/\;.*$/, "");
}
else {
return "";
}
}
function getHomedirFromParam(param) {
let i = param.search(/--homedir/);
if (i >= 0) {
param = param.substr(i + 9);
let m = param.match(/^(\s*)([^\\]".+[^\\]")/);
if (m && m.length > 2) {
param = m[2].substr(1);
let j = param.search(/[^\\]"/);
return param.substr(1, j);
}
m = param.match(/^(\s*)([^\\]'.+[^\\]')/);
if (m && m.length > 2) {
param = m[2].substr(1);
let j = param.search(/[^\\]'/);
return param.substr(1, j);
}
m = param.match(/^(\s*)(\S+)/);
if (m && m.length > 2) {
return m[2];
}
}
return null;
}
var EnigmailGpgAgent = {
agentType: "",
agentPath: null,
connGpgAgentPath: null,
gpgconfPath: null,
gpgAgentInfo: {
preStarted: false,
envStr: ""
},
gpgAgentProcess: null,
gpgAgentIsOptional: true,
isDummy: function() {
return EnigmailGpgAgent.gpgAgentInfo.envStr === DUMMY_AGENT_INFO;
},
useGpgAgent: function() {
let useAgent = false;
try {
if (EnigmailOS.isDosLike() && !EnigmailGpg.getGpgFeature("supports-gpg-agent")) {
useAgent = false;
}
else {
// gpg version >= 2.0.16 launches gpg-agent automatically
if (EnigmailGpg.getGpgFeature("autostart-gpg-agent")) {
useAgent = true;
EnigmailLog.DEBUG("enigmail.js: Setting useAgent to " + useAgent + " for gpg2 >= 2.0.16\n");
}
else {
useAgent = (EnigmailGpgAgent.gpgAgentInfo.envStr.length > 0 || EnigmailPrefs.getPrefBranch().getBoolPref("useGpgAgent"));
}
}
}
catch (ex) {}
return useAgent;
},
resetGpgAgent: function() {
EnigmailLog.DEBUG("gpgAgent.jsm: resetGpgAgent\n");
gIsGpgAgent = -1;
},
isCmdGpgAgent: function(pid) {
EnigmailLog.DEBUG("gpgAgent.jsm: isCmdGpgAgent:\n");
const environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
let ret = false;
let path = environment.get("PATH");
if (!path || path.length === 0) {
path = "/bin:/usr/bin:/usr/local/bin";
}
const psCmd = EnigmailFiles.resolvePath("ps", path, false);
const proc = {
command: psCmd,
arguments: ["-o", "comm", "-p", pid],
environment: EnigmailCore.getEnvList(),
charset: null,
done: function(result) {
EnigmailLog.DEBUG("gpgAgent.jsm: isCmdGpgAgent: got data: '" + result.stdout + "'\n");
var data = result.stdout.replace(/[\r\n]/g, " ");
if (data.search(/gpg-agent/) >= 0) {
ret = true;
}
}
};
try {
subprocess.call(proc).wait();
}
catch (ex) {}
return ret;
},
isAgentTypeGpgAgent: function() {
// determine if the used agent is a gpg-agent
EnigmailLog.DEBUG("gpgAgent.jsm: isAgentTypeGpgAgent:\n");
// to my knowledge there is no other agent than gpg-agent on Windows
if (EnigmailOS.getOS() == "WINNT") return true;
if (gIsGpgAgent >= 0) {
return gIsGpgAgent == 1;
}
let pid = -1;
let exitCode = -1;
if (!EnigmailCore.getService()) return false;
const proc = {
command: EnigmailGpgAgent.connGpgAgentPath,
arguments: [],
charset: null,
environment: EnigmailCore.getEnvList(),
stdin: function(pipe) {
pipe.write("/subst\n");
pipe.write("/serverpid\n");
pipe.write("/echo pid: ${get serverpid}\n");
pipe.write("/bye\n");
pipe.close();
},
done: function(result) {
exitCode = result.exitCode;
const data = result.stdout.replace(/[\r\n]/g, "");
if (data.search(/^pid: [0-9]+$/) === 0) {
pid = data.replace(/^pid: /, "");
}
}
};
try {
subprocess.call(proc).wait();
if (exitCode) pid = -2;
}
catch (ex) {}
EnigmailLog.DEBUG("gpgAgent.jsm: isAgentTypeGpgAgent: pid=" + pid + "\n");
EnigmailGpgAgent.isCmdGpgAgent(pid);
let isAgent = false;
try {
isAgent = EnigmailGpgAgent.isCmdGpgAgent(pid);
gIsGpgAgent = isAgent ? 1 : 0;
}
catch (ex) {}
return isAgent;
},
getAgentMaxIdle: function() {
EnigmailLog.DEBUG("gpgAgent.jsm: getAgentMaxIdle:\n");
let maxIdle = -1;
if (!EnigmailCore.getService()) return maxIdle;
const DEFAULT = 7;
const CFGVALUE = 9;
const proc = {
command: EnigmailGpgAgent.gpgconfPath,
arguments: ["--list-options", "gpg-agent"],
charset: null,
environment: EnigmailCore.getEnvList(),
done: function(result) {
const lines = result.stdout.split(/[\r\n]/);
for (let i = 0; i < lines.length; i++) {
EnigmailLog.DEBUG("gpgAgent.jsm: getAgentMaxIdle: line: " + lines[i] + "\n");
if (lines[i].search(/^default-cache-ttl:/) === 0) {
const m = lines[i].split(/:/);
if (m[CFGVALUE].length === 0) {
maxIdle = Math.round(m[DEFAULT] / 60);
}
else {
maxIdle = Math.round(m[CFGVALUE] / 60);
}
break;
}
}
}
};
subprocess.call(proc).wait();
return maxIdle;
},
setAgentMaxIdle: function(idleMinutes) {
EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle:\n");
if (!EnigmailCore.getService()) return;
const RUNTIME = 8;
const proc = {
command: EnigmailGpgAgent.gpgconfPath,
arguments: ["--runtime", "--change-options", "gpg-agent"],
environment: EnigmailCore.getEnvList(),
charset: null,
mergeStderr: true,
stdin: function(pipe) {
pipe.write("default-cache-ttl:" + RUNTIME + ":" + (idleMinutes * 60) + "\n");
pipe.write("max-cache-ttl:" + RUNTIME + ":" + (idleMinutes * 600) + "\n");
pipe.close();
},
stdout: function(data) {
EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle.stdout: " + data + "\n");
},
done: function(result) {
EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle.stdout: gpgconf exitCode=" + result.exitCode + "\n");
}
};
try {
subprocess.call(proc);
}
catch (ex) {
EnigmailLog.DEBUG("gpgAgent.jsm: setAgentMaxIdle: exception: " + ex.toString() + "\n");
}
},
getMaxIdlePref: function(win) {
let maxIdle = EnigmailPrefs.getPref("maxIdleMinutes");
try {
if (EnigmailCore.getService(win)) {
if (EnigmailGpgAgent.gpgconfPath &&
EnigmailGpgAgent.connGpgAgentPath) {
if (EnigmailGpgAgent.isAgentTypeGpgAgent()) {
const m = EnigmailGpgAgent.getAgentMaxIdle();
if (m > -1) maxIdle = m;
}
}
}
}
catch (ex) {}
return maxIdle;
},
setMaxIdlePref: function(minutes) {
EnigmailPrefs.setPref("maxIdleMinutes", minutes);
if (EnigmailGpgAgent.isAgentTypeGpgAgent()) {
try {
EnigmailGpgAgent.setAgentMaxIdle(minutes);
}
catch (ex) {}
}
},
/**
* Determine the "gpg home dir", i.e. the directory where gpg.conf and the keyring are
* stored
*
* @return String - directory name, or NULL (in case the command did not succeed)
*/
getGpgHomeDir: function() {
let param = EnigmailPrefs.getPref("agentAdditionalParam");
if (param) {
let hd = getHomedirFromParam(param);
if (hd) return hd;
}
if (EnigmailGpgAgent.gpgconfPath === null) return null;
const command = EnigmailGpgAgent.gpgconfPath;
let args = ["--list-dirs"];
let exitCode = -1;
let outStr = "";
EnigmailLog.DEBUG("enigmail.js: Enigmail.setAgentPath: calling subprocess with '" + command.path + "'\n");
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n");
const proc = {
command: command,
arguments: args,
environment: EnigmailCore.getEnvList(),
charset: null,
done: function(result) {
exitCode = result.exitCode;
outStr = result.stdout;
},
mergeStderr: false
};
try {
subprocess.call(proc).wait();
}
catch (ex) {
EnigmailLog.ERROR("enigmail.js: Enigmail.getGpgHomeDir: subprocess.call failed with '" + ex.toString() + "'\n");
EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n");
throw ex;
}
let m = outStr.match(/^(homedir:)(.*)$/mi);
if (m && m.length > 2) {
return EnigmailData.convertGpgToUnicode(unescape(m[2]));
}
return null;
},
setAgentPath: function(domWindow, esvc) {
let agentPath = "";
try {
agentPath = EnigmailPrefs.getPrefBranch().getCharPref("agentPath");
}
catch (ex) {}
var agentType = "gpg";
var agentName = "";
EnigmailGpgAgent.resetGpgAgent();
if (EnigmailOS.isDosLike()) {
agentName = "gpg2.exe;gpg.exe;gpg1.exe";
}
else {
agentName = "gpg2;gpg;gpg1";
}
if (agentPath) {
// Locate GnuPG executable
// Append default .exe extension for DOS-Like systems, if needed
if (EnigmailOS.isDosLike() && (agentPath.search(/\.\w+$/) < 0)) {
agentPath += ".exe";
}
try {
let pathDir = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
if (!EnigmailFiles.isAbsolutePath(agentPath, EnigmailOS.isDosLike())) {
// path relative to Mozilla installation dir
const ds = Cc[DIR_SERV_CONTRACTID].getService();
const dsprops = ds.QueryInterface(Ci.nsIProperties);
pathDir = dsprops.get("CurProcD", Ci.nsIFile);
const dirs = agentPath.split(new RegExp(EnigmailOS.isDosLike() ? "\\\\" : "/"));
for (let i = 0; i < dirs.length; i++) {
if (dirs[i] != ".") {
pathDir.append(dirs[i]);
}
}
pathDir.normalize();
}
else {
// absolute path
EnigmailFiles.initPath(pathDir, agentPath);
}
if (!(pathDir.isFile() /* && pathDir.isExecutable()*/ )) {
throw Components.results.NS_ERROR_FAILURE;
}
agentPath = pathDir.QueryInterface(Ci.nsIFile);
}
catch (ex) {
esvc.initializationError = EnigmailLocale.getString("gpgNotFound", [agentPath]);
EnigmailLog.ERROR("enigmail.js: Enigmail.initialize: Error - " + esvc.initializationError + "\n");
throw Components.results.NS_ERROR_FAILURE;
}
}
else {
// Resolve relative path using PATH environment variable
const envPath = esvc.environment.get("PATH");
agentPath = EnigmailFiles.resolvePath(agentName, envPath, EnigmailOS.isDosLike());
if (!agentPath && EnigmailOS.isDosLike()) {
// DOS-like systems: search for GPG in c:\gnupg, c:\gnupg\bin, d:\gnupg, d:\gnupg\bin
let gpgPath = "c:\\gnupg;c:\\gnupg\\bin;d:\\gnupg;d:\\gnupg\\bin";
agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike());
}
if ((!agentPath) && EnigmailOS.isWin32) {
// Look up in Windows Registry
try {
let gpgPath = EnigmailOS.getWinRegistryString("Software\\GNU\\GNUPG", "Install Directory", nsIWindowsRegKey.ROOT_KEY_LOCAL_MACHINE);
agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike());
}
catch (ex) {}
if (!agentPath) {
let gpgPath = gpgPath + "\\pub";
agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike());
}
}
if (!agentPath && !EnigmailOS.isDosLike()) {
// Unix-like systems: check /usr/bin and /usr/local/bin
let gpgPath = "/usr/bin:/usr/local/bin";
agentPath = EnigmailFiles.resolvePath(agentName, gpgPath, EnigmailOS.isDosLike());
}
if (!agentPath) {
esvc.initializationError = EnigmailLocale.getString("gpgNotInPath");
EnigmailLog.ERROR("enigmail.js: Enigmail: Error - " + esvc.initializationError + "\n");
throw Components.results.NS_ERROR_FAILURE;
}
agentPath = agentPath.QueryInterface(Ci.nsIFile);
}
EnigmailLog.CONSOLE("EnigmailAgentPath=" + EnigmailFiles.getFilePathDesc(agentPath) + "\n\n");
EnigmailGpgAgent.agentType = agentType;
EnigmailGpgAgent.agentPath = agentPath;
EnigmailGpg.setAgentPath(agentPath);
EnigmailExecution.agentType = agentType;
const command = agentPath;
let args = [];
if (agentType == "gpg") {
args = ["--version", "--version", "--batch", "--no-tty", "--charset", "utf-8", "--display-charset", "utf-8"];
}
let exitCode = -1;
let outStr = "";
let errStr = "";
EnigmailLog.DEBUG("enigmail.js: Enigmail.setAgentPath: calling subprocess with '" + command.path + "'\n");
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n");
const proc = {
command: command,
arguments: args,
environment: EnigmailCore.getEnvList(),
charset: null,
done: function(result) {
exitCode = result.exitCode;
outStr = result.stdout;
errStr = result.stderr;
},
mergeStderr: false
};
try {
subprocess.call(proc).wait();
}
catch (ex) {
EnigmailLog.ERROR("enigmail.js: Enigmail.setAgentPath: subprocess.call failed with '" + ex.toString() + "'\n");
EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n");
throw ex;
}
EnigmailLog.DEBUG(" enigmail> DONE\n");
outStr = EnigmailSystem.convertNativeToUnicode(outStr);
if (exitCode !== 0) {
EnigmailLog.ERROR("enigmail.js: Enigmail.setAgentPath: gpg failed with exitCode " + exitCode + " msg='" + outStr + " " + errStr + "'\n");
throw Components.results.NS_ERROR_FAILURE;
}
EnigmailLog.CONSOLE(outStr + "\n");
// detection for Gpg4Win wrapper
if (outStr.search(/^gpgwrap.*;/) === 0) {
const outLines = outStr.split(/[\n\r]+/);
const firstLine = outLines[0];
outLines.splice(0, 1);
outStr = outLines.join("\n");
agentPath = firstLine.replace(/^.*;[ \t]*/, "");
EnigmailLog.CONSOLE("gpg4win-gpgwrapper detected; EnigmailAgentPath=" + agentPath + "\n\n");
}
const versionParts = outStr.replace(/[\r\n].*/g, "").replace(/ *\(gpg4win.*\)/i, "").split(/ /);
const gpgVersion = versionParts[versionParts.length - 1];
EnigmailLog.DEBUG("enigmail.js: detected GnuPG version '" + gpgVersion + "'\n");
EnigmailGpg.agentVersion = gpgVersion;
if (!EnigmailGpg.getGpgFeature("version-supported")) {
if (!domWindow) {
domWindow = EnigmailWindows.getBestParentWin();
}
EnigmailDialog.alert(domWindow, EnigmailLocale.getString("oldGpgVersion14", [gpgVersion]));
throw Components.results.NS_ERROR_FAILURE;
}
EnigmailGpgAgent.gpgconfPath = EnigmailGpgAgent.resolveToolPath("gpgconf");
EnigmailGpgAgent.connGpgAgentPath = EnigmailGpgAgent.resolveToolPath("gpg-connect-agent");
EnigmailLog.DEBUG("enigmail.js: Enigmail.setAgentPath: gpgconf found: " + (EnigmailGpgAgent.gpgconfPath ? "yes" : "no") + "\n");
},
// resolve the path for GnuPG helper tools
resolveToolPath: function(fileName) {
if (EnigmailOS.isDosLike()) {
fileName += ".exe";
}
let filePath = cloneOrNull(EnigmailGpgAgent.agentPath);
if (filePath) filePath = filePath.parent;
if (filePath) {
filePath.append(fileName);
if (filePath.exists()) {
filePath.normalize();
return filePath;
}
}
const foundPath = EnigmailFiles.resolvePath(fileName, EnigmailCore.getEnigmailService().environment.get("PATH"), EnigmailOS.isDosLike());
if (foundPath) {
foundPath.normalize();
}
return foundPath;
},
detectGpgAgent: function(domWindow, esvc) {
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent\n");
var gpgAgentInfo = esvc.environment.get("GPG_AGENT_INFO");
if (gpgAgentInfo && gpgAgentInfo.length > 0) {
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: GPG_AGENT_INFO variable available\n");
// env. variable suggests running gpg-agent
EnigmailGpgAgent.gpgAgentInfo.preStarted = true;
EnigmailGpgAgent.gpgAgentInfo.envStr = gpgAgentInfo;
EnigmailGpgAgent.gpgAgentIsOptional = false;
}
else {
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: no GPG_AGENT_INFO variable set\n");
EnigmailGpgAgent.gpgAgentInfo.preStarted = false;
var command = null;
var outStr = "";
var errorStr = "";
var exitCode = -1;
EnigmailGpgAgent.gpgAgentIsOptional = false;
if (EnigmailGpg.getGpgFeature("autostart-gpg-agent")) {
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: gpg 2.0.16 or newer - not starting agent\n");
}
else {
if (EnigmailGpgAgent.connGpgAgentPath && EnigmailGpgAgent.connGpgAgentPath.isExecutable()) {
// try to connect to a running gpg-agent
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: gpg-connect-agent is executable\n");
EnigmailGpgAgent.gpgAgentInfo.envStr = DUMMY_AGENT_INFO;
command = EnigmailGpgAgent.connGpgAgentPath.QueryInterface(Ci.nsIFile);
EnigmailLog.CONSOLE("enigmail> " + command.path + "\n");
try {
subprocess.call({
command: command,
environment: EnigmailCore.getEnvList(),
stdin: "/echo OK\n",
charset: null,
done: function(result) {
EnigmailLog.DEBUG("detectGpgAgent detection terminated with " + result.exitCode + "\n");
exitCode = result.exitCode;
outStr = result.stdout;
errorStr = result.stderr;
if (result.stdout.substr(0, 2) == "OK") exitCode = 0;
},
mergeStderr: false
}).wait();
}
catch (ex) {
EnigmailLog.ERROR("enigmail.js: detectGpgAgent: " + command.path + " failed\n");
EnigmailLog.DEBUG(" enigmail> DONE with FAILURE\n");
exitCode = -1;
}
EnigmailLog.DEBUG(" enigmail> DONE\n");
if (exitCode === 0) {
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: found running gpg-agent\n");
return;
}
else {
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: no running gpg-agent. Output='" + outStr + "' error text='" + errorStr + "'\n");
}
}
// and finally try to start gpg-agent
var commandFile = EnigmailGpgAgent.resolveToolPath("gpg-agent");
var agentProcess = null;
if ((!commandFile) || (!commandFile.exists())) {
commandFile = EnigmailGpgAgent.resolveToolPath("gpg-agent2");
}
if (commandFile && commandFile.exists()) {
command = commandFile.QueryInterface(Ci.nsIFile);
}
if (command === null) {
EnigmailLog.ERROR("enigmail.js: detectGpgAgent: gpg-agent not found\n");
EnigmailDialog.alert(domWindow, EnigmailLocale.getString("gpgAgentNotStarted", [EnigmailGpg.agentVersion]));
throw Components.results.NS_ERROR_FAILURE;
}
}
if ((!EnigmailOS.isDosLike()) && (!EnigmailGpg.getGpgFeature("autostart-gpg-agent"))) {
// create unique tmp file
var ds = Cc[DIR_SERV_CONTRACTID].getService();
var dsprops = ds.QueryInterface(Ci.nsIProperties);
var tmpFile = dsprops.get("TmpD", Ci.nsIFile);
tmpFile.append("gpg-wrapper.tmp");
tmpFile.createUnique(tmpFile.NORMAL_FILE_TYPE, DEFAULT_FILE_PERMS);
let args = [command.path,
tmpFile.path,
"--sh", "--no-use-standard-socket",
"--daemon",
"--default-cache-ttl", (EnigmailPassword.getMaxIdleMinutes() * 60).toString(),
"--max-cache-ttl", "999999"
]; // ca. 11 days
try {
var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
var exec = EnigmailApp.getInstallLocation().clone();
exec.append("wrappers");
exec.append("gpg-agent-wrapper.sh");
process.init(exec);
process.run(true, args, args.length);
if (!tmpFile.exists()) {
EnigmailLog.ERROR("enigmail.js: detectGpgAgent no temp file created\n");
}
else {
outStr = EnigmailFiles.readFile(tmpFile);
tmpFile.remove(false);
exitCode = 0;
}
}
catch (ex) {
EnigmailLog.ERROR("enigmail.js: detectGpgAgent: failed with '" + ex + "'\n");
exitCode = -1;
}
if (exitCode === 0) {
EnigmailGpgAgent.gpgAgentInfo.envStr = extractAgentInfo(outStr);
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: started -> " + EnigmailGpgAgent.gpgAgentInfo.envStr + "\n");
EnigmailGpgAgent.gpgAgentProcess = EnigmailGpgAgent.gpgAgentInfo.envStr.split(":")[1];
}
else {
EnigmailLog.ERROR("enigmail.js: detectGpgAgent: gpg-agent output: " + outStr + "\n");
EnigmailDialog.alert(domWindow, EnigmailLocale.getString("gpgAgentNotStarted", [EnigmailGpg.agentVersion]));
throw Components.results.NS_ERROR_FAILURE;
}
}
else {
EnigmailGpgAgent.gpgAgentInfo.envStr = DUMMY_AGENT_INFO;
var envFile = Components.classes[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
EnigmailFiles.initPath(envFile, EnigmailGpgAgent.determineGpgHomeDir(esvc));
envFile.append("gpg-agent.conf");
var data = "default-cache-ttl " + (EnigmailPassword.getMaxIdleMinutes() * 60) + "\n";
data += "max-cache-ttl 999999";
if (!envFile.exists()) {
try {
var flags = 0x02 | 0x08 | 0x20;
var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream);
fileOutStream.init(envFile, flags, 384, 0); // 0600
fileOutStream.write(data, data.length);
fileOutStream.flush();
fileOutStream.close();
}
catch (ex) {} // ignore file write errors
}
}
}
EnigmailLog.DEBUG("enigmail.js: detectGpgAgent: GPG_AGENT_INFO='" + EnigmailGpgAgent.gpgAgentInfo.envStr + "'\n");
},
determineGpgHomeDir: function(esvc) {
let homeDir = esvc.environment.get("GNUPGHOME");
if (!homeDir && EnigmailOS.isWin32) {
homeDir = EnigmailOS.getWinRegistryString("Software\\GNU\\GNUPG", "HomeDir", nsIWindowsRegKey.ROOT_KEY_CURRENT_USER);
if (!homeDir) {
homeDir = esvc.environment.get("USERPROFILE") || esvc.environment.get("SystemRoot");
if (homeDir) homeDir += "\\Application Data\\GnuPG";
}
if (!homeDir) homeDir = "C:\\gnupg";
}
if (!homeDir) homeDir = esvc.environment.get("HOME") + "/.gnupg";
return homeDir;
},
finalize: function() {
if (EnigmailGpgAgent.gpgAgentProcess) {
EnigmailLog.DEBUG("gpgAgent.jsm: EnigmailGpgAgent.finalize: stopping gpg-agent PID=" + EnigmailGpgAgent.gpgAgentProcess + "\n");
try {
const libc = ctypes.open(subprocess.getPlatformValue(0));
//int kill(pid_t pid, int sig);
const kill = libc.declare("kill",
ctypes.default_abi,
ctypes.int,
ctypes.int32_t,
ctypes.int);
kill(parseInt(EnigmailGpgAgent.gpgAgentProcess, 10), 15);
}
catch (ex) {
EnigmailLog.ERROR("gpgAgent.jsm: EnigmailGpgAgent.finalize ERROR: " + ex + "\n");
}
}
}
};
enigmail/package/hash.jsm 0000664 0000000 0000000 00000007704 12667016244 0015714 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailHash"];
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/windows.jsm"); /*global EnigmailWindows: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/encryption.jsm"); /*global EnigmailEncryption: false */
Cu.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */
const Ci = Components.interfaces;
const nsIEnigmail = Ci.nsIEnigmail;
const keyAlgorithms = [];
const mimeHashAlgorithms = [null, "sha1", "ripemd160", "sha256", "sha384", "sha512", "sha224", "md5"];
const EnigmailHash = {
determineAlgorithm: function(win, uiFlags, fromMailAddr, hashAlgoObj) {
EnigmailLog.DEBUG("hash.jsm: determineAlgorithm\n");
if (!win) {
win = EnigmailWindows.getMostRecentWindow();
}
const sendFlags = nsIEnigmail.SEND_TEST | nsIEnigmail.SEND_SIGNED;
const hashAlgo = mimeHashAlgorithms[EnigmailPrefs.getPref("mimeHashAlgorithm")];
if (typeof(keyAlgorithms[fromMailAddr]) != "string") {
// hash algorithm not yet known
const testUiFlags = nsIEnigmail.UI_TEST;
const listener = {
stdoutData: "",
stderrData: "",
exitCode: -1,
stdin: function(pipe) {
pipe.write("Dummy Test");
pipe.close();
},
stdout: function(data) {
this.stdoutData += data;
},
stderr: function(data) {
this.stderrData += data;
},
done: function(exitCode) {
this.exitCode = exitCode;
}
};
const proc = EnigmailEncryption.encryptMessageStart(win, testUiFlags, fromMailAddr, "",
"", hashAlgo, sendFlags,
listener, {}, {});
if (!proc) {
return 1;
}
proc.wait();
const msgText = listener.stdoutData;
const exitCode = listener.exitCode;
const retStatusObj = {};
let exitCode2 = EnigmailEncryption.encryptMessageEnd(fromMailAddr, listener.stderrData, exitCode,
testUiFlags, sendFlags, 10,
retStatusObj);
if ((exitCode2 === 0) && !msgText) exitCode2 = 1;
// if (exitCode2 > 0) exitCode2 = -exitCode2;
if (exitCode2 !== 0) {
// Abormal return
if (retStatusObj.statusFlags & nsIEnigmail.BAD_PASSPHRASE) {
// "Unremember" passphrase on error return
retStatusObj.errorMsg = EnigmailLocale.getString("badPhrase");
}
EnigmailDialog.alert(win, retStatusObj.errorMsg);
return exitCode2;
}
let hashAlgorithm = "sha1"; // default as defined in RFC 4880, section 7 is MD5 -- but that's outdated
const m = msgText.match(/^(Hash: )(.*)$/m);
if (m && (m.length > 2) && (m[1] == "Hash: ")) {
hashAlgorithm = m[2].toLowerCase();
}
else {
EnigmailLog.DEBUG("hash.jsm: determineAlgorithm: no hashAlgorithm specified - using MD5\n");
}
for (let i = 1; i < mimeHashAlgorithms.length; i++) {
if (mimeHashAlgorithms[i] === hashAlgorithm) {
EnigmailLog.DEBUG("hash.jsm: determineAlgorithm: found hashAlgorithm " + hashAlgorithm + "\n");
keyAlgorithms[fromMailAddr] = hashAlgorithm;
hashAlgoObj.value = hashAlgorithm;
return 0;
}
}
EnigmailLog.ERROR("hash.jsm: determineAlgorithm: no hashAlgorithm found\n");
return 2;
}
else {
EnigmailLog.DEBUG("hash.jsm: determineAlgorithm: hashAlgorithm " + keyAlgorithms[fromMailAddr] + " is cached\n");
hashAlgoObj.value = keyAlgorithms[fromMailAddr];
}
return 0;
}
};
enigmail/package/httpProxy.jsm 0000664 0000000 0000000 00000005524 12667016244 0017010 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailHttpProxy"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
const NS_PREFS_SERVICE_CID = "@mozilla.org/preferences-service;1";
function getPasswdForHost(hostname, userObj, passwdObj) {
var loginmgr = Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
// search HTTP password 1st
var logins = loginmgr.findLogins({}, "http://" + hostname, "", "");
if (logins.length > 0) {
userObj.value = logins[0].username;
passwdObj.value = logins[0].password;
return true;
}
// look for any other password for same host
logins = loginmgr.getAllLogins({});
for (var i = 0; i < logins.lenth; i++) {
if (hostname == logins[i].hostname.replace(/^.*:\/\//, "")) {
userObj.value = logins[i].username;
passwdObj.value = logins[i].password;
return true;
}
}
return false;
}
const EnigmailHttpProxy = {
/**
* get Proxy for a given hostname as configured in Mozilla
*
* @hostname: String - the host to check if there is a proxy.
*
* @return: String - proxy host URL to provide to GnuPG
* null if no proxy required
*/
getHttpProxy: function(hostName) {
var proxyHost = null;
if (EnigmailPrefs.getPref("respectHttpProxy")) {
// determine proxy host
var prefsSvc = Cc[NS_PREFS_SERVICE_CID].getService(Ci.nsIPrefService);
var prefRoot = prefsSvc.getBranch(null);
var useProxy = prefRoot.getIntPref("network.proxy.type");
if (useProxy == 1) {
var proxyHostName = prefRoot.getCharPref("network.proxy.http");
var proxyHostPort = prefRoot.getIntPref("network.proxy.http_port");
var noProxy = prefRoot.getCharPref("network.proxy.no_proxies_on").split(/[ ,]/);
for (var i = 0; i < noProxy.length; i++) {
var proxySearch = new RegExp(noProxy[i].replace(/\./g, "\\.").replace(/\*/g, ".*") + "$", "i");
if (noProxy[i] && hostName.search(proxySearch) >= 0) {
i = noProxy.length + 1;
proxyHostName = null;
}
}
if (proxyHostName) {
var userObj = {};
var passwdObj = {};
if (getPasswdForHost(proxyHostName, userObj, passwdObj)) {
proxyHostName = userObj.value + ":" + passwdObj.value + "@" + proxyHostName;
}
}
if (proxyHostName && proxyHostPort) {
proxyHost = "http://" + proxyHostName + ":" + proxyHostPort;
}
}
}
return proxyHost;
}
};
enigmail/package/install.rdf 0000664 0000000 0000000 00000003612 12667016244 0016413 0 ustar 00root root 0000000 0000000
{847b3a00-7ab1-11d4-8f02-006008948af5}
1.9.1
2
true
{3550f703-e582-4d05-9a08-453d09bdfdc6}
38.0
46.0
{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}
2.35
2.43
Enigmail
OpenPGP message encryption and authentication
Enigmail Team
http://www.enigmail.net/
chrome://enigmail/content/pref-enigmail.xul
chrome://enigmail/content/enigmailAbout.xul
chrome://enigmail/skin/enigmail-about.png
enigmail/package/installGnuPG.jsm 0000664 0000000 0000000 00000045024 12667016244 0017335 0 ustar 00root root 0000000 0000000 /*global Components: false, escape: false, unescape: false, Uint8Array: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["InstallGnuPG"];
/* Usage:
InstallGnuPG.start(progressListener).
progressListener needs to implement the following methods:
void onError (errorMessage)
boolean onWarning (message)
void onProgress (event)
void onLoaded (event)
void onDownloaded ()
void onStart (requestObj)
requestObj:
abort(): cancel download
onWarning can return true if the warning should be ignored, false otherwise
*/
var Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */
Cu.import("resource://enigmail/app.jsm"); /*global EnigmailApp: false */
Cu.import("resource://enigmail/promise.jsm"); /*global Promise: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const EXEC_FILE_PERMS = 0x1C0; // 0700
const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID =
"@mozilla.org/network/file-output-stream;1";
const DIR_SERV_CONTRACTID = "@mozilla.org/file/directory_service;1";
const NS_LOCAL_FILE_CONTRACTID = "@mozilla.org/file/local;1";
const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1";
const queryUrl = "https://www.enigmail.net/service/getGnupdDownload.svc";
function getTempDir() {
let ds = Cc[DIR_SERV_CONTRACTID].getService();
let dsprops = ds.QueryInterface(Ci.nsIProperties);
let tmpFile = dsprops.get("TmpD", Ci.nsIFile);
return tmpFile;
}
function toHexString(charCode) {
return ("0" + charCode.toString(16)).slice(-2);
}
function sanitizeFileName(str) {
// remove shell escape, #, ! and / from string
return str.replace(/[`\/\#\!]/g, "");
}
function sanitizeHash(str) {
return str.replace(/[^a-hA-H0-9]/g, "");
}
// Adapted from the patch for mozTCPSocket error reporting (bug 861196).
function createTCPErrorFromFailedXHR(xhr) {
let status = xhr.channel.QueryInterface(Ci.nsIRequest).status;
let errType;
let errName;
if ((status & 0xff0000) === 0x5a0000) { // Security module
const nsINSSErrorsService = Ci.nsINSSErrorsService;
let nssErrorsService = Cc['@mozilla.org/nss_errors_service;1'].getService(nsINSSErrorsService);
let errorClass;
// getErrorClass will throw a generic NS_ERROR_FAILURE if the error code is
// somehow not in the set of covered errors.
try {
errorClass = nssErrorsService.getErrorClass(status);
}
catch (ex) {
errorClass = 'SecurityProtocol';
}
if (errorClass == nsINSSErrorsService.ERROR_CLASS_BAD_CERT) {
errType = 'SecurityCertificate';
}
else {
errType = 'SecurityProtocol';
}
// NSS_SEC errors (happen below the base value because of negative vals)
if ((status & 0xffff) < Math.abs(nsINSSErrorsService.NSS_SEC_ERROR_BASE)) {
// The bases are actually negative, so in our positive numeric space, we
// need to subtract the base off our value.
let nssErr = Math.abs(nsINSSErrorsService.NSS_SEC_ERROR_BASE) -
(status & 0xffff);
switch (nssErr) {
case 11: // SEC_ERROR_EXPIRED_CERTIFICATE, sec(11)
errName = 'SecurityExpiredCertificateError';
break;
case 12: // SEC_ERROR_REVOKED_CERTIFICATE, sec(12)
errName = 'SecurityRevokedCertificateError';
break;
// per bsmith, we will be unable to tell these errors apart very soon,
// so it makes sense to just folder them all together already.
case 13: // SEC_ERROR_UNKNOWN_ISSUER, sec(13)
case 20: // SEC_ERROR_UNTRUSTED_ISSUER, sec(20)
case 21: // SEC_ERROR_UNTRUSTED_CERT, sec(21)
case 36: // SEC_ERROR_CA_CERT_INVALID, sec(36)
errName = 'SecurityUntrustedCertificateIssuerError';
break;
case 90: // SEC_ERROR_INADEQUATE_KEY_USAGE, sec(90)
errName = 'SecurityInadequateKeyUsageError';
break;
case 176: // SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED, sec(176)
errName = 'SecurityCertificateSignatureAlgorithmDisabledError';
break;
default:
errName = 'SecurityError';
break;
}
}
else {
let sslErr = Math.abs(nsINSSErrorsService.NSS_SSL_ERROR_BASE) -
(status & 0xffff);
switch (sslErr) {
case 3: // SSL_ERROR_NO_CERTIFICATE, ssl(3)
errName = 'SecurityNoCertificateError';
break;
case 4: // SSL_ERROR_BAD_CERTIFICATE, ssl(4)
errName = 'SecurityBadCertificateError';
break;
case 8: // SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE, ssl(8)
errName = 'SecurityUnsupportedCertificateTypeError';
break;
case 9: // SSL_ERROR_UNSUPPORTED_VERSION, ssl(9)
errName = 'SecurityUnsupportedTLSVersionError';
break;
case 12: // SSL_ERROR_BAD_CERT_DOMAIN, ssl(12)
errName = 'SecurityCertificateDomainMismatchError';
break;
default:
errName = 'SecurityError';
break;
}
}
}
else {
errType = 'Network';
switch (status) {
// connect to host:port failed
case 0x804B000C: // NS_ERROR_CONNECTION_REFUSED, network(13)
errName = 'ConnectionRefusedError';
break;
// network timeout error
case 0x804B000E: // NS_ERROR_NET_TIMEOUT, network(14)
errName = 'NetworkTimeoutError';
break;
// hostname lookup failed
case 0x804B001E: // NS_ERROR_UNKNOWN_HOST, network(30)
errName = 'DomainNotFoundError';
break;
case 0x804B0047: // NS_ERROR_NET_INTERRUPT, network(71)
errName = 'NetworkInterruptError';
break;
default:
errName = 'NetworkError';
break;
}
}
return {
name: errName,
type: errType
};
}
function Installer(progressListener) {
this.progressListener = progressListener;
}
Installer.prototype = {
installMacOs: function(deferred) {
EnigmailLog.DEBUG("installGnuPG.jsm: installMacOs\n");
var exitCode = -1;
var mountPath = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
mountPath.initWithPath("/Volumes/" + this.mount);
if (mountPath.exists()) {
let p = mountPath.path + " ";
let i = 1;
mountPath.initWithPath(p + i);
while (mountPath.exists() && i < 10) {
++i;
mountPath.initWithPath(p + i);
}
if (mountPath.exists()) {
throw "Error - cannot mount package";
}
}
this.mountPath = mountPath;
EnigmailLog.DEBUG("installGnuPG.jsm: installMacOs - mount Package\n");
var cmd = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
cmd.initWithPath("/usr/bin/open");
var args = ["-W", this.installerFile.path];
var proc = {
command: cmd,
arguments: args,
charset: null,
done: function(result) {
exitCode = result.exitCode;
}
};
try {
subprocess.call(proc).wait();
if (exitCode) throw "Installer failed with exit code " + exitCode;
}
catch (ex) {
EnigmailLog.ERROR("installGnuPG.jsm: installMacOs: subprocess.call failed with '" + ex.toString() + "'\n");
throw ex;
}
EnigmailLog.DEBUG("installGnuPG.jsm: installMacOs - run installer\n");
args = ["-W", this.mountPath.path + "/" + this.command];
proc = {
command: cmd,
arguments: args,
charset: null,
done: function(result) {
if (result.exitCode !== 0) {
deferred.reject("Installer failed with exit code " + result.exitCode);
}
else
deferred.resolve();
}
};
try {
subprocess.call(proc);
}
catch (ex) {
EnigmailLog.ERROR("installGnuPG.jsm: installMacOs: subprocess.call failed with '" + ex.toString() + "'\n");
throw ex;
}
},
cleanupMacOs: function() {
EnigmailLog.DEBUG("installGnuPG.jsm.cleanupMacOs: unmount package\n");
var cmd = Cc[NS_LOCAL_FILE_CONTRACTID].createInstance(Ci.nsIFile);
cmd.initWithPath("/usr/sbin/diskutil");
var args = ["eject", this.mountPath.path];
var proc = {
command: cmd,
arguments: args,
charset: null,
done: function(result) {
if (result.exitCode) EnigmailLog.ERROR("Installer failed with exit code " + result.exitCode);
}
};
try {
subprocess.call(proc).wait();
}
catch (ex) {
EnigmailLog.ERROR("installGnuPG.jsm.cleanupMacOs: subprocess.call failed with '" + ex.toString() + "'\n");
}
EnigmailLog.DEBUG("installGnuPG.jsm: cleanupMacOs - remove package\n");
this.installerFile.remove(false);
},
installWindows: function(deferred) {
EnigmailLog.DEBUG("installGnuPG.jsm: installWindows\n");
try {
// use runwAsync in order to get UAC approval on Windows 7 / 8 if required
var obs = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupports]),
observe: function(proc, aTopic, aData) {
EnigmailLog.DEBUG("installGnuPG.jsm: installWindows.observe: topic='" + aTopic + "' \n");
if (aTopic == "process-finished") {
EnigmailLog.DEBUG("installGnuPG.jsm: installWindows finished\n");
deferred.resolve();
}
else if (aTopic == "process-failed") {
deferred.reject("Installer could not be started");
}
}
};
var proc = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
proc.init(this.installerFile);
proc.runwAsync([], 0, obs, false);
}
catch (ex) {
deferred.reject("Installer could not be started");
}
},
cleanupWindows: function() {
EnigmailLog.DEBUG("installGnuPG.jsm: cleanupWindows - remove package\n");
this.installerFile.remove(false);
},
installUnix: function() {},
checkHashSum: function() {
EnigmailLog.DEBUG("installGnuPG.jsm: checkHashSum\n");
var istream = Components.classes["@mozilla.org/network/file-input-stream;1"]
.createInstance(Components.interfaces.nsIFileInputStream);
// open for reading
istream.init(this.installerFile, 0x01, 292, 0); // octal 0444 - octal literals are deprecated
var ch = Components.classes["@mozilla.org/security/hash;1"]
.createInstance(Components.interfaces.nsICryptoHash);
ch.init(ch.SHA1);
const PR_UINT32_MAX = 0xffffffff; // read entire file
ch.updateFromStream(istream, PR_UINT32_MAX);
var gotHash = ch.finish(false);
// convert the binary hash data to a hex string.
var hashStr = "";
for (let i in gotHash) {
hashStr += toHexString(gotHash.charCodeAt(i));
}
if (this.hash != hashStr) {
EnigmailLog.DEBUG("installGnuPG.jsm: checkHashSum - hash sums don't match: " + hashStr + "\n");
}
else
EnigmailLog.DEBUG("installGnuPG.jsm: checkHashSum - hash sum OK\n");
return this.hash == hashStr;
},
getDownloadUrl: function(on) {
let deferred = Promise.defer();
function reqListener() {
if (typeof(on.responseXML) == "object") {
EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl.reqListener: got: " + on.responseText + "\n");
if (!on.responseXML) {
onError({
type: "Network"
});
return;
}
let doc = on.responseXML.firstChild;
self.url = unescape(doc.getAttribute("url"));
self.hash = sanitizeHash(doc.getAttribute("hash"));
self.command = sanitizeFileName(doc.getAttribute("command"));
self.mount = sanitizeFileName(doc.getAttribute("mount"));
deferred.resolve();
}
}
function onError(error) {
deferred.reject("error");
if (self.progressListener) {
return self.progressListener.onError(error);
}
return false;
}
EnigmailLog.DEBUG("installGnuPG.jsm: getDownloadUrl: start request\n");
var self = this;
try {
var xulRuntime = Cc[XPCOM_APPINFO].getService(Ci.nsIXULRuntime);
var platform = xulRuntime.XPCOMABI.toLowerCase();
var os = EnigmailOS.getOS().toLowerCase();
// create a XMLHttpRequest object
var oReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
oReq.onload = reqListener;
oReq.addEventListener("error",
function(e) {
var error = createTCPErrorFromFailedXHR(oReq);
onError(error);
},
false);
oReq.open("get", queryUrl + "?vEnigmail=" + escape(EnigmailApp.getVersion()) + "&os=" + escape(os) + "&platform=" +
escape(platform), true);
oReq.send();
}
catch (ex) {
deferred.reject(ex);
EnigmailLog.writeException("installGnuPG.jsm", ex);
if (self.progressListener)
self.progressListener.onError("installGnuPG.downloadFailed");
}
return deferred.promise;
},
performDownload: function() {
EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: " + this.url + "\n");
var self = this;
var deferred = Promise.defer();
function onProgress(event) {
if (event.lengthComputable) {
var percentComplete = event.loaded / event.total;
EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: " + percentComplete * 100 + "% loaded\n");
}
else {
EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: got " + event.loaded + "bytes\n");
}
if (self.progressListener)
self.progressListener.onProgress(event);
}
function onError(error) {
deferred.reject("error");
if (self.progressListener)
self.progressListener.onError(error);
}
function onLoaded(event) {
EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: downloaded " + event.loaded + "bytes\n");
if (self.progressListener)
self.progressListener.onDownloaded();
try {
// this line used to read:
// performInstall(this.response).then(function _f() { performCleanup(); });
// but since this.response is never actually set anywhere, it should always be null
performInstall(null).then(function _f() {
performCleanup();
});
}
catch (ex) {
EnigmailLog.writeException("installGnuPG.jsm", ex);
if (self.progressListener)
self.progressListener.onError("installGnuPG.installFailed");
}
}
function performInstall(response) {
var arraybuffer = response; // not responseText
EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: bytes " + arraybuffer.byteLength + "\n");
try {
var flags = 0x02 | 0x08 | 0x20;
var fileOutStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream);
self.installerFile = getTempDir();
switch (EnigmailOS.getOS()) {
case "Darwin":
self.installerFile.append("gpgtools.dmg");
self.performCleanup = self.cleanupMacOs;
break;
case "WINNT":
self.installerFile.append("gpg4win.exe");
self.performCleanup = self.cleanupWindows;
break;
default:
self.installerFile.append("gpg-installer.bin");
self.performCleanup = null;
}
self.installerFile.createUnique(self.installerFile.NORMAL_FILE_TYPE, EXEC_FILE_PERMS);
EnigmailLog.DEBUG("installGnuPG.jsm: performDownload: writing file to " + self.installerFile.path + "\n");
fileOutStream.init(self.installerFile, flags, EXEC_FILE_PERMS, 0);
var binStr = Cc["@mozilla.org/binaryoutputstream;1"].createInstance(Ci.nsIBinaryOutputStream);
binStr.setOutputStream(fileOutStream.QueryInterface(Ci.nsIOutputStream));
var buf = new Uint8Array(arraybuffer);
binStr.writeByteArray(buf, buf.length);
binStr.flush();
binStr.close();
fileOutStream.close();
if (!self.checkHashSum()) {
var cont = true;
if (self.progressListener) {
cont = self.progressListener.onWarning("hashSumMismatch");
}
if (!cont) {
deferred.reject("Aborted due to hash sum error");
return null;
}
}
switch (EnigmailOS.getOS()) {
case "Darwin":
self.installMacOs(deferred);
break;
case "WINNT":
self.installWindows(deferred);
break;
default:
self.installUnix(deferred);
}
}
catch (ex) {
deferred.reject(ex);
EnigmailLog.writeException("installGnuPG.jsm", ex);
if (self.progressListener)
self.progressListener.onError("installGnuPG.installFailed");
}
return deferred.promise;
}
function performCleanup() {
EnigmailLog.DEBUG("installGnuPG.jsm: performCleanup:\n");
try {
if (self.performCleanup) self.performCleanup();
}
catch (ex) {}
if (self.progressListener) {
EnigmailLog.DEBUG("installGnuPG.jsm: performCleanup - onLoaded()\n");
self.progressListener.onLoaded();
}
}
try {
// create a XMLHttpRequest object
var oReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
oReq.addEventListener("load", onLoaded, false);
oReq.addEventListener("error",
function(e) {
var error = createTCPErrorFromFailedXHR(oReq);
onError(error);
},
false);
oReq.addEventListener("progress", onProgress, false);
oReq.open("get", this.url, true);
oReq.responseType = "arraybuffer";
if (self.progressListener)
self.progressListener.onStart({
abort: function() {
oReq.abort();
}
});
oReq.send();
}
catch (ex) {
deferred.reject(ex);
EnigmailLog.writeException("installGnuPG.jsm", ex);
if (self.progressListener)
self.progressListener.onError("installGnuPG.downloadFailed");
}
}
};
var InstallGnuPG = {
// check if there is a downloadable item for the given platform
// returns true if item available
checkAvailability: function() {
switch (EnigmailOS.getOS()) {
case "Darwin":
case "WINNT":
return true;
}
return false;
},
startInstaller: function(progressListener) {
var i = new Installer(progressListener);
i.getDownloadUrl(i).
then(function _dl() {
i.performDownload();
});
return i;
}
};
enigmail/package/key.jsm 0000664 0000000 0000000 00000020733 12667016244 0015556 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailKey"];
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/armor.jsm"); /*global EnigmailArmor: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
function KeyEntry(key) {
if (!(this instanceof KeyEntry)) {
return new KeyEntry(key);
}
// same data as in packetlist but in structured form
this.primaryKey = null;
this.revocationSignature = null;
this.directSignatures = null;
this.users = null;
this.subKeys = null;
this.packetlist2structure(this.parsePackets(key));
if (!this.primaryKey || !this.users) {
throw new Error('Invalid key: need at least key and user ID packet');
}
return this;
}
KeyEntry.prototype = {
parsePackets: function(key) {
const packetHeaders = [":public key packet:",
":user ID packet:",
":public sub key packet:",
":secret sub key packet:",
":signature packet:",
":secret key packet:"
];
var _packets = [];
function extractPackets(line) {
var is_packet_hr = false;
packetHeaders.forEach(
function(packet) {
if (line.search(packet) > -1) {
is_packet_hr = true;
var obj = {
tag: packet,
value: ""
};
_packets.push(obj);
}
});
if (!is_packet_hr) {
var obj = _packets.pop();
obj.value += line + "\n";
_packets.push(obj);
}
}
var lines = key.split("\n");
for (var i in lines) {
if (!lines[i].startsWith("gpg:")) extractPackets(lines[i]);
}
return _packets;
},
packetlist2structure: function(packetlist) {
for (var i = 0; i < packetlist.length; i++) {
var user, subKey;
switch (packetlist[i].tag) {
case ":secret key packet:":
this.primaryKey = packetlist[i];
break;
case ":user ID packet:":
if (!this.users) this.users = [];
user = packetlist[i];
this.users.push(user);
break;
case ":public sub key packet:":
case ":secret sub key packet:":
user = null;
if (!this.subKeys) this.subKeys = [];
subKey = packetlist[i];
this.subKeys.push(subKey);
break;
case ":signature packet:":
break;
}
}
}
};
var EnigmailKey = {
Entry: KeyEntry,
/**
* Format a key fingerprint
* @fingerprint |string| - unformated OpenPGP fingerprint
*
* @return |string| - formatted string
*/
formatFpr: function(fingerprint) {
//EnigmailLog.DEBUG("key.jsm: EnigmailKey.formatFpr(" + fingerprint + ")\n");
// format key fingerprint
let r = "";
const fpr = fingerprint.match(/(....)(....)(....)(....)(....)(....)(....)(....)(....)?(....)?/);
if (fpr && fpr.length > 2) {
fpr.shift();
r = fpr.join(" ");
}
return r;
},
// Extract public key from Status Message
extractPubkey: function(statusMsg) {
const matchb = statusMsg.match(/(^|\n)NO_PUBKEY (\w{8})(\w{8})/);
if (matchb && (matchb.length > 3)) {
EnigmailLog.DEBUG("enigmailCommon.jsm:: Enigmail.extractPubkey: NO_PUBKEY 0x" + matchb[3] + "\n");
return matchb[2] + matchb[3];
}
else {
return null;
}
},
/**
* Get details (key ID, UID) of the data contained in a OpenPGP key block
*
* @param keyBlockStr String: the contents of one or more public keys
* @param errorMsgObj Object: obj.value will contain an error message in case of failures
*
* @return Array of objects with the following structure:
* - id (key ID)
* - name (the UID of the key)
* - state (one of "old" [existing key], "new" [new key], "invalid" [key could not be imported])
*/
getKeyListFromKeyBlock: function(keyBlockStr, errorMsgObj) {
var ret = [];
const beginIndexObj = {};
const endIndexObj = {};
const blockType = EnigmailArmor.locateArmoredBlock(keyBlockStr, 0, "", beginIndexObj, endIndexObj, {});
if (!blockType) {
errorMsgObj.value = EnigmailLocale.getString("noPGPblock");
return ret;
}
if (blockType != "PUBLIC KEY BLOCK") {
errorMsgObj.value = EnigmailLocale.getString("notFirstBlock");
return ret;
}
const pgpBlock = keyBlockStr.substr(beginIndexObj.value,
endIndexObj.value - beginIndexObj.value + 1);
const tempDir = EnigmailFiles.createTempSubDir("enigmail_import");
const tempPath = EnigmailFiles.getFilePath(tempDir);
const args = EnigmailGpg.getStandardArgs(true).concat([
"--import",
"--trustdb", tempPath + "/trustdb",
"--no-default-keyring", "--keyring", tempPath + "/keyring"
]);
const exitCodeObj = {};
const statusMsgObj = {};
EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, pgpBlock, exitCodeObj, {}, statusMsgObj, errorMsgObj);
const statusMsg = statusMsgObj.value;
tempDir.remove(true);
var state = "newOrResult";
var lines = statusMsg.split("\n");
var idx = 0;
var cur = {};
while (state != "end") {
if (idx >= lines.length) {
errorMsgObj.value = EnigmailLocale.getString("cantImport");
return [];
}
EnigmailLog.DEBUG("state: '" + state + "', line: '" + lines[idx] + "'\n");
switch (state) {
case "newOrResult":
{
const imported = lines[idx].match(/^IMPORTED (\w+) (.+)/);
if (imported && (imported.length > 2)) {
EnigmailLog.DEBUG("new imported: " + imported[1] + " (" + imported[2] + ")\n");
state = "summary";
cur.id = imported[1];
cur.name = imported[2];
cur.state = "new";
idx += 1;
break;
}
const import_res = lines[idx].match(/^IMPORT_RES ([0-9 ]+)/);
if (import_res && (import_res.length > 1)) {
EnigmailLog.DEBUG("import result: " + import_res[1] + "\n");
state = "end";
}
else {
state = "summary";
}
break;
}
case "summary":
{
const import_ok = lines[idx].match(/^IMPORT_OK (\d+) (\w+)/);
if (import_ok && (import_ok.length > 2)) {
EnigmailLog.DEBUG("import ok: " + import_ok[1] + " (" + import_ok[2] + ")\n");
state = "newOrResult";
cur.fingerprint = import_ok[2];
if (cur.state === undefined) {
cur.state = "old";
}
ret.push(cur);
cur = {};
idx += 1;
break;
}
const import_err = lines[idx].match(/^IMPORT_PROBLEM (\d+) (\w+)/);
if (import_err && (import_err.length > 2)) {
EnigmailLog.DEBUG("import err: " + import_err[1] + " (" + import_err[2] + ")\n");
state = "newOrResult";
cur.fingerprint = import_err[2];
if (cur.state === undefined) {
cur.state = "invalid";
}
ret.push(cur);
cur = {};
idx += 1;
break;
}
errorMsgObj.value = EnigmailLocale.getString("cantImport");
return [];
}
default:
{
EnigmailLog.DEBUG("skip line '" + lines[idx] + "'\n");
idx += 1;
break;
}
}
}
errorMsgObj.value = "";
return ret;
},
/**
* Get details of a key block to import. Works identically as getKeyListFromKeyBlock();
* except that the input is a file instead of a string
*
* @param file nsIFile object - file to read
* @param errorMsgObj Object - obj.value will contain error message
*
* @return Array (same as for getKeyListFromKeyBlock())
*/
getKeyListFromKeyFile: function(path, errorMsgObj) {
var contents = EnigmailFiles.readFile(path);
return this.getKeyListFromKeyBlock(contents, errorMsgObj);
}
};
enigmail/package/keyEditor.jsm 0000664 0000000 0000000 00000120246 12667016244 0016725 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailKeyEditor"];
Components.utils.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Components.utils.import("resource://enigmail/key.jsm"); /*global EnigmailKey: false */
Components.utils.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Components.utils.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */
Components.utils.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Components.utils.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Components.utils.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
Components.utils.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Components.utils.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Components.utils.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Components.utils.import("resource://enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
Components.utils.import("resource://enigmail/errorHandling.jsm"); /*global EnigmailErrorHandling: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const GET_BOOL = "GET_BOOL";
const GET_LINE = "GET_LINE";
const GET_HIDDEN = "GET_HIDDEN";
const NS_PROMPTSERVICE_CONTRACTID = "@mozilla.org/embedcomp/prompt-service;1";
function GpgEditorInterface(reqObserver, callbackFunc, inputData) {
this._reqObserver = reqObserver;
this._callbackFunc = callbackFunc;
this._inputData = inputData;
if (this._inputData && this._inputData.cardAdmin) {
this._saveCmd = "quit";
}
else
this._saveCmd = "save";
}
GpgEditorInterface.prototype = {
_stdin: null,
_data: "",
_txt: "",
_exitCode: 0,
errorMsg: "",
setStdin: function(pipe) {
this._stdin = pipe;
if (this._data.length > 0) this.processData();
},
gotData: function(data) {
//EnigmailLog.DEBUG("keyEditor.jsm: GpgEditorInterface.gotData: '"+data+"'\n");
this._data += data.replace(/\r\n/g, "\n");
this.processData();
},
processData: function() {
//EnigmailLog.DEBUG("keyEditor.jsm: GpgEditorInterface.processData\n");
var txt = "";
while (this._data.length > 0 && this._stdin) {
var index = this._data.indexOf("\n");
if (index < 0) {
txt = this._data;
this._data = "";
}
else {
txt = this._data.substr(0, index);
this._data = this._data.substr(index + 1);
}
this.nextLine(txt);
}
},
closeStdin: function() {
EnigmailLog.DEBUG("keyEditor.jsm: GpgEditorInterface.closeStdin:\n");
if (this._stdin) {
this._stdin.close();
this._stdin = null;
}
},
done: function(parentCallback, exitCode) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.done: exitCode=" + exitCode + "\n");
if (exitCode === 0) exitCode = this._exitCode;
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.done: returning exitCode " + exitCode + "\n");
parentCallback(exitCode, this.errorMsg);
},
writeLine: function(inputData) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.writeLine: '" + inputData + "'\n");
this._stdin.write(inputData + "\n");
},
nextLine: function(txt) {
if (txt.indexOf("[GNUPG:]") >= 0) {
if (this._reqObserver) {
var newTxt = this._reqObserver.onDataAvailable(txt);
if (newTxt.length > 0) {
txt = newTxt;
}
}
this._txt = txt;
this.processLine(txt);
}
},
doCheck: function(inputType, promptVal) {
var a = this._txt.split(/ /);
return ((a[1] == inputType) && (a[2] == promptVal));
},
getText: function() {
return this._txt;
},
handleGpgError: function(lineTxt) {
let retStatusObj = {};
EnigmailErrorHandling.parseErrorOutput(lineTxt, retStatusObj);
return retStatusObj;
},
processLine: function(txt) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: '" + txt + "'\n");
var r = {
quitNow: false,
exitCode: -1
};
try {
if (txt.indexOf("[GNUPG:] BAD_PASSPHRASE") >= 0 ||
txt.indexOf("[GNUPG:] SC_OP_FAILURE 2") >= 0) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: detected bad passphrase\n");
r.exitCode = -2;
r.quitNow = true;
this.errorMsg = EnigmailLocale.getString("badPhrase");
}
else if (txt.indexOf("[GNUPG:] ERROR ") >= 0 || txt.indexOf("[GNUPG:] FAILURE ") >= 0) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: detected GnuPG ERROR message\n");
let statusObj = this.handleGpgError(txt);
if (statusObj.statusFlags & Ci.nsIEnigmail.DISPLAY_MESSAGE) {
this.errorMsg = statusObj.statusMsg;
r.exitCode = -3;
r.quitNow = true;
}
}
else if (txt.indexOf("[GNUPG:] NO_CARD_AVAILABLE") >= 0) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: detected missing card\n");
this.errorMsg = EnigmailLocale.getString("sc.noCardAvailable");
r.exitCode = -3;
r.quitNow = true;
}
else if (txt.indexOf("[GNUPG:] ENIGMAIL_FAILURE") === 0) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: detected general failure\n");
r.exitCode = -3;
r.quitNow = true;
this.errorMsg = txt.substr(26);
}
else if (txt.indexOf("[GNUPG:] ALREADY_SIGNED") >= 0) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: detected key already signed\n");
this.errorMsg = EnigmailLocale.getString("keyAlreadySigned");
r.exitCode = -1;
r.quitNow = true;
}
else if (txt.indexOf("[GNUPG:] MISSING_PASSPHRASE") >= 0) {
EnigmailLog.DEBUG("keyManagmenent.jsm: GpgEditorInterface.processLine: detected missing passphrase\n");
this.errorMsg = EnigmailLocale.getString("noPassphrase");
r.exitCode = -2;
this._exitCode = -2;
r.quitNow = true;
}
else if (txt.indexOf("[GNUPG:] GET_") < 0) {
// return if no "GET" statement
return;
}
}
catch (ex) {
txt = "";
r.quitNow = true;
}
if (!r.quitNow) {
if (txt.indexOf("[GNUPG:] GOT_IT") < 0) {
if (this._callbackFunc) {
this._callbackFunc(this._inputData, this, r);
if (r.exitCode === 0) {
this.writeLine(r.writeTxt);
}
else {
if (r.errorMsg && r.errorMsg.length > 0)
this.errorMsg = r.errorMsg;
}
}
else {
r.quitNow = true;
r.exitCode = 0;
}
}
else {
r.exitCode = 0;
}
}
if (r.quitNow) {
try {
this.writeLine(this._saveCmd);
this.closeStdin();
}
catch (ex) {
EnigmailLog.DEBUG("no more data\n");
}
}
if (r.exitCode !== null)
this._exitCode = r.exitCode;
},
QueryInterface: function(iid) {
if (!iid.equals(Ci.nsISupports))
throw Components.results.NS_ERROR_NO_INTERFACE;
return this;
}
};
function editKey(parent, needPassphrase, userId, keyId, editCmd, inputData, callbackFunc, requestObserver, parentCallback) {
EnigmailLog.DEBUG("keyManagmenent.jsm: editKey: parent=" + parent + ", editCmd=" + editCmd + "\n");
if (!EnigmailCore.getService(parent)) {
EnigmailLog.ERROR("keyManagmenent.jsm: Enigmail.editKey: not yet initialized\n");
parentCallback(-1, EnigmailLocale.getString("notInit"));
return -1;
}
var keyIdList = keyId.split(" ");
var args = EnigmailGpg.getStandardArgs(false);
var statusFlags = {};
args = args.concat(["--no-tty", "--status-fd", "1", "--logger-fd", "1", "--command-fd", "0"]);
if (userId) args = args.concat(["-u", userId]);
var editCmdArr;
if (typeof(editCmd) == "string") {
editCmdArr = [editCmd];
}
else {
editCmdArr = editCmd;
}
if (editCmdArr[0] == "revoke") {
// escape backslashes and ' characters
args = args.concat(["-a", "-o"]);
args.push(EnigmailFiles.getEscapedFilename(inputData.outFile.path));
args.push("--gen-revoke");
args = args.concat(keyIdList);
}
else if (editCmdArr[0].indexOf("--") === 0) {
args = args.concat(editCmd);
args = args.concat(keyIdList);
}
else {
args = args.concat(["--ask-cert-level", "--edit-key", keyId]);
args = args.concat(editCmd);
}
var command = EnigmailGpgAgent.agentPath;
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(command, args) + "\n");
var keyEdit = new GpgEditorInterface(requestObserver, callbackFunc, inputData);
try {
EnigmailExecution.execCmd2(command, args,
keyEdit.setStdin.bind(keyEdit),
keyEdit.gotData.bind(keyEdit),
function(result) {
keyEdit.done(parentCallback, result.exitCode);
}
);
}
catch (ex) {
EnigmailLog.ERROR("keyEditor.jsm: editKey: " + command.path + " failed\n");
parentCallback(-1, "");
}
}
/*
* NOTE: the callbackFunc used in every call to the key editor needs to be implemented like this:
* callbackFunc(returnCode, errorMsg)
* returnCode = 0 in case of success
* returnCode != 0 and errorMsg set in case of failure
*/
const EnigmailKeyEditor = {
setKeyTrust: function(parent, keyId, trustLevel, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.setKeyTrust: trustLevel=" + trustLevel + ", keyId=" + keyId + "\n");
return editKey(parent, false, null, keyId, "trust", {
trustLevel: trustLevel
},
keyTrustCallback,
null,
callbackFunc);
},
/**
* Call editKey() to set the expiration date of the chosen key and subkeys
*
* @param Object parent
* @param String keyId e.g. 8D18EB22FDF633A2
* @param Array subKeys List of Integer values, e.g. [0,1,3]
* "0" should allways be set because it's the main key.
* @param Integer expiryLength A number between 1 and 100
* @param Integer timeScale 1 or 30 or 365 meaning days, months, years
* @param Boolean noExpiry True: Expire never. False: Use expiryLength.
* @param Function callbackFunc will be executed by editKey()
* @return Integer
* returnCode = 0 in case of success
* returnCode != 0 and errorMsg set in case of failure
*/
setKeyExpiration: function(parent, keyId, subKeys, expiryLength, timeScale, noExpiry, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.setKeyExpiry: keyId=" + keyId + "\n");
expiryLength = String(expiryLength);
if (noExpiry === true) {
expiryLength = "0";
}
else {
switch (parseInt(timeScale, 10)) {
case 365:
expiryLength += "y";
break;
case 30:
expiryLength += "m";
break;
case 7:
expiryLength += "w";
break;
}
}
return editKey(parent,
true,
null,
keyId,
"", /* "expire", */ {
expiryLength: expiryLength,
subKeys: subKeys,
currentSubKey: false
},
keyExpiryCallback, /* contains the gpg communication logic */
null,
callbackFunc);
},
signKey: function(parent, userId, keyId, signLocally, trustLevel, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.signKey: trustLevel=" + trustLevel + ", userId=" + userId + ", keyId=" + keyId + "\n");
return editKey(parent, true, userId, keyId, (signLocally ? "lsign" : "sign"), {
trustLevel: trustLevel,
usePassphrase: true
},
signKeyCallback,
null,
callbackFunc);
},
genRevokeCert: function(parent, keyId, outFile, reasonCode, reasonText, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.genRevokeCert: keyId=" + keyId + "\n");
/**
* GnuPG < 2.1 does not properly report failures;
* therefore we check if the revokation certificate was really generated
*/
function checkGeneratedCert(exitCode, errorMsg) {
if (!outFile.exists()) {
exitCode = 1;
errorMsg = "";
}
callbackFunc(exitCode, errorMsg);
}
return editKey(parent, true, null, keyId, "revoke", {
outFile: outFile,
reasonCode: reasonCode,
reasonText: EnigmailData.convertFromUnicode(reasonText),
usePassphrase: true
},
revokeCertCallback,
null,
checkGeneratedCert);
},
addUid: function(parent, keyId, name, email, comment, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.addUid: keyId=" + keyId + ", name=" + name + ", email=" + email + "\n");
return editKey(parent, true, null, keyId, "adduid", {
email: email,
name: name,
comment: comment,
nameAsked: 0,
emailAsked: 0,
usePassphrase: true
},
addUidCallback,
null,
callbackFunc);
},
deleteKey: function(parent, keyId, deleteSecretKey, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.addUid: keyId=" + keyId + ", deleteSecretKey=" + deleteSecretKey + "\n");
var cmd = (deleteSecretKey ? "--delete-secret-and-public-key" : "--delete-key");
return editKey(parent, false, null, keyId, cmd, {
usePassphrase: true
},
deleteKeyCallback,
null,
callbackFunc);
},
changePassphrase: function(parent, keyId, oldPw, newPw, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.changePassphrase: keyId=" + keyId + "\n");
var pwdObserver = new ChangePasswdObserver();
return editKey(parent, false, null, keyId, "passwd", {
oldPw: oldPw,
newPw: newPw,
useAgent: EnigmailGpgAgent.useGpgAgent(),
step: 0,
observer: pwdObserver,
usePassphrase: true
},
changePassphraseCallback,
pwdObserver,
callbackFunc);
},
enableDisableKey: function(parent, keyId, disableKey, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.enableDisableKey: keyId=" + keyId + ", disableKey=" + disableKey + "\n");
var cmd = (disableKey ? "disable" : "enable");
return editKey(parent, false, null, keyId, cmd, {
usePassphrase: true
},
null,
null,
callbackFunc);
},
setPrimaryUid: function(parent, keyId, idNumber, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.setPrimaryUid: keyId=" + keyId + ", idNumber=" + idNumber + "\n");
return editKey(parent, true, null, keyId, "", {
idNumber: idNumber,
step: 0,
usePassphrase: true
},
setPrimaryUidCallback,
null,
callbackFunc);
},
deleteUid: function(parent, keyId, idNumber, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.deleteUid: keyId=" + keyId + ", idNumber=" + idNumber + "\n");
return editKey(parent, true, null, keyId, "", {
idNumber: idNumber,
step: 0,
usePassphrase: true
},
deleteUidCallback,
null,
callbackFunc);
},
revokeUid: function(parent, keyId, idNumber, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.revokeUid: keyId=" + keyId + ", idNumber=" + idNumber + "\n");
return editKey(parent, true, null, keyId, "", {
idNumber: idNumber,
step: 0,
usePassphrase: true
},
revokeUidCallback,
null,
callbackFunc);
},
addPhoto: function(parent, keyId, photoFile, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.addPhoto: keyId=" + keyId + "\n");
var photoFileName = EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(photoFile.QueryInterface(Ci.nsIFile)));
return editKey(parent, true, null, keyId, "addphoto", {
file: photoFileName,
step: 0,
usePassphrase: true
},
addPhotoCallback,
null,
callbackFunc);
},
genCardKey: function(parent, name, email, comment, expiry, backupPasswd, requestObserver, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.genCardKey: \n");
var generateObserver = new EnigCardAdminObserver(requestObserver, EnigmailOS.isDosLike());
return editKey(parent, false, null, "", ["--with-colons", "--card-edit"], {
step: 0,
name: EnigmailData.convertFromUnicode(name),
email: email,
comment: EnigmailData.convertFromUnicode(comment),
expiry: expiry,
backupPasswd: backupPasswd,
cardAdmin: true,
backupKey: (backupPasswd.length > 0 ? "Y" : "N"),
parent: parent
},
genCardKeyCallback,
generateObserver,
callbackFunc);
},
cardAdminData: function(parent, name, firstname, lang, sex, url, login, forcepin, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.cardAdminData: parent=" + parent + ", name=" + name + ", firstname=" + firstname + ", lang=" + lang + ", sex=" + sex + ", url=" + url +
", login=" + login + ", forcepin=" + forcepin + "\n");
var adminObserver = new EnigCardAdminObserver(null, EnigmailOS.isDosLike());
return editKey(parent, false, null, "", ["--with-colons", "--card-edit"], {
step: 0,
name: name,
firstname: firstname,
lang: lang,
sex: sex,
url: url,
login: login,
cardAdmin: true,
forcepin: forcepin
},
cardAdminDataCallback,
adminObserver,
callbackFunc);
},
cardChangePin: function(parent, action, oldPin, newPin, adminPin, pinObserver, callbackFunc) {
EnigmailLog.DEBUG("keyManagmenent.jsm: Enigmail.cardChangePin: parent=" + parent + ", action=" + action + "\n");
var adminObserver = new EnigCardAdminObserver(pinObserver, EnigmailOS.isDosLike());
return editKey(parent, EnigmailGpgAgent.useGpgAgent(), null, "", ["--with-colons", "--card-edit"], {
step: 0,
pinStep: 0,
cardAdmin: true,
action: action,
oldPin: oldPin,
newPin: newPin,
adminPin: adminPin
},
cardChangePinCallback,
adminObserver,
callbackFunc);
}
}; // EnigmailKeyEditor
function keyReadCallback(outputData, ret) {
outputData.keyObj = new EnigmailKey.Entry(outputData.key);
ret.exitCode = 0;
}
function signKeyCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_BOOL, "sign_uid.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_BOOL, "keyedit.sign_all.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_LINE, "sign_uid.expire")) {
ret.exitCode = 0;
ret.writeTxt = "0";
}
else if (keyEdit.doCheck(GET_LINE, "trustsig_prompt.trust_value")) {
ret.exitCode = 0;
ret.writeTxt = "0";
}
else if (keyEdit.doCheck(GET_LINE, "trustsig_prompt.trust_depth")) {
ret.exitCode = 0;
ret.writeTxt = "";
}
else if (keyEdit.doCheck(GET_LINE, "trustsig_prompt.trust_regexp")) {
ret.exitCode = 0;
ret.writeTxt = "0";
}
else if (keyEdit.doCheck(GET_LINE, "siggen.valid")) {
ret.exitCode = 0;
ret.writeTxt = "0";
}
else if (keyEdit.doCheck(GET_BOOL, "sign_uid.local_promote_okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_LINE, "sign_uid.class")) {
ret.exitCode = 0;
ret.writeTxt = String(inputData.trustLevel);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
ret.exitCode = 0;
ret.quitNow = true;
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function keyTrustCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "edit_ownertrust.value")) {
ret.exitCode = 0;
ret.writeTxt = String(inputData.trustLevel);
}
else if (keyEdit.doCheck(GET_BOOL, "edit_ownertrust.set_ultimate.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
ret.exitCode = 0;
ret.quitNow = true;
EnigmailKeyRing.clearCache();
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
/**
*
* @param Array inputData Has the keys ...
* expiryLength (String): e.g. 8m = 8 month, 5 = 5 days, 3y = 3 years, 0 = never
* subKeys (array): list of still unprocessed subkeys
* currentSubKey (Integer or false): current subkey in progress
* @param Object keyEdit Readonly messages from GPG.
* @param Object ret
*/
function keyExpiryCallback(inputData, keyEdit, ret) {
EnigmailLog.DEBUG("keyManagmenent.jsm: keyExpiryCallback()\n");
ret.writeTxt = "";
ret.errorMsg = "";
if (inputData.subKeys.length === 0) {
// zero keys are submitted to edit: this must be a mistake.
ret.exitCode = -1;
ret.quitNow = true;
}
else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
if (inputData.currentSubKey === false) {
// currently no subkey is selected. Chose the first subkey.
inputData.currentSubKey = inputData.subKeys[0];
ret.exitCode = 0;
ret.writeTxt = "key " + inputData.currentSubKey;
}
else if (inputData.currentSubKey === inputData.subKeys[0]) {
// a subkey is selected. execute command "expire"
ret.exitCode = 0;
ret.writeTxt = "expire";
}
else {
// if (inputData.currentSubKey === inputData.subKeys[0])
// unselect the previous used subkey
ret.exitCode = 0;
ret.writeTxt = "key " + inputData.currentSubKey;
inputData.currentSubKey = false;
}
}
else if (keyEdit.doCheck(GET_LINE, "keygen.valid")) {
// submit the expiry length.
ret.exitCode = 0;
ret.writeTxt = inputData.expiryLength;
// processing of the current subkey is through.
// remove current subkey from list of "to be processed keys".
inputData.subKeys.splice(0, 1);
// if the list of "to be processed keys" is empty, then quit.
if (inputData.subKeys.length === 0) {
ret.quitNow = true;
}
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function addUidCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "keygen.name")) {
++inputData.nameAsked;
if (inputData.nameAsked == 1) {
ret.exitCode = 0;
ret.writeTxt = inputData.name;
}
else {
ret.exitCode = -1;
ret.quitNow = true;
ret.errorMsg = "Invalid name (too short)";
}
}
else if (keyEdit.doCheck(GET_LINE, "keygen.email")) {
++inputData.emailAsked;
if (inputData.emailAsked == 1) {
ret.exitCode = 0;
ret.writeTxt = inputData.email;
}
else {
ret.exitCode = -1;
ret.quitNow = true;
ret.errorMsg = "Invalid email";
}
}
else if (keyEdit.doCheck(GET_LINE, "keygen.comment")) {
ret.exitCode = 0;
if (inputData.comment) {
ret.writeTxt = inputData.comment;
}
else {
ret.writeTxt = "";
}
}
else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
ret.exitCode = 0;
ret.quitNow = true;
EnigmailKeyRing.clearCache();
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function revokeCertCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.code")) {
ret.exitCode = 0;
ret.writeTxt = String(inputData.reasonCode);
}
else if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.text")) {
ret.exitCode = 0;
ret.writeTxt = "";
}
else if (keyEdit.doCheck(GET_BOOL, "gen_revoke.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_BOOL, "ask_revocation_reason.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_BOOL, "openfile.overwrite.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
ret.exitCode = 0;
ret.quitNow = true;
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function setPrimaryUidCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
++inputData.step;
switch (inputData.step) {
case 1:
ret.exitCode = 0;
ret.writeTxt = "uid " + inputData.idNumber;
break;
case 2:
ret.exitCode = 0;
ret.writeTxt = "primary";
break;
case 3:
ret.exitCode = 0;
ret.quitNow = true;
EnigmailKeyRing.clearCache();
break;
default:
ret.exitCode = -1;
ret.quitNow = true;
}
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function changePassphraseCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_HIDDEN, "passphrase.enter")) {
switch (inputData.observer.passphraseStatus) {
case 0:
ret.writeTxt = inputData.oldPw;
ret.exitCode = 0;
break;
case 1:
ret.writeTxt = inputData.newPw;
ret.exitCode = 0;
break;
case -1:
ret.exitCode = -2;
ret.quitNow = true;
break;
}
}
else if (keyEdit.doCheck(GET_BOOL, "change_passwd.empty.okay")) {
ret.writeTxt = "Y";
ret.exitCode = 0;
}
else if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
if (inputData.useAgent) {
ret.exitCode = 0;
}
else
ret.exitCode = null;
ret.quitNow = true;
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function deleteUidCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
++inputData.step;
switch (inputData.step) {
case 1:
ret.exitCode = 0;
ret.writeTxt = "uid " + inputData.idNumber;
break;
case 2:
ret.exitCode = 0;
ret.writeTxt = "deluid";
break;
case 4:
ret.exitCode = 0;
ret.quitNow = true;
EnigmailKeyRing.clearCache();
break;
default:
ret.exitCode = -1;
ret.quitNow = true;
}
}
else if (keyEdit.doCheck(GET_BOOL, "keyedit.remove.uid.okay")) {
++inputData.step;
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function revokeUidCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
++inputData.step;
switch (inputData.step) {
case 1:
ret.exitCode = 0;
ret.writeTxt = "uid " + inputData.idNumber;
break;
case 2:
ret.exitCode = 0;
ret.writeTxt = "revuid";
break;
case 7:
ret.exitCode = 0;
ret.quitNow = true;
EnigmailKeyRing.clearCache();
break;
default:
ret.exitCode = -1;
ret.quitNow = true;
}
}
else if (keyEdit.doCheck(GET_BOOL, "keyedit.revoke.uid.okay")) {
++inputData.step;
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.code")) {
++inputData.step;
ret.exitCode = 0;
ret.writeTxt = "0"; // no reason specified
}
else if (keyEdit.doCheck(GET_LINE, "ask_revocation_reason.text")) {
++inputData.step;
ret.exitCode = 0;
ret.writeTxt = "";
}
else if (keyEdit.doCheck(GET_BOOL, "ask_revocation_reason.okay")) {
++inputData.step;
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function deleteKeyCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_BOOL, "delete_key.secret.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_BOOL, "keyedit.remove.subkey.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_BOOL, "delete_key.okay")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function getPin(domWindow, promptMsg, ret) {
EnigmailLog.DEBUG("keyManagmenent.jsm: getPin: \n");
var passwdObj = {
value: ""
};
var dummyObj = {};
var success = false;
var promptService = Cc[NS_PROMPTSERVICE_CONTRACTID].getService(Ci.nsIPromptService);
success = promptService.promptPassword(domWindow,
EnigmailLocale.getString("Enigmail"),
promptMsg,
passwdObj,
null,
dummyObj);
if (!success) {
ret.errorMsg = EnigmailLocale.getString("noPassphrase");
ret.quitNow = true;
return false;
}
EnigmailLog.DEBUG("keyManagmenent.jsm: getPin: got pin\n");
ret.writeTxt = passwdObj.value;
return true;
}
function genCardKeyCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
var pinObj = {};
if (keyEdit.doCheck(GET_LINE, "cardedit.prompt")) {
if (inputData.step === 0) {
ret.exitCode = 0;
ret.writeTxt = "admin";
}
else if (inputData.step == 1) {
ret.exitCode = 0;
ret.writeTxt = "generate";
}
else {
ret.exitCode = 0;
ret.quitNow = true;
ret.writeTxt = "quit";
}
++inputData.step;
}
else if (keyEdit.doCheck(GET_LINE, "cardedit.genkeys.backup_enc") ||
keyEdit.doCheck(GET_BOOL, "cardedit.genkeys.backup_enc")) {
ret.exitCode = 0;
ret.writeTxt = String(inputData.backupKey);
}
else if (keyEdit.doCheck(GET_BOOL, "cardedit.genkeys.replace_keys")) {
ret.exitCode = 0;
ret.writeTxt = "Y";
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.enter")) {
ret.exitCode = 0;
ret.writeTxt = inputData.backupPasswd;
}
else if (keyEdit.doCheck(GET_LINE, "keygen.valid")) {
ret.exitCode = 0;
ret.writeTxt = String(inputData.expiry);
}
else if (keyEdit.doCheck(GET_LINE, "cardedit.genkeys.size")) {
ret.exitCode = 0;
ret.writeTxt = "2048";
}
else if (keyEdit.doCheck(GET_LINE, "keygen.name")) {
ret.exitCode = 0;
ret.writeTxt = inputData.name;
}
else if (keyEdit.doCheck(GET_LINE, "keygen.email")) {
ret.exitCode = 0;
ret.writeTxt = inputData.email;
}
else if (keyEdit.doCheck(GET_LINE, "keygen.comment")) {
ret.exitCode = 0;
if (inputData.comment) {
ret.writeTxt = inputData.comment;
}
else {
ret.writeTxt = "";
}
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function cardAdminDataCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
var pinObj = {};
if (keyEdit.doCheck(GET_LINE, "cardedit.prompt")) {
++inputData.step;
ret.exitCode = 0;
switch (inputData.step) {
case 1:
ret.writeTxt = "admin";
break;
case 2:
ret.writeTxt = "name";
break;
case 3:
ret.writeTxt = "lang";
break;
case 4:
ret.writeTxt = "sex";
break;
case 5:
ret.writeTxt = "url";
break;
case 6:
ret.writeTxt = "login";
break;
case 7:
if (inputData.forcepin !== 0) {
ret.writeTxt = "forcesig";
}
else {
ret.writeTxt = "quit";
ret.exitCode = 0;
ret.quitNow = true;
}
break;
default:
ret.writeTxt = "quit";
ret.exitCode = 0;
ret.quitNow = true;
break;
}
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else if (keyEdit.doCheck(GET_LINE, "keygen.smartcard.surname")) {
ret.exitCode = 0;
ret.writeTxt = inputData.name.replace(/^$/, "-");
}
else if (keyEdit.doCheck(GET_LINE, "keygen.smartcard.givenname")) {
ret.exitCode = 0;
ret.writeTxt = inputData.firstname.replace(/^$/, "-");
}
else if (keyEdit.doCheck(GET_LINE, "cardedit.change_sex")) {
ret.exitCode = 0;
ret.writeTxt = inputData.sex;
}
else if (keyEdit.doCheck(GET_LINE, "cardedit.change_lang")) {
ret.exitCode = 0;
ret.writeTxt = inputData.lang.replace(/^$/, "-");
}
else if (keyEdit.doCheck(GET_LINE, "cardedit.change_url")) {
ret.exitCode = 0;
ret.writeTxt = inputData.url.replace(/^$/, "-");
}
else if (keyEdit.doCheck(GET_LINE, "cardedit.change_login")) {
ret.exitCode = 0;
ret.writeTxt = inputData.login.replace(/^$/, "-");
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function cardChangePinCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "cardedit.prompt")) {
++inputData.step;
ret.exitCode = 0;
switch (inputData.step) {
case 1:
ret.writeTxt = "admin";
break;
case 2:
ret.writeTxt = "passwd";
break;
default:
ret.writeTxt = "quit";
ret.exitCode = 0;
ret.quitNow = true;
break;
}
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
ret.exitCode = 0;
ret.writeTxt = inputData.adminPin;
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
ret.exitCode = 0;
ret.writeTxt = inputData.oldPin;
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.new.ask") ||
keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.repeat") ||
keyEdit.doCheck(GET_HIDDEN, "passphrase.ask") ||
keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.new.ask")) {
ret.exitCode = 0;
ret.writeTxt = inputData.newPin;
}
else if (keyEdit.doCheck(GET_LINE, "cardutil.change_pin.menu")) {
ret.exitCode = 0;
++inputData.pinStep;
if (inputData.pinStep == 1) {
ret.writeTxt = inputData.action.toString();
}
else {
ret.writeTxt = "Q";
}
}
else {
ret.exitCode = -1;
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
}
}
function addPhotoCallback(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
if (keyEdit.doCheck(GET_LINE, "keyedit.prompt")) {
ret.exitCode = 0;
ret.writeTxt = "save";
ret.quitNow = true;
}
else if (keyEdit.doCheck(GET_LINE, "photoid.jpeg.add")) {
if (inputData.step === 0) {
++inputData.step;
ret.exitCode = 0;
ret.writeTxt = inputData.file;
}
else {
ret.exitCode = -1;
ret.quitNow = true;
}
}
else if (keyEdit.doCheck(GET_BOOL, "photoid.jpeg.size")) {
ret.exitCode = 0;
ret.writeTxt = "Y"; // add large file
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.adminpin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterAdminPin"), ret);
}
else if (keyEdit.doCheck(GET_HIDDEN, "passphrase.pin.ask")) {
getPin(inputData.parent, EnigmailLocale.getString("enterCardPin"), ret);
}
else {
ret.quitNow = true;
EnigmailLog.ERROR("Unknown command prompt: " + keyEdit.getText() + "\n");
ret.exitCode = -1;
}
}
function EnigCardAdminObserver(guiObserver, isDosLike) {
this._guiObserver = guiObserver;
this._isDosLike = isDosLike;
}
EnigCardAdminObserver.prototype = {
_guiObserver: null,
_failureCode: 0,
QueryInterface: function(iid) {
if (iid.equals(Ci.nsIEnigMimeReadCallback) ||
iid.equals(Ci.nsISupports))
return this;
throw Components.results.NS_NOINTERFACE;
},
onDataAvailable: function(data) {
var ret = "";
EnigmailLog.DEBUG("keyManagmenent.jsm: enigCardAdminObserver.onDataAvailable: data=" + data + "\n");
if (this._isDosLike && data.indexOf("[GNUPG:] BACKUP_KEY_CREATED") === 0) {
data = data.replace(/\//g, "\\");
}
if (data.indexOf("[GNUPG:] SC_OP_FAILURE") >= 0) {
data = data.substr(23);
if (data == "2") {
data = "[GNUPG:] BAD_PASSPHRASE 0";
this._failureCode = 2;
}
else
this._failureCode = 1;
}
if (this._failureCode == 1) {
ret = "[GNUPG:] ENIGMAIL_FAILURE " + data;
}
if (this._guiObserver) {
this._guiObserver.onDataAvailable(data);
}
return ret;
}
};
function ChangePasswdObserver() {}
ChangePasswdObserver.prototype = {
_failureCode: 0,
passphraseStatus: 0,
QueryInterface: function(iid) {
if (iid.equals(Ci.nsIEnigMimeReadCallback) ||
iid.equals(Ci.nsISupports))
return this;
throw Components.results.NS_NOINTERFACE;
},
onDataAvailable: function(data) {
var ret = "";
EnigmailLog.DEBUG("keyManagmenent.jsm: ChangePasswdObserver.onDataAvailable: data=" + data + "\n");
if (this._failureCode) {
ret = "[GNUPG:] ENIGMAIL_FAILURE " + data;
}
if (data.indexOf("[GNUPG:] GOOD_PASSPHRASE") >= 0) {
this.passphraseStatus = 1;
}
else if (data.indexOf("[GNUPG:] BAD_PASSPHRASE") >= 0) {
this.passphraseStatus = -1;
}
return ret;
}
};
enigmail/package/keyRing.jsm 0000664 0000000 0000000 00000170544 12667016244 0016404 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailKeyRing"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/execution.jsm"); /*global EnigmailExecution: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/trust.jsm"); /*global EnigmailTrust: false */
Cu.import("resource://enigmail/armor.jsm"); /*global EnigmailArmor: false */
Cu.import("resource://enigmail/os.jsm"); /*global EnigmailOS: false */
Cu.import("resource://enigmail/time.jsm"); /*global EnigmailTime: false */
Cu.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
Cu.import("resource://enigmail/windows.jsm"); /*global EnigmailWindows: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
Cu.import("resource://enigmail/funcs.jsm"); /* global EnigmailFuncs: false */
Cu.import("resource://enigmail/lazy.jsm"); /*global EnigmailLazy: false */
Cu.import("resource://enigmail/key.jsm"); /*global EnigmailKey: false */
const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog");
const nsIEnigmail = Ci.nsIEnigmail;
const NS_RDONLY = 0x01;
const NS_WRONLY = 0x02;
const NS_CREATE_FILE = 0x08;
const NS_TRUNCATE = 0x20;
const DEFAULT_FILE_PERMS = 0x180; // equals 0600
const NS_LOCALFILEOUTPUTSTREAM_CONTRACTID =
"@mozilla.org/network/file-output-stream;1";
// field ID's of key list (as described in the doc/DETAILS file in the GnuPG distribution)
const ENTRY_ID = 0;
const KEY_TRUST_ID = 1;
const KEY_SIZE_ID = 2;
const KEY_ALGO_ID = 3;
const KEY_ID = 4;
const CREATED_ID = 5;
const EXPIRY_ID = 6;
const UID_ID = 7;
const OWNERTRUST_ID = 8;
const USERID_ID = 9;
const SIG_TYPE_ID = 10;
const KEY_USE_FOR_ID = 11;
const UNKNOWN_SIGNATURE = "[User ID not found]";
const KEYTYPE_DSA = 1;
const KEYTYPE_RSA = 2;
let keygenProcess = null;
let gKeyListObj = null;
let gKeyIndex = [];
let gSubkeyIndex = [];
/*
This module operates with a Key Store (array) containing objects with the following properties:
* keyList [Array] of |KeyObject|:
- keyId - 16 digits (8-byte) public key ID (/not/ preceeded with 0x)
- userId - main user ID
- fpr - fingerprint
- fprFormatted - a formatted version of the fingerprint followin the scheme .... .... ....
- expiry - Expiry date as printable string
- expiryTime - Expiry time as seconds after 01/01/1970
- created - Key creation date as printable string
- keyTrust - key trust code as provided by GnuPG (calculated key validity)
- keyUseFor - key usage type as provided by GnuPG (key capabilities)
- ownerTrust - owner trust as provided by GnuPG
- photoAvailable - [Boolean] true if photo is available
- secretAvailable - [Boolean] true if secret key is available
- algorithm - public key algorithm type
- keySize - size of public key
- type - "pub" or "grp"
- userIds - [Array]: - Contains ALL UIDs (including the primary UID)
* userId - User ID
* keyTrust - trust level of user ID
* uidFpr - fingerprint of the user ID
* type - one of "uid" (regular user ID), "uat" (photo)
* uatNum - photo number (starting with 0 for each key)
- subKeys - [Array]:
* keyId - subkey ID (16 digits (8-byte))
* expiry - Expiry date as printable string
* expiryTime - Expiry time as seconds after 01/01/1970
* created - Key creation date as printable string
* keyTrust - key trust code as provided by GnuPG
* keyUseFor - key usage type as provided by GnuPG
* algorithm - subkey algorithm type
* keySize - subkey size
* type - "sub"
- signatures - [Array]: list of signature objects
* userId
* uidLabel
* created
* fpr
* sigList: Array of object: { userId, created, signerKeyId, sigType, sigKnown }
- methods:
* hasSubUserIds
* getKeyExpiry
* getEncryptionValidity
* getSigningValidity
* getPubKeyValidity
* clone
* keySortList [Array]: used for quickly sorting the keys
- user ID (in lower case)
- key ID
- fpr
* trustModel: [String]. One of:
- p: pgp/classical
- t: always trust
- a: auto (:0) (default, currently pgp/classical)
- T: TOFU
- TP: TOFU+PGP
*/
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
var EnigmailKeyRing = {
/**
* Get the complete list of all public keys, optionally sorted by a column
*
* @param win - optional |object| holding the parent window for displaying error messages
* @param sortColumn - optional |string| containing the column name for sorting. One of:
* userid, keyid, keyidshort, fpr, keytype, validity, trust, expiry
* @param sortDirection - |number| 1 = ascending / -1 = descending
*
* @return keyListObj - |object| { keyList, keySortList } (see above)
*/
getAllKeys: function(win, sortColumn, sortDirection) {
if (gKeyListObj.keySortList.length === 0) {
loadKeyList(win, sortColumn, sortDirection);
}
else {
if (sortColumn) {
gKeyListObj.keySortList.sort(getSortFunction(sortColumn.toLowerCase(), gKeyListObj, sortDirection));
}
}
return gKeyListObj;
},
/**
* get a list of all (valid, usable) keys that have a secret key
*
* @param Boolean onlyValidKeys: if true, only filter valid usable keys
*
* @return Array of KeyObjects containing the found keys (sorted by userId)
**/
getAllSecretKeys: function(onlyValidKeys = false) {
this.getAllKeys(); // ensure keylist is loaded;
let res = [];
this.getAllKeys(); // ensure keylist is loaded;
if (!onlyValidKeys) {
for (let key of gKeyListObj.keyList) {
if (key.secretAvailable) res.push(key);
}
}
else {
for (let key of gKeyListObj.keyList) {
if (key.secretAvailable && key.keyUseFor.search(/D/) < 0) {
// key is not disabled and _usable_ for encryption signing and certification
if (key.keyUseFor.search(/E/) >= 0 &&
key.keyUseFor.search(/S/) >= 0 &&
key.keyUseFor.search(/C/) >= 0) {
res.push(key);
}
}
}
}
res.sort(function(a, b) {
return a.userId == b.userId ? (a.keyId < b.keyId ? -1 : 1) : (a.userId.toLowerCase() < b.userId.toLowerCase() ? -1 : 1);
});
return res;
},
/**
* get 1st key object that matches a given key ID or subkey ID
*
* @param keyId - String: key Id with 16 characters (preferred) or 8 characters),
* or fingerprint (40 or 32 characters).
* Optionally preceeded with "0x"
*
* @return Object - found KeyObject or null if key not found
*/
getKeyById: function(keyId) {
EnigmailLog.DEBUG("keyRing.jsm: getKeyById: " + keyId + "\n");
let s;
if (keyId.search(/^0x/) === 0) {
keyId = keyId.substr(2);
}
this.getAllKeys(); // ensure keylist is loaded;
let keyObj = gKeyIndex[keyId];
if (keyObj === undefined) {
keyObj = gSubkeyIndex[keyId];
}
return keyObj !== undefined ? keyObj : null;
},
/**
* get all key objects that match a given user ID
*
* @param searchTerm - String: a regular expression to match against all UIDs of the keys.
* The search is always performed case-insensitively
* @param onlyValidUid - Boolean: if true (default), invalid (e.g. revoked) UIDs are not matched
*
* @return Array of KeyObjects with the found keys (array length is 0 if no key found)
*/
getKeysByUserId: function(searchTerm, onlyValidUid = true) {
let s = new RegExp(searchTerm, "i");
let res = [];
this.getAllKeys(); // ensure keylist is loaded;
for (let i in gKeyListObj.keyList) {
let k = gKeyListObj.keyList[i];
for (let j in k.userIds) {
if (k.userIds[j].type === "uid" && k.userIds[j].userId.search(s) >= 0) {
if (!onlyValidUid || (!EnigmailTrust.isInvalid(k.userIds[j].keyTrust))) {
res.push(k);
continue;
}
}
}
}
return res;
},
/**
* get a list of keys for a given set of (sub-) key IDs
*
* @param keyIdList: Array of key IDs
OR String, with space-separated list of key IDs
*/
getKeyListById: function(keyIdList) {
let keyArr;
if (typeof keyIdList === "string") {
keyArr = keyIdList.split(/ +/);
}
else {
keyArr = keyIdList;
}
let ret = [];
for (let i in keyArr) {
let r = this.getKeyById(keyArr[i]);
if (r) ret.push(r);
}
return ret;
},
importKeyFromFile: function(inputFile, errorMsgObj, importedKeysObj) {
var command = EnigmailGpg.agentPath;
var args = EnigmailGpg.getStandardArgs(true);
EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.importKeyFromFile: fileName=" + inputFile.path + "\n");
importedKeysObj.value = "";
var fileName = EnigmailFiles.getEscapedFilename((inputFile.QueryInterface(Ci.nsIFile)).path);
args.push("--import");
args.push(fileName);
var statusFlagsObj = {};
var statusMsgObj = {};
var exitCodeObj = {};
var output = EnigmailExecution.execCmd(command, args, "", exitCodeObj, statusFlagsObj, statusMsgObj, errorMsgObj);
EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.importKeyFromFile: error=" + errorMsgObj.value + "\n");
var statusMsg = statusMsgObj.value;
var keyList = [];
if (exitCodeObj.value === 0) {
// Normal
EnigmailKeyRing.clearCache();
var statusLines = statusMsg.split(/\r?\n/);
// Discard last null string, if any
for (let j = 0; j < statusLines.length; j++) {
var matches = statusLines[j].match(/IMPORT_OK ([0-9]+) (\w+)/);
if (matches && (matches.length > 2)) {
if (typeof(keyList[matches[2]]) != "undefined") {
keyList[matches[2]] |= Number(matches[1]);
}
else
keyList[matches[2]] = Number(matches[1]);
EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.importKeyFromFile: imported " + matches[2] + ":" + matches[1] + "\n");
}
}
for (let j in keyList) {
importedKeysObj.value += j + ":" + keyList[j] + ";";
}
}
return exitCodeObj.value;
},
/**
* Get groups defined in gpg.conf in the same structure as KeyObject
*
* @return Array of KeyObject, with type = "grp"
*/
getGroups: function() {
let groups = EnigmailGpg.getGpgGroups();
let r = [];
for (var i = 0; i < groups.length; i++) {
let keyObj = new KeyObject(["grp"]);
keyObj.keyTrust = "g";
keyObj.userId = EnigmailData.convertGpgToUnicode(groups[i].alias).replace(/\\e3A/g, ":");
keyObj.keyId = keyObj.userId;
var grpMembers = EnigmailData.convertGpgToUnicode(groups[i].keylist).replace(/\\e3A/g, ":").split(/[,;]/);
for (var grpIdx = 0; grpIdx < grpMembers.length; grpIdx++) {
keyObj.userIds.push({
userId: grpMembers[grpIdx],
keyTrust: "q"
});
}
r.push(keyObj);
}
return r;
},
/**
* empty the key cache, such that it will get loaded next time it is accessed
*
* no input or return values
*/
clearCache: function() {
EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.clearCache\n");
gKeyListObj = {
keyList: [],
keySortList: []
};
gKeyIndex = [];
gSubkeyIndex = [];
},
/**
* Get a list of UserIds for a give key.
* Only the Only UIDs with highest trust level are returned.
*
* @param String keyId key, optionally preceeded with 0x
*
* @return Array of String: list of UserIds
*/
getValidUids: function(keyId) {
let r = [];
let keyObj = this.getKeyById(keyId);
if (keyObj) {
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
let hideInvalidUid = true;
let maxTrustLevel = TRUSTLEVELS_SORTED.indexOf(keyObj.keyTrust);
if (EnigmailTrust.isInvalid(keyObj.keyTrust)) {
// pub key not valid (anymore)-> display all UID's
hideInvalidUid = false;
}
for (let i in keyObj.userIds) {
if (keyObj.userIds[i].type !== "uat") {
if (hideInvalidUid) {
let thisTrust = TRUSTLEVELS_SORTED.indexOf(keyObj.userIds[i].keyTrust);
if (thisTrust > maxTrustLevel) {
r = [keyObj.userIds[i].userId];
maxTrustLevel = thisTrust;
}
else if (thisTrust === maxTrustLevel) {
r.push(keyObj.userIds[i].userId);
}
// else do not add uid
}
else if (!EnigmailTrust.isInvalid(keyObj.userIds[i].keyTrust) || !hideInvalidUid) {
// UID valid OR key not valid, but invalid keys allowed
r.push(keyObj.userIds[i].userId);
}
}
}
}
return r;
},
/**
* Export public and possibly secret key(s) to a file
*
* @param includeSecretKey Boolean - if true, secret keys are exported
* @param userId String - space or comma separated list of keys to export. Specification by
* key ID, fingerprint, or userId
* @param outputFile String or nsIFile - output file name or Object - or NULL
* @param exitCodeObj Object - o.value will contain exit code
* @param errorMsgObj Object - o.value will contain error message from GnuPG
*
* @return String - if outputFile is NULL, the key block data; "" if a file is written
*/
extractKey: function(includeSecretKey, userId, outputFile, exitCodeObj, errorMsgObj) {
EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.extractKey: " + userId + "\n");
let args = EnigmailGpg.getStandardArgs(true).
concat(["-a", "--export"]);
if (userId) {
args = args.concat(userId.split(/[ ,\t]+/));
}
const cmdErrorMsgObj = {};
let keyBlock = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, {}, {}, cmdErrorMsgObj);
if ((exitCodeObj.value === 0) && !keyBlock) {
exitCodeObj.value = -1;
}
if (exitCodeObj.value !== 0) {
errorMsgObj.value = EnigmailLocale.getString("failKeyExtract");
if (cmdErrorMsgObj.value) {
errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args);
errorMsgObj.value += "\n" + cmdErrorMsgObj.value;
}
return "";
}
if (includeSecretKey) {
let secretArgs = EnigmailGpg.getStandardArgs(true).
concat(["-a", "--export-secret-keys"]);
if (userId) {
secretArgs = secretArgs.concat(userId.split(/[ ,\t]+/));
}
const secKeyBlock = EnigmailExecution.execCmd(EnigmailGpg.agentPath, secretArgs, "", exitCodeObj, {}, {}, cmdErrorMsgObj);
if ((exitCodeObj.value === 0) && !secKeyBlock) {
exitCodeObj.value = -1;
}
if (exitCodeObj.value !== 0) {
errorMsgObj.value = EnigmailLocale.getString("failKeyExtract");
if (cmdErrorMsgObj.value) {
errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, secretArgs);
errorMsgObj.value += "\n" + cmdErrorMsgObj.value;
}
return "";
}
if (keyBlock.substr(-1, 1).search(/[\r\n]/) < 0) {
keyBlock += "\n";
}
keyBlock += secKeyBlock;
}
if (outputFile) {
if (!EnigmailFiles.writeFileContents(outputFile, keyBlock, DEFAULT_FILE_PERMS)) {
exitCodeObj.value = -1;
errorMsgObj.value = EnigmailLocale.getString("fileWriteFailed", [outputFile]);
}
return "";
}
return keyBlock;
},
/**
* Export the ownertrust database from GnuPG
* @param outputFile String or nsIFile - output file name or Object - or NULL
* @param exitCodeObj Object - o.value will contain exit code
* @param errorMsgObj Object - o.value will contain error message from GnuPG
*
* @return String - if outputFile is NULL, the key block data; "" if a file is written
*/
extractOwnerTrust: function(outputFile, exitCodeObj, errorMsgObj) {
let args = EnigmailGpg.getStandardArgs(true).concat(["--export-ownertrust"]);
let trustData = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, {}, {}, errorMsgObj);
if (outputFile) {
if (!EnigmailFiles.writeFileContents(outputFile, trustData, DEFAULT_FILE_PERMS)) {
exitCodeObj.value = -1;
errorMsgObj.value = EnigmailLocale.getString("fileWriteFailed", [outputFile]);
}
return "";
}
return trustData;
},
/**
* Import the ownertrust database into GnuPG
* @param inputFile String or nsIFile - input file name or Object - or NULL
* @param errorMsgObj Object - o.value will contain error message from GnuPG
*
* @return exit code
*/
importOwnerTrust: function(inputFile, errorMsgObj) {
let args = EnigmailGpg.getStandardArgs(true).concat(["--import-ownertrust"]);
let exitCodeObj = {};
try {
let trustData = EnigmailFiles.readFile(inputFile);
EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, trustData, exitCodeObj, {}, {}, errorMsgObj);
}
catch (ex) {}
return exitCodeObj.value;
},
/**
* import key from provided key data
*
* @param parent nsIWindow
* @param isInteractive Boolean - if true, display confirmation dialog
* @param keyBLock String - data containing key
* @param keyId String - key ID expected to import (no meaning)
* @param errorMsgObj Object - o.value will contain error message from GnuPG
*
* @return Integer - exit code:
* ExitCode == 0 => success
* ExitCode > 0 => error
* ExitCode == -1 => Cancelled by user
*/
importKey: function(parent, isInteractive, keyBlock, keyId, errorMsgObj) {
EnigmailLog.DEBUG("keyRing.jsm: EnigmailKeyRing.importKey: id=" + keyId + ", " + isInteractive + "\n");
const beginIndexObj = {};
const endIndexObj = {};
const blockType = EnigmailArmor.locateArmoredBlock(keyBlock, 0, "", beginIndexObj, endIndexObj, {});
if (!blockType) {
errorMsgObj.value = EnigmailLocale.getString("noPGPblock");
return 1;
}
if (blockType != "PUBLIC KEY BLOCK") {
errorMsgObj.value = EnigmailLocale.getString("notFirstBlock");
return 1;
}
const pgpBlock = keyBlock.substr(beginIndexObj.value,
endIndexObj.value - beginIndexObj.value + 1);
if (isInteractive) {
if (!(getDialog().confirmDlg(parent, EnigmailLocale.getString("importKeyConfirm"), EnigmailLocale.getString("keyMan.button.import")))) {
errorMsgObj.value = EnigmailLocale.getString("failCancel");
return -1;
}
}
const args = EnigmailGpg.getStandardArgs(true).
concat(["--import"]);
const exitCodeObj = {};
const statusMsgObj = {};
EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, pgpBlock, exitCodeObj, {}, statusMsgObj, errorMsgObj);
const statusMsg = statusMsgObj.value;
if (exitCodeObj.value === 0) {
// Normal return
EnigmailKeyRing.clearCache();
if (statusMsg && (statusMsg.search("IMPORTED ") > -1)) {
const matches = statusMsg.match(/(^|\n)IMPORTED (\w{8})(\w{8})/);
if (matches && (matches.length > 3)) {
EnigmailLog.DEBUG("enigmail.js: Enigmail.importKey: IMPORTED 0x" + matches[3] + "\n");
}
}
}
return exitCodeObj.value;
},
/**
* Extract a photo ID from a key, store it as file and return the file object.
* @keyId: String - Key ID
* @photoNumber: Number - number of the photo on the key, starting with 0
* @exitCodeObj: Object - value holds exitCode (0 = success)
* @errorMsgObj: Object - value holds errorMsg
*
* @return: nsIFile object or null in case no data / error.
*/
getPhotoFile: function(keyId, photoNumber, exitCodeObj, errorMsgObj) {
EnigmailLog.DEBUG("keyRing.js: EnigmailKeyRing.getPhotoFile, keyId=" + keyId + " photoNumber=" + photoNumber + "\n");
const args = EnigmailGpg.getStandardArgs().
concat(["--no-secmem-warning", "--no-verbose", "--no-auto-check-trustdb",
"--batch", "--no-tty", "--status-fd", "1", "--attribute-fd", "2",
"--fixed-list-mode", "--list-keys", keyId
]);
const photoDataObj = {};
const outputTxt = EnigmailExecution.simpleExecCmd(EnigmailGpg.agentPath, args, exitCodeObj, photoDataObj);
if (!outputTxt) {
exitCodeObj.value = -1;
return null;
}
if (EnigmailOS.isDosLike() && EnigmailGpg.getGpgFeature("windows-photoid-bug")) {
// workaround for error in gpg
photoDataObj.value = photoDataObj.value.replace(/\r\n/g, "\n");
}
// [GNUPG:] ATTRIBUTE A053069284158FC1E6770BDB57C9EB602B0717E2 2985
let foundPicture = -1;
let skipData = 0;
let imgSize = -1;
const statusLines = outputTxt.split(/[\n\r+]/);
for (let i = 0; i < statusLines.length; i++) {
const matches = statusLines[i].match(/\[GNUPG:\] ATTRIBUTE ([A-F\d]+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+)/);
if (matches && matches[3] == "1") {
// attribute is an image
foundPicture++;
if (foundPicture === photoNumber) {
imgSize = Number(matches[2]);
break;
}
else {
skipData += Number(matches[2]);
}
}
}
if (foundPicture >= 0 && foundPicture === photoNumber) {
const pictureData = photoDataObj.value.substr(16 + skipData, imgSize);
if (!pictureData.length) {
return null;
}
try {
const flags = NS_WRONLY | NS_CREATE_FILE | NS_TRUNCATE;
const picFile = EnigmailFiles.getTempDirObj();
picFile.append(keyId + ".jpg");
picFile.createUnique(picFile.NORMAL_FILE_TYPE, DEFAULT_FILE_PERMS);
const fileStream = Cc[NS_LOCALFILEOUTPUTSTREAM_CONTRACTID].createInstance(Ci.nsIFileOutputStream);
fileStream.init(picFile, flags, DEFAULT_FILE_PERMS, 0);
if (fileStream.write(pictureData, pictureData.length) !== pictureData.length) {
throw Components.results.NS_ERROR_FAILURE;
}
fileStream.flush();
fileStream.close();
return picFile;
}
catch (ex) {
exitCodeObj.value = -1;
return null;
}
}
return null;
},
isGeneratingKey: function() {
return keygenProcess !== null;
},
/**
* Generate a new key pair with GnuPG
*
* @name: String - name part of UID
* @comment: String - comment part of UID (brackets are added)
* @comment: String - email part of UID (<> will be added)
* @expiryDate: Number - Unix timestamp of key expiry date; 0 if no expiry
* @keyLength: Number - size of key in bytes (e.g 4096)
* @keyType: Number - 1 = DSA / 2 = RSA
* @passphrase: String - password; null if no password
* @listener: Object - {
* function onDataAvailable(data) {...},
* function onStopRequest(exitCode) {...}
* }
*
* @return: handle to process
*/
generateKey: function(name, comment, email, expiryDate, keyLength, keyType,
passphrase, listener) {
EnigmailLog.WRITE("keyRing.jsm: generateKey:\n");
if (EnigmailKeyRing.isGeneratingKey()) {
// key generation already ongoing
throw Components.results.NS_ERROR_FAILURE;
}
const args = EnigmailGpg.getStandardArgs(true).
concat(["--gen-key"]);
EnigmailLog.CONSOLE(EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args));
let inputData = "%echo Generating key\nKey-Type: ";
switch (keyType) {
case KEYTYPE_DSA:
inputData += "DSA\nKey-Length: " + keyLength + "\nSubkey-Type: 16\nSubkey-Length: ";
break;
case KEYTYPE_RSA:
inputData += "RSA\nKey-Usage: sign,auth\nKey-Length: " + keyLength;
inputData += "\nSubkey-Type: RSA\nSubkey-Usage: encrypt\nSubkey-Length: ";
break;
default:
return null;
}
inputData += keyLength + "\n";
if (name.replace(/ /g, "").length) {
inputData += "Name-Real: " + name + "\n";
}
if (comment && comment.replace(/ /g, "").length) {
inputData += "Name-Comment: " + comment + "\n";
}
inputData += "Name-Email: " + email + "\n";
inputData += "Expire-Date: " + String(expiryDate) + "\n";
EnigmailLog.CONSOLE(inputData + " \n");
if (passphrase.length) {
inputData += "Passphrase: " + passphrase + "\n";
}
inputData += "%commit\n%echo done\n";
let proc = null;
try {
proc = subprocess.call({
command: EnigmailGpg.agentPath,
arguments: args,
environment: EnigmailCore.getEnvList(),
charset: null,
stdin: function(pipe) {
pipe.write(inputData);
pipe.close();
},
stderr: function(data) {
listener.onDataAvailable(data);
},
done: function(result) {
keygenProcess = null;
try {
if (result.exitCode === 0) {
EnigmailKeyRing.clearCache();
}
listener.onStopRequest(result.exitCode);
}
catch (ex) {}
},
mergeStderr: false
});
}
catch (ex) {
EnigmailLog.ERROR("keyRing.jsm: generateKey: subprocess.call failed with '" + ex.toString() + "'\n");
throw ex;
}
keygenProcess = proc;
EnigmailLog.DEBUG("keyRing.jsm: generateKey: subprocess = " + proc + "\n");
return proc;
},
/**
* try to find valid key for encryption to passed email address
*
* @param details if not null returns error in details.msg
*
* @return: found key ID (without leading "0x") or null
*/
getValidKeyForRecipient: function(emailAddr, minTrustLevelIndex, details) {
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): emailAddr=\"" + emailAddr + "\"\n");
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
const fullTrustIndex = TRUSTLEVELS_SORTED.indexOf("f");
emailAddr = emailAddr.toLowerCase();
var embeddedEmailAddr = "<" + emailAddr + ">";
// note: we can't take just the first matched because we might have faked keys as duplicates
var foundKeyId = null;
var foundTrustLevel = null;
var foundKeyTrustIndex = null;
let k = this.getAllKeys(null, "validity", -1);
let keyList = k.keyList;
let keySortList = k.keySortList;
// **** LOOP to check against each key
// - note: we have sorted the keys according to validity
// to abort the loop as soon as we reach keys that are not valid enough
for (var idx = 0; idx < keySortList.length; idx++) {
var keyObj = keyList[keySortList[idx].keyNum];
var keyTrust = keyObj.keyTrust;
var keyTrustIndex = TRUSTLEVELS_SORTED.indexOf(keyTrust);
//EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): check key " + keyObj.keyId + "\n");
// key trust (our sort criterion) too low?
// => *** regular END of the loop
if (keyTrustIndex < minTrustLevelIndex) {
if (!foundKeyId) {
if (details) {
details.msg = "ProblemNoKey";
}
let msg = "no key with enough trust level for '" + emailAddr + "' found";
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): " + msg + "\n");
}
return foundKeyId; // **** regular END OF LOOP (return NULL or found single key)
}
// key valid for encryption?
if (keyObj.keyUseFor.indexOf("E") < 0) {
//EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): skip key " + keyObj.keyId + " (not provided for encryption)\n");
continue; // not valid for encryption => **** CONTINUE the LOOP
}
// key disabled?
if (keyObj.keyUseFor.indexOf("D") >= 0) {
//EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): skip key " + keyObj.keyId + " (disabled)\n");
continue; // disabled => **** CONTINUE the LOOP
}
// check against the user ID
var userId = keyObj.userId.toLowerCase();
if (userId && (userId == emailAddr || userId.indexOf(embeddedEmailAddr) >= 0)) {
if (keyTrustIndex < minTrustLevelIndex) {
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): matching key=" + keyObj.keyId + " found but not enough trust\n");
}
else {
// key with enough trust level found
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): key=" + keyObj.keyId + " keyTrust=\"" + keyTrust + "\" found\n");
// immediately return if a fully or ultimately trusted key is found
// (faked keys should not be an issue here, so we don't have to check other keys)
if (keyTrustIndex >= fullTrustIndex) {
return keyObj.keyId;
}
if (foundKeyId != keyObj.keyId) {
// new matching key found (note: might find same key via subkeys)
if (foundKeyId) {
// different matching keys found
if (foundKeyTrustIndex > keyTrustIndex) {
return foundKeyId; // OK, previously found key has higher trust level
}
// error because we have two keys with same trust level
// => let the user decide (to prevent from using faked keys with default trust level)
if (details) {
details.msg = "ProblemMultipleKeys";
}
let msg = "multiple matching keys with same trust level found for '" + emailAddr + "' ";
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): " + msg +
" trustLevel=\"" + keyTrust + "\" (0x" + foundKeyId + " and 0x" + keyObj.keyId + ")\n");
return null;
}
// save found key to compare with other matching keys (handling of faked keys)
foundKeyId = keyObj.keyId;
foundKeyTrustIndex = keyTrustIndex;
}
continue; // matching key found (again) => **** CONTINUE the LOOP (don't check Sub-UserIDs)
}
}
// check against the sub user ID
// (if we are here, the primary user ID didn't match)
// - Note: sub user IDs have NO owner trust
for (var subUidIdx = 1; subUidIdx < keyObj.userIds.length; subUidIdx++) {
var subUidObj = keyObj.userIds[subUidIdx];
var subUserId = subUidObj.userId.toLowerCase();
var subUidTrust = subUidObj.keyTrust;
var subUidTrustIndex = TRUSTLEVELS_SORTED.indexOf(subUidTrust);
//EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): check subUid " + subUidObj.keyId + "\n");
if (subUserId && (subUserId == emailAddr || subUserId.indexOf(embeddedEmailAddr) >= 0)) {
if (subUidTrustIndex < minTrustLevelIndex) {
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): matching subUid=" + keyObj.keyId + " found but not enough trust\n");
}
else {
// subkey with enough trust level found
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): matching subUid in key=" + keyObj.keyId + " keyTrust=\"" + keyTrust + "\" found\n");
if (keyTrustIndex >= fullTrustIndex) {
// immediately return if a fully or ultimately trusted key is found
// (faked keys should not be an issue here, so we don't have to check other keys)
return keyObj.keyId;
}
if (foundKeyId != keyObj.keyId) {
// new matching key found (note: might find same key via different subkeys)
if (foundKeyId) {
// different matching keys found
if (foundKeyTrustIndex > subUidTrustIndex) {
return foundKeyId; // OK, previously found key has higher trust level
}
// error because we have two keys with same trust level
// => let the user decide (to prevent from using faked keys with default trust level)
if (details) {
details.msg = "ProblemMultipleKeys";
}
let msg = "multiple matching keys with same trust level found for '" + emailAddr + "' ";
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): " + msg +
" trustLevel=\"" + keyTrust + "\" (0x" + foundKeyId + " and 0x" + keyObj.keyId + ")\n");
return null;
}
// save found key to compare with other matching keys (handling of faked keys)
foundKeyId = keyObj.keyId;
foundKeyTrustIndex = subUidTrustIndex;
}
}
}
}
} // **** LOOP to check against each key
if (!foundKeyId) {
EnigmailLog.DEBUG("keyRing.jsm: getValidKeyForRecipient(): no key for '" + emailAddr + "' found\n");
}
return foundKeyId;
},
getValidKeysForAllRecipients: function(addresses, minTrustLevel, details, resultingArray) {
let minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf(minTrustLevel);
// check whether each address is or has a key:
let keyMissing = false;
if (details) {
details.errArray = [];
}
for (let i = 0; i < addresses.length; i++) {
let addr = addresses[i];
// try to find current address in key list:
var found = false;
var errMsg = null;
if (addr.indexOf('@') >= 0) {
// try email match:
var addrErrDetails = {};
let keyId = this.getValidKeyForRecipient(addr, minTrustLevelIndex, addrErrDetails);
if (details && addrErrDetails.msg) {
errMsg = addrErrDetails.msg;
}
if (keyId) {
found = true;
resultingArray.push("0x" + keyId.toUpperCase());
}
}
else {
// try key match:
var keyObj = this.getKeyById(addr);
if (keyObj) {
// if found, check whether the trust level is enough
if (TRUSTLEVELS_SORTED.indexOf(keyObj.keyTrust) >= minTrustLevelIndex) {
found = true;
resultingArray.push("0x" + keyObj.keyId.toUpperCase());
}
}
}
if (!found) {
// no key for this address found
keyMissing = true;
if (details) {
if (!errMsg) {
errMsg = "ProblemNoKey";
}
var detailsElem = {};
detailsElem.addr = addr;
detailsElem.msg = errMsg;
details.errArray.push(detailsElem);
}
EnigmailLog.DEBUG("keyRing.jsm: doValidKeysForAllRecipients(): return null (no single valid key found for=\"" + addr + "\" with minTrustLevel=\"" + minTrustLevel + "\")\n");
}
}
return keyMissing;
},
/**
* Rebuild the quick access search indexes after the key list was loaded
*/
rebuildKeyIndex: function() {
gKeyIndex = [];
gSubkeyIndex = [];
for (let i in gKeyListObj.keyList) {
let k = gKeyListObj.keyList[i];
gKeyIndex[k.keyId] = k;
gKeyIndex[k.fpr] = k;
gKeyIndex[k.keyId.substr(-8, 8)] = k;
// add subkeys
for (let j in k.subKeys) {
gSubkeyIndex[k.subKeys[j].keyId] = k;
}
}
}
}; // EnigmailKeyRing
/************************ INTERNAL FUNCTIONS ************************/
/**
* returns the output of --with-colons --list[-secret]-keys
*/
function getUserIdList(secretOnly, exitCodeObj, statusFlagsObj, errorMsgObj) {
let args = EnigmailGpg.getStandardArgs(true);
if (secretOnly) {
args = args.concat(["--with-fingerprint", "--fixed-list-mode", "--with-colons", "--list-secret-keys"]);
}
else {
args = args.concat(["--with-fingerprint", "--fixed-list-mode", "--with-colons", "--list-keys"]);
}
statusFlagsObj.value = 0;
const cmdErrorMsgObj = {};
let listText = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, {}, cmdErrorMsgObj);
if (!(statusFlagsObj.value & nsIEnigmail.BAD_SIGNATURE)) {
// ignore exit code as recommended by GnuPG authors
exitCodeObj.value = 0;
}
if (exitCodeObj.value !== 0) {
errorMsgObj.value = EnigmailLocale.getString("badCommand");
if (cmdErrorMsgObj.value) {
errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args);
errorMsgObj.value += "\n" + cmdErrorMsgObj.value;
}
return "";
}
listText = listText.replace(/(\r\n|\r)/g, "\n");
return listText;
}
/**
* Get key list from GnuPG. If the keys may be pre-cached already
*
* @win - |object| parent window for displaying error messages
* @secretOnly - |boolean| true: get secret keys / false: get public keys
*
* @return - |array| of : separated key list entries as specified in GnuPG doc/DETAILS
*/
function obtainKeyList(win, secretOnly) {
EnigmailLog.DEBUG("keyRing.jsm: obtainKeyList\n");
let userList = null;
try {
const exitCodeObj = {};
const errorMsgObj = {};
userList = getUserIdList(secretOnly,
exitCodeObj, {},
errorMsgObj);
if (exitCodeObj.value !== 0) {
getDialog().alert(win, errorMsgObj.value);
return null;
}
}
catch (ex) {
EnigmailLog.ERROR("ERROR in keyRing.jsm: obtainKeyList: " + ex.toString() + "\n");
}
if (typeof(userList) == "string") {
return userList.split(/\n/);
}
else {
return [];
}
}
function sortByUserId(keyListObj, sortDirection) {
return function(a, b) {
return (a.userId < b.userId) ? -sortDirection : sortDirection;
};
}
const sortFunctions = {
keyid: function(keyListObj, sortDirection) {
return function(a, b) {
return (a.keyId < b.keyId) ? -sortDirection : sortDirection;
};
},
keyidshort: function(keyListObj, sortDirection) {
return function(a, b) {
return (a.keyId.substr(-8, 8) < b.keyId.substr(-8, 8)) ? -sortDirection : sortDirection;
};
},
fpr: function(keyListObj, sortDirection) {
return function(a, b) {
return (keyListObj.keyList[a.keyNum].fpr < keyListObj.keyList[b.keyNum].fpr) ? -sortDirection : sortDirection;
};
},
keytype: function(keyListObj, sortDirection) {
return function(a, b) {
return (keyListObj.keyList[a.keyNum].secretAvailable < keyListObj.keyList[b.keyNum].secretAvailable) ? -sortDirection : sortDirection;
};
},
validity: function(keyListObj, sortDirection) {
return function(a, b) {
return (EnigmailTrust.trustLevelsSorted().indexOf(EnigmailTrust.getTrustCode(keyListObj.keyList[a.keyNum])) < EnigmailTrust.trustLevelsSorted().indexOf(EnigmailTrust.getTrustCode(
keyListObj.keyList[b.keyNum]))) ? -sortDirection : sortDirection;
};
},
trust: function(keyListObj, sortDirection) {
return function(a, b) {
return (EnigmailTrust.trustLevelsSorted().indexOf(keyListObj.keyList[a.keyNum].ownerTrust) < EnigmailTrust.trustLevelsSorted().indexOf(keyListObj.keyList[b.keyNum].ownerTrust)) ? -
sortDirection : sortDirection;
};
},
expiry: function(keyListObj, sortDirection) {
return function(a, b) {
return (keyListObj.keyList[a.keyNum].expiryTime < keyListObj.keyList[b.keyNum].expiryTime) ? -sortDirection : sortDirection;
};
}
};
function getSortFunction(type, keyListObj, sortDirection) {
return (sortFunctions[type] || sortByUserId)(keyListObj, sortDirection);
}
/**
* Return string with all colon-separated data of key list entry of given key.
* - key may be pub or sub key.
*
* @param String keyId of 8 or 16 chars key with optionally leading 0x
* @return String entry of first found user IDs with keyId or null if none
*/
function getKeyListEntryOfKey(keyId) {
keyId = keyId.replace(/^0x/, "");
let statusFlags = {};
let errorMsg = {};
let exitCodeObj = {};
let listText = getUserIdList(false, exitCodeObj, statusFlags, errorMsg);
// listText contains lines such as:
// tru::0:1407688184:1424970931:3:1:5
// pub:f:1024:17:D581C6F8EBB80E50:1107251639:::-:::scESC:
// fpr:::::::::492A198AEA5EBE5574A1CE00D581C6F8EBB80E50:
// uid:f::::1107251639::2D505D1F6E744365B3B35FF11F32A19779E3A417::Giosue Vitaglione :
// sub:f:2048:16:2223D7E0301A66C6:1107251647::::::e:
// search for key or subkey
let regexKey = new RegExp("^(pub|sub):[^:]*:[^:]*:[^:]*:[A-Fa-f0-9]*" + keyId + ":", "m");
let foundPos = listText.search(regexKey);
if (foundPos < 0) {
return null;
}
// find area of key entries in key list
// note: if subkey matches, key entry starts before
let regexPub = new RegExp("^pub:", "gm");
let startPos;
if (listText[foundPos] == "p") { // ^pub:
// KEY matches
startPos = foundPos;
}
else {
// SUBKEY matches
// search for pub entry right before sub entry
startPos = 0;
let match = regexPub.exec(listText.substr(0, foundPos));
while (match && match.index < foundPos) {
startPos = match.index;
match = regexPub.exec(listText);
}
}
// find end of entry (next pub entry or end):
let match = regexPub.exec(listText.substr(startPos + 1));
let res;
if (match && match.index) {
res = listText.substring(startPos, startPos + 1 + match.index);
}
else {
res = listText.substring(startPos);
}
return res;
}
/**
* Load the key list into memory and return it sorted by a specified column
*
* @param win - |object| holding the parent window for displaying error messages
* @param sortColumn - |string| containing the column name for sorting. One of:
* userid, keyid, keyidshort, fpr, keytype, validity, trust, expiry.
* Null will sort by userid.
* @param sortDirection - |number| 1 = ascending / -1 = descending
*
* no return value
*/
function loadKeyList(win, sortColumn, sortDirection) {
EnigmailLog.DEBUG("keyRing.jsm: loadKeyList()\n");
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
var aGpgUserList = obtainKeyList(win, false);
if (!aGpgUserList) return;
var aGpgSecretsList = obtainKeyList(win, true);
if (!aGpgSecretsList) {
if (getDialog().confirmDlg(EnigmailLocale.getString("noSecretKeys"),
EnigmailLocale.getString("keyMan.button.generateKey"),
EnigmailLocale.getString("keyMan.button.skip"))) {
EnigmailWindows.openKeyGen();
EnigmailKeyRing.clearCache();
loadKeyList(win, sortColumn, sortDirection);
}
}
createAndSortKeyList(aGpgUserList, aGpgSecretsList, sortColumn, sortDirection);
}
// returns the output of --with-colons --list-sig
function getKeySig(keyId, exitCodeObj, errorMsgObj) {
const args = EnigmailGpg.getStandardArgs(true).
concat(["--with-fingerprint", "--fixed-list-mode", "--with-colons", "--list-sig"]).
concat(keyId.split(" "));
const statusFlagsObj = {};
const cmdErrorMsgObj = {};
const listText = EnigmailExecution.execCmd(EnigmailGpg.agentPath, args, "", exitCodeObj, statusFlagsObj, {}, cmdErrorMsgObj);
if (!(statusFlagsObj.value & nsIEnigmail.BAD_SIGNATURE)) {
// ignore exit code as recommended by GnuPG authors
exitCodeObj.value = 0;
}
if (exitCodeObj.value !== 0) {
errorMsgObj.value = EnigmailLocale.getString("badCommand");
if (cmdErrorMsgObj.value) {
errorMsgObj.value += "\n" + EnigmailFiles.formatCmdLine(EnigmailGpg.agentPath, args);
errorMsgObj.value += "\n" + cmdErrorMsgObj.value;
}
return "";
}
return listText;
}
/**
* Return signatures for a given key list
*
* @param String gpgKeyList Output from gpg such as produced by getKeySig()
* Only the first public key is processed!
* @param Boolean ignoreUnknownUid true if unknown signer's UIDs should be filtered out
*
* @return Array of Object:
* - uid
* - uidLabel
* - creationDate
* - sigList: [uid, creationDate, signerKeyId, sigType ]
*/
function extractSignatures(gpgKeyList, ignoreUnknownUid) {
EnigmailLog.DEBUG("keyRing.jsm: extractSignatures: " + gpgKeyList + "\n");
var listObj = {};
let havePub = false;
let currUid = "",
keyId = "",
fpr = "";
const lineArr = gpgKeyList.split(/\n/);
for (let i = 0; i < lineArr.length; i++) {
// process lines such as:
// tru::1:1395895453:1442881280:3:1:5
// pub:f:4096:1:C1B875ED336XX959:2299509307:1546189300::f:::scaESCA:
// fpr:::::::::102A1C8CC524A966849C33D7C8B157EA336XX959:
// uid:f::::1388511201::67D5B96DC564598D4D4D9E0E89F5B83C9931A154::Joe Fox :
// sig:::1:C8B157EA336XX959:2299509307::::Joe Fox :13x:::::2:
// sub:e:2048:1:B214734F0F5C7041:1316219469:1199912694:::::e:
// sub:f:2048:1:70E7A471DABE08B0:1316221524:1546189300:::::s:
const lineTokens = lineArr[i].split(/:/);
switch (lineTokens[ENTRY_ID]) {
case "pub":
if (havePub) {
return listObj;
}
havePub = true;
keyId = lineTokens[KEY_ID];
break;
case "fpr":
if (fpr === "") fpr = lineTokens[USERID_ID];
break;
case "uid":
case "uat":
currUid = lineTokens[UID_ID];
listObj[currUid] = {
userId: lineTokens[ENTRY_ID] == "uat" ? EnigmailLocale.getString("keyring.photo") : EnigmailData.convertGpgToUnicode(lineTokens[USERID_ID]),
rawUserId: lineTokens[USERID_ID],
keyId: keyId,
fpr: fpr,
created: EnigmailTime.getDateTime(lineTokens[CREATED_ID], true, false),
sigList: []
};
break;
case "sig":
if (lineTokens[SIG_TYPE_ID].substr(0, 2).toLowerCase() !== "1f") {
// ignrore revoked signature
let sig = {
userId: EnigmailData.convertGpgToUnicode(lineTokens[USERID_ID]),
created: EnigmailTime.getDateTime(lineTokens[CREATED_ID], true, false),
signerKeyId: lineTokens[KEY_ID],
sigType: lineTokens[SIG_TYPE_ID],
sigKnown: lineTokens[USERID_ID] != UNKNOWN_SIGNATURE
};
if (!ignoreUnknownUid || sig.userId != UNKNOWN_SIGNATURE) {
listObj[currUid].sigList.push(sig);
}
}
break;
}
}
return listObj;
}
/**
* Create a list of objects representing the keys in a key list
*
* @keyListString: array of |string| formatted output from GnuPG for key listing
* @keyListObj: |object| holding the resulting key list:
* obj.keyList: Array holding key objects
* obj.keySortList: Array holding values to make sorting easier
*
* no return value
*/
function createKeyObjects(keyListString, keyListObj) {
keyListObj.keyList = [];
keyListObj.keySortList = [];
keyListObj.trustModel = "?";
let keyObj = {};
let uatNum = 0; // counter for photos (counts per key)
let numKeys = 0;
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
for (let i = 0; i < keyListString.length; i++) {
const listRow = keyListString[i].split(/:/);
if (listRow.length >= 0) {
switch (listRow[ENTRY_ID]) {
case "pub":
keyObj = new KeyObject(listRow);
uatNum = 0;
++numKeys;
keyListObj.keyList.push(keyObj);
break;
case "fpr":
// only take first fpr line, this is the fingerprint of the primary key and what we want
if (keyObj.fpr === "") {
keyObj.fpr = listRow[USERID_ID];
}
break;
case "uid":
if (listRow[USERID_ID].length === 0) {
listRow[USERID_ID] = "-";
}
if (typeof(keyObj.userId) !== "string") {
keyObj.userId = EnigmailData.convertGpgToUnicode(listRow[USERID_ID]);
keyListObj.keySortList.push({
userId: keyObj.userId.toLowerCase(),
keyId: keyObj.keyId,
keyNum: numKeys - 1
});
if (TRUSTLEVELS_SORTED.indexOf(listRow[KEY_TRUST_ID]) < TRUSTLEVELS_SORTED.indexOf(keyObj.keyTrust)) {
// reduce key trust if primary UID is less trusted than public key
keyObj.keyTrust = listRow[KEY_TRUST_ID];
}
}
keyObj.userIds.push({
userId: EnigmailData.convertGpgToUnicode(listRow[USERID_ID]),
keyTrust: listRow[KEY_TRUST_ID],
uidFpr: listRow[UID_ID],
type: "uid"
});
break;
case "sub":
keyObj.subKeys.push({
keyId: listRow[KEY_ID],
expiry: EnigmailTime.getDateTime(listRow[EXPIRY_ID], true, false),
expiryTime: Number(listRow[EXPIRY_ID]),
keyTrust: listRow[KEY_TRUST_ID],
keyUseFor: listRow[KEY_USE_FOR_ID],
keySize: listRow[KEY_SIZE_ID],
algorithm: listRow[KEY_ALGO_ID],
created: EnigmailTime.getDateTime(listRow[CREATED_ID], true, false),
type: "sub"
});
break;
case "uat":
if (listRow[USERID_ID].indexOf("1 ") === 0) {
const userId = EnigmailLocale.getString("userAtt.photo");
keyObj.userIds.push({
userId: userId,
keyTrust: listRow[KEY_TRUST_ID],
uidFpr: listRow[UID_ID],
type: "uat",
uatNum: uatNum
});
keyObj.photoAvailable = true;
++uatNum;
}
break;
case "tru":
keyListObj.trustModel = "?";
if (listRow[KEY_TRUST_ID].indexOf("t") >= 0) {
switch (listRow[KEY_SIZE_ID]) {
case "0":
keyListObj.trustModel = "p";
break;
case "1":
keyListObj.trustModel = "t";
break;
case "6":
keyListObj.trustModel = "TP";
break;
case "7":
keyListObj.trustModel = "T";
break;
}
}
else {
if (listRow[KEY_SIZE_ID] === "0") {
keyListObj.trustModel = "a";
}
}
}
}
}
}
function createAndSortKeyList(aGpgUserList, aGpgSecretsList, sortColumn, sortDirection) {
EnigmailLog.DEBUG("keyRing.jsm: createAndSortKeyList()\n");
if (typeof sortColumn !== "string") sortColumn = "userid";
if (!sortDirection) sortDirection = 1;
createKeyObjects(aGpgUserList, gKeyListObj);
// create a hash-index on key ID (8 and 16 characters and fingerprint)
// in a single array
EnigmailKeyRing.rebuildKeyIndex();
// search and mark keys that have secret keys
for (let i = 0; i < aGpgSecretsList.length; i++) {
let listRow = aGpgSecretsList[i].split(/:/);
if (listRow.length >= 0) {
if (listRow[ENTRY_ID] == "sec") {
let k = EnigmailKeyRing.getKeyById(listRow[KEY_ID]);
if (k && typeof(k) === "object") {
k.secretAvailable = true;
}
}
}
}
gKeyListObj.keySortList.sort(getSortFunction(sortColumn.toLowerCase(), gKeyListObj, sortDirection));
}
/************************ IMPLEMENTATION of KeyObject ************************/
function KeyObject(lineArr) {
if (lineArr[ENTRY_ID] === "pub") {
this.keyId = lineArr[KEY_ID];
this.expiry = EnigmailTime.getDateTime(lineArr[EXPIRY_ID], true, false);
this.expiryTime = Number(lineArr[EXPIRY_ID]);
this.created = EnigmailTime.getDateTime(lineArr[CREATED_ID], true, false);
this.keyTrust = lineArr[KEY_TRUST_ID];
this.keyUseFor = lineArr[KEY_USE_FOR_ID];
this.ownerTrust = lineArr[OWNERTRUST_ID];
this.algorithm = lineArr[KEY_ALGO_ID];
this.keySize = lineArr[KEY_SIZE_ID];
}
else {
this.keyId = "";
this.expiry = "";
this.expiryTime = 0;
this.created = "";
this.keyTrust = "";
this.keyUseFor = "";
this.ownerTrust = "";
this.algorithm = "";
this.keySize = "";
}
this.type = lineArr[ENTRY_ID];
this.userIds = [];
this.subKeys = [];
this.fpr = "";
this.photoAvailable = false;
this.secretAvailable = false;
this._sigList = null;
}
KeyObject.prototype = {
/**
* gettter that returns a list of all signatures found on the key
*
* @return Array of Object, or null in case of error:
* - uid
* - uidLabel
* - creationDate
* - sigList: Array of object: { uid, creationDate, signerKeyId, sigType }
*/
get signatures() {
if (this._sigList === null) {
let exitCodeObj = {},
errorMsgObj = {};
let r = getKeySig(this.keyId, exitCodeObj, errorMsgObj);
if (r.length > 0) {
this._sigList = extractSignatures(r, false);
}
}
return this._sigList;
},
/**
* create a copy of the object
*/
clone: function() {
let cp = new KeyObject(["copy"]);
for (let i in this) {
if (i !== "signatures" && i !== "fprFormatted") {
// caution: don't try to evaluate this[i] if i==="signatures";
// it would immediately get all signatures for the key (slow!)
if (typeof this[i] !== "function") {
if (typeof this[i] === "object") {
cp[i] = EnigmailFuncs.cloneObj(this[i]);
}
else
cp[i] = this[i];
}
}
}
return cp;
},
/**
* Does the key have secondary user IDs?
*
* @return: Boolean - true if yes; false if no
*/
hasSubUserIds: function() {
let nUid = 0;
for (let i in this.userIds) {
if (this.userIds[i].type === "uid") ++nUid;
}
return nUid >= 2;
},
/**
* Get a formatted version of the fingerprint:
* 1234 5678 90AB CDEF .... ....
*
* @return String - the formatted fingerprint
*/
get fprFormatted() {
let f = EnigmailKey.formatFpr(this.fpr);
if (f.length === 0) f = this.fpr;
return f;
},
/**
* Determine if the public key is valid. If not, return a description why it's not
*
* @return Object:
* - keyValid: Boolean (true if key is valid)
* - reason: String (explanation of invalidity)
*/
getPubKeyValidity: function() {
let retVal = {
keyValid: false,
reason: ""
};
if (this.keyTrust.search(/r/i) >= 0) {
// public key revoked
retVal.reason = EnigmailLocale.getString("keyRing.pubKeyRevoked", [this.userId, "0x" + this.keyId]);
}
else if (this.keyTrust.search(/e/i) >= 0) {
// public key expired
retVal.reason = EnigmailLocale.getString("keyRing.pubKeyExpired", [this.userId, "0x" + this.keyId]);
}
else if (this.keyTrust.search(/d/i) >= 0 || this.keyUseFor.search(/D/i) >= 0) {
// public key disabled
retVal.reason = EnigmailLocale.getString("keyRing.keyDisabled", [this.userId, "0x" + this.keyId]);
}
else if (this.keyTrust.search(/i/i) >= 0) {
// public key invalid
retVal.reason = EnigmailLocale.getString("keyRing.keyInvalid", [this.userId, "0x" + this.keyId]);
}
else
retVal.keyValid = true;
return retVal;
},
/**
* Check whether a key can be used for signing and return a description of why not
*
* @return Object:
* - keyValid: Boolean (true if key is valid)
* - reason: String (explanation of invalidity)
*/
getSigningValidity: function() {
let retVal = this.getPubKeyValidity();
if (!retVal.keyValid) return retVal;
if (!this.secretAvailable) {
retVal.reason = EnigmailLocale.getString("keyRing.noSecretKey", [this.userId, "0x" + this.keyId]);
retVal.keyValid = false;
}
else if (this.keyUseFor.search(/S/) < 0) {
retVal.keyValid = false;
if (this.keyTrust.search(/u/i) < 0) {
// public key invalid
retVal.reason = EnigmailLocale.getString("keyRing.keyNotTrusted", [this.userId, "0x" + this.keyId]);
}
else {
let expired = 0,
revoked = 0,
unusable = 0,
found = 0;
// public key is valid; check for signing subkeys
for (let sk in this.subKeys) {
if (this.subKeys[sk].keyUseFor.search(/[sS]/) >= 0) {
// found subkey usable for signing
++found;
if (this.subKeys[sk].keyTrust.search(/e/i) >= 0) ++expired;
if (this.subKeys[sk].keyTrust.search(/r/i) >= 0) ++revoked;
if (this.subKeys[sk].keyTrust.search(/[di\-]/i) >= 0 || this.subKeys[sk].keyUseFor.search(/D/) >= 0) ++unusable;
}
}
if (found > 0 && (expired > 0 || revoked > 0)) {
if (found === expired) {
retVal.reason = EnigmailLocale.getString("keyRing.signSubKeysExpired", [this.userId, "0x" + this.keyId]);
}
else if (found === revoked) {
retVal.reason = EnigmailLocale.getString("keyRing.signSubKeysRevoked", [this.userId, "0x" + this.keyId]);
}
else {
retVal.reason = EnigmailLocale.getString("keyRing.signSubKeysUnusable", [this.userId, "0x" + this.keyId]);
}
}
else
retVal.reason = EnigmailLocale.getString("keyRing.pubKeyNotForSigning", [this.userId, "0x" + this.keyId]);
}
}
return retVal;
},
/**
* Check whether a key can be used for encryption and return a description of why not
*
* @return Object:
* - keyValid: Boolean (true if key is valid)
* - reason: String (explanation of invalidity)
*/
getEncryptionValidity: function() {
let retVal = this.getPubKeyValidity();
if (!retVal.keyValid) return retVal;
if (this.keyUseFor.search(/E/) < 0) {
retVal.keyValid = false;
if (this.keyTrust.search(/u/i) < 0) {
// public key invalid
retVal.reason = EnigmailLocale.getString("keyRing.keyNotTrusted", [this.userId, "0x" + this.keyId]);
}
else {
let expired = 0,
revoked = 0,
unusable = 0,
found = 0;
// public key is valid; check for signing subkeys
for (let sk in this.subKeys) {
if (this.subKeys[sk].keyUseFor.search(/[eE]/) >= 0) {
// found subkey usable for signing
++found;
if (this.subKeys[sk].keyTrust.search(/e/i) >= 0) ++expired;
if (this.subKeys[sk].keyTrust.search(/r/i) >= 0) ++revoked;
if (this.subKeys[sk].keyTrust.search(/[di\-]/i) >= 0 || this.subKeys[sk].keyUseFor.search(/D/) >= 0) ++unusable;
}
}
if (found > 0 && (expired > 0 || revoked > 0)) {
if (found === expired) {
retVal.reason = EnigmailLocale.getString("keyRing.encSubKeysExpired", [this.userId, "0x" + this.keyId]);
}
else if (found === revoked) {
retVal.reason = EnigmailLocale.getString("keyRing.encSubKeysRevoked", [this.userId, "0x" + this.keyId]);
}
else {
retVal.reason = EnigmailLocale.getString("keyRing.encSubKeysUnusable", [this.userId, "0x" + this.keyId]);
}
}
else
retVal.reason = EnigmailLocale.getString("keyRing.pubKeyNotForEncryption", [this.userId, "0x" + this.keyId]);
}
}
return retVal;
},
/**
* Determine the next expiry date of the key. This is either the public key expiry date,
* or the maximum expiry date of a signing or encryption subkey. I.e. this returns the next
* date at which the key cannot be used for signing and/or encryption anymore
*
* @return Number - The expiry date as seconds after 01/01/1970
*/
getKeyExpiry: function() {
let expiryDate = Number.MAX_VALUE;
let encryption = -1;
let signing = -1;
// check public key expiry date
if (this.expiryTime > 0) {
expiryDate = this.expiryTime;
}
for (let sk in this.subKeys) {
if (this.subKeys[sk].keyUseFor.search(/[eE]/) >= 0) {
let expiry = this.subKeys[sk].expiryTime;
if (expiry === 0) expiry = Number.MAX_VALUE;
encryption = Math.max(encryption, expiry);
}
else if (this.subKeys[sk].keyUseFor.search(/[sS]/) >= 0) {
let expiry = this.subKeys[sk].expiryTime;
if (expiry === 0) expiry = Number.MAX_VALUE;
signing = Math.max(signing, expiry);
}
}
if (expiryDate > encryption) {
if (this.keyUseFor.search(/[eE]/) < 0) {
expiryDate = encryption;
}
}
if (expiryDate > signing) {
if (this.keyUseFor.search(/[Ss]/) < 0) {
expiryDate = signing;
}
}
return expiryDate;
}
};
EnigmailKeyRing.clearCache();
enigmail/package/keyserver.jsm 0000664 0000000 0000000 00000011450 12667016244 0017001 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailKeyServer"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Cu.import("resource://enigmail/httpProxy.jsm"); /*global EnigmailHttpProxy: false */
Cu.import("resource://enigmail/gpg.jsm"); /*global EnigmailGpg: false */
Cu.import("resource://enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
Cu.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Cu.import("resource://enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
const nsIEnigmail = Ci.nsIEnigmail;
const EnigmailKeyServer = {
/**
* search, download or upload key on, from or to a keyserver
*
* @actionFlags: Integer - flags (bitmap) to determine the required action
* (see nsIEnigmail - Keyserver action flags for details)
* @keyserver: String - keyserver URL (optionally incl. protocol)
* @searchTerms: String - space-separated list of search terms or key IDs
* @listener: Object - execStart Listener Object. See execStart for details.
* @errorMsgObj: Object - object to hold error message in .value
*
* @return: Subprocess object, or null in case process could not be started
*/
access: function(actionFlags, keyserver, searchTerms, listener, errorMsgObj) {
EnigmailLog.DEBUG("keyserver.jsm: access: " + searchTerms + "\n");
if (!keyserver) {
errorMsgObj.value = EnigmailLocale.getString("failNoServer");
return null;
}
if (!searchTerms && !(actionFlags & nsIEnigmail.REFRESH_KEY)) {
errorMsgObj.value = EnigmailLocale.getString("failNoID");
return null;
}
const proxyHost = EnigmailHttpProxy.getHttpProxy(keyserver);
let args = EnigmailGpg.getStandardArgs(true);
if (actionFlags & nsIEnigmail.SEARCH_KEY) {
args = EnigmailGpg.getStandardArgs(false).
concat(["--command-fd", "0", "--fixed-list", "--with-colons"]);
}
if (proxyHost) {
args = args.concat(["--keyserver-options", "http-proxy=" + proxyHost]);
}
args = args.concat(["--keyserver", keyserver.trim()]);
// if (actionFlags & nsIEnigmail.SEARCH_KEY | nsIEnigmail.DOWNLOAD_KEY | nsIEnigmail.REFRESH_KEY) {
// args = args.concat(["--command-fd", "0", "--fixed-list", "--with-colons"]);
// }
let inputData = null;
const searchTermsList = searchTerms.split(" ");
if (actionFlags & nsIEnigmail.DOWNLOAD_KEY) {
args.push("--recv-keys");
args = args.concat(searchTermsList);
}
else if (actionFlags & nsIEnigmail.REFRESH_KEY) {
args.push("--refresh-keys");
}
else if (actionFlags & nsIEnigmail.SEARCH_KEY) {
args.push("--search-keys");
args = args.concat(searchTermsList);
inputData = "quit\n";
}
else if (actionFlags & nsIEnigmail.UPLOAD_KEY) {
args.push("--send-keys");
args = args.concat(searchTermsList);
}
const isDownload = actionFlags & (nsIEnigmail.REFRESH_KEY | nsIEnigmail.DOWNLOAD_KEY);
EnigmailLog.CONSOLE("enigmail> " + EnigmailFiles.formatCmdLine(EnigmailGpgAgent.agentPath, args) + "\n");
let proc = null;
let exitCode = null;
try {
proc = subprocess.call({
command: EnigmailGpgAgent.agentPath,
arguments: args,
environment: EnigmailCore.getEnvList(),
charset: null,
stdin: inputData,
stdout: function(data) {
listener.stdout(data);
},
stderr: function(data) {
if (data.search(/^\[GNUPG:\] ERROR/m) >= 0) {
exitCode = 4;
}
listener.stderr(data);
},
done: function(result) {
try {
if (result.exitCode === 0 && isDownload) {
EnigmailKeyRing.clearCache();
}
if (exitCode === null) {
exitCode = result.exitCode;
}
listener.done(exitCode);
}
catch (ex) {}
},
mergeStderr: false
});
}
catch (ex) {
EnigmailLog.ERROR("keyserver.jsm: access: subprocess.call failed with '" + ex.toString() + "'\n");
throw ex;
}
if (!proc) {
EnigmailLog.ERROR("keyserver.jsm: access: subprocess failed due to unknown reasons\n");
return null;
}
return proc;
}
};
enigmail/package/lazy.jsm 0000664 0000000 0000000 00000001137 12667016244 0015742 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailLazy"];
const EnigmailLazy = {
loader: function(component, name) {
let holder = null;
return function() {
if (!holder) {
const into = {};
Components.utils.import("resource://" + component, into);
holder = into[name];
}
return holder;
};
}
};
enigmail/package/locale.jsm 0000664 0000000 0000000 00000003536 12667016244 0016227 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailLog: false, EnigmailOS: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailLocale"];
Components.utils.import("resource://enigmail/log.jsm");
const Cc = Components.classes;
const Ci = Components.interfaces;
var enigStringBundle = null;
const LOCALE_SVC_CONTRACTID = "@mozilla.org/intl/nslocaleservice;1";
const EnigmailLocale = {
get: function() {
return Cc[LOCALE_SVC_CONTRACTID].getService(Ci.nsILocaleService).getApplicationLocale();
},
// retrieves a localized string from the enigmail.properties stringbundle
getString: function(aStr, subPhrases) {
if (!enigStringBundle) {
try {
var strBundleService = Cc["@mozilla.org/intl/stringbundle;1"].getService();
strBundleService = strBundleService.QueryInterface(Ci.nsIStringBundleService);
enigStringBundle = strBundleService.createBundle("chrome://enigmail/locale/enigmail.properties");
}
catch (ex) {
EnigmailLog.ERROR("locale.jsm: Error in instantiating stringBundleService\n");
}
}
if (enigStringBundle) {
try {
if (subPhrases) {
if (typeof(subPhrases) == "string") {
return enigStringBundle.formatStringFromName(aStr, [subPhrases], 1);
}
else {
return enigStringBundle.formatStringFromName(aStr, subPhrases, subPhrases.length);
}
}
else {
return enigStringBundle.GetStringFromName(aStr);
}
}
catch (ex) {
EnigmailLog.ERROR("locale.jsm: Error in querying stringBundleService for string '" + aStr + "'\n");
}
}
return aStr;
}
};
enigmail/package/log.jsm 0000664 0000000 0000000 00000011127 12667016244 0015544 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailConsole: false, dump: false, EnigmailFiles: false, EnigmailOS: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailLog"];
Components.utils.import("resource://enigmail/pipeConsole.jsm");
Components.utils.import("resource://enigmail/files.jsm");
Components.utils.import("resource://enigmail/os.jsm");
const Cc = Components.classes;
const Ci = Components.interfaces;
const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1";
const NS_IOSERVICE_CONTRACTID = "@mozilla.org/network/io-service;1";
const EnigmailLog = {
level: 3,
data: null,
directory: null,
fileStream: null,
setLogLevel: function(newLogLevel) {
EnigmailLog.level = newLogLevel;
},
getLogLevel: function() {
return EnigmailLog.level;
},
setLogDirectory: function(newLogDirectory) {
EnigmailLog.directory = newLogDirectory + (EnigmailOS.isDosLike() ? "\\" : "/");
EnigmailLog.createLogFiles();
},
createLogFiles: function() {
if (EnigmailLog.directory && (!EnigmailLog.fileStream) && EnigmailLog.level >= 5) {
EnigmailLog.fileStream = EnigmailFiles.createFileStream(EnigmailLog.directory + "enigdbug.txt");
}
},
onShutdown: function() {
if (EnigmailLog.fileStream) {
EnigmailLog.fileStream.close();
}
EnigmailLog.fileStream = null;
},
getLogData: function(version, prefs) {
let ioServ = Cc[NS_IOSERVICE_CONTRACTID].getService(Ci.nsIIOService);
let oscpu = "";
let platform = "";
try {
let httpHandler = ioServ.getProtocolHandler("http");
httpHandler = httpHandler.QueryInterface(Ci.nsIHttpProtocolHandler);
oscpu = httpHandler.oscpu;
platform = httpHandler.platform;
}
catch (ex) {}
let data = "Enigmail version " + version + "\n" +
"OS/CPU=" + oscpu + "\n" +
"Platform=" + platform + "\n" +
"Non-default preference values:\n";
let p = prefs.getPrefBranch().getChildList("");
for (let i in p) {
if (prefs.getPrefBranch().prefHasUserValue(p[i])) {
data += p[i] + ": " + prefs.getPref(p[i]) + "\n";
}
}
return data + "\n" + EnigmailLog.data;
},
WRITE: function(str) {
function withZeroes(val, digits) {
return ("0000" + val.toString()).substr(-digits);
}
var d = new Date();
var datStr = d.getFullYear() + "-" + withZeroes(d.getMonth() + 1, 2) + "-" + withZeroes(d.getDate(), 2) + " " + withZeroes(d.getHours(), 2) + ":" + withZeroes(d.getMinutes(), 2) + ":" +
withZeroes(d.getSeconds(), 2) + "." + withZeroes(d.getMilliseconds(), 3) + " ";
if (EnigmailLog.level >= 4)
dump(datStr + str);
if (EnigmailLog.data === null) {
EnigmailLog.data = "";
let appInfo = Cc[XPCOM_APPINFO].getService(Ci.nsIXULAppInfo);
EnigmailLog.WRITE("Mozilla Platform: " + appInfo.name + " " + appInfo.version + "\n");
}
// truncate first part of log data if it grow too much
if (EnigmailLog.data.length > 5120000) {
EnigmailLog.data = EnigmailLog.data.substr(-400000);
}
EnigmailLog.data += datStr + str;
if (EnigmailLog.fileStream) {
EnigmailLog.fileStream.write(datStr, datStr.length);
EnigmailLog.fileStream.write(str, str.length);
}
},
DEBUG: function(str) {
EnigmailLog.WRITE("[DEBUG] " + str);
},
WARNING: function(str) {
EnigmailLog.WRITE("[WARN] " + str);
EnigmailConsole.write(str);
},
ERROR: function(str) {
try {
var consoleSvc = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
var scriptError = Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError);
scriptError.init(str, null, null, 0, 0, scriptError.errorFlag, "Enigmail");
consoleSvc.logMessage(scriptError);
}
catch (ex) {}
EnigmailLog.WRITE("[ERROR] " + str);
},
CONSOLE: function(str) {
if (EnigmailLog.level >= 3) {
EnigmailLog.WRITE("[CONSOLE] " + str);
}
EnigmailConsole.write(str);
},
/**
* Log an exception including the stack trace
*
* referenceInfo: String - arbitraty text to write before the exception is logged
* ex: exception object
*/
writeException: function(referenceInfo, ex) {
EnigmailLog.ERROR(referenceInfo + ": caught exception: " +
ex.name + "\n" +
"Message: '" + ex.message + "'\n" +
"File: " + ex.fileName + "\n" +
"Line: " + ex.lineNumber + "\n" +
"Stack: " + ex.stack + "\n");
}
};
enigmail/package/mime.jsm 0000664 0000000 0000000 00000017172 12667016244 0015720 0 ustar 00root root 0000000 0000000 /*global Components: false, escape: false, btoa: false*/
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailMime"];
const Cc = Components.classes;
const Ci = Components.interfaces;
Components.utils.import("resource://gre/modules/jsmime.jsm"); /*global jsmime: false*/
Components.utils.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
const EnigmailMime = {
/***
* create a string of random characters suitable to use for a boundary in a
* MIME message following RFC 2045
*
* @return: string of 33 random characters and digits
*/
createBoundary: function() {
let b = "";
let r = 0;
for (let i = 0; i < 33; i++) {
r = Math.floor(Math.random() * 58);
b += String.fromCharCode((r < 10 ? 48 : (r < 34 ? 55 : 63)) + r);
}
return b;
},
/***
* determine the "boundary" part of a mail content type.
*
* @contentTypeStr: the string containing all parts of a content-type.
* (e.g. multipart/mixed; boundary="xyz") --> returns "xyz"
*
* @return: String containing the boundary parameter; or null
*/
getBoundary: function(contentTypeStr) {
contentTypeStr = contentTypeStr.replace(/[\r\n]/g, "");
let boundary = "";
let ct = contentTypeStr.split(/;/);
for (let i = 0; i < ct.length; i++) {
if (ct[i].search(/[ \t]*boundary[ \t]*=/i) >= 0) {
boundary = ct[i];
break;
}
}
boundary = boundary.replace(/\s*boundary\s*=/i, "").replace(/[\'\"]/g, "");
return boundary;
},
/***
* determine the "charset" part of a mail content type.
*
* @contentTypeStr: the string containing all parts of a content-type.
* (e.g. multipart/mixed; charset="utf-8") --> returns "utf-8"
*
* @return: String containing the charset parameter; or null
*/
getCharset: function(contentTypeStr) {
contentTypeStr = contentTypeStr.replace(/[\r\n]/g, "");
let boundary = "";
let ct = contentTypeStr.split(/;/);
for (let i = 0; i < ct.length; i++) {
if (ct[i].search(/[ \t]*charset[ \t]*=/i) >= 0) {
boundary = ct[i];
break;
}
}
boundary = boundary.replace(/\s*charset\s*=/i, "").replace(/[\'\"]/g, "");
return boundary;
},
/**
* Convert a MIME header value into a UTF-8 encoded representation following RFC 2047
*/
encodeHeaderValue: function(aStr) {
let ret = "";
if (aStr.search(/[^\x01-\x7F]/) >= 0) {
let s = EnigmailData.convertFromUnicode(aStr, "utf-8");
ret = "=?UTF-8?B?" + btoa(s) + "?=";
}
else {
ret = aStr;
}
return ret;
},
/**
* format MIME header with maximum length of 72 characters.
*/
formatHeaderData: function(hdrValue) {
let header;
if (Array.isArray(hdrValue)) {
header = hdrValue.join("").split(" ");
}
else {
header = hdrValue.split(" ");
}
let line = "";
let lines = [];
for (let i = 0; i < header.length; i++) {
if (line.length + header[i].length >= 72) {
lines.push(line + "\r\n");
line = " " + header[i];
}
else {
line += " " + header[i];
}
}
lines.push(line);
return lines.join("").trim();
},
/**
* Correctly encode and format a set of email addresses for RFC 2047
*/
formatEmailAddress: function(addressData) {
const adrArr = addressData.split(/, */);
for (let i in adrArr) {
try {
const m = adrArr[i].match(/(.*[\w\s]+?)<([\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{1,4})>/);
if (m && m.length == 3) {
adrArr[i] = this.encodeHeaderValue(m[1]) + " <" + m[2] + ">";
}
}
catch (ex) {}
}
return adrArr.join(", ");
},
/***
* determine if the message data contains a first mime part with content-type = "text/rfc822-headers"
* if so, extract the corresponding field(s)
*/
extractProtectedHeaders: function(contentData) {
// quick return
if (contentData.search(/text\/rfc822-headers/i) < 0) {
return null;
}
// find first MIME delimiter. Anything before that delimiter is the top MIME structure
let m = contentData.search(/^--/m);
if (m < 5) {
return null;
}
let protectedHdr = ["subject", "date", "from",
"to", "cc", "reply-to", "references",
"newsgroups", "followup-to", "message-id"
];
let newHeaders = {};
// read headers of first MIME part and extract the boundary parameter
let outerHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
outerHdr.initialize(contentData.substr(0, m));
let ct = outerHdr.extractHeader("content-type", false) || "";
if (ct === "") return null;
let bound = EnigmailMime.getBoundary(ct);
if (bound === "") return null;
// search for "outer" MIME delimiter(s)
let r = new RegExp("^--" + bound, "mg");
let startPos = -1;
let endPos = -1;
// 1st match: start of 1st MIME-subpart
let match = r.exec(contentData);
if (match && match.index) {
startPos = match.index;
}
// 2nd match: end of 1st MIME-subpart
match = r.exec(contentData);
if (match && match.index) {
endPos = match.index;
}
if (startPos < 0 || endPos < 0) return null;
let headers = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
headers.initialize(contentData.substring(0, startPos));
for (let i in protectedHdr) {
if (headers.hasHeader(protectedHdr[i])) {
newHeaders[protectedHdr[i]] = jsmime.headerparser.decodeRFC2047Words(headers.extractHeader(protectedHdr[i], true)) || undefined;
}
}
// contentBody holds the complete 1st MIME part
let contentBody = contentData.substring(startPos + bound.length + 3, endPos);
let i = contentBody.search(/^[A-Za-z]/m); // skip empty lines
if (i > 0) {
contentBody = contentBody.substr(i);
}
headers.initialize(contentBody);
let innerCt = headers.extractHeader("content-type", false) || "";
if (innerCt.search(/^text\/rfc822-headers/i) === 0) {
let charset = EnigmailMime.getCharset(innerCt);
let ctt = headers.extractHeader("content-transfer-encoding", false) || "";
// determine where the headers end and the MIME-subpart body starts
let bodyStartPos = contentBody.search(/\r?\n\s*\r?\n/) + 1;
if (bodyStartPos < 10) return null;
bodyStartPos += contentBody.substr(bodyStartPos).search(/^[A-Za-z]/m);
let ctBodyData = contentBody.substr(bodyStartPos);
if (ctt.search(/^base64/i) === 0) {
ctBodyData = EnigmailData.decodeBase64(ctBodyData) + "\n";
}
else if (ctt.search(/^quoted-printable/i) === 0) {
ctBodyData = EnigmailData.decodeQuotedPrintable(ctBodyData) + "\n";
}
if (charset) {
ctBodyData = EnigmailData.convertToUnicode(ctBodyData, charset);
}
// get the headers of the MIME-subpart body --> that's the ones we need
let bodyHdr = Cc["@mozilla.org/messenger/mimeheaders;1"].createInstance(Ci.nsIMimeHeaders);
bodyHdr.initialize(ctBodyData);
for (let i in protectedHdr) {
if (bodyHdr.hasHeader(protectedHdr[i])) {
newHeaders[protectedHdr[i]] = jsmime.headerparser.decodeRFC2047Words(bodyHdr.extractHeader(protectedHdr[i], true)) || undefined;
}
}
}
else {
startPos = -1;
endPos = -1;
}
return {
newHeaders: newHeaders,
startPos: startPos,
endPos: endPos,
securityLevel: 0
};
}
};
enigmail/package/mimeDecrypt.jsm 0000664 0000000 0000000 00000034735 12667016244 0017257 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailMimeDecrypt"];
/**
* Module for handling PGP/MIME encrypted messages
* implemented as an XPCOM object
*/
Components.utils.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Components.utils.import("resource://enigmail/mimeVerify.jsm"); /*global EnigmailVerify: false */
Components.utils.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Components.utils.import("resource://enigmail/locale.jsm"); /*global EnigmailLocale: false */
Components.utils.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
Components.utils.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Components.utils.import("resource://enigmail/decryption.jsm"); /*global EnigmailDecryption: false */
Components.utils.import("resource://enigmail/mime.jsm"); /*global EnigmailMime: false */
Components.utils.import("resource://enigmail/constants.jsm"); /*global EnigmailConstants: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1";
const PGPMIME_JS_DECRYPTOR_CONTRACTID = "@mozilla.org/mime/pgp-mime-js-decrypt;1";
const PGPMIME_JS_DECRYPTOR_CID = Components.ID("{7514cbeb-2bfd-4b2c-829b-1a4691fa0ac8}");
const ENCODING_DEFAULT = 0;
const ENCODING_BASE64 = 1;
const ENCODING_QP = 2;
const maxBufferLen = 102400;
var gDebugLogLevel = 0;
var gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
var gNumProc = 0;
////////////////////////////////////////////////////////////////////
// handler for PGP/MIME encrypted messages
// data is processed from libmime -> nsPgpMimeProxy
function EnigmailMimeDecrypt() {
EnigmailLog.DEBUG("mimeDecrypt.jsm: EnigmailMimeDecrypt()\n"); // always log this one
this.mimeSvc = null;
this.initOk = false;
this.boundary = "";
this.pipe = null;
this.closePipe = false;
this.statusStr = "";
this.outQueue = "";
this.dataLength = 0;
this.mimePartCount = 0;
this.headerMode = 0;
this.xferEncoding = ENCODING_DEFAULT;
this.matchedPgpDelimiter = 0;
this.exitCode = null;
this.msgWindow = null;
this.msgUriSpec = null;
this.returnStatus = null;
this.proc = null;
this.statusDisplayed = false;
this.uri = null;
this.backgroundJob = false;
this.decryptedHeaders = {};
this.mimePartNumber = "";
}
EnigmailMimeDecrypt.prototype = {
inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream),
onStartRequest: function(request, uri) {
if (!EnigmailCore.getService()) // Ensure Enigmail is initialized
return;
EnigmailLog.DEBUG("mimeDecrypt.jsm: onStartRequest\n"); // always log this one
++gNumProc;
if (gNumProc > 2) {
EnigmailLog.DEBUG("mimeDecrypt.jsm: number of parallel requests above threshold - ignoring requst\n");
return;
}
this.initOk = true;
this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy);
if ("mimePart" in this.mimeSvc) {
this.mimePartNumber = this.mimeSvc.mimePart;
}
else {
this.mimePartNumber = "";
}
this.pipe = null;
this.closePipe = false;
this.exitCode = null;
this.msgWindow = EnigmailVerify.lastMsgWindow;
this.msgUriSpec = EnigmailVerify.lastMsgUri;
this.statusDisplayed = false;
this.returnStatus = null;
this.dataLength = 0;
this.decryptedData = "";
this.mimePartCount = 0;
this.matchedPgpDelimiter = 0;
this.outQueue = "";
this.statusStr = "";
this.headerMode = 0;
this.decryptedHeaders = {};
this.xferEncoding = ENCODING_DEFAULT;
this.boundary = EnigmailMime.getBoundary(this.mimeSvc.contentType);
if (uri) {
this.uri = uri.QueryInterface(Ci.nsIURI).clone();
EnigmailLog.DEBUG("mimeDecrypt.jsm: onStartRequest: uri='" + this.uri.spec + "'\n");
}
},
onDataAvailable: function(req, sup, stream, offset, count) {
// get data from libmime
if (!this.initOk) return;
this.inStream.init(stream);
if (count > 0) {
var data = this.inStream.read(count);
// detect MIME part boundary
if (data.indexOf(this.boundary) >= 0) {
LOCAL_DEBUG("mimeDecrypt.jsm: onDataAvailable: found boundary\n");
++this.mimePartCount;
this.headerMode = 1;
return;
}
// found PGP/MIME "body"
if (this.mimePartCount == 2) {
if (this.headerMode == 1) {
// we are in PGP/MIME main part headers
if (data.search(/\r|\n/) === 0) {
// end of Mime-part headers reached
this.headerMode = 2;
return;
}
else {
if (data.search(/^content-transfer-encoding:\s*/i) >= 0) {
// extract content-transfer-encoding
data = data.replace(/^content-transfer-encoding:\s*/i, "");
data = data.replace(/;.*/, "").toLowerCase().trim();
if (data.search(/base64/i) >= 0) {
this.xferEncoding = ENCODING_BASE64;
}
else if (data.search(/quoted-printable/i) >= 0) {
this.xferEncoding = ENCODING_QP;
}
}
}
}
else {
// PGP/MIME main part body
if (this.xferEncoding == ENCODING_QP) {
this.cacheData(EnigmailData.decodeQuotedPrintable(data));
}
else {
this.cacheData(data);
}
}
}
}
},
// cache encrypted data for writing to subprocess
cacheData: function(str) {
if (gDebugLogLevel > 4)
LOCAL_DEBUG("mimeDecrypt.jsm: cacheData: " + str.length + "\n");
this.outQueue += str;
},
flushInput: function() {
LOCAL_DEBUG("mimeDecrypt.jsm: flushInput: " + this.outQueue.length + " bytes\n");
if (!this.pipe) {
LOCAL_DEBUG("mimeDecrypt.jsm: flushInput: no pipe\n");
return;
}
this.pipe.write(this.outQueue);
this.outQueue = "";
},
onStopRequest: function(request, win, status) {
LOCAL_DEBUG("mimeDecrypt.jsm: onStopRequest\n");
--gNumProc;
if (!this.initOk) return;
this.msgWindow = EnigmailVerify.lastMsgWindow;
this.msgUriSpec = EnigmailVerify.lastMsgUri;
let url = {};
this.backgroundJob = false;
if (this.uri) {
// return if not decrypting currently displayed message (except if
// printing, replying, etc)
this.backgroundJob = (this.uri.spec.search(/[\&\?]header=(print|quotebody|enigmailConvert)/) >= 0);
try {
var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger);
if (!EnigmailPrefs.getPref("autoDecrypt")) {
// "decrypt manually" mode
let manUrl = {};
if (EnigmailVerify.getManualUri()) {
let msgSvc = messenger.messageServiceFromURI(EnigmailVerify.getManualUri());
msgSvc.GetUrlForUri(EnigmailVerify.getManualUri(), manUrl, null);
}
else {
manUrl.value = {
spec: "enigmail://invalid/message"
};
}
// print a message if not message explicitly decrypted
let currUrlSpec = this.uri.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2");
let manUrlSpec = manUrl.value.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2");
if ((!this.backgroundJob) && currUrlSpec.indexOf(manUrlSpec) !== 0) {
this.handleManualDecrypt();
return;
}
}
if (this.msgUriSpec) {
let msgSvc = messenger.messageServiceFromURI(this.msgUriSpec);
msgSvc.GetUrlForUri(this.msgUriSpec, url, null);
}
if (this.uri.spec.search(/[&\?]header=[^&]+/) > 0 &&
this.uri.spec.search(/[&\?]examineEncryptedParts=true/) < 0) {
if (this.uri.spec.search(/[&\?]header=filter(&.*)?$/) > 0) {
EnigmailLog.DEBUG("mimeDecrypt.jsm: onStopRequest: detected incoming message processing\n");
return;
}
}
if (this.uri.spec.search(/[&\?]header=[^&]+/) < 0 &&
this.uri.spec.search(/[&\?]part=[\.0-9]+/) < 0 &&
this.uri.spec.search(/[&\?]examineEncryptedParts=true/) < 0) {
if (this.uri && url && url.value) {
if (url.value.spec != this.uri.spec)
return;
}
}
}
catch (ex) {
EnigmailLog.writeException("mimeDecrypt.js", ex);
EnigmailLog.DEBUG("mimeDecrypt.jsm: error while processing " + this.msgUriSpec + "\n");
}
}
if (this.xferEncoding == ENCODING_BASE64) {
this.outQueue = EnigmailData.decodeBase64(this.outQueue) + "\n";
}
var statusFlagsObj = {};
var errorMsgObj = {};
var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator);
win = windowManager.getMostRecentWindow(null);
var maxOutput = this.outQueue.length * 100; // limit output to 100 times message size
// to avoid DoS attack
this.proc = EnigmailDecryption.decryptMessageStart(win, false, false, this,
statusFlagsObj, errorMsgObj, null, maxOutput);
if (!this.proc) return;
this.flushInput();
if (!this.pipe) {
this.closePipe = true;
}
else
this.pipe.close();
this.proc.wait();
this.returnStatus = {};
EnigmailDecryption.decryptMessageEnd(this.statusStr,
this.exitCode,
this.dataLength,
false,
false,
Ci.nsIEnigmail.UI_PGP_MIME,
this.returnStatus);
this.displayStatus();
EnigmailLog.DEBUG("mimeDecrypt.jsm: onStopRequest: process terminated\n"); // always log this one
this.proc = null;
},
displayStatus: function() {
EnigmailLog.DEBUG("mimeDecrypt.jsm: displayStatus\n");
if (this.exitCode === null || this.msgWindow === null || this.statusDisplayed)
return;
let uriSpec = (this.uri ? this.uri.spec : null);
try {
EnigmailLog.DEBUG("mimeDecrypt.jsm: displayStatus for uri " + uriSpec + "\n");
let headerSink = this.msgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink);
if (headerSink && this.uri && !this.backgroundJob) {
headerSink.modifyMessageHeaders(this.uri, JSON.stringify(this.decryptedHeaders), this.mimePartNumber);
headerSink.updateSecurityStatus(
this.msgUriSpec,
this.exitCode,
this.returnStatus.statusFlags,
this.returnStatus.keyId,
this.returnStatus.userId,
this.returnStatus.sigDetails,
this.returnStatus.errorMsg,
this.returnStatus.blockSeparation,
this.uri,
this.returnStatus.encToDetails,
this.mimePartNumber);
}
this.statusDisplayed = true;
}
catch (ex) {
EnigmailLog.writeException("mimeDecrypt.jsm", ex);
}
LOCAL_DEBUG("mimeDecrypt.jsm: displayStatus done\n");
},
// API for decryptMessage Listener
stdin: function(pipe) {
LOCAL_DEBUG("mimeDecrypt.jsm: stdin\n");
if (this.outQueue.length > 0) {
pipe.write(this.outQueue);
this.outQueue = "";
if (this.closePipe) pipe.close();
}
this.pipe = pipe;
},
stdout: function(s) {
// write data back to libmime
//LOCAL_DEBUG("mimeDecrypt.jsm: stdout:"+s.length+"\n");
this.dataLength += s.length;
this.decryptedData += s;
},
stderr: function(s) {
LOCAL_DEBUG("mimeDecrypt.jsm: stderr\n");
this.statusStr += s;
},
done: function(exitCode) {
LOCAL_DEBUG("mimeDecrypt.jsm: done: " + exitCode + "\n");
if (gDebugLogLevel > 4)
LOCAL_DEBUG("mimeDecrypt.jsm: done: decrypted data='" + this.decryptedData + "'\n");
// ensure newline at the end of the stream
if (!this.decryptedData.endsWith("\n")) {
this.decryptedData += "\r\n";
}
var verifyData = this.decryptedData;
try {
this.extractEncryptedHeaders();
}
catch (ex) {}
var i = this.decryptedData.search(/\n\r?\n/);
if (i > 0) {
var hdr = this.decryptedData.substr(0, i).split(/\r?\n/);
var j;
for (j in hdr) {
if (hdr[j].search(/^\s*content-type:\s+text\/(plain|html)/i) >= 0) {
LOCAL_DEBUG("mimeDecrypt.jsm: done: adding multipart/mixed around " + hdr[j] + "\n");
let wrapper = EnigmailMime.createBoundary();
this.decryptedData = 'Content-Type: multipart/mixed; boundary="' + wrapper + '"\r\n\r\n' +
'--' + wrapper + '\r\n' +
this.decryptedData +
'--' + wrapper + '--\r\n';
break;
}
}
}
this.returnData(this.decryptedData);
this.decryptedData = "";
this.exitCode = exitCode;
},
// return data to libMime
returnData: function(data) {
gConv.setData(data, data.length);
try {
this.mimeSvc.onStartRequest(null, null);
this.mimeSvc.onDataAvailable(null, null, gConv, 0, data.length);
this.mimeSvc.onStopRequest(null, null, 0);
}
catch (ex) {
// EnigmailLog.ERROR("mimeDecrypt.jsm: returnData(): mimeSvc.onDataAvailable failed:\n" + ex.toString());
}
},
handleManualDecrypt: function() {
try {
let headerSink = this.msgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink);
if (headerSink && this.uri && !this.backgroundJob) {
headerSink.updateSecurityStatus(
this.msgUriSpec,
EnigmailConstants.POSSIBLE_PGPMIME,
0,
"",
"",
"",
EnigmailLocale.getString("possiblyPgpMime"),
"",
this.uri,
null,
"");
}
}
catch (ex) {}
return 0;
},
extractEncryptedHeaders: function() {
let r = EnigmailMime.extractProtectedHeaders(this.decryptedData);
if (!r) return;
this.decryptedHeaders = r.newHeaders;
if (r.startPos >= 0 && r.endPos > r.startPos) {
this.decryptedData = this.decryptedData.substr(0, r.startPos) + this.decryptedData.substr(r.endPos);
}
}
};
////////////////////////////////////////////////////////////////////
// General-purpose functions, not exported
function LOCAL_DEBUG(str) {
if (gDebugLogLevel) EnigmailLog.DEBUG(str);
}
function initModule() {
var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
var nspr_log_modules = env.get("NSPR_LOG_MODULES");
var matches = nspr_log_modules.match(/mimeDecrypt:(\d+)/);
if (matches && (matches.length > 1)) {
gDebugLogLevel = matches[1];
}
}
enigmail/package/mimeEncrypt.js 0000664 0000000 0000000 00000046327 12667016244 0017114 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailLog: false, EnigmailDialog: false, EnigmailFuncs: false */
/*jshint -W097 */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/**
* Module for creating PGP/MIME signed and/or encrypted messages
* implemented as XPCOM component
*/
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Components.utils.import("resource://gre/modules/jsmime.jsm"); /*global jsmime: false*/
Components.utils.import("resource://enigmail/funcs.jsm");
Components.utils.import("resource://enigmail/dialog.jsm");
Components.utils.import("resource://enigmail/log.jsm");
Components.utils.import("resource://enigmail/encryption.jsm"); /*global EnigmailEncryption: false */
Components.utils.import("resource://enigmail/mime.jsm"); /*global EnigmailMime: false */
Components.utils.import("resource://enigmail/hash.jsm"); /*global EnigmailHash: false */
Components.utils.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
const PGPMIME_JS_ENCRYPT_CONTRACTID = "@enigmail.net/enigmail/composesecure;1";
const PGPMIME_JS_ENCRYPT_CID = Components.ID("{1b040e64-e704-42b9-b05a-942e569afffc}");
const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1";
const kMsgComposeSecureCID = "{dd753201-9a23-4e08-957f-b3616bf7e012}";
const maxBufferLen = 102400;
const MIME_SIGNED = 1;
const MIME_ENCRYPTED = 2;
var gDebugLogLevel = 0;
function PgpMimeEncrypt() {}
PgpMimeEncrypt.prototype = {
classDescription: "Enigmail JS Encryption Handler",
classID: PGPMIME_JS_ENCRYPT_CID,
contractID: PGPMIME_JS_ENCRYPT_CONTRACTID,
QueryInterface: XPCOMUtils.generateQI([Ci.nsIMsgComposeSecure, Ci.nsIStreamListener, Ci.nsIEnigScriptableMsgCompose]),
// private variables
inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream),
msgCompFields: null,
smimeCompose: null,
useSmime: false,
outStringStream: null,
inputMode: 0,
dataLength: 0,
headerData: "",
encapsulate: null,
encHeader: null,
cryptoBoundary: null,
win: null,
pipe: null,
proc: null,
statusStr: "",
encryptedData: "",
hashAlgorithm: null,
pipeQueue: "",
outQueue: "",
closePipe: false,
cryptoMode: 0,
exitCode: -1,
inspector: null,
checkSMime: true,
// nsIStreamListener interface
onStartRequest: function(request) {
LOCAL_DEBUG("mimeEncrypt.js: onStartRequest\n");
this.encHeader = null;
},
onDataAvailable: function(req, sup, stream, offset, count) {
LOCAL_DEBUG("mimeEncrypt.js: onDataAvailable\n");
this.inStream.init(stream);
var data = this.inStream.read(count);
//LOCAL_DEBUG("mimeEncrypt.js: >"+data+"<\n");
},
onStopRequest: function(request, win, status) {
LOCAL_DEBUG("mimeEncrypt.js: onStopRequest\n");
},
disableSMimeCheck: function() {
this.useSmime = false;
this.checkSMime = false;
},
// nsIMsgComposeSecure interface
requiresCryptoEncapsulation: function(msgIdentity, msgCompFields) {
LOCAL_DEBUG("mimeEncrypt.js: requiresCryptoEncapsulation\n");
try {
if (this.checkSMime) {
// Remember to use original CID, not CONTRACTID, to avoid infinite looping!
this.smimeCompose = Components.classesByID[kMsgComposeSecureCID].createInstance(Ci.nsIMsgComposeSecure);
this.useSmime = this.smimeCompose.requiresCryptoEncapsulation(msgIdentity, msgCompFields);
}
if (this.useSmime) return true;
var securityInfo = msgCompFields.securityInfo;
if (!securityInfo) return false;
try {
var enigSecurityInfo = securityInfo.QueryInterface(Ci.nsIEnigMsgCompFields);
return (enigSecurityInfo.sendFlags & (Ci.nsIEnigmail.SEND_SIGNED | Ci.nsIEnigmail.SEND_ENCRYPTED)) !== 0;
}
catch (ex) {
return false;
}
}
catch (ex) {
EnigmailLog.writeException("mimeEncrypt.js", ex);
throw (ex);
}
},
beginCryptoEncapsulation: function(outStream, recipientList, msgCompFields, msgIdentity, sendReport, isDraft) {
LOCAL_DEBUG("mimeEncrypt.js: beginCryptoEncapsulation\n");
if (this.checkSMime && (!this.smimeCompose)) {
LOCAL_DEBUG("mimeEncrypt.js: beginCryptoEncapsulation: ERROR MsgComposeSecure not instantiated\n");
throw Cr.NS_ERROR_FAILURE;
}
if (this.useSmime)
return this.smimeCompose.beginCryptoEncapsulation(outStream, recipientList,
msgCompFields, msgIdentity,
sendReport, isDraft);
if (!outStream) throw Cr.NS_ERROR_NULL_POINTER;
try {
this.inspector = Cc["@mozilla.org/jsinspector;1"].createInstance(Ci.nsIJSInspector);
this.outStream = outStream;
this.isDraft = isDraft;
this.msgCompFields = msgCompFields;
var securityInfo = msgCompFields.securityInfo;
if (!securityInfo) throw Cr.NS_ERROR_FAILURE;
this.enigSecurityInfo = securityInfo.QueryInterface(Ci.nsIEnigMsgCompFields); //might throw an error
this.outStringStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator);
this.win = windowManager.getMostRecentWindow(null);
if (securityInfo.sendFlags & Ci.nsIEnigmail.SEND_PGP_MIME) {
if (securityInfo.sendFlags & Ci.nsIEnigmail.SEND_ENCRYPTED) {
// applies to encrypted and signed & encrypted
this.cryptoMode = MIME_ENCRYPTED;
}
else if (securityInfo.sendFlags & Ci.nsIEnigmail.SEND_SIGNED) {
this.cryptoMode = MIME_SIGNED;
let hashAlgoObj = {};
if (EnigmailHash.determineAlgorithm(this.win,
this.enigSecurityInfo.UIFlags,
this.enigSecurityInfo.senderEmailAddr,
hashAlgoObj) === 0) {
this.hashAlgorithm = hashAlgoObj.value;
}
else
throw Cr.NS_ERROR_FAILURE;
}
}
else
throw Cr.NS_ERROR_NOT_IMPLEMENTED;
var statusFlagsObj = {};
var errorMsgObj = {};
this.proc = EnigmailEncryption.encryptMessageStart(this.win,
this.enigSecurityInfo.UIFlags,
this.enigSecurityInfo.senderEmailAddr,
this.enigSecurityInfo.recipients,
this.enigSecurityInfo.bccRecipients,
this.hashAlgorithm,
this.enigSecurityInfo.sendFlags,
this,
statusFlagsObj,
errorMsgObj);
if (!this.proc) throw Cr.NS_ERROR_FAILURE;
this.cryptoBoundary = EnigmailMime.createBoundary();
this.startCryptoHeaders();
}
catch (ex) {
EnigmailLog.writeException("mimeEncrypt.js", ex);
throw (ex);
}
},
startCryptoHeaders: function() {
LOCAL_DEBUG("mimeEncrypt.js: startCryptoHeaders\n");
if (this.cryptoMode == MIME_SIGNED) this.signedHeaders1(false);
if (this.cryptoMode == MIME_ENCRYPTED) this.encryptedHeaders();
this.writeSecureHeaders();
},
writeSecureHeaders: function() {
this.encHeader = EnigmailMime.createBoundary();
let allHdr = "";
let visibleHdr = "";
let addrParser = jsmime.headerparser.parseAddressingHeader;
let noParser = function(s) {
return s;
};
let h = {
from: {
field: "From",
parser: addrParser
},
replyTo: {
field: "Reply-To",
parser: addrParser
},
to: {
field: "To",
parser: addrParser
},
cc: {
field: "Cc",
parser: addrParser
},
newsgroups: {
field: "Newsgroups",
parser: noParser
},
followupTo: {
field: "Followup-To",
parser: addrParser
},
messageId: {
field: "Message-Id",
parser: noParser
}
};
// visible headers list
let vH = {
'from': 1,
'to': 1,
'subject': 1,
'cc': 1
};
for (let i in h) {
if (this.msgCompFields[i] && this.msgCompFields[i].length > 0) {
allHdr += jsmime.headeremitter.emitStructuredHeader(h[i].field, h[i].parser(this.msgCompFields[i]), {});
}
if (i in vH && this.msgCompFields[i].length > 0) {
visibleHdr += jsmime.headeremitter.emitStructuredHeader(h[i].field, h[i].parser(this.msgCompFields[i]), {});
}
}
if (this.enigSecurityInfo.originalSubject && this.enigSecurityInfo.originalSubject.length > 0) {
allHdr += jsmime.headeremitter.emitStructuredHeader("subject", this.enigSecurityInfo.originalSubject, {});
visibleHdr += jsmime.headeremitter.emitStructuredHeader("subject", this.enigSecurityInfo.originalSubject, {});
}
// special handling for references and in-reply-to
if (this.enigSecurityInfo.originalReferences && this.enigSecurityInfo.originalReferences.length > 0) {
allHdr += jsmime.headeremitter.emitStructuredHeader("references", this.enigSecurityInfo.originalReferences, {});
let bracket = this.enigSecurityInfo.originalReferences.lastIndexOf("<");
if (bracket >= 0) {
allHdr += jsmime.headeremitter.emitStructuredHeader("in-reply-to", this.enigSecurityInfo.originalReferences.substr(bracket), {});
}
}
let w = 'Content-Type: multipart/mixed; boundary="' + this.encHeader + '"\r\n' + allHdr + '\r\n' +
"--" + this.encHeader + "\r\n";
if (this.cryptoMode == MIME_ENCRYPTED && this.enigSecurityInfo.sendFlags & Ci.nsIEnigmail.ENCRYPT_HEADERS) {
w += 'Content-Type: text/rfc822-headers; charset="utf-8";\r\n' +
' protected-headers="v1"\r\n' +
'Content-Disposition: inline\r\n' +
'Content-Transfer-Encoding: base64\r\n\r\n' +
EnigmailData.encodeBase64(visibleHdr) +
"\r\n--" + this.encHeader + "\r\n";
}
this.writeToPipe(w);
if (this.cryptoMode == MIME_SIGNED) this.writeOut(w);
},
encryptedHeaders: function(isEightBit) {
LOCAL_DEBUG("mimeEncrypt.js: encryptedHeaders\n");
this.writeOut("Content-Type: multipart/encrypted;\r\n" +
" protocol=\"application/pgp-encrypted\";\r\n" +
" boundary=\"" + this.cryptoBoundary + "\"\r\n" +
"\r\n" +
"This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)\r\n" +
"--" + this.cryptoBoundary + "\r\n" +
"Content-Type: application/pgp-encrypted\r\n" +
"Content-Description: PGP/MIME version identification\r\n" +
"\r\n" +
"Version: 1\r\n" +
"\r\n" +
"--" + this.cryptoBoundary + "\r\n" +
"Content-Type: application/octet-stream; name=\"encrypted.asc\"\r\n" +
"Content-Description: OpenPGP encrypted message\r\n" +
"Content-Disposition: inline; filename=\"encrypted.asc\"\r\n" +
"\r\n");
},
signedHeaders1: function(isEightBit) {
LOCAL_DEBUG("mimeEncrypt.js: signedHeaders1\n");
this.writeOut("Content-Type: multipart/signed; micalg=pgp-" +
this.hashAlgorithm.toLowerCase() +
";\r\n" +
" protocol=\"application/pgp-signature\";\r\n" +
" boundary=\"" + this.cryptoBoundary + "\"\r\n" +
(isEightBit ? "Content-Transfer-Encoding: 8bit\r\n\r\n" : "\r\n") +
"This is an OpenPGP/MIME signed message (RFC 4880 and 3156)\r\n" +
"--" + this.cryptoBoundary + "\r\n");
},
signedHeaders2: function() {
LOCAL_DEBUG("mimeEncrypt.js: signedHeaders2\n");
this.writeOut("\r\n--" + this.cryptoBoundary + "\r\n" +
"Content-Type: application/pgp-signature; name=\"signature.asc\"\r\n" +
"Content-Description: OpenPGP digital signature\r\n" +
"Content-Disposition: attachment; filename=\"signature.asc\"\r\n\r\n");
},
finishCryptoHeaders: function() {
LOCAL_DEBUG("mimeEncrypt.js: finishCryptoHeaders\n");
this.writeOut("\r\n--" + this.cryptoBoundary + "--\r\n");
},
finishCryptoEncapsulation: function(abort, sendReport) {
LOCAL_DEBUG("mimeEncrypt.js: finishCryptoEncapsulation\n");
if (this.checkSMime && (!this.smimeCompose))
throw Cr.NS_ERROR_NOT_INITIALIZED;
if (this.useSmime) {
this.smimeCompose.finishCryptoEncapsulation(abort, sendReport);
return;
}
try {
if (this.encapsulate) this.writeToPipe("--" + this.encapsulate + "--\r\n");
if (this.encHeader) {
this.writeToPipe("\r\n--" + this.encHeader + "--\r\n");
if (this.cryptoMode == MIME_SIGNED) this.writeOut("\r\n--" + this.encHeader + "--\r\n");
}
if (!this.proc) return;
this.flushInput();
if (!this.pipe) {
this.closePipe = true;
}
else
this.pipe.close();
// wait here for this.proc to terminate
this.inspector.enterNestedEventLoop(0);
LOCAL_DEBUG("mimeEncrypt.js: finishCryptoEncapsulation: exitCode = " + this.exitCode + "\n");
if (this.exitCode !== 0) throw Cr.NS_ERROR_FAILURE;
if (this.cryptoMode == MIME_SIGNED) this.signedHeaders2();
this.encryptedData = this.encryptedData.replace(/\r/g, "").replace(/\n/g, "\r\n"); // force CRLF
this.writeOut(this.encryptedData);
this.finishCryptoHeaders();
this.flushOutput();
}
catch (ex) {
EnigmailLog.writeException("mimeEncrypt.js", ex);
throw (ex);
}
},
mimeCryptoWriteBlock: function(buffer, length) {
if (gDebugLogLevel > 4)
LOCAL_DEBUG("mimeEncrypt.js: mimeCryptoWriteBlock: " + length + "\n");
if (this.checkSMime && (!this.smimeCompose))
throw Cr.NS_ERROR_NOT_INITIALIZED;
if (this.useSmime) return this.smimeCompose.mimeCryptoWriteBlock(buffer, length);
try {
let line = buffer.substr(0, length);
if (this.inputMode === 0) {
this.headerData += line;
if (line.replace(/[\r\n]/g, "").length === 0) {
this.inputMode = 1;
if (this.cryptoMode == MIME_ENCRYPTED) {
let ct = this.getHeader("content-type", false);
if ((ct.search(/text\/plain/i) === 0) || (ct.search(/text\/html/i) === 0)) {
this.encapsulate = EnigmailMime.createBoundary();
this.writeToPipe('Content-Type: multipart/mixed; boundary="' +
this.encapsulate + '"\r\n\r\n');
this.writeToPipe("--" + this.encapsulate + "\r\n");
}
}
else if (this.cryptoMode == MIME_SIGNED) {
let ct = this.getHeader("content-type", true);
let hdr = EnigmailFuncs.getHeaderData(ct);
hdr.boundary = hdr.boundary || "";
hdr.boundary = hdr.boundary.replace(/[\'\"]/g, "");
}
this.writeToPipe(this.headerData);
if (this.cryptoMode == MIME_SIGNED) this.writeOut(this.headerData);
}
}
else if (this.inputMode == 1) {
if (this.cryptoMode == MIME_SIGNED) {
// special treatments for various special cases with PGP/MIME signed messages
if (line.substr(0, 5) == "From ") {
LOCAL_DEBUG("mimeEncrypt.js: added >From\n");
this.writeToPipe(">");
}
}
this.writeToPipe(line);
if (this.cryptoMode == MIME_SIGNED) this.writeOut(line);
}
}
catch (ex) {
EnigmailLog.writeException("mimeEncrypt.js", ex);
throw (ex);
}
},
writeOut: function(str) {
if (gDebugLogLevel > 4)
LOCAL_DEBUG("mimeEncrypt.js: writeOut: " + str.length + "\n");
this.outQueue += str;
if (this.outQueue.length > maxBufferLen)
this.flushOutput();
},
flushOutput: function() {
LOCAL_DEBUG("mimeEncrypt.js: flushOutput: " + this.outQueue.length + "\n");
// check for output errors
// TODO: remove check
let i = this.outQueue.search(/[^\r]\n/);
if (i != -1) {
LOCAL_DEBUG("mimeEncrypt.js: flushOutput -- ERROR: found \\n without \\r at pos. " + i + "\n");
LOCAL_DEBUG("mimeEncrypt.js: flushOutput: data= '" + this.outQueue.substr(i - 10 < 0 ? 0 : i - 10, 20) + "'\n");
}
this.outStringStream.setData(this.outQueue, this.outQueue.length);
var writeCount = this.outStream.writeFrom(this.outStringStream, this.outQueue.length);
if (writeCount < this.outQueue.length) {
LOCAL_DEBUG("mimeEncrypt.js: flushOutput: wrote " + writeCount + " instead of " + this.outQueue.length + " bytes\n");
}
this.outQueue = "";
},
writeToPipe: function(str) {
if (gDebugLogLevel > 4)
LOCAL_DEBUG("mimeEncrypt.js: writeToPipe: " + str.length + "\n");
if (this.pipe) {
this.pipeQueue += str;
if (this.pipeQueue.length > maxBufferLen)
this.flushInput();
}
else
this.pipeQueue += str;
},
flushInput: function() {
LOCAL_DEBUG("mimeEncrypt.js: flushInput\n");
if (!this.pipe) return;
this.pipe.write(this.pipeQueue);
this.pipeQueue = "";
},
getHeader: function(hdrStr, fullHeader) {
var foundIndex = 0;
var res = "";
var hdrLines = this.headerData.split(/[\r\n]+/);
var i;
for (i = 0; i < hdrLines.length; i++) {
if (hdrLines[i].length > 0) {
if (fullHeader && res !== "") {
if (hdrLines[i].search(/^\s+/) === 0) {
res += hdrLines[i].replace(/\s*[\r\n]*$/, "");
}
else
return res;
}
else {
let j = hdrLines[i].indexOf(":");
if (j > 0) {
let h = hdrLines[i].substr(0, j).replace(/\s*$/, "");
let re = new RegExp("^" + hdrStr + "$", "i");
if (h.search(re) === 0) {
foundIndex = 1;
res = hdrLines[i].substr(j + 1).replace(/^\s*/, "");
if (!fullHeader) return res;
}
}
}
}
}
return res;
},
// API for decryptMessage Listener
stdin: function(pipe) {
LOCAL_DEBUG("mimeEncrypt.js: stdin\n");
if (this.pipeQueue.length > 0) {
pipe.write(this.pipeQueue);
this.pipeQueue = "";
if (this.closePipe) pipe.close();
}
this.pipe = pipe;
},
stdout: function(s) {
LOCAL_DEBUG("mimeEncrypt.js: stdout:" + s.length + "\n");
this.encryptedData += s;
this.dataLength += s.length;
},
stderr: function(s) {
LOCAL_DEBUG("mimeEncrypt.js: stderr\n");
this.statusStr += s;
},
done: function(exitCode) {
LOCAL_DEBUG("mimeEncrypt.js: done: " + exitCode + "\n");
let retStatusObj = {};
this.exitCode = EnigmailEncryption.encryptMessageEnd(this.enigSecurityInfo.senderEmailAddr,
this.statusStr,
exitCode,
this.enigSecurityInfo.UIFlags,
this.enigSecurityInfo.sendFlags,
this.dataLength,
retStatusObj);
if (this.exitCode !== 0)
EnigmailDialog.alert(this.win, retStatusObj.errorMsg);
if (this.inspector && this.inspector.eventLoopNestLevel > 0) {
// unblock the waiting lock in finishCryptoEncapsulation
this.inspector.exitNestedEventLoop();
}
}
};
////////////////////////////////////////////////////////////////////
// General-purpose functions, not exported
function LOCAL_DEBUG(str) {
if (gDebugLogLevel) EnigmailLog.DEBUG(str);
}
function initModule() {
var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
var nspr_log_modules = env.get("NSPR_LOG_MODULES");
var matches = nspr_log_modules.match(/mimeEncrypt:(\d+)/);
if (matches && (matches.length > 1)) {
gDebugLogLevel = matches[1];
LOCAL_DEBUG("mimeEncrypt.js: enabled debug logging\n");
}
}
var NSGetFactory = XPCOMUtils.generateNSGetFactory([PgpMimeEncrypt]);
initModule();
enigmail/package/mimeVerify.jsm 0000664 0000000 0000000 00000043560 12667016244 0017105 0 ustar 00root root 0000000 0000000 /*global Components: false */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailVerify"];
/**
* Module for handling PGP/MIME signed messages
* implemented as JS module
*/
// TODO: Missing features
// - don't attempt to validate forwarded messages unless message is being viewed
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Components.utils.import("resource://enigmail/funcs.jsm"); /*global EnigmailFuncs: false */
Components.utils.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Components.utils.import("resource://enigmail/files.jsm"); /*global EnigmailFiles: false */
Components.utils.import("resource://enigmail/mime.jsm"); /*global EnigmailMime: false */
Components.utils.import("resource://enigmail/data.jsm"); /*global EnigmailData: false */
Components.utils.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Components.utils.import("resource://enigmail/constants.jsm"); /*global EnigmailConstants: false */
Components.utils.import("resource://enigmail/decryption.jsm"); /*global EnigmailDecryption: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const APPSHELL_MEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1";
const maxBufferLen = 102400;
var gDebugLog = false;
var gConv = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
// MimeVerify Constructor
function MimeVerify() {
this.verifyEmbedded = false;
this.partiallySigned = false;
this.inStream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream);
}
const EnigmailVerify = {
lastMsgWindow: null,
lastMsgUri: null,
manualMsgUri: null,
currentCtHandler: EnigmailConstants.MIME_HANDLER_UNDEF,
setMsgWindow: function(msgWindow, msgUriSpec) {
LOCAL_DEBUG("mimeVerify.jsm: setMsgWindow: " + msgUriSpec + "\n");
this.lastMsgWindow = msgWindow;
this.lastMsgUri = msgUriSpec;
},
newVerifier: function() {
let v = new MimeVerify();
return v;
},
setManualUri: function(msgUriSpec) {
LOCAL_DEBUG("mimeVerify.jsm: setManualUri: " + msgUriSpec + "\n");
this.manualMsgUri = msgUriSpec;
},
getManualUri: function() {
EnigmailLog.DEBUG("mimeVerify.jsm: getManualUri\n");
return this.manualMsgUri;
},
/***
* register a PGP/MIME verify object the same way PGP/MIME encrypted mail is handled
*/
registerContentTypeHandler: function() {
EnigmailLog.DEBUG("mimeVerify.jsm: registerContentTypeHandler\n");
let reg = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
let pgpMimeClass = Components.classes["@mozilla.org/mimecth;1?type=multipart/encrypted"];
reg.registerFactory(
pgpMimeClass,
"Enigmail PGP/MIME verification",
"@mozilla.org/mimecth;1?type=multipart/signed",
null);
this.currentCtHandler = EnigmailConstants.MIME_HANDLER_PGPMIME;
},
unregisterContentTypeHandler: function() {
EnigmailLog.DEBUG("mimeVerify.jsm: unregisterContentTypeHandler\n");
let reg = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
let sMimeClass = Components.classes["@mozilla.org/nsCMSDecoder;1"];
reg.registerFactory(sMimeClass, "S/MIME verification", "@mozilla.org/mimecth;1?type=multipart/signed", null);
this.currentCtHandler = EnigmailConstants.MIME_HANDLER_SMIME;
}
};
// MimeVerify implementation
// verify the signature of PGP/MIME signed messages
MimeVerify.prototype = {
dataCount: 0,
foundMsg: false,
startMsgStr: "",
msgWindow: null,
msgUriSpec: null,
statusDisplayed: false,
exitCode: null,
window: null,
inStream: null,
sigFile: null,
sigData: "",
mimePartNumber: "",
QueryInterface: XPCOMUtils.generateQI([Ci.nsIStreamListener]),
startStreaming: function(window, msgWindow, msgUriSpec) {
LOCAL_DEBUG("mimeVerify.jsm: startStreaming\n");
this.msgWindow = msgWindow;
this.msgUriSpec = msgUriSpec;
this.window = window;
var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger);
var msgSvc = messenger.messageServiceFromURI(this.msgUriSpec);
msgSvc.streamMessage(this.msgUriSpec,
this,
this.msgWindow,
null,
false,
null,
false);
},
verifyData: function(window, msgWindow, msgUriSpec, data) {
LOCAL_DEBUG("mimeVerify.jsm: streamFromChannel\n");
this.msgWindow = msgWindow;
this.msgUriSpec = msgUriSpec;
this.window = window;
this.onStartRequest();
this.onTextData(data);
this.onStopRequest();
},
parseContentType: function() {
let contentTypeLine = this.mimeSvc.contentType;
// Eat up CRLF's.
contentTypeLine = contentTypeLine.replace(/[\r\n]/g, "");
LOCAL_DEBUG("mimeVerify.jsm: parseContentType: " + contentTypeLine + "\n");
if (contentTypeLine.search(/multipart\/signed/i) >= 0 &&
contentTypeLine.search(/micalg\s*=\s*[\"\']?pgp-[\"\']?/i) > 0 &&
contentTypeLine.search(/protocol\s*=\s*[\'\"]application\/pgp-signature[\"\']/i) > 0) {
LOCAL_DEBUG("mimeVerify.jsm: parseContentType: found PGP/MIME signed message\n");
this.foundMsg = true;
let hdr = EnigmailFuncs.getHeaderData(contentTypeLine);
hdr.boundary = hdr.boundary || "";
hdr.micalg = hdr.micalg || "";
this.boundary = hdr.boundary.replace(/[\'\"]/g, "");
}
},
onStartRequest: function(request, uri) {
EnigmailLog.DEBUG("mimeVerify.jsm: onStartRequest\n"); // always log this one
this.uri = uri ? uri.QueryInterface(Ci.nsIURI).clone() : null;
this.mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy);
this.msgUriSpec = EnigmailVerify.lastMsgUri;
if ("mimePart" in this.mimeSvc) {
this.mimePartNumber = this.mimeSvc.mimePart;
}
else {
this.mimePartNumber = "";
}
this.dataCount = 0;
this.foundMsg = false;
this.backgroundJob = false;
this.startMsgStr = "";
this.boundary = "";
this.proc = null;
this.closePipe = false;
this.pipe = null;
this.readMode = 0;
this.keepData = "";
this.signedData = "";
this.statusStr = "";
this.returnStatus = null;
this.statusDisplayed = false;
this.protectedHeaders = null;
this.parseContentType();
},
onDataAvailable: function(req, sup, stream, offset, count) {
LOCAL_DEBUG("mimeVerify.jsm: onDataAvailable: " + count + "\n");
if (count > 0) {
this.inStream.init(stream);
var data = this.inStream.read(count);
this.onTextData(data);
}
},
onTextData: function(data) {
LOCAL_DEBUG("mimeVerify.jsm: onTextData\n");
this.dataCount += data.length;
this.keepData += data;
if (this.readMode === 0) {
// header data
let i = this.findNextMimePart();
if (i >= 0) {
i += 2 + this.boundary.length;
if (this.keepData[i] == "\n") {
++i;
}
else if (this.keepData[i] == "\r") {
++i;
if (this.keepData[i] == "\n") ++i;
}
this.keepData = this.keepData.substr(i);
data = this.keepData;
this.readMode = 1;
}
else {
this.keepData = data.substr(-this.boundary.length - 3);
}
}
if (this.readMode === 1) {
// "real data"
if (data.indexOf("-") >= 0) { // only check current line for speed reasons
let i = this.findNextMimePart();
if (i >= 0) {
// end of "read data found"
if (this.keepData[i - 2] == '\r' && this.keepData[i - 1] == '\n') {
--i;
}
this.signedData = this.keepData.substr(0, i - 1);
this.keepData = this.keepData.substr(i);
this.readMode = 2;
}
}
else
return;
}
if (this.readMode === 2) {
let i = this.keepData.indexOf("--" + this.boundary + "--");
if (i >= 0) {
// ensure that we keep everything until we got the "end" boundary
if (this.keepData[i - 2] == '\r' && this.keepData[i - 1] == '\n') {
--i;
}
this.keepData = this.keepData.substr(0, i - 1);
this.readMode = 3;
}
}
if (this.readMode === 3) {
// signature data
let xferEnc = this.getContentTransferEncoding();
if (xferEnc.search(/base64/i) >= 0) {
let bound = this.getBodyPart();
this.keepData = EnigmailData.decodeBase64(this.keepData.substring(bound.start, bound.end)) + "\n";
}
else if (xferEnc.search(/quoted-printable/i) >= 0) {
let bound = this.getBodyPart();
let qp = this.keepData.substring(bound.start, bound.end);
this.keepData = EnigmailData.decodeQuotedPrintable(qp) + "\n";
}
// extract signature data
let s = Math.max(this.keepData.search(/^-----BEGIN PGP /m), 0);
let e = Math.max(this.keepData.search(/^-----END PGP /m), this.keepData.length - 30);
this.sigData = this.keepData.substring(s, e + 30);
this.keepData = "";
this.readMode = 4; // ignore any further data
}
},
getBodyPart: function() {
let start = this.keepData.search(/(\n\n|\r\n\r\n)/);
if (start < 0) {
start = 0;
}
let end = this.keepData.indexOf("--" + this.boundary + "--") - 1;
return {
start: start,
end: end
};
},
// determine content-transfer encoding of mime part, assuming that whole
// message is in this.keepData
getContentTransferEncoding: function() {
let enc = "7bit";
let m = this.keepData.match(/^(content-transfer-encoding:)(.*)$/mi);
if (m && m.length > 2) {
enc = m[2].trim().toLowerCase();
}
return enc;
},
findNextMimePart: function() {
let startOk = false;
let endOk = false;
let i = this.keepData.indexOf("--" + this.boundary);
if (i === 0) startOk = true;
if (i > 0) {
if (this.keepData[i - 1] == '\r' || this.keepData[i - 1] == '\n') startOk = true;
}
if (!startOk) return -1;
if (i + this.boundary.length + 2 < this.keepData.length) {
if (this.keepData[i + this.boundary.length + 2] == '\r' ||
this.keepData[i + this.boundary.length + 2] == '\n' ||
this.keepData.substr(i + this.boundary.length + 2, 2) == '--') endOk = true;
}
// else
// endOk = true;
if (i >= 0 && startOk && endOk) {
return i;
}
return -1;
},
onStopRequest: function() {
LOCAL_DEBUG("mimeVerify.jsm: onStopRequest\n");
this.msgWindow = EnigmailVerify.lastMsgWindow;
this.msgUriSpec = EnigmailVerify.lastMsgUri;
let url = {};
this.backgroundJob = false;
// don't try to verify if no message found
// if (this.verifyEmbedded && (!this.foundMsg)) return; // TODO - check
this.protectedHeaders = EnigmailMime.extractProtectedHeaders(this.signedData);
if (this.protectedHeaders && this.protectedHeaders.startPos >= 0 && this.protectedHeaders > this.protectedHeaders.startPos) {
let r = this.signedData.substr(0, this.protectedHeaders.startPos) + this.signedData.substr(this.protectedHeaders.endPos);
this.returnData(r);
}
else {
this.returnData(this.signedData);
}
if (this.uri) {
// return if not decrypting currently displayed message (except if
// printing, replying, etc)
this.backgroundJob = (this.uri.spec.search(/[\&\?]header=(print|quotebody|enigmailConvert)/) >= 0);
try {
var messenger = Cc["@mozilla.org/messenger;1"].getService(Ci.nsIMessenger);
if (!EnigmailPrefs.getPref("autoDecrypt")) {
// "decrypt manually" mode
let manUrl = {};
if (EnigmailVerify.getManualUri()) {
let msgSvc = messenger.messageServiceFromURI(EnigmailVerify.getManualUri());
msgSvc.GetUrlForUri(EnigmailVerify.getManualUri(), manUrl, null);
}
else {
manUrl.value = {
spec: "enigmail://invalid/message"
};
}
// print a message if not message explicitly decrypted
let currUrlSpec = this.uri.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2");
let manUrlSpec = manUrl.value.spec.replace(/(\?.*)(number=[0-9]*)(&.*)?$/, "?$2");
if ((!this.backgroundJob) && currUrlSpec != manUrlSpec) {
return; // this.handleManualDecrypt();
}
}
if (this.msgUriSpec) {
let msgSvc = messenger.messageServiceFromURI(this.msgUriSpec);
msgSvc.GetUrlForUri(this.msgUriSpec, url, null);
}
if (this.uri.spec.search(/[\&\?]header=[a-zA-Z0-9]*$/) < 0 &&
this.uri.spec.search(/[\&\?]part=[\.0-9]+/) < 0 &&
this.uri.spec.search(/[\&\?]examineEncryptedParts=true/) < 0) {
if (this.uri.spec.search(/[\&\?]header=filter\&.*$/) > 0)
return;
if (this.uri && url && url.value) {
if (url.value.spec != this.uri.spec)
return;
}
}
}
catch (ex) {
EnigmailLog.writeException("mimeVerify.jsm", ex);
EnigmailLog.DEBUG("mimeVerify.jsm: error while processing " + this.msgUriSpec + "\n");
}
}
var windowManager = Cc[APPSHELL_MEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator);
var win = windowManager.getMostRecentWindow(null);
// create temp file holding signature data
this.sigFile = EnigmailFiles.getTempDirObj();
this.sigFile.append("data.sig");
this.sigFile.createUnique(this.sigFile.NORMAL_FILE_TYPE, 0x180);
EnigmailFiles.writeFileContents(this.sigFile, this.sigData, 0x180);
var statusFlagsObj = {};
var errorMsgObj = {};
this.proc = EnigmailDecryption.decryptMessageStart(win, true, true, this,
statusFlagsObj, errorMsgObj,
EnigmailFiles.getEscapedFilename(EnigmailFiles.getFilePath(this.sigFile)));
if (this.pipe) {
EnigmailLog.DEBUG("Closing pipe\n"); // always log this one
this.pipe.close();
}
else
this.closePipe = true;
},
// return data to libMime
returnData: function(data) {
let m = data.match(/^(content-type: +)([\w\/]+)/im);
if (m && m.length >= 3) {
let contentType = m[2];
if (contentType.search(/^text/i) === 0) {
// add multipart/mixed boundary to work around TB bug (empty forwarded message)
let bound = EnigmailMime.createBoundary();
data = 'Content-Type: multipart/mixed; boundary="' + bound + '"\n\n--' +
bound + '\n' +
data +
'\n--' + bound + '--\n';
}
}
gConv.setData(data, data.length);
try {
this.mimeSvc.onStartRequest(null, null);
this.mimeSvc.onDataAvailable(null, null, gConv, 0, data.length);
this.mimeSvc.onStopRequest(null, null, 0);
}
catch (ex) {
EnigmailLog.ERROR("mimeVerify.jsm: returnData(): mimeSvc.onDataAvailable failed:\n" + ex.toString());
}
},
// API for decryptMessage Listener
stdin: function(pipe) {
LOCAL_DEBUG("mimeVerify.jsm: stdin\n");
if (this.signedData.length > 0) {
LOCAL_DEBUG("mimeVerify.jsm: writing " + this.signedData.length + " bytes\n");
// ensure all lines end with CRLF as specified in RFC 3156, section 5
this.signedData = this.signedData.replace(/\r\n/g, "\n").replace(/\n/g, "\r\n");
pipe.write(this.signedData);
if (this.closePipe) pipe.close();
}
this.pipe = pipe;
},
stdout: function(s) {
LOCAL_DEBUG("mimeVerify.jsm: stdout:" + s.length + "\n");
this.dataLength += s.length;
},
stderr: function(s) {
LOCAL_DEBUG("mimeVerify.jsm: stderr\n");
this.statusStr += s;
},
done: function(exitCode) {
LOCAL_DEBUG("mimeVerify.jsm: done: " + exitCode + "\n");
this.exitCode = exitCode;
//LOCAL_DEBUG("mimeVerify.jsm: "+this.statusStr+"\n");
this.returnStatus = {};
EnigmailDecryption.decryptMessageEnd(this.statusStr,
this.exitCode,
this.dataLength,
true, // verifyOnly
true,
Ci.nsIEnigmail.UI_PGP_MIME,
this.returnStatus);
if (this.partiallySigned)
this.returnStatus.statusFlags |= Ci.nsIEnigmail.PARTIALLY_PGP;
this.displayStatus();
if (this.sigFile) this.sigFile.remove(false);
},
setMsgWindow: function(msgWindow, msgUriSpec) {
EnigmailLog.DEBUG("mimeVerify.jsm: setMsgWindow: " + msgUriSpec + "\n");
if (!this.msgWindow) {
this.msgWindow = msgWindow;
this.msgUriSpec = msgUriSpec;
}
},
displayStatus: function() {
EnigmailLog.DEBUG("mimeVerify.jsm: displayStatus\n");
if (this.exitCode === null || this.msgWindow === null || this.statusDisplayed || this.backgroundJob)
return;
try {
LOCAL_DEBUG("mimeVerify.jsm: displayStatus displaying result\n");
let headerSink = this.msgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink);
if (this.protectedHeaders) {
headerSink.modifyMessageHeaders(this.uri, JSON.stringify(this.protectedHeaders.newHeaders));
}
if (headerSink) {
headerSink.updateSecurityStatus(this.lastMsgUri,
this.exitCode,
this.returnStatus.statusFlags,
this.returnStatus.keyId,
this.returnStatus.userId,
this.returnStatus.sigDetails,
this.returnStatus.errorMsg,
this.returnStatus.blockSeparation,
this.uri,
this.returnStatus.encToDetails,
this.mimePartNumber);
}
this.statusDisplayed = true;
}
catch (ex) {
EnigmailLog.writeException("mimeVerify.jsm", ex);
}
}
};
////////////////////////////////////////////////////////////////////
// General-purpose functions, not exported
function LOCAL_DEBUG(str) {
if (gDebugLog) EnigmailLog.DEBUG(str);
}
function initModule() {
var env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
var nspr_log_modules = env.get("NSPR_LOG_MODULES");
var matches = nspr_log_modules.match(/mimeVerify:(\d+)/);
if (matches && (matches.length > 1)) {
if (matches[1] > 2) gDebugLog = true;
}
}
initModule();
enigmail/package/msgCompFields.js 0000664 0000000 0000000 00000004403 12667016244 0017341 0 ustar 00root root 0000000 0000000 /*global Components XPCOMUtils */
/* jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
'use strict';
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
const Ci = Components.interfaces;
// components defined in this file
const ENIG_ENIGMSGCOMPFIELDS_CONTRACTID =
"@mozdev.org/enigmail/composefields;1";
const ENIG_ENIGMSGCOMPFIELDS_CID =
Components.ID("{847b3a30-7ab1-11d4-8f02-006008948af5}");
function EnigMsgCompFields() {}
EnigMsgCompFields.prototype = {
classDescription: "Enigmail Msg Compose Fields",
classID: ENIG_ENIGMSGCOMPFIELDS_CID,
contractID: ENIG_ENIGMSGCOMPFIELDS_CONTRACTID,
QueryInterface: XPCOMUtils.generateQI([
Ci.nsIEnigMsgCompFields,
Ci.nsEnigMsgCompFields,
Ci.nsIMsgSMIMECompFields,
Ci.nsIMsgCompFields,
Ci.nsISupports
]),
_parent: null,
UIFlags: 0,
endFlags: 0,
senderEmailAddr: "",
recipients: "",
msgSMIMECompFields: null,
init: function(smimeCompFields) {
var members = ["from",
"replyTo",
"to",
"cc",
"bcc",
"fcc",
"fcc2",
"newsgroups",
"newshost",
"newspostUrl",
"followupTo",
"subject",
"attachments",
"organization",
"references",
"priority",
"messageId",
"characterSet",
"defaultCharacterSet",
"templateName",
"draftId",
"returnReceipt",
"receiptHeaderType",
"attachVCard",
"forcePlainText",
"useMultipartAlternative",
"uuEncodeAttachments",
"bodyIsAsciiOnly",
"forceMsgEncoding",
"otherRandomHeaders",
"body",
"temporaryFiles",
"attachmentsArray",
"addAttachment",
"removeAttachment",
"removeAttachments",
"ConvertBodyToPlainText",
"checkCharsetConversion",
"needToCheckCharset",
"securityInfo",
"senderReply",
"allReply",
"splitRecipients",
"listReply"
];
this._parent = smimeCompFields;
var m;
for (m in members) {
this[m] = smimeCompFields[m];
}
}
};
var NSGetFactory = XPCOMUtils.generateNSGetFactory([EnigMsgCompFields]);
enigmail/package/os.jsm 0000664 0000000 0000000 00000002633 12667016244 0015406 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailOS"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const XPCOM_APPINFO = "@mozilla.org/xre/app-info;1";
function getOS() {
return Cc[XPCOM_APPINFO].getService(Ci.nsIXULRuntime).OS;
}
const EnigmailOS = {
isWin32: (getOS() == "WINNT"),
getOS: getOS,
isDosLike: function() {
if (EnigmailOS.isDosLikeVal === undefined) {
EnigmailOS.isDosLikeVal = (EnigmailOS.getOS() == "WINNT" || EnigmailOS.getOS() == "OS2");
}
return EnigmailOS.isDosLikeVal;
},
// get a Windows registry value (string)
// @ keyPath: the path of the registry (e.g. Software\\GNU\\GnuPG)
// @ keyName: the name of the key to get (e.g. InstallDir)
// @ rootKey: HKLM, HKCU, etc. (according to constants in nsIWindowsRegKey)
getWinRegistryString: function(keyPath, keyName, rootKey) {
var registry = Cc["@mozilla.org/windows-registry-key;1"].createInstance(Ci.nsIWindowsRegKey);
var retval = "";
try {
registry.open(rootKey, keyPath, registry.ACCESS_READ);
retval = registry.readStringValue(keyName);
registry.close();
}
catch (ex) {}
return retval;
}
};
enigmail/package/passwordCheck.jsm 0000664 0000000 0000000 00000023043 12667016244 0017563 0 ustar 00root root 0000000 0000000 /*jshint -W097 */
/*
Taken from jquery.complexify (WTFPL 2.0)
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailPasswordCheck"];
const EnigmailPasswordCheck = {
/**
* Check password quality
*
* password: String: the password to evaluate
*
* return: object: valid: Boolean - is password valid or not
* complexity: Number - complexity of password (values between 0 and 100)
*/
checkQuality: function(password) {
return evaluateSecurity(password);
}
};
/*********
Helper functions and variables
*/
const COMPLEXIFY_BANLIST =
'123456|password|12345678|1234|pussy|12345|dragon|qwerty|696969|mustang|letmein|baseball|master|michael|football|shadow|monkey|abc123|pass|fuckme|6969|jordan|harley|ranger|iwantu|jennifer|hunter|fuck|2000|test|batman|trustno1|thomas|tigger|robert|access|love|buster|1234567|soccer|hockey|killer|george|sexy|andrew|charlie|superman|asshole|fuckyou|dallas|jessica|panties|pepper|1111|austin|william|daniel|golfer|summer|heather|hammer|yankees|joshua|maggie|biteme|enter|ashley|thunder|cowboy|silver|richard|fucker|orange|merlin|michelle|corvette|bigdog|cheese|matthew|121212|patrick|martin|freedom|ginger|blowjob|nicole|sparky|yellow|camaro|secret|dick|falcon|taylor|111111|131313|123123|bitch|hello|scooter|please|porsche|guitar|chelsea|black|diamond|nascar|jackson|cameron|654321|computer|amanda|wizard|xxxxxxxx|money|phoenix|mickey|bailey|knight|iceman|tigers|purple|andrea|horny|dakota|aaaaaa|player|sunshine|morgan|starwars|boomer|cowboys|edward|charles|girls|booboo|coffee|xxxxxx|bulldog|ncc1701|rabbit|peanut|john|johnny|gandalf|spanky|winter|brandy|compaq|carlos|tennis|james|mike|brandon|fender|anthony|blowme|ferrari|cookie|chicken|maverick|chicago|joseph|diablo|sexsex|hardcore|666666|willie|welcome|chris|panther|yamaha|justin|banana|driver|marine|angels|fishing|david|maddog|hooters|wilson|butthead|dennis|fucking|captain|bigdick|chester|smokey|xavier|steven|viking|snoopy|blue|eagles|winner|samantha|house|miller|flower|jack|firebird|butter|united|turtle|steelers|tiffany|zxcvbn|tomcat|golf|bond007|bear|tiger|doctor|gateway|gators|angel|junior|thx1138|porno|badboy|debbie|spider|melissa|booger|1212|flyers|fish|porn|matrix|teens|scooby|jason|walter|cumshot|boston|braves|yankee|lover|barney|victor|tucker|princess|mercedes|5150|doggie|' +
'zzzzzz|gunner|horney|bubba|2112|fred|johnson|xxxxx|tits|member|boobs|donald|bigdaddy|bronco|penis|voyager|rangers|birdie|trouble|white|topgun|bigtits|bitches|green|super|qazwsx|magic|lakers|rachel|slayer|scott|2222|asdf|video|london|7777|marlboro|srinivas|internet|action|carter|jasper|monster|teresa|jeremy|11111111|bill|crystal|peter|pussies|cock|beer|rocket|theman|oliver|prince|beach|amateur|7777777|muffin|redsox|star|testing|shannon|murphy|frank|hannah|dave|eagle1|11111|mother|nathan|raiders|steve|forever|angela|viper|ou812|jake|lovers|suckit|gregory|buddy|whatever|young|nicholas|lucky|helpme|jackie|monica|midnight|college|baby|cunt|brian|mark|startrek|sierra|leather|232323|4444|beavis|bigcock|happy|sophie|ladies|naughty|giants|booty|blonde|fucked|golden|0|fire|sandra|pookie|packers|einstein|dolphins|chevy|winston|warrior|sammy|slut|8675309|zxcvbnm|nipples|power|victoria|asdfgh|vagina|toyota|travis|hotdog|paris|rock|xxxx|extreme|redskins|erotic|dirty|ford|freddy|arsenal|access14|wolf|nipple|iloveyou|alex|florida|eric|legend|movie|success|rosebud|jaguar|great|cool|cooper|1313|scorpio|mountain|madison|987654|brazil|lauren|japan|naked|squirt|stars|apple|alexis|aaaa|bonnie|peaches|jasmine|kevin|matt|qwertyui|danielle|beaver|4321|4128|runner|swimming|dolphin|gordon|casper|stupid|shit|saturn|gemini|apples|august|3333|canada|blazer|cumming|hunting|kitty|rainbow|112233|arthur|cream|calvin|shaved|surfer|samson|kelly|paul|mine|king|racing|5555|eagle|hentai|newyork|little|redwings|smith|sticky|cocacola|animal|broncos|private|skippy|marvin|blondes|enjoy|girl|apollo|parker|qwert|time|sydney|women|voodoo|magnum|juice|abgrtyu|777777|dreams|maxwell|music|rush2112|russia|scorpion|rebecca|tester|mistress|phantom|billy|6666|albert|111111|11111111|112233|' +
'121212|123123|123456|1234567|12345678|131313|232323|654321|666666|696969|777777|7777777|8675309|987654|abcdef|password1|password12|password123|twitter'.split('|');
const options = {
minimumChars: 8,
strengthScaleFactor: 1,
bannedPasswords: COMPLEXIFY_BANLIST,
banMode: 'strict' // (strict|loose)
};
const MIN_COMPLEXITY = 30; // 8 chars with Upper, Lower and Number
//var MAX_COMPLEXITY = 120; // 25 chars, all charsets
const MAX_COMPLEXITY = 60;
const CHARSETS = [
// Commonly Used
////////////////////
[0x0020, 0x0020], // Space
[0x0030, 0x0039], // Numbers
[0x0041, 0x005A], // Uppercase
[0x0061, 0x007A], // Lowercase
[0x0021, 0x002F], // Punctuation
[0x003A, 0x0040], // Punctuation
[0x005B, 0x0060], // Punctuation
[0x007B, 0x007E], // Punctuation
// Everything Else
////////////////////
[0x0080, 0x00FF], // Latin-1 Supplement
[0x0100, 0x017F], // Latin Extended-A
[0x0180, 0x024F], // Latin Extended-B
[0x0250, 0x02AF], // IPA Extensions
[0x02B0, 0x02FF], // Spacing Modifier Letters
[0x0300, 0x036F], // Combining Diacritical Marks
[0x0370, 0x03FF], // Greek
[0x0400, 0x04FF], // Cyrillic
[0x0530, 0x058F], // Armenian
[0x0590, 0x05FF], // Hebrew
[0x0600, 0x06FF], // Arabic
[0x0700, 0x074F], // Syriac
[0x0780, 0x07BF], // Thaana
[0x0900, 0x097F], // Devanagari
[0x0980, 0x09FF], // Bengali
[0x0A00, 0x0A7F], // Gurmukhi
[0x0A80, 0x0AFF], // Gujarati
[0x0B00, 0x0B7F], // Oriya
[0x0B80, 0x0BFF], // Tamil
[0x0C00, 0x0C7F], // Telugu
[0x0C80, 0x0CFF], // Kannada
[0x0D00, 0x0D7F], // Malayalam
[0x0D80, 0x0DFF], // Sinhala
[0x0E00, 0x0E7F], // Thai
[0x0E80, 0x0EFF], // Lao
[0x0F00, 0x0FFF], // Tibetan
[0x1000, 0x109F], // Myanmar
[0x10A0, 0x10FF], // Georgian
[0x1100, 0x11FF], // Hangul Jamo
[0x1200, 0x137F], // Ethiopic
[0x13A0, 0x13FF], // Cherokee
[0x1400, 0x167F], // Unified Canadian Aboriginal Syllabics
[0x1680, 0x169F], // Ogham
[0x16A0, 0x16FF], // Runic
[0x1780, 0x17FF], // Khmer
[0x1800, 0x18AF], // Mongolian
[0x1E00, 0x1EFF], // Latin Extended Additional
[0x1F00, 0x1FFF], // Greek Extended
[0x2000, 0x206F], // General Punctuation
[0x2070, 0x209F], // Superscripts and Subscripts
[0x20A0, 0x20CF], // Currency Symbols
[0x20D0, 0x20FF], // Combining Marks for Symbols
[0x2100, 0x214F], // Letterlike Symbols
[0x2150, 0x218F], // Number Forms
[0x2190, 0x21FF], // Arrows
[0x2200, 0x22FF], // Mathematical Operators
[0x2300, 0x23FF], // Miscellaneous Technical
[0x2400, 0x243F], // Control Pictures
[0x2440, 0x245F], // Optical Character Recognition
[0x2460, 0x24FF], // Enclosed Alphanumerics
[0x2500, 0x257F], // Box Drawing
[0x2580, 0x259F], // Block Elements
[0x25A0, 0x25FF], // Geometric Shapes
[0x2600, 0x26FF], // Miscellaneous Symbols
[0x2700, 0x27BF], // Dingbats
[0x2800, 0x28FF], // Braille Patterns
[0x2E80, 0x2EFF], // CJK Radicals Supplement
[0x2F00, 0x2FDF], // Kangxi Radicals
[0x2FF0, 0x2FFF], // Ideographic Description Characters
[0x3000, 0x303F], // CJK Symbols and Punctuation
[0x3040, 0x309F], // Hiragana
[0x30A0, 0x30FF], // Katakana
[0x3100, 0x312F], // Bopomofo
[0x3130, 0x318F], // Hangul Compatibility Jamo
[0x3190, 0x319F], // Kanbun
[0x31A0, 0x31BF], // Bopomofo Extended
[0x3200, 0x32FF], // Enclosed CJK Letters and Months
[0x3300, 0x33FF], // CJK Compatibility
[0x3400, 0x4DB5], // CJK Unified Ideographs Extension A
[0x4E00, 0x9FFF], // CJK Unified Ideographs
[0xA000, 0xA48F], // Yi Syllables
[0xA490, 0xA4CF], // Yi Radicals
[0xAC00, 0xD7A3], // Hangul Syllables
[0xD800, 0xDB7F], // High Surrogates
[0xDB80, 0xDBFF], // High Private Use Surrogates
[0xDC00, 0xDFFF], // Low Surrogates
[0xE000, 0xF8FF], // Private Use
[0xF900, 0xFAFF], // CJK Compatibility Ideographs
[0xFB00, 0xFB4F], // Alphabetic Presentation Forms
[0xFB50, 0xFDFF], // Arabic Presentation Forms-A
[0xFE20, 0xFE2F], // Combining Half Marks
[0xFE30, 0xFE4F], // CJK Compatibility Forms
[0xFE50, 0xFE6F], // Small Form Variants
[0xFE70, 0xFEFE], // Arabic Presentation Forms-B
[0xFEFF, 0xFEFF], // Specials
[0xFF00, 0xFFEF], // Halfwidth and Fullwidth Forms
[0xFFF0, 0xFFFD] // Specials
];
function additionalComplexityForCharset(str, charset) {
for (var i = str.length - 1; i >= 0; i--) {
if (charset[0] <= str.charCodeAt(i) && str.charCodeAt(i) <= charset[1]) {
return charset[1] - charset[0] + 1;
}
}
return 0;
}
function inBanlist(str) {
if (options.banMode === 'strict') {
for (var i = 0; i < options.bannedPasswords.length; i++) {
if (options.bannedPasswords[i].indexOf(str) !== -1) {
return true;
}
}
return false;
}
else {
return (options.bannedPasswords.indexOf(str) > -1 ? true : false);
}
}
function evaluateSecurity(password) {
var complexity = 0,
valid = false;
// Reset complexity to 0 when banned password is found
if (!inBanlist(password)) {
// Add character complexity
for (var i = CHARSETS.length - 1; i >= 0; i--) {
complexity += additionalComplexityForCharset(password, CHARSETS[i]);
}
}
else {
complexity = 1;
}
// Use natural log to produce linear scale
complexity = Math.log(Math.pow(complexity, password.length)) * (1 / options.strengthScaleFactor);
valid = (complexity > MIN_COMPLEXITY && password.length >= options.minimumChars);
// Scale to percentage, so it can be used for a progress bar
complexity = (complexity / MAX_COMPLEXITY) * 100;
complexity = (complexity > 100) ? 100 : complexity;
return {
valid: valid,
complexity: complexity
};
}
enigmail/package/passwords.jsm 0000664 0000000 0000000 00000004752 12667016244 0017016 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailPassword"];
const Cu = Components.utils;
Cu.import("resource://enigmail/lazy.jsm"); /*global EnigmailLazy: false */
Cu.import("resource://enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
Cu.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Cu.import("resource://enigmail/subprocess.jsm"); /*global subprocess: false */
const gpgAgent = EnigmailLazy.loader("enigmail/gpgAgent.jsm", "EnigmailGpgAgent");
const getDialog = EnigmailLazy.loader("enigmail/dialog.jsm", "EnigmailDialog");
const getLocale = EnigmailLazy.loader("enigmail/locale.jsm", "EnigmailLocale");
const EnigmailPassword = {
/*
* Get GnuPG command line options for receiving the password depending
* on the various user and system settings (gpg-agent/no passphrase)
*
* @return: Array the GnuPG command line options
*/
command: function() {
if (gpgAgent().useGpgAgent()) {
return ["--use-agent"];
}
else {
if (!EnigmailPrefs.getPref("noPassphrase")) {
return ["--passphrase-fd", "0", "--no-use-agent"];
}
}
return [];
},
getMaxIdleMinutes: function() {
try {
return EnigmailPrefs.getPref("maxIdleMinutes");
}
catch (ex) {}
return 5;
},
clearPassphrase: function(win) {
// clear all passphrases from gpg-agent by reloading the config
if (!EnigmailCore.getService()) return;
if (!gpgAgent().useGpgAgent()) {
return;
}
let exitCode = -1;
let isError = 0;
const proc = {
command: gpgAgent().connGpgAgentPath,
arguments: [],
charset: null,
environment: EnigmailCore.getEnvList(),
stdin: function(pipe) {
pipe.write("RELOADAGENT\n");
pipe.write("/bye\n");
pipe.close();
},
stdout: function(data) {
if (data.search(/^ERR/m) >= 0) {
++isError;
}
},
done: function(result) {
exitCode = result.exitCode;
}
};
try {
subprocess.call(proc).wait();
}
catch (ex) {}
if (isError === 0) {
getDialog().alert(win, getLocale().getString("passphraseCleared"));
}
else {
getDialog().alert(win, getLocale().getString("cannotClearPassphrase"));
}
}
};
enigmail/package/pgpmimeHandler.js 0000664 0000000 0000000 00000006426 12667016244 0017550 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/**
* Module for handling PGP/MIME encrypted and/or signed messages
* implemented as an XPCOM object
*/
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Components.utils.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Components.utils.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Components.utils.import("resource://enigmail/mimeDecrypt.jsm"); /*global EnigmailMimeDecrypt: false */
Components.utils.import("resource://enigmail/mimeVerify.jsm"); /*global EnigmailVerify: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const PGPMIME_JS_DECRYPTOR_CONTRACTID = "@mozilla.org/mime/pgp-mime-js-decrypt;1";
const PGPMIME_JS_DECRYPTOR_CID = Components.ID("{7514cbeb-2bfd-4b2c-829b-1a4691fa0ac8}");
////////////////////////////////////////////////////////////////////
// handler for PGP/MIME encrypted and PGP/MIME signed messages
// data is processed from libmime -> nsPgpMimeProxy
const throwErrors = {
onDataAvailable: function() {
throw "error";
},
onStartRequest: function() {
throw "error";
},
onStopRequest: function() {
throw "error";
}
};
function PgpMimeHandler() {
EnigmailLog.DEBUG("mimeDecrypt.js: PgpMimeHandler()\n"); // always log this one
}
PgpMimeHandler.prototype = {
classDescription: "Enigmail JS Decryption Handler",
classID: PGPMIME_JS_DECRYPTOR_CID,
contractID: PGPMIME_JS_DECRYPTOR_CONTRACTID,
QueryInterface: XPCOMUtils.generateQI([Ci.nsIStreamListener]),
inStream: Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream),
onStartRequest: function(request, uri) {
if (!EnigmailCore.getService()) // Ensure Enigmail is initialized
return null;
EnigmailLog.DEBUG("pgpmimeHandler.js: onStartRequest\n");
let mimeSvc = request.QueryInterface(Ci.nsIPgpMimeProxy);
let ct = mimeSvc.contentType;
let cth = null;
if (ct.search(/^multipart\/encrypted/i) === 0) {
// PGP/MIME encrypted message
cth = new EnigmailMimeDecrypt();
}
else if (ct.search(/^multipart\/signed/i) === 0) {
if (ct.search(/application\/pgp-signature/i) > 0) {
// PGP/MIME signed message
cth = EnigmailVerify.newVerifier();
}
else {
// S/MIME signed message
return this.handleSmime(uri);
}
}
if (cth) {
this.onDataAvailable = cth.onDataAvailable.bind(cth);
this.onStopRequest = cth.onStopRequest.bind(cth);
return cth.onStartRequest(request, uri);
}
},
onDataAvailable: function(req, sup, stream, offset, count) {},
onStopRequest: function(request, win, status) {},
handleSmime: function(uri) {
this.contentHandler = throwErrors;
if (uri) {
uri = uri.QueryInterface(Ci.nsIURI).clone();
}
let headerSink = EnigmailVerify.lastMsgWindow.msgHeaderSink.securityInfo.QueryInterface(Ci.nsIEnigMimeHeaderSink);
headerSink.handleSMimeMessage(uri);
}
};
var NSGetFactory = XPCOMUtils.generateNSGetFactory([PgpMimeHandler]);
enigmail/package/pipeConsole.jsm 0000664 0000000 0000000 00000001270 12667016244 0017241 0 ustar 00root root 0000000 0000000 /*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailConsole"];
const MAX_SIZE = 32768;
var dataCache = "";
var gotNewData = false;
const EnigmailConsole = {
write: function(data) {
dataCache += data;
if (dataCache.length > MAX_SIZE) {
dataCache = dataCache.substr(-MAX_SIZE, MAX_SIZE);
}
gotNewData = true;
},
hasNewData: function() {
return gotNewData;
},
getData: function() {
gotNewData = false;
return dataCache;
}
};
enigmail/package/prefs-service.js 0000664 0000000 0000000 00000002453 12667016244 0017365 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
function EnigmailPrefService() {}
EnigmailPrefService.prototype = {
name: "enigprefs",
chromePackageName: "enigmail",
classID: Components.ID("{847b3ab0-7ab1-11d4-8f02-006008948af5}"),
classDescription: "Enigmail Account Manager Extension Service",
contractID: "@mozilla.org/accountmanager/extension;1?name=enigprefs",
_xpcom_categories: [{
category: "mailnews-accountmanager-extensions",
entry: "Enigmail account manager extension",
service: false
}],
QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nsIMsgAccountManagerExtension]),
showPanel: function(server) {
// show Enigmail panel for POP3, IMAP, NNTP and "movemail" (unix) account types
switch (server.type) {
case "nntp":
case "imap":
case "pop3":
case "movemail":
return true;
}
return false;
}
};
var components = [EnigmailPrefService];
const NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
enigmail/package/prefs.jsm 0000664 0000000 0000000 00000012052 12667016244 0016100 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailPrefs"];
Components.utils.import("resource://enigmail/log.jsm"); /* global EnigmailLog: false */
Components.utils.import("resource://enigmail/files.jsm"); /* global EnigmailFiles: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const ENIGMAIL_PREFS_ROOT = "extensions.enigmail.";
const p = {
service: null,
branch: null,
root: null
};
function initPrefService() {
try {
p.service = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
p.root = p.service.getBranch(null);
p.branch = p.service.getBranch(ENIGMAIL_PREFS_ROOT);
if (p.branch.getCharPref("logDirectory")) {
EnigmailLog.setLogLevel(5);
}
}
catch (ex) {
EnigmailLog.ERROR("prefs.jsm: Error in instantiating PrefService\n");
EnigmailLog.ERROR(ex.toString());
}
}
var EnigmailPrefs = {
getPrefRoot: function() {
if (!p.branch) {
initPrefService();
}
return p.root;
},
getPrefBranch: function() {
if (!p.branch) {
initPrefService();
}
return p.branch;
},
getPref: function(prefName) {
if (!p.branch) {
initPrefService();
}
var prefValue = null;
try {
var prefType = p.branch.getPrefType(prefName);
// Get pref value
switch (prefType) {
case p.branch.PREF_BOOL:
prefValue = p.branch.getBoolPref(prefName);
break;
case p.branch.PREF_INT:
prefValue = p.branch.getIntPref(prefName);
break;
case p.branch.PREF_STRING:
prefValue = p.branch.getCharPref(prefName);
break;
default:
prefValue = undefined;
break;
}
}
catch (ex) {
// Failed to get pref value
EnigmailLog.ERROR("enigmailCommon.jsm: getPref: unknown prefName:" + prefName + " \n");
}
return prefValue;
},
/**
* Store a user preference.
*
* @param String prefName An identifier.
* @param any value The value to be stored. Allowed types: Boolean OR Integer OR String.
*
* @return Boolean Was the value stored successfully?
*/
setPref: function(prefName, value) {
EnigmailLog.DEBUG("enigmailCommon.jsm: setPref: " + prefName + ", " + value + "\n");
if (!p.branch) {
initPrefService();
}
// Discover the type of the preference, as stored in the user preferences.
// If the preference identifier doesn't exist yet, it returns 0. In that
// case the type depends on the argument "value".
var prefType;
prefType = p.branch.getPrefType(prefName);
if (prefType === 0) {
switch (typeof value) {
case "boolean":
prefType = p.branch.PREF_BOOL;
break;
case "number":
prefType = p.branch.PREF_INT;
break;
case "string":
prefType = p.branch.PREF_STRING;
break;
default:
prefType = 0;
break;
}
}
var retVal = false;
// Save the preference only and if only the type is bool, int or string.
switch (prefType) {
case p.branch.PREF_BOOL:
p.branch.setBoolPref(prefName, value);
retVal = true;
break;
case p.branch.PREF_INT:
p.branch.setIntPref(prefName, value);
retVal = true;
break;
case p.branch.PREF_STRING:
p.branch.setCharPref(prefName, value);
retVal = true;
break;
default:
break;
}
return retVal;
},
/**
* Save the Mozilla preferences file (prefs.js)
*
* no return value
*/
savePrefs: function() {
EnigmailLog.DEBUG("enigmailCommon.js: savePrefs\n");
try {
p.service.savePrefFile(null);
}
catch (ex) {}
},
/**
* Compiles all Enigmail preferences into an object
*/
getAllPrefs: function() {
EnigmailLog.DEBUG("prefs.js: getAllPrefs\n");
var retObj = {
value: 0
};
var branch = this.getPrefBranch();
var allPrefs = branch.getChildList("", retObj);
var prefObj = {};
var nsIPB = Components.interfaces.nsIPrefBranch;
for (var q in allPrefs) {
var name = allPrefs[q];
/*
* agentPath is system-depend, configuredVersion build-depend and
* advancedUser must be set in order to save the profile.
*/
if (name == "agentPath" || name == "configuredVersion") {
continue;
}
switch (branch.getPrefType(name)) {
case nsIPB.PREF_STRING:
prefObj[name] = branch.getCharPref(name);
break;
case nsIPB.PREF_INT:
prefObj[name] = branch.getIntPref(name);
break;
case nsIPB.PREF_BOOL:
prefObj[name] = branch.getBoolPref(name);
break;
default:
EnigmailLog.ERROR("Pref '" + name + "' has unknown type\n");
}
}
return prefObj;
}
};
enigmail/package/prefs/ 0000775 0000000 0000000 00000000000 12667016244 0015365 5 ustar 00root root 0000000 0000000 enigmail/package/prefs/.eslintrc.js 0000664 0000000 0000000 00000000067 12667016244 0017627 0 ustar 00root root 0000000 0000000 module.exports = {
"rules": {
"strict": 0,
}
}
enigmail/package/prefs/enigmail.js 0000775 0000000 0000000 00000017170 12667016244 0017521 0 ustar 00root root 0000000 0000000 /* global pref: false */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/**
* Default pref values for Enigmail
*/
// the last configured Enigmail version
pref("extensions.enigmail.configuredVersion", "");
// Hide prefs and menu entries from non-advanced users
pref("extensions.enigmail.advancedUser", false);
// additional parameter(s) to pass to GnuPG
pref("extensions.enigmail.agentAdditionalParam", "");
// path to gpg executable
pref("extensions.enigmail.agentPath", "");
// allow empty subject line without asking for confirmation
pref("extensions.enigmail.allowEmptySubject", false);
// ** enigmail keySel preferences:
// use rules to assign keys
pref("extensions.enigmail.assignKeysByRules", true);
// use email addresses to assign keys
pref("extensions.enigmail.assignKeysByEmailAddr", true);
// use manual dialog to assign missing keys
pref("extensions.enigmail.assignKeysManuallyIfMissing", true);
// always srats manual dialog for keys
pref("extensions.enigmail.assignKeysManuallyAlways", false);
// automatically download missing keys from keyserver
pref("extensions.enigmail.autoKeyRetrieve", "");
// enable automatically decrypt/verify
pref("extensions.enigmail.autoDecrypt", true);
// enable X-Enigmail-xxx headers
pref("extensions.enigmail.addHeaders", false);
// countdown for alerts when composing inline PGP HTML msgs
pref("extensions.enigmail.composeHtmlAlertCount", 3);
// prefer S/MIME or PGP/MIME (0: PGP/MIME, 1: ask, 2: S/MIME)
pref("extensions.enigmail.mimePreferPgp", 1);
// show warning message when clicking on sign icon
pref("extensions.enigmail.displaySignWarn", true);
// display warning as info for partially signed message
pref("extensions.enigmail.displayPartiallySigned", true);
// try to match secondary uid to from address
pref("extensions.enigmail.displaySecondaryUid", true);
// treat '-- ' as signature separator
pref("extensions.enigmail.doubleDashSeparator", true);
// last state of dialog to choose encryption method if there are attachments
pref("extensions.enigmail.encryptAttachments", 1);
// skip the attachments dialog
pref("extensions.enigmail.encryptAttachmentsSkipDlg", 0);
// Encrypt to self
pref("extensions.enigmail.encryptToSelf", true);
// enable 'Decrypt & open' for double click on attachment (if possible)
pref("extensions.enigmail.handleDoubleClick", true);
// disable '<' and '>' around email addresses
pref("extensions.enigmail.hushMailSupport", false);
// display alert for 'failed to initialize enigmime'
pref("extensions.enigmail.initAlert", true);
// use -a for encrypting attachments for inline PGP
pref("extensions.enigmail.inlineAttachAsciiArmor", false);
// extension to append for inline-encrypted attachments
pref("extensions.enigmail.inlineAttachExt", ".pgp");
// extension to append for inline-signed attachments
pref("extensions.enigmail.inlineSigAttachExt", ".sig");
// debug log directory (if set, also enabled debugging)
pref("extensions.enigmail.logDirectory", "");
// display all or no keys by default in the key manager
pref("extensions.enigmail.keyManShowAllKeys", true);
// list of keyservers to use
pref("extensions.enigmail.keyserver", "pool.sks-keyservers.net, keys.gnupg.net, pgp.mit.edu");
// auto select the first keyserver in the key server list
pref("extensions.enigmail.autoKeyServerSelection", true);
// keep passphrase for ... minutes
pref("extensions.enigmail.maxIdleMinutes", 5);
// GnuPG hash algorithm
// 0: automatic seletion (i.e. let GnuPG choose)
// 1: SHA1, 2: RIPEMD160, 3: SHA256, 4: SHA384, 5: SHA512, 6: SHA224
pref("extensions.enigmail.mimeHashAlgorithm", 0);
// no passphrase for GnuPG key needed
pref("extensions.enigmail.noPassphrase", false);
// show quoted printable warning message (and remember selected state)
pref("extensions.enigmail.quotedPrintableWarn", 0);
// use http proxy settings as set in Mozilla/Thunderbird
pref("extensions.enigmail.respectHttpProxy", true);
// selection for which encryption model to prefer
// 0: convenient encryption settings DEFAULT
// 1: manual encryption settings
pref("extensions.enigmail.encryptionModel", 0);
// enable encryption for replies to encrypted mails
pref("extensions.enigmail.keepSettingsForReply", true);
// Warn if a key expires in less than N days.
// 0 will disable the check
pref("extensions.enigmail.warnKeyExpiryNumDays", 30);
// holds the last result of the dayily key expiry check
pref("extensions.enigmail.keyCheckResult", "");
// selection for which keys to accept
// 0: accept valid/authenticated keys
// 1: accept all keys (except disabled, ...) DEFAULT
pref("extensions.enigmail.acceptedKeys", 1);
// selection for automatic send encrypted if all keys valid
// 0: never
// 1: if all keys found and accepted DEFAULT
pref("extensions.enigmail.autoSendEncrypted", 1);
// ask to confirm before sending
// 0: never DEFAULT
// 1: always
// 2: if send encrypted
// 3: if send unencrypted
// 4: if send (un)encrypted due to rules
pref("extensions.enigmail.confirmBeforeSending", 0);
// use GnuPG's default instead of Enigmail/Mozilla comment of for signed messages
pref("extensions.enigmail.useDefaultComment", true);
// allow encryption to newsgroups
pref("extensions.enigmail.encryptToNews", false);
pref("extensions.enigmail.warnOnSendingNewsgroups", true);
// use gpg passphrase agent for passphrase handling
pref("extensions.enigmail.useGpgAgent", false);
// use PGP/MIME (0=never, 1=allow, 2=always)
// pref("extensions.enigmail.usePGPMimeOption",1); -- OBSOLETE, see mail.identity.default.pgpMimeMode
// enable using gpgkeys_*
pref("extensions.enigmail.useGpgKeysTool", true);
// show "conflicting rules" message (and remember selected state)
pref("extensions.enigmail.warnOnRulesConflict", 0);
// display a warning when the passphrase is cleared
pref("extensions.enigmail.warnClearPassphrase", true);
// display a warning if the GnuPG version is deprecated
pref("extensions.enigmail.warnDeprecatedGnuPG", true);
// warn if gpg-agent is found and "remember passphrase for X minutes is active"
pref("extensions.enigmail.warnGpgAgentAndIdleTime", true);
// display a warning when all keys are to be refreshed
pref("extensions.enigmail.warnRefreshAll", true);
// display a warning when the keys for all contacts are downloaded
pref("extensions.enigmail.warnDownloadContactKeys", true);
// wrap HTML messages before sending inline PGP messages
pref("extensions.enigmail.wrapHtmlBeforeSend", true);
// enable encryption/signing of headers like subject, from, to
pref("extensions.enigmail.protectHeaders", false);
pref("extensions.enigmail.protectedSubjectText", "");
// enable experimental features.
// WARNING: such features may unfinished functions or tests that can break
// existing functionality in Enigmail and Thunderbird!
pref("extensions.enigmail.enableExperiments", false);
/*
Default pref values for the enigmail per-identity
settings
*/
pref("mail.identity.default.enablePgp", false);
pref("mail.identity.default.pgpkeyId", "");
pref("mail.identity.default.pgpKeyMode", 0);
pref("mail.identity.default.pgpSignPlain", false);
pref("mail.identity.default.pgpSignEncrypted", false);
pref("mail.identity.default.defaultSigningPolicy", 0);
pref("mail.identity.default.defaultEncryptionPolicy", 0);
pref("mail.identity.default.openPgpHeaderMode", 0);
pref("mail.identity.default.openPgpUrlName", "");
pref("mail.identity.default.pgpMimeMode", true);
pref("mail.identity.default.attachPgpKey", false);
pref("mail.identity.default.autoEncryptDrafts", true);
/*
Other settings (change Mozilla behaviour)
*/
// disable flowed text by default
pref("mailnews.send_plaintext_flowed", false);
enigmail/package/promise.jsm 0000664 0000000 0000000 00000001427 12667016244 0016443 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
/*
This module is a shim module to make it easier to load
Promise from the various potential sources
*/
var EXPORTED_SYMBOLS = ["Promise"];
const Cu = Components.utils;
var scope = {};
try {
Cu.import("resource://gre/modules/Promise.jsm", scope); // Gecko >= 25
}
catch (ex) {
try {
Cu.import("resource://gre/modules/commonjs/sdk/core/promise.js", scope); // Gecko 21 to 24}
}
catch (ex2) {
Cu.import("resource://gre/modules/commonjs/promise/core.js", scope); // Gecko 17 to 20
}
}
var Promise = scope.Promise;
enigmail/package/protocolHandler.jsm 0000664 0000000 0000000 00000015612 12667016244 0020125 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailCore: false, XPCOMUtils: false, EnigmailData: false, EnigmailLog: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailProtocolHandler"];
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
Components.utils.import("resource://enigmail/core.jsm");
Components.utils.import("resource://enigmail/data.jsm");
Components.utils.import("resource://enigmail/log.jsm");
Components.utils.import("resource://enigmail/streams.jsm"); /*global EnigmailStreams: false */
Components.utils.import("resource://enigmail/uris.jsm"); /*global EnigmailURIs: false */
Components.utils.import("resource://enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
const NS_SIMPLEURI_CONTRACTID = "@mozilla.org/network/simple-uri;1";
const NS_ENIGMAILPROTOCOLHANDLER_CONTRACTID = "@mozilla.org/network/protocol;1?name=enigmail";
const NS_ENIGMAILPROTOCOLHANDLER_CID = Components.ID("{847b3a11-7ab1-11d4-8f02-006008948af5}");
const ASS_CONTRACTID = "@mozilla.org/appshell/appShellService;1";
const WMEDIATOR_CONTRACTID = "@mozilla.org/appshell/window-mediator;1";
const Cc = Components.classes;
const Ci = Components.interfaces;
const nsIProtocolHandler = Ci.nsIProtocolHandler;
var EC = EnigmailCore;
const gDummyPKCS7 =
'Content-Type: multipart/mixed;\r\n boundary="------------060503030402050102040303\r\n\r\nThis is a multi-part message in MIME format.\r\n--------------060503030402050102040303\r\nContent-Type: application/x-pkcs7-mime\r\nContent-Transfer-Encoding: 8bit\r\n\r\n\r\n--------------060503030402050102040303\r\nContent-Type: application/x-enigmail-dummy\r\nContent-Transfer-Encoding: 8bit\r\n\r\n\r\n--------------060503030402050102040303--\r\n';
function EnigmailProtocolHandler() {}
EnigmailProtocolHandler.prototype = {
classDescription: "Enigmail Protocol Handler",
classID: NS_ENIGMAILPROTOCOLHANDLER_CID,
contractID: NS_ENIGMAILPROTOCOLHANDLER_CONTRACTID,
scheme: "enigmail",
defaultPort: -1,
protocolFlags: nsIProtocolHandler.URI_INHERITS_SECURITY_CONTEXT |
nsIProtocolHandler.URI_LOADABLE_BY_ANYONE |
nsIProtocolHandler.URI_NORELATIVE |
nsIProtocolHandler.URI_NOAUTH |
nsIProtocolHandler.URI_OPENING_EXECUTES_SCRIPT,
QueryInterface: XPCOMUtils.generateQI([nsIProtocolHandler]),
newURI: function(aSpec, originCharset, aBaseURI) {
EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.newURI: aSpec='" + aSpec + "'\n");
// cut of any parameters potentially added to the URI; these cannot be handled
if (aSpec.substr(0, 14) == "enigmail:dummy") aSpec = "enigmail:dummy";
var uri = Cc[NS_SIMPLEURI_CONTRACTID].createInstance(Ci.nsIURI);
uri.spec = aSpec;
return uri;
},
newChannel: function(aURI) {
EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.newChannel: URI='" + aURI.spec + "'\n");
var messageId = EnigmailData.extractMessageId(aURI.spec);
var mimeMessageId = EnigmailData.extractMimeMessageId(aURI.spec);
var contentType, contentCharset, contentData;
if (messageId) {
// Handle enigmail:message/...
if (!EC.getEnigmailService()) {
throw Components.results.NS_ERROR_FAILURE;
}
if (EnigmailURIs.getMessageURI(messageId)) {
var messageUriObj = EnigmailURIs.getMessageURI(messageId);
contentType = messageUriObj.contentType;
contentCharset = messageUriObj.contentCharset;
contentData = messageUriObj.contentData;
EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.newChannel: messageURL=" + messageUriObj.originalUrl + ", content length=" + contentData.length + ", " + contentType + ", " +
contentCharset + "\n");
// do NOT delete the messageUriObj now from the list, this will be done once the message is unloaded (fix for bug 9730).
}
else if (mimeMessageId) {
this.handleMimeMessage(mimeMessageId);
}
else {
contentType = "text/plain";
contentCharset = "";
contentData = "Enigmail error: invalid URI " + aURI.spec;
}
let channel = EnigmailStreams.newStringChannel(aURI, contentType, "UTF-8", contentData);
return channel;
}
if (aURI.spec.indexOf(aURI.scheme + "://photo/") === 0) {
// handle photo ID
contentType = "image/jpeg";
contentCharset = "";
let keyId = aURI.spec.substr(17);
let exitCodeObj = {};
let errorMsgObj = {};
let f = EnigmailKeyRing.getPhotoFile(keyId, 0, exitCodeObj, errorMsgObj);
if (exitCodeObj.value === 0) {
let channel = EnigmailStreams.newFileChannel(aURI, f, "image/jpeg", true);
return channel;
}
return null;
}
if (aURI.spec == aURI.scheme + ":dummy") {
// Dummy PKCS7 content (to access mimeEncryptedClass)
return EnigmailStreams.newStringChannel(aURI, "message/rfc822", "", gDummyPKCS7);
}
var winName, spec;
if (aURI.spec == "about:" + aURI.scheme) {
// About Enigmail
// winName = "about:"+enigmail;
winName = "about:enigmail";
spec = "chrome://enigmail/content/enigmailAbout.xul";
}
else if (aURI.spec == aURI.scheme + ":console") {
// Display enigmail console messages
winName = "enigmail:console";
spec = "chrome://enigmail/content/enigmailConsole.xul";
}
else if (aURI.spec == aURI.scheme + ":keygen") {
// Display enigmail key generation console
winName = "enigmail:keygen";
spec = "chrome://enigmail/content/enigmailKeygen.xul";
}
else {
// Display Enigmail about page
winName = "about:enigmail";
spec = "chrome://enigmail/content/enigmailAbout.xul";
}
var windowManager = Cc[WMEDIATOR_CONTRACTID].getService(Ci.nsIWindowMediator);
var winEnum = windowManager.getEnumerator(null);
var recentWin = null;
while (winEnum.hasMoreElements() && !recentWin) {
var thisWin = winEnum.getNext();
if (thisWin.location.href == spec) {
recentWin = thisWin;
}
}
if (recentWin) {
recentWin.focus();
}
else {
var appShellSvc = Cc[ASS_CONTRACTID].getService(Ci.nsIAppShellService);
var domWin = appShellSvc.hiddenDOMWindow;
domWin.open(spec, "_blank", "chrome,menubar,toolbar,resizable");
}
throw Components.results.NS_ERROR_FAILURE;
},
handleMimeMessage: function(messageId) {
// EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.handleMimeMessage: messageURL="+messageUriObj.originalUrl+", content length="+contentData.length+", "+contentType+", "+contentCharset+"\n");
EnigmailLog.DEBUG("enigmail.js: EnigmailProtocolHandler.handleMimeMessage: messageURL=, content length=, , \n");
},
allowPort: function(port, scheme) {
// non-standard ports are not allowed
return false;
}
};
enigmail/package/rules.jsm 0000775 0000000 0000000 00000044127 12667016244 0016126 0 ustar 00root root 0000000 0000000 /*global Components: false, EnigmailFuncs: false, EnigmailLog: false, EnigmailOS: false, EnigmailFiles: false, EnigmailApp: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailRules"];
Components.utils.import("resource://enigmail/funcs.jsm");
Components.utils.import("resource://enigmail/log.jsm");
Components.utils.import("resource://enigmail/os.jsm");
Components.utils.import("resource://enigmail/files.jsm");
Components.utils.import("resource://enigmail/app.jsm");
Components.utils.import("resource://enigmail/core.jsm"); /*global EnigmailCore: false */
Components.utils.import("resource://enigmail/constants.jsm"); /*global EnigmailConstants: false */
Components.utils.import("resource://enigmail/dialog.jsm"); /*global EnigmailDialog: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
const NS_RDONLY = 0x01;
const NS_WRONLY = 0x02;
const NS_CREATE_FILE = 0x08;
const NS_TRUNCATE = 0x20;
const DEFAULT_FILE_PERMS = 0x180; // equals 0600
const NS_DOMPARSER_CONTRACTID = "@mozilla.org/xmlextras/domparser;1";
const NS_DOMSERIALIZER_CONTRACTID = "@mozilla.org/xmlextras/xmlserializer;1";
const rulesListHolder = {
rulesList: null
};
var EnigmailRules = {
getRulesFile: function() {
EnigmailLog.DEBUG("rules.jsm: getRulesFile()\n");
var rulesFile = EnigmailApp.getProfileDirectory();
rulesFile.append("pgprules.xml");
return rulesFile;
},
loadRulesFile: function() {
var flags = NS_RDONLY;
var rulesFile = this.getRulesFile();
if (rulesFile.exists()) {
var fileContents = EnigmailFiles.readFile(rulesFile);
return this.loadRulesFromString(fileContents);
}
return false;
},
loadRulesFromString: function(contents) {
EnigmailLog.DEBUG("rules.jsm: loadRulesFromString()\n");
if (contents.length === 0 || contents.search(/^\s*$/) === 0) {
return false;
}
var domParser = Cc[NS_DOMPARSER_CONTRACTID].createInstance(Ci.nsIDOMParser);
rulesListHolder.rulesList = domParser.parseFromString(contents, "text/xml");
return true;
},
saveRulesFile: function() {
EnigmailLog.DEBUG("rules.jsm: saveRulesFile()\n");
var flags = NS_WRONLY | NS_CREATE_FILE | NS_TRUNCATE;
var domSerializer = Cc[NS_DOMSERIALIZER_CONTRACTID].createInstance(Ci.nsIDOMSerializer);
var rulesFile = this.getRulesFile();
if (rulesFile) {
if (rulesListHolder.rulesList) {
// the rule list is not empty -> write into file
return EnigmailFiles.writeFileContents(rulesFile.path,
domSerializer.serializeToString(rulesListHolder.rulesList.firstChild),
DEFAULT_FILE_PERMS);
}
else {
// empty rule list -> delete rules file
try {
rulesFile.remove(false);
}
catch (ex) {}
return true;
}
}
else {
return false;
}
},
getRulesData: function(rulesListObj) {
EnigmailLog.DEBUG("rules.jsm: getRulesData()\n");
var ret = true;
if (!rulesListHolder.rulesList) {
ret = this.loadRulesFile();
}
if (rulesListHolder.rulesList) {
rulesListObj.value = rulesListHolder.rulesList;
return ret;
}
rulesListObj.value = null;
return false;
},
addRule: function(appendToEnd, toAddress, keyList, sign, encrypt, pgpMime, flags) {
EnigmailLog.DEBUG("rules.jsm: addRule()\n");
if (!rulesListHolder.rulesList) {
var domParser = Cc[NS_DOMPARSER_CONTRACTID].createInstance(Ci.nsIDOMParser);
rulesListHolder.rulesList = domParser.parseFromString("", "text/xml");
}
var negate = (flags & 1);
var rule = rulesListHolder.rulesList.createElement("pgpRule");
rule.setAttribute("email", toAddress);
rule.setAttribute("keyId", keyList);
rule.setAttribute("sign", sign);
rule.setAttribute("encrypt", encrypt);
rule.setAttribute("pgpMime", pgpMime);
rule.setAttribute("negateRule", flags);
var origFirstChild = rulesListHolder.rulesList.firstChild.firstChild;
if (origFirstChild && (!appendToEnd)) {
rulesListHolder.rulesList.firstChild.insertBefore(rule, origFirstChild);
rulesListHolder.rulesList.firstChild.insertBefore(rulesListHolder.rulesList.createTextNode(EnigmailOS.isDosLike() ? "\r\n" : "\n"), origFirstChild);
}
else {
rulesListHolder.rulesList.firstChild.appendChild(rule);
rulesListHolder.rulesList.firstChild.appendChild(rulesListHolder.rulesList.createTextNode(EnigmailOS.isDosLike() ? "\r\n" : "\n"));
}
},
clearRules: function() {
rulesListHolder.rulesList = null;
},
registerOn: function(target) {
target.getRulesFile = EnigmailRules.getRulesFile;
target.loadRulesFile = EnigmailRules.loadRulesFile;
target.loadRulesFromString = EnigmailRules.loadRulesFromString;
target.saveRulesFile = EnigmailRules.saveRulesFile;
target.getRulesData = EnigmailRules.getRulesData;
target.addRule = EnigmailRules.addRule;
target.clearRules = EnigmailRules.clearRules;
},
DEBUG_EmailList: function(name, list) {
EnigmailLog.DEBUG(" " + name + ":\n");
for (let i = 0; i < list.length; i++) {
let elem = list[i];
let str = " [" + i + "]: ";
if (elem.orig) {
str += "orig: '" + elem.orig + "' ";
}
if (elem.addr) {
str += "addr: '" + elem.addr + "' ";
}
if (elem.keys) {
str += "keys: '" + elem.keys + "' ";
}
EnigmailLog.DEBUG(str + "\n");
}
},
/**
* process resulting sign/encryp/pgpMime mode for passed string of email addresses and
* use rules and interactive rule dialog to replace emailAddrsStr by known keys
* Input parameters:
* @emailAddrsStr: comma and space separated string of addresses to process
* @startDialogForMissingKeys: true: start dialog for emails without key(s)
* Output parameters:
* @matchedKeysObj.value: comma separated string of matched keys AND email addresses for which no key was found (or "")
* @matchedKeysObj.addrKeysList: all email/keys mappings (array of objects with addr as string and keys as comma separated string)
* (does NOT contain emails for which no key was found)
* @matchedKeysObj.addrNoKeyList: list of emails that don't have a key according to rules
* @flagsObj: return value for combined sign/encrype/pgpMime mode
* values might be: 0='never', 1='maybe', 2='always', 3='conflict'
*
* @return: false if error occurred or processing was canceled
*/
mapAddrsToKeys: function(emailAddrsStr, startDialogForMissingKeys, window,
matchedKeysObj, flagsObj) {
EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): emailAddrsStr=\"" + emailAddrsStr + "\" startDialogForMissingKeys=" + startDialogForMissingKeys + "\n");
const nsIEnigmail = Components.interfaces.nsIEnigmail;
let enigmailSvc = EnigmailCore.getService();
if (!enigmailSvc) {
return false;
}
// initialize return value and the helper variables for them:
matchedKeysObj.value = "";
flagsObj.value = false;
let flags = {}; // object to be able to modify flags in subfunction
flags.sign = EnigmailConstants.ENIG_UNDEF; // default sign flag is: maybe
flags.encrypt = EnigmailConstants.ENIG_UNDEF; // default encrypt flag is: maybe
flags.pgpMime = EnigmailConstants.ENIG_UNDEF; // default pgpMime flag is: maybe
// create openList: list of addresses not processed by rules yet
// - each entry has
// - orig: the original full email address
// - addr: the lowercased pure email address to check against rules and keys
// - elements will be moved
// - to addrKeysList if a matching rule with keys was found
// - to addrNoKeyList if a rule with "do not process further rules" ("." as key) applies
let emailAddrList = ("," + emailAddrsStr + ",").split(/\s*,\s*/);
// TODO: we split with , and spaces around
// BUT what if , is in "..." part of an email?
// => use lists!!!
let openList = [];
for (let i = 0; i < emailAddrList.length; ++i) {
let orig = emailAddrList[i];
if (orig) {
let addr = EnigmailFuncs.stripEmail(orig.toLowerCase());
if (addr) {
let elem = {
orig: orig,
addr: addr
};
openList.push(elem);
}
}
}
//this.DEBUG_EmailList("openList", openList);
let addrKeysList = []; // NEW: list of found email addresses and their associated keys
let addrNoKeyList = []; // NEW: list of email addresses that have no key according to rules
// process recipient rules
let rulesListObj = {};
if (this.getRulesData(rulesListObj)) {
let rulesList = rulesListObj.value;
if (rulesList.firstChild.nodeName == "parsererror") {
EnigmailDialog.alert(window, "Invalid pgprules.xml file:\n" + rulesList.firstChild.textContent);
return false;
}
EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): rules successfully loaded; now process them\n");
// go through all rules to find match with email addresses
// - note: only if the key field has a value, an address is done with processing
for (let node = rulesList.firstChild.firstChild; node; node = node.nextSibling) {
if (node.tagName == "pgpRule") {
try {
let rule = {};
rule.email = node.getAttribute("email");
if (!rule.email) {
continue;
}
rule.negate = false;
if (node.getAttribute("negateRule")) {
rule.negate = Number(node.getAttribute("negateRule"));
}
if (!rule.negate) {
rule.keyId = node.getAttribute("keyId");
rule.sign = node.getAttribute("sign");
rule.encrypt = node.getAttribute("encrypt");
rule.pgpMime = node.getAttribute("pgpMime");
this.mapRuleToKeys(rule,
openList, flags, addrKeysList, addrNoKeyList);
}
// no negate rule handling (turned off in dialog)
}
catch (ex) {
EnigmailLog.DEBUG("rules.jsm: mapAddrsToKeys(): ignore exception: " + ex.description + "\n");
}
}
}
}
// NOTE: here we have
// - openList: the addresses not having any key assigned yet
// (and not marked as don't process any other rule)
// - addresses with "don't process other rules" are in addrNoKeyList
//this.DEBUG_EmailList("openList", openList);
//this.DEBUG_EmailList("addrKeysList", addrKeysList);
//this.DEBUG_EmailList("addrnoKeyList", addrnoKeyList);
// if requested: start dialog to add new rule for each missing key
if (startDialogForMissingKeys) {
let inputObj = {};
let resultObj = {};
for (let i = 0; i < openList.length; i++) {
let theAddr = openList[i].addr;
// start dialog only if the email address contains a @ or no 0x at the beginning:
// - reason: newsgroups have neither @ nor 0x
if (theAddr.indexOf("@") != -1 || theAddr.indexOf("0x") !== 0) {
inputObj.toAddress = "{" + theAddr + "}";
inputObj.options = "";
inputObj.command = "add";
window.openDialog("chrome://enigmail/content/enigmailSingleRcptSettings.xul", "",
"dialog,modal,centerscreen,resizable", inputObj, resultObj);
if (resultObj.cancelled === true) {
return false;
}
if (!resultObj.negate) {
this.mapRuleToKeys(resultObj,
openList, flags, addrKeysList, addrNoKeyList);
}
// no negate rule handling (turned off in dialog)
}
}
}
// return value of OLD interface:
// IFF we found keys, return keys AND unprocessed addresses in matchedKeysObj.value as comma-separated string
if (addrKeysList.length > 0) {
let tmpList = addrKeysList.concat(addrNoKeyList).concat(openList);
matchedKeysObj.value = tmpList[0].keys;
for (let idx = 1; idx < tmpList.length; ++idx) {
if (tmpList[idx].keys) {
matchedKeysObj.value += ", " + tmpList[idx].keys;
}
else {
matchedKeysObj.value += ", " + tmpList[idx].addr;
}
}
// sort key list and make it unique?
}
// return value of NEW interface:
// return
// - in matchedKeysObj.addrKeysList: found email/keys mappings (array of objects with addr and keys)
// - in matchedKeysObj.addrNoKeyList: list of unprocessed emails
matchedKeysObj.addrKeysList = addrKeysList;
if (openList.length > 0) {
matchedKeysObj.addrNoKeyList = addrNoKeyList.concat(openList);
}
else {
matchedKeysObj.addrNoKeyList = addrNoKeyList;
}
// return result from combining flags
flagsObj.sign = flags.sign;
flagsObj.encrypt = flags.encrypt;
flagsObj.pgpMime = flags.pgpMime;
flagsObj.value = true;
EnigmailLog.DEBUG(" found keys:\n");
for (let i = 0; i < matchedKeysObj.addrKeysList.length; i++) {
EnigmailLog.DEBUG(" " + matchedKeysObj.addrKeysList[i].addr + ": " + matchedKeysObj.addrKeysList[i].keys + "\n");
}
EnigmailLog.DEBUG(" addresses without keys:\n");
for (let i = 0; i < matchedKeysObj.addrNoKeyList.length; i++) {
EnigmailLog.DEBUG(" " + matchedKeysObj.addrNoKeyList[i].addr + "\n");
}
EnigmailLog.DEBUG(" old returned value:\n");
EnigmailLog.DEBUG(" " + matchedKeysObj.value + "\n");
return true;
},
mapRuleToKeys: function(rule,
openList, flags, addrKeysList, addrNoKeyList) {
//EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys() rule.email='" + rule.email + "'\n");
let ruleList = rule.email.toLowerCase().split(/[ ,;]+/);
for (let ruleIndex = 0; ruleIndex < ruleList.length; ++ruleIndex) {
let ruleEmailElem = ruleList[ruleIndex]; // ruleEmailElem has format such as '{name@qqq.de}' or '@qqq' or '{name' or '@qqq.de}'
//EnigmailLog.DEBUG(" process ruleElem: '" + ruleEmailElem + "'\n");
for (let openIndex = 0; openIndex < openList.length; ++openIndex) {
let addr = openList[openIndex].addr;
// search with { and } around because these are used a begin and end markers in the rules:
let idx = ('{' + addr + '}').indexOf(ruleEmailElem);
if (idx >= 0) {
if (ruleEmailElem == rule.email) {
EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys(): for '" + addr + "' ('" + openList[openIndex].orig +
"') found matching rule element '" + ruleEmailElem + "'\n");
}
else {
EnigmailLog.DEBUG("rules.jsm: mapRuleToKeys(): for '" + addr + "' ('" + openList[openIndex].orig +
"') found matching rule element '" + ruleEmailElem + "' from '" + rule.email + "'\n");
}
// process rule:
// NOTE: rule.keyId might be:
// - keys: => assign keys to all matching emails
// and mark matching address as no longer open
// - ".": signals "Do not check further rules for the matching address"
// => mark all matching address as no longer open, but assign no keys
// (thus, add it to the addrNoKeyList)
// - empty: Either if "Continue with next rule for the matching address"
// OR: if "Use the following OpenPGP keys:" with no keys and
// warning (will turn off encryption) acknowledged
// => then we only process the flags
// process sign/encrypt/ppgMime settings
flags.sign = this.combineFlagValues(flags.sign, Number(rule.sign));
flags.encrypt = this.combineFlagValues(flags.encrypt, Number(rule.encrypt));
flags.pgpMime = this.combineFlagValues(flags.pgpMime, Number(rule.pgpMime));
if (rule.keyId) {
// move found address from openAdresses to corresponding list (with keys added)
let elem = openList.splice(openIndex, 1)[0];
--openIndex; // IMPORTANT because we remove element in the array we iterate on
if (rule.keyId != ".") {
// keys exist: assign keys as comma-separated string
let ids = rule.keyId.replace(/[ ,;]+/g, ", ");
elem.keys = ids;
addrKeysList.push(elem);
}
else {
// '.': no further rule processing and no key: addr was (finally) processed but without any key
addrNoKeyList.push(elem);
}
}
}
}
}
},
/**
* check for the attribute of type "sign"/"encrypt"/"pgpMime" of the passed node
* and combine its value with oldVal and check for conflicts
* values might be: 0='never', 1='maybe', 2='always', 3='conflict'
* @oldVal: original input value
* @newVal: new value to combine with
* @return: result value after applying the rule (0/1/2)
* and combining it with oldVal
*/
combineFlagValues: function(oldVal, newVal) {
//EnigmailLog.DEBUG("rules.jsm: combineFlagValues(): oldVal=" + oldVal + " newVal=" + newVal + "\n");
// conflict remains conflict
if (oldVal === EnigmailConstants.ENIG_CONFLICT) {
return EnigmailConstants.ENIG_CONFLICT;
}
// 'never' and 'always' triggers conflict:
if ((oldVal === EnigmailConstants.ENIG_NEVER && newVal === EnigmailConstants.ENIG_ALWAYS) || (oldVal === EnigmailConstants.ENIG_ALWAYS && newVal === EnigmailConstants.ENIG_NEVER)) {
return EnigmailConstants.ENIG_CONFLICT;
}
// if there is any 'never' return 'never'
// - thus: 'never' and 'maybe' => 'never'
if (oldVal === EnigmailConstants.ENIG_NEVER || newVal === EnigmailConstants.ENIG_NEVER) {
return EnigmailConstants.ENIG_NEVER;
}
// if there is any 'always' return 'always'
// - thus: 'always' and 'maybe' => 'always'
if (oldVal === EnigmailConstants.ENIG_ALWAYS || newVal === EnigmailConstants.ENIG_ALWAYS) {
return EnigmailConstants.ENIG_ALWAYS;
}
// here, both values are 'maybe', which we return then
return EnigmailConstants.ENIG_UNDEF; // maybe
},
};
enigmail/package/streams.jsm 0000664 0000000 0000000 00000011645 12667016244 0016446 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailStreams"];
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cu = Components.utils;
Cu.import("resource://gre/modules/XPCOMUtils.jsm"); /*global XPCOMUtils: false */
Cu.import("resource://enigmail/log.jsm"); /*global EnigmailLog: false */
Cu.import("resource://enigmail/timer.jsm"); /*global EnigmailTimer: false */
const NS_STRING_INPUT_STREAM_CONTRACTID = "@mozilla.org/io/string-input-stream;1";
const NS_INPUT_STREAM_CHNL_CONTRACTID = "@mozilla.org/network/input-stream-channel;1";
const EnigmailStreams = {
/**
* create an nsIStreamListener object to read String data from an nsIInputStream
*
* @onStopCallback: Function - function(data) that is called when the stream has stopped
* string data is passed as |data|
*
* @return: the nsIStreamListener to pass to the stream
*/
newStringStreamListener: function(onStopCallback) {
EnigmailLog.DEBUG("enigmailCommon.jsm: newStreamListener\n");
return {
data: "",
inStream: Cc["@mozilla.org/binaryinputstream;1"].createInstance(Ci.nsIBinaryInputStream),
_onStopCallback: onStopCallback,
QueryInterface: XPCOMUtils.generateQI([Ci.nsIStreamListener, Ci.nsIRequestObserver]),
onStartRequest: function(channel, ctxt) {
// EnigmailLog.DEBUG("enigmailCommon.jsm: stringListener.onStartRequest\n");
},
onStopRequest: function(channel, ctxt, status) {
// EnigmailLog.DEBUG("enigmailCommon.jsm: stringListener.onStopRequest: "+ctxt+"\n");
this.inStream = null;
var cbFunc = this._onStopCallback;
var cbData = this.data;
EnigmailTimer.setTimeout(function _cb() {
cbFunc(cbData);
});
},
onDataAvailable: function(req, sup, stream, offset, count) {
// get data from stream
// EnigmailLog.DEBUG("enigmailCommon.jsm: stringListener.onDataAvailable: "+count+"\n");
this.inStream.setInputStream(stream);
this.data += this.inStream.readBytes(count);
}
};
},
/**
* create a nsIInputStream object that is fed with string data
*
* @uri: nsIURI - object representing the URI that will deliver the data
* @contentType: String - the content type as specified in nsIChannel
* @contentCharset: String - the character set; automatically determined if null
* @data: String - the data to feed to the stream
*
* @return nsIChannel object
*/
newStringChannel: function(uri, contentType, contentCharset, data) {
EnigmailLog.DEBUG("enigmailCommon.jsm: newStringChannel\n");
const inputStream = Cc[NS_STRING_INPUT_STREAM_CONTRACTID].createInstance(Ci.nsIStringInputStream);
inputStream.setData(data, -1);
if (!contentCharset || contentCharset.length === 0) {
const ioServ = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
const netUtil = ioServ.QueryInterface(Ci.nsINetUtil);
const newCharset = {};
const hadCharset = {};
let mimeType;
try {
// Gecko >= 43
mimeType = netUtil.parseResponseContentType(contentType, newCharset, hadCharset);
}
catch (ex) {
// Gecko < 43
mimeType = netUtil.parseContentType(contentType, newCharset, hadCharset);
}
contentCharset = newCharset.value;
}
const isc = Cc[NS_INPUT_STREAM_CHNL_CONTRACTID].createInstance(Ci.nsIInputStreamChannel);
isc.setURI(uri);
isc.contentStream = inputStream;
const chan = isc.QueryInterface(Ci.nsIChannel);
if (contentType && contentType.length) chan.contentType = contentType;
if (contentCharset && contentCharset.length) chan.contentCharset = contentCharset;
EnigmailLog.DEBUG("enigmailCommon.jsm: newStringChannel - done\n");
return chan;
},
newFileChannel: function(uri, file, contentType, deleteOnClose) {
EnigmailLog.DEBUG("enigmailCommon.jsm: newFileChannel for '" + file.path + "'\n");
let inputStream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);
let behaviorFlags = Ci.nsIFileInputStream.CLOSE_ON_EOF;
if (deleteOnClose) {
behaviorFlags |= Ci.nsIFileInputStream.DELETE_ON_CLOSE;
}
const ioFlags = 0x01; // readonly
const perm = 0;
inputStream.init(file, ioFlags, perm, behaviorFlags);
const isc = Cc[NS_INPUT_STREAM_CHNL_CONTRACTID].createInstance(Ci.nsIInputStreamChannel);
isc.setURI(uri);
isc.contentStream = inputStream;
const chan = isc.QueryInterface(Ci.nsIChannel);
if (contentType && contentType.length) chan.contentType = contentType;
EnigmailLog.DEBUG("enigmailCommon.jsm: newStringChannel - done\n");
return chan;
}
};
enigmail/package/system.jsm 0000664 0000000 0000000 00000016050 12667016244 0016307 0 ustar 00root root 0000000 0000000 /*global Components: false */
/*jshint -W097 */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
var EXPORTED_SYMBOLS = ["EnigmailSystem"];
Components.utils.import("resource://gre/modules/ctypes.jsm"); /* global ctypes: false */
Components.utils.import("resource://enigmail/os.jsm"); /* global EnigmailOS: false */
Components.utils.import("resource://enigmail/data.jsm"); /* global EnigmailData: false */
Components.utils.import("resource://enigmail/subprocess.jsm"); /* global subprocess: false */
Components.utils.import("resource://enigmail/log.jsm"); /* global EnigmailLog: false */
const Cc = Components.classes;
const Ci = Components.interfaces;
var gKernel32Dll = null;
var gSystemCharset = null;
const CODEPAGE_MAPPING = {
"855": "IBM855",
"866": "IBM866",
"874": "ISO-8859-11",
"932": "Shift_JIS",
"936": "GB2312",
"950": "BIG5",
"1200": "UTF-16LE",
"1201": "UTF-16BE",
"1250": "windows-1250",
"1251": "windows-1251",
"1252": "windows-1252",
"1253": "windows-1253",
"1254": "windows-1254",
"1255": "windows-1255",
"1256": "windows-1256",
"1257": "windows-1257",
"1258": "windows-1258",
"20866": "KOI8-R",
"20932": "EUC-JP",
"28591": "ISO-8859-1",
"28592": "ISO-8859-2",
"28593": "ISO-8859-3",
"28594": "ISO-8859-4",
"28595": "ISO-8859-5",
"28596": "ISO-8859-6",
"28597": "ISO-8859-7",
"28598": "ISO-8859-8",
"28599": "ISO-8859-9",
"28603": "ISO-8859-13",
"28605": "ISO-8859-15",
"38598": "ISO-8859-8",
"50220": "ISO-2022-JP",
"50221": "ISO-2022-JP",
"50222": "ISO-2022-JP",
"50225": "ISO-2022-KR",
"50227": "ISO-2022-CN",
"50229": "ISO-2022-CN",
"51932": "EUC-JP",
"51949": "EUC-KR",
"52936": "HZ-GB2312",
"65000": "UTF-7",
"65001": "UTF-8"
};
/**
* Get the default codepage that is set on Windows (which equals to the chatset of the console output of gpg)
*/
function getWindowsCopdepage() {
EnigmailLog.DEBUG("system.jsm: getWindowsCopdepage\n");
let output = "";
let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
let sysRoot = env.get("SystemRoot");
if (!sysRoot || sysRoot.length === 0) {
sysRoot = "C:\\windows";
}
let p = subprocess.call({
command: sysRoot + "\\system32\\chcp.com",
arguments: [],
environment: [],
charset: null,
mergeStderr: false,
done: function(result) {
output = result.stdout;
}
});
p.wait();
output = output.replace(/[\r\n]/g, "");
output = output.replace(/^(.*[: ])([0-9]+)([^0-9].*)?$/, "$2");
return output;
}
/**
* Get the charset defined with LC_ALL or locale. That's the charset used by gpg console output
*/
function getUnixCharset() {
EnigmailLog.DEBUG("system.jsm: getUnixCharset\n");
let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
let lc = env.get("LC_ALL");
if (lc.length === 0) {
let places = [
"/usr/bin/locale",
"/usr/local/bin/locale",
"/opt/bin/locale"
];
var localeFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
for (let i = 0; i < places.length; i++) {
localeFile.initWithPath(places[i]);
if (localeFile.exists()) break;
}
if (!localeFile.exists()) return "iso-8859-1";
let output = "";
let p = subprocess.call({
command: localeFile,
arguments: [],
environment: [],
charset: null,
mergeStderr: false,
done: function(result) {
output = result.stdout;
}
});
p.wait();
let m = output.match(/^(LC_ALL=)(.*)$/m);
if (m && m.length > 2) {
lc = m[2].replace(/\"/g, "");
}
else return "iso-8859-1";
}
let i = lc.search(/[\.@]/);
if (i < 0) return "iso-8859-1";
lc = lc.substr(i + 1);
return lc;
}
var EnigmailSystem = {
determineSystemCharset: function() {
EnigmailLog.DEBUG("system.jsm: determineSystemCharset\n");
if (!gSystemCharset) {
if (EnigmailOS.isWin32) {
gSystemCharset = getWindowsCopdepage();
}
else {
gSystemCharset = getUnixCharset();
}
}
EnigmailLog.DEBUG("system.jsm: determineSystemCharset: charset='" + gSystemCharset + "'\n");
return gSystemCharset;
},
/**
* Convert system output coming in a native charset into Unicode (Gecko-platfrom)
* applying an appropriate charset conversion
*
* @param str String - input string in native charset
* @param cs String - [Optional] character set (Unix), or codepage (Windows).
* If not specified, determine the system default.
*
* @param String - output in Unicode format. If something failed, the unmodified
* input isreturned.
*/
convertNativeToUnicode: function(str, cs) {
try {
if (!cs) cs = this.determineSystemCharset();
if (EnigmailOS.isWin32) {
if (cs in CODEPAGE_MAPPING) {
return EnigmailData.convertToUnicode(str, CODEPAGE_MAPPING[cs]);
}
else {
let charSetNum = Number(cs);
if (Number.isNaN(charSetNum)) {
return EnigmailData.convertToUnicode(str, cs);
}
else
return EnigmailData.convertToUnicode(this.winConvertNativeToUnichar(str, Number(cs)), "UTF-8");
}
}
else {
return EnigmailData.convertToUnicode(str, cs);
}
}
catch (ex) {
EnigmailLog.DEBUG("system.jsm: convertNativeToUnicode: exception +" + ex.toString() + "\n");
return str;
}
},
/**
* Convert from native Windows output (often Codepage 437) to a Mozilla Unichar string
*
* @param byteStr: String - the data to convert in the current Windows codepage
*
* @return String: the Unicode string directly display-able
*/
winConvertNativeToUnichar: function(byteStr, codePage) {
/*
int MultiByteToWideChar(
_In_ UINT CodePage,
_In_ DWORD dwFlags,
_In_ LPCSTR lpMultiByteStr,
_In_ int cbMultiByte,
_Out_opt_ LPWSTR lpWideCharStr,
_In_ int cchWideChar
);
*/
if (!gKernel32Dll) {
if (EnigmailOS.isWin32) {
gKernel32Dll = ctypes.open("kernel32.dll");
}
else {
return byteStr;
}
}
var multiByteToWideChar = gKernel32Dll.declare("MultiByteToWideChar",
ctypes.winapi_abi,
ctypes.int, // return value
ctypes.unsigned_int, // Codepage
ctypes.uint32_t, // dwFlags
ctypes.char.ptr, // input string
ctypes.int, // cbMultiByte
ctypes.jschar.ptr, // widechar string
ctypes.int // ccWideChar
);
let n = multiByteToWideChar(codePage, 0, byteStr, byteStr.length, null, 0);
if (n > 0) {
let OutStrType = ctypes.jschar.array(n + 1);
let outStr = new OutStrType();
multiByteToWideChar(codePage, 0, byteStr, byteStr.length, outStr.addressOfElement(0), n);
let r = new RegExp(String.fromCharCode(9516), "g");
return outStr.readString().replace(r, "");
}
else
return byteStr;
}
};
enigmail/package/tests/ 0000775 0000000 0000000 00000000000 12667016244 0015410 5 ustar 00root root 0000000 0000000 enigmail/package/tests/.eslintrc.js 0000664 0000000 0000000 00000000067 12667016244 0017652 0 ustar 00root root 0000000 0000000 module.exports = {
"rules": {
"strict": 0,
}
}
enigmail/package/tests/Makefile 0000664 0000000 0000000 00000000530 12667016244 0017046 0 ustar 00root root 0000000 0000000 # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DEPTH = ../..
include $(DEPTH)/config/autoconf.mk
UNITTEST =
ifneq ($(TB_PATH),"")
UNITTEST = $(JSUNIT) main.js
endif
all:
$(UNITTEST)
enigmail/package/tests/armor-test.js 0000664 0000000 0000000 00000007642 12667016244 0020054 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false, Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("armor.jsm"); /*global EnigmailArmor: false */
test(function shouldLocateEnigmailArmoredBlock() {
const text = " -----BEGIN PGP SIGNATURE-----\n" +
" Version: GnuPG/MacGPG2 v2.0.22 (Darwin)\n" +
" Comment: GPGTools - https://gpgtools.org\n" +
"\n" +
" iQIcBAEBCgAGBQJVSkxrAAoJEFco/AmgID3sm68QALBa6I6r7LLopA8R+S/CpO66\n" +
" 6qQm0zidQ7bhMDNiKPD+/TG/Blvu0n10Cnt5Wk6lD7dwPKAsHVq1fGUva4rkEbi4\n" +
" R9nx7BQGBiFCpYl3K1bHJ/QrnYms5wpKseqGtW+8wq8wKx68sWi83xsKN2Ml2SGA\n" +
" 95nvbvaQ6yQlynGXhPhGhdT3L2tdPsulnSwnd3NZJ83U73aYIN5jc5+UyWduLqho\n" +
" xnD127JQYb8X2UjdXyOnA/E/VHvCWt9+Ck9s6VdwUSEBs41vJ/kyrmPE6u9sIQX7\n" +
" 9ZujMzN05+9A1Mtwp4dsDIbLMeX6FS44CqcGiUKzyx5ewiYq9lcAReM52i+4kmBM\n" +
" 4B/yLXDrWWOBiUCUQaOWC8PyBAc2cHLf62m6+oEfEMMCXli/XZuBC442qYuWNgf+\n" +
" yLLhyaA27rqMxmhdFtKSOzrRaxkTTb1oQFQwHYfeHT7kFpPjq4p1Jv+p8w0pcq0P\n" +
" j5hiLABLveEcLn4fEpqLROdi/Vz6Mp2nnbhcz+xe/w2KWmGgfl/kg2T/9YVeLox9\n" +
" kaqVqNezYPfFZ1iQgGKNBXl1SMqHtTRAvHfH1k0E8qg3t222KU2pALp0A/LSvu/T\n" +
" P3g8OIpqWRI0uBZQ/Gp/S1Fjb3DHfE+Y3IhVf5SkhjIYIvViSrbGqGUmK+jwGMia\n" +
" o29CFuiGhiz3ISDRKrtH\n" +
" =MeaY\n" +
" -----END PGP SIGNATURE-----";
const beginIndexObj = {};
const endIndexObj = {};
const indentStrObj = {};
const indentStr = "";
const blockType = EnigmailArmor.locateArmoredBlock(text, 0, indentStr, beginIndexObj, endIndexObj, indentStrObj);
Assert.equal(0, beginIndexObj.value);
Assert.equal(" ", indentStrObj.value);
Assert.equal("SIGNATURE", blockType);
});
test(function shouldExtractSignaturePart() {
const signature = {
text: "Hello I'm here.\n please contact me via this email! \n",
header: "Version: GnuPG/MacGPG2 v2.0.22 (Darwin)\n" +
"Comment: GPGTools - https://gpgtools.org\n",
armor: "iQIcBAEBCgAGBQJVSkxrAAoJEFco/AmgID3sm68QALBa6I6r7LLopA8R+S/CpO66\n" +
"6qQm0zidQ7bhMDNiKPD+/TG/Blvu0n10Cnt5Wk6lD7dwPKAsHVq1fGUva4rkEbi4\n" +
"R9nx7BQGBiFCpYl3K1bHJ/QrnYms5wpKseqGtW+8wq8wKx68sWi83xsKN2Ml2SGA\n" +
"95nvbvaQ6yQlynGXhPhGhdT3L2tdPsulnSwnd3NZJ83U73aYIN5jc5+UyWduLqho\n" +
"xnD127JQYb8X2UjdXyOnA/E/VHvCWt9+Ck9s6VdwUSEBs41vJ/kyrmPE6u9sIQX7\n" +
"9ZujMzN05+9A1Mtwp4dsDIbLMeX6FS44CqcGiUKzyx5ewiYq9lcAReM52i+4kmBM\n" +
"4B/yLXDrWWOBiUCUQaOWC8PyBAc2cHLf62m6+oEfEMMCXli/XZuBC442qYuWNgf+\n" +
"yLLhyaA27rqMxmhdFtKSOzrRaxkTTb1oQFQwHYfeHT7kFpPjq4p1Jv+p8w0pcq0P\n" +
"j5hiLABLveEcLn4fEpqLROdi/Vz6Mp2nnbhcz+xe/w2KWmGgfl/kg2T/9YVeLox9\n" +
"kaqVqNezYPfFZ1iQgGKNBXl1SMqHtTRAvHfH1k0E8qg3t222KU2pALp0A/LSvu/T\n" +
"P3g8OIpqWRI0uBZQ/Gp/S1Fjb3DHfE+Y3IhVf5SkhjIYIvViSrbGqGUmK+jwGMia\n" +
"o29CFuiGhiz3ISDRKrtH\n" +
"=MeaY"
};
const signature_block = "\n\n" +
signature.text +
"-----BEGIN PGP SIGNATURE-----\n" +
signature.header +
"\n" +
signature.armor +
"\n" +
"-----END PGP SIGNATURE-----";
const signature_text = EnigmailArmor.extractSignaturePart(signature_block, Ci.nsIEnigmail.SIGNATURE_TEXT);
const signature_headers = EnigmailArmor.extractSignaturePart(signature_block, Ci.nsIEnigmail.SIGNATURE_HEADERS);
const signature_armor = EnigmailArmor.extractSignaturePart(signature_block, Ci.nsIEnigmail.SIGNATURE_ARMOR);
Assert.equal(signature.text, signature_text);
Assert.equal(signature.header, signature_headers);
Assert.equal(signature.armor.replace(/\s*/g, ""), signature_armor);
});
enigmail/package/tests/customAssert.jsm 0000664 0000000 0000000 00000002155 12667016244 0020622 0 ustar 00root root 0000000 0000000 /*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
const CustomAssert = {
registerExtraAssertionsOn: function(assertModule) {
assertModule.assertContains = CustomAssert.assertContains;
assertModule.assertArrayContains = CustomAssert.assertArrayContains;
assertModule.assertArrayNotContains = CustomAssert.assertArrayNotContains;
},
assertContains: function(actual, expected, message) {
var msg = message || "Searching for <".concat(expected)
.concat("> to be contained within ")
.concat("<").concat(actual).concat(">");
this.report(actual.search(expected) == -1, actual, expected, message, "contains");
},
assertArrayContains: function(array, value, message) {
this.report(array.indexOf(value) == -1, array, value, message, "contains");
},
assertArrayNotContains: function(array, value, message) {
this.report(array.indexOf(value) > -1, array, value, message, "not contains");
}
};
enigmail/package/tests/data-test.js 0000664 0000000 0000000 00000002476 12667016244 0017645 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */
/*global EnigmailData: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("data.jsm");
// testing: extractMessageId
test(function extractMessageIdExtractsARegularMessageId() {
var result = EnigmailData.extractMessageId("enigmail:message/foobar");
Assert.equal("foobar", result);
});
test(function extractMessageIdReturnsAnEmptyStringWhenItCantMatch() {
var result = EnigmailData.extractMessageId("enigmail:mime-message/foobar");
Assert.equal("", result);
});
// testing: extractMimeMessageId
test(function extractMimeMessageIdExtractsARegularMessageId() {
var result = EnigmailData.extractMimeMessageId("enigmail:mime-message/fluff");
Assert.equal("fluff", result);
});
test(function extractMimeMessageIdReturnsAnEmptyStringWhenItCantMatch() {
var result = EnigmailData.extractMimeMessageId("enigmail:message/mess");
Assert.equal("", result);
});
enigmail/package/tests/decryptPermanently-test.js 0000664 0000000 0000000 00000013433 12667016244 0022620 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */
/*global Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global TestHelper: false, component: false, withTestGpgHome: false, withEnigmail: false */
TestHelper.loadDirectly("tests/mailHelper.js"); /*global MailHelper: false */
testing("decryptPermanently.jsm"); /*global EnigmailDecryptPermanently: false, Promise: false */
component("enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
/*global msgHdrToMimeMessage: false, MimeMessage: false, MimeContainer: false */
component("enigmail/glodaMime.jsm");
component("enigmail/streams.jsm"); /*global EnigmailStreams: false */
test(withTestGpgHome(withEnigmail(function messageIsCopiedToNewDir() {
loadSecretKey();
MailHelper.cleanMailFolder(MailHelper.getRootFolder());
const sourceFolder = MailHelper.createMailFolder("source-box");
MailHelper.loadEmailToMailFolder("resources/encrypted-email.eml", sourceFolder);
const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder);
const targetFolder = MailHelper.createMailFolder("target-box");
const move = false;
const reqSync = true;
EnigmailDecryptPermanently.dispatchMessages([header], targetFolder.URI, move, reqSync);
Assert.equal(targetFolder.getTotalMessages(false), 1);
Assert.equal(sourceFolder.getTotalMessages(false), 1);
})));
test(withTestGpgHome(withEnigmail(function messageIsMovedToNewDir() {
loadSecretKey();
MailHelper.cleanMailFolder(MailHelper.rootFolder);
const sourceFolder = MailHelper.createMailFolder("source-box");
MailHelper.loadEmailToMailFolder("resources/encrypted-email.eml", sourceFolder);
const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder);
const targetFolder = MailHelper.createMailFolder("target-box");
const move = true;
const reqSync = true;
EnigmailDecryptPermanently.dispatchMessages([header], targetFolder.URI, move, reqSync);
Assert.equal(targetFolder.getTotalMessages(false), 1);
Assert.equal(sourceFolder.getTotalMessages(false), 0);
})));
test(withTestGpgHome(withEnigmail(function messageIsMovedAndDecrypted() {
loadSecretKey();
MailHelper.cleanMailFolder(MailHelper.rootFolder);
const sourceFolder = MailHelper.createMailFolder("source-box");
MailHelper.loadEmailToMailFolder("resources/encrypted-email.eml", sourceFolder);
const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder);
const targetFolder = MailHelper.createMailFolder("target-box");
const move = true;
const reqSync = true;
EnigmailDecryptPermanently.dispatchMessages([header], targetFolder.URI, move, reqSync);
const dispatchedHeader = MailHelper.fetchFirstMessageHeaderIn(targetFolder);
do_test_pending();
msgHdrToMimeMessage(
dispatchedHeader,
null,
function(header, mime) {
Assert.ok(!mime.isEncrypted);
Assert.assertContains(mime.parts[0].body, "This is encrypted");
do_test_finished();
},
false
);
})));
test(withTestGpgHome(withEnigmail(function messageWithAttachemntIsMovedAndDecrypted() {
loadSecretKey();
loadPublicKey();
MailHelper.cleanMailFolder(MailHelper.getRootFolder());
const sourceFolder = MailHelper.createMailFolder("source-box");
MailHelper.loadEmailToMailFolder("resources/encrypted-email-with-attachment.eml", sourceFolder);
const header = MailHelper.fetchFirstMessageHeaderIn(sourceFolder);
const targetFolder = MailHelper.createMailFolder("target-box");
const move = true;
const reqSync = true;
EnigmailDecryptPermanently.dispatchMessages([header], targetFolder.URI, move, reqSync);
const dispatchedHeader = MailHelper.fetchFirstMessageHeaderIn(targetFolder);
do_test_pending();
msgHdrToMimeMessage(
dispatchedHeader,
null,
function(header, mime) {
Assert.ok(!mime.isEncrypted);
Assert.assertContains(mime.parts[0].parts[0].body, "This is encrypted");
const atts = extractAttachments(mime);
Assert.ok(!atts[0].isEncrypted);
Assert.assertContains(atts[0].body, "This is an attachment.");
do_test_finished();
},
false
);
})));
var loadSecretKey = function() {
const secretKey = do_get_file("resources/dev-strike.sec", false);
EnigmailKeyRing.importKeyFromFile(secretKey, [], {});
};
var loadPublicKey = function() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
EnigmailKeyRing.importKeyFromFile(publicKey, [], {});
};
function stringFromUrl(url) {
const inspector = Cc["@mozilla.org/jsinspector;1"].getService(Ci.nsIJSInspector);
let result = null;
const p = new Promise(function(resolve, reject) {
const iOService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
const uri = iOService.newURI(url, null, null);
const attChannel = iOService.newChannelFromURI(uri);
const listener = EnigmailStreams.newStringStreamListener(function(data) {
result = data;
inspector.exitNestedEventLoop();
resolve();
});
attChannel.asyncOpen(listener, uri);
});
if (!result) {
inspector.enterNestedEventLoop({
value: 0
});
}
return result;
}
function extractAttachment(att) {
const name = att.name;
const body = stringFromUrl(att.url);
const isEncrypted = att.isEncrypted;
return {
name: name,
body: body,
isEncrypted: isEncrypted
};
}
function extractAttachments(msg) {
const result = [];
for (let i = 0; i < msg.allAttachments.length; i++) {
result.push(extractAttachment(msg.allAttachments[i]));
}
return result;
}
enigmail/package/tests/decryption-test.js 0000664 0000000 0000000 00000005614 12667016244 0021111 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false, Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */
testing("decryption.jsm"); /*global EnigmailDecryption: false, nsIEnigmail: false */
component("enigmail/keyRing.jsm"); /*global EnigmailKeyRing: fales */
component("enigmail/armor.jsm"); /*global EnigmailArmor: fales */
test(withTestGpgHome(withEnigmail(function shouldDecryptMessage() {
let secretKeyFile = do_get_file("resources", false);
secretKeyFile.append("dev-strike.sec");
const importedKeysObj = {};
let r = EnigmailKeyRing.importKeyFromFile(secretKeyFile, {}, importedKeysObj);
Assert.equal(0, r);
var encryptResult = "-----BEGIN PGP MESSAGE-----\n" +
"Version: GnuPG v2.0.22 (GNU/Linux)\n" +
"\n" +
"hQIMA9U1Yju2Dp5xAQ//eeoS38nAWPdJslfVaEuUhthZk4WxAua97+JNGX9vDiae\n" +
"jKJbjmQ5T2Sl2wvSqwjEIKzzjRAzr6SYuL9xaRkt3/BbMpSm/aSjc/cWNgcKtbHt\n" +
"u8u9Ha016XZke3/EpjLqMcXmK1eT9oa+UqR8u+B3ggOjz5BrjW+FMR+zfyiWv1cb\n" +
"6U4KO0YHuOq7G0lO4i3ro0ckhzZqCBLfCiQSfnF8R7p/KfQdUFBIdB41OALP0q4x\n" +
"UD+CNWhbIjyhfE0VX5KUn/5S5Se31VjKjfeo+5fN8HRUVQYu8uj2F+gPvALF5KKW\n" +
"an63O3IcUvZo6yOSoMjkMVJBHZRY6An2if+GXm330yQD3CDaonuihR+e+k6sd0kj\n" +
"hpwQs+4/uE96slRMqQMx573krc/p/WUWwG5qexOvwxzcqEdE5LYPEMKdH1fUX3tC\n" +
"kktNpSU8gJqluTk6cvtjCfMSwcEyKFmM13/RoitAw22DVOdLlcTHxbaNsIoxeRk/\n" +
"rxpsraIEs2H4uyF19K1nLioGkyubeUKPnBTB6qAwp0ZhZ1RleMwHRTFQU+jpbi51\n" +
"t87E+JI0UuLd14pDb7YJUKenHvAqa1jHAZKEfa2XFMfT/1MZzohlwjNpcPhYFWeB\n" +
"zq3cg/m/J5sb+FpdD42nfYnLsSYu7CwcTX8MU2vrSwHyHnmux6SjDXGrAaddWsrS\n" +
"RwGvjZsiFW/E82l2eMj5Zpm6HXY8kZx9TBSbWLSgU44nBhDvX1MrIGdd+rmYT2xt\n" +
"j4KAKpyV51VzmJUOqHrb7bPv70ncMx0w\n" +
"=uadZ\n" +
"-----END PGP MESSAGE-----\n\n";
const parentWindow = JSUnit.createStubWindow();
const exitCodeObj = {};
const statusFlagObj = {};
const errorMsgObj = {};
const decryptResult = EnigmailDecryption.decryptMessage(parentWindow,
nsIEnigmail.UI_TEST,
encryptResult, {},
exitCodeObj,
statusFlagObj, {}, {}, {},
errorMsgObj, {}, {},
"STRIKEfreedom@Qu1to"
);
Assert.equal(0, exitCodeObj.value);
Assert.equal(0, errorMsgObj.value);
Assert.equal("Hello there!", decryptResult);
Assert.equal(true, (statusFlagObj.value & (nsIEnigmail.DISPLAY_MESSAGE | nsIEnigmail.DECRYPTION_OKAY)) !== 0);
const blockType = EnigmailArmor.locateArmoredBlock(encryptResult, 0, "", {}, {}, {});
Assert.equal("MESSAGE", blockType);
})));
enigmail/package/tests/encryption-test.js 0000664 0000000 0000000 00000010421 12667016244 0021113 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false, Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */
testing("encryption.jsm"); /*global EnigmailEncryption: false, nsIEnigmail: false */
component("enigmail/keyRing.jsm"); /*global EnigmailKeyRing: fales */
component("enigmail/armor.jsm"); /*global EnigmailArmor: fales */
component("enigmail/Locale.jsm"); /*global EnigmailLocale: fales */
test(withTestGpgHome(withEnigmail(function shouldSignMessage() {
const secretKey = do_get_file("resources/dev-strike.sec", false);
const revocationCert = do_get_file("resources/dev-strike.rev", false);
const errorMsgObj = {};
const importedKeysObj = {};
EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj);
const parentWindow = JSUnit.createStubWindow();
const plainText = "Hello there!";
const strikeAccount = "strike.devtest@gmail.com";
const exitCodeObj = {};
const statusFlagObj = {};
const encryptResult = EnigmailEncryption.encryptMessage(parentWindow,
nsIEnigmail.UI_TEST,
plainText,
strikeAccount,
strikeAccount,
"",
nsIEnigmail.SEND_TEST | nsIEnigmail.SEND_SIGNED,
exitCodeObj,
statusFlagObj,
errorMsgObj
);
Assert.equal(0, exitCodeObj.value);
Assert.equal(0, errorMsgObj.value);
Assert.equal(true, (statusFlagObj.value == nsIEnigmail.SIG_CREATED));
const blockType = EnigmailArmor.locateArmoredBlock(encryptResult, 0, "", {}, {}, {});
Assert.equal("SIGNED MESSAGE", blockType);
let r = EnigmailEncryption.determineOwnKeyUsability(nsIEnigmail.SEND_SIGNED, "strike.devtest@gmail.com");
Assert.equal(r.keyId, "65537E212DC19025AD38EDB2781617319CE311C4");
EnigmailKeyRing.importKeyFromFile(revocationCert, errorMsgObj, importedKeysObj);
r = EnigmailEncryption.determineOwnKeyUsability(nsIEnigmail.SEND_SIGNED, "0x65537E212DC19025AD38EDB2781617319CE311C4");
Assert.equal(r.errorMsg, EnigmailLocale.getString("keyRing.pubKeyRevoked", ["anonymous strike ", "0x781617319CE311C4"]));
})));
test(withTestGpgHome(withEnigmail(function shouldEncryptMessage() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
const errorMsgObj = {};
const importedKeysObj = {};
EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj);
const parentWindow = JSUnit.createStubWindow();
const plainText = "Hello there!";
const strikeAccount = "strike.devtest@gmail.com";
const exitCodeObj = {};
const statusFlagObj = {};
const encryptResult = EnigmailEncryption.encryptMessage(parentWindow,
nsIEnigmail.UI_TEST,
plainText,
strikeAccount,
strikeAccount,
"",
nsIEnigmail.SEND_TEST | nsIEnigmail.SEND_ENCRYPTED | nsIEnigmail.SEND_ALWAYS_TRUST,
exitCodeObj,
statusFlagObj,
errorMsgObj
);
Assert.equal(0, exitCodeObj.value);
Assert.equal(0, errorMsgObj.value);
Assert.equal(true, (statusFlagObj.value & nsIEnigmail.END_ENCRYPTION) !== 0);
const blockType = EnigmailArmor.locateArmoredBlock(encryptResult, 0, "", {}, {}, {});
Assert.equal("MESSAGE", blockType);
let r = EnigmailEncryption.determineOwnKeyUsability(nsIEnigmail.SEND_ENCRYPTED, "strike.devtest@gmail.com");
Assert.equal(r.keyId, "65537E212DC19025AD38EDB2781617319CE311C4");
})));
test(withTestGpgHome(withEnigmail(function shouldGetErrorReason() {
let r = EnigmailEncryption.determineOwnKeyUsability(nsIEnigmail.SEND_SIGNED, "strike.devtest@gmail.com");
let expected = EnigmailLocale.getString("keyRing.noSecretKey", ["anonymous strike ", "0x781617319CE311C4"]) + "\n";
Assert.equal(r.errorMsg, expected);
r = EnigmailEncryption.determineOwnKeyUsability(nsIEnigmail.SEND_SIGNED | nsIEnigmail.SEND_ENCRYPTED, "nobody@notfound.net");
expected = EnigmailLocale.getString("errorOwnKeyUnusable", "nobody@notfound.net");
Assert.equal(r.errorMsg, expected);
})));
enigmail/package/tests/enigmail-test.js 0000664 0000000 0000000 00000004355 12667016244 0020517 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, withTestGpgHome:false */
/*global EnigmailCore: false, Enigmail: false, component: false, Cc: false, Ci: false, withEnvironment: false, nsIEnigmail: false, nsIEnvironment: false, Ec: false, EnigmailPrefs: false, EnigmailOS: false, EnigmailArmor: false */
/*jshint -W120 */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("enigmail.js");
function newEnigmail(f) {
var oldEnigmail = EnigmailCore.getEnigmailService();
try {
var enigmail = new Enigmail();
EnigmailCore.setEnigmailService(enigmail);
f(enigmail);
}
finally {
EnigmailCore.setEnigmailService(oldEnigmail);
}
}
// testing: initialize
test(function initializeWillPassEnvironmentIfAskedTo() {
var window = JSUnit.createStubWindow();
withEnvironment({
"ENIGMAIL_PASS_ENV": "STUFF:BLARG",
"STUFF": "testing"
}, function() {
newEnigmail(function(enigmail) {
enigmail.initialize(window, "");
Assert.assertArrayContains(EnigmailCore.getEnvList(), "STUFF=testing");
});
});
});
test(function initializeWillNotPassEnvironmentsNotAskedTo() {
var window = JSUnit.createStubWindow();
var environment = Cc["@mozilla.org/process/environment;1"].getService(nsIEnvironment);
environment.set("ENIGMAIL_PASS_ENV", "HOME");
environment.set("STUFF", "testing");
newEnigmail(function(enigmail) {
enigmail.initialize(window, "");
Assert.assertArrayNotContains(EnigmailCore.getEnvList(), "STUFF=testing");
});
});
test(function initializeWillNotSetEmptyEnvironmentValue() {
var window = JSUnit.createStubWindow();
var environment = Cc["@mozilla.org/process/environment;1"].getService(nsIEnvironment);
environment.set("APPDATA", "");
newEnigmail(function(enigmail) {
enigmail.initialize(window, "");
Assert.assertArrayNotContains(EnigmailCore.getEnvList(), "APPDATA=");
});
});
enigmail/package/tests/errorHandling-test.js 0000664 0000000 0000000 00000021025 12667016244 0021521 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */
/*global decryptionFailed: false, newContext: false, detectForgedInsets: false */
/*global component: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withTestGpgHome: false */
testing("errorHandling.jsm"); /*global EnigmailErrorHandling: false, Cc: false, Ci: false */
component("enigmail/os.jsm"); /*global EnigmailOS: false */
component("enigmail/system.jsm"); /*global EnigmailSystem: false */
component("enigmail/locale.jsm"); /*global EnigmailLocale: false */
// simulate Unix, and UTF-8 (works on all systems)
EnigmailOS.isWin32 = false;
let env = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment);
let lc = env.set("LC_ALL", "en_US.UTF-8");
EnigmailSystem.determineSystemCharset();
test(function decryptionFailedWillSetDecryptionFailedFlag() {
var context = {};
decryptionFailed(context);
Assert.equal(context.inDecryptionFailed, true, "expected decryption failing to set the correct flag in the context");
});
test(function shouldExtractSingleBlockSeparation() {
var testStatusArray = [
"BEGIN_DECRYPTION",
"DECRYPTION_INFO 2 9",
"PLAINTEXT 62 1431644287 text.txt",
"PLAINTEXT_LENGTH 15",
"DECRYPTION_FAILED",
"END_DECRYPTION"
];
var context = newContext({}, {}, {}, {});
context.statusArray = testStatusArray;
detectForgedInsets(context);
Assert.equal(context.retStatusObj.blockSeparation, "1:15 ");
});
test(function shouldExtractMultipleBlockSeparation() {
var testStatusArray = [
"FILE_START 3 file1.gpg",
"ENC_TO D535623BB60E9E71 1 0",
"USERID_HINT D535623BB60E9E71 anonymous strike ",
"NEED_PASSPHRASE D535623BB60E9E71 781617319CE311C4 1 0",
"GOOD_PASSPHRASE",
"BEGIN_DECRYPTION",
"DECRYPTION_INFO 2 9",
"PLAINTEXT 62 1432677982 test",
"PLAINTEXT_LENGTH 14",
"DECRYPTION_OKAY",
"GOODMDC",
"END_DECRYPTION",
"FILE_DONE",
"FILE_START 3 file0.gpg",
"ENC_TO D535623BB60E9E71 1 0",
"GOOD_PASSPHRASE",
"BEGIN_DECRYPTION",
"DECRYPTION_INFO 2 9",
"PLAINTEXT 62 1432677982 test",
"PLAINTEXT_LENGTH 14",
"DECRYPTION_OKAY",
"GOODMDC",
"END_DECRYPTION",
"FILE_DONE",
"PLAINTEXT 62 1432677982 test",
"PLAINTEXT_LENGTH 15"
];
var context = newContext({}, {}, {}, {});
context.statusArray = testStatusArray;
detectForgedInsets(context);
Assert.equal(context.retStatusObj.blockSeparation, "1:14 1:14 0:15 ");
});
test(function shouldHandleNoDataErrors() {
const errorOutput = "gpg: no valid OpenPGP data found.\n" +
"[GNUPG:] NODATA 1\n" +
"[GNUPG:] NODATA 2\n" +
"gpg: decrypt_message failed: Unknown system error\n";
const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {});
Assert.assertContains(result, "no valid OpenPGP data found");
});
test(function shouldHandleErrorOutput() {
const errorOutput = "[GNUPG:] USERID_HINT 781617319CE311C4 anonymous strike \n" +
"[GNUPG:] NEED_PASSPHRASE 781617319CE311C4 781617319CE311C4 1 0\n" +
"gpg-agent[14654]: command get_passphrase failed: Operation cancelled\n" +
"gpg: cancelled by user\n" +
"[GNUPG:] MISSING_PASSPHRASE\n" +
"gpg: skipped \"\": Operation cancelled\n" +
"[GNUPG:] INV_SGNR 0 \n" +
"gpg: [stdin]: clearsign failed: Operation cancelled\n";
const retStatusObj = {};
EnigmailErrorHandling.parseErrorOutput(errorOutput, retStatusObj);
Assert.assertContains(retStatusObj.statusMsg, EnigmailLocale.getString("missingPassphrase"));
Assert.equal(retStatusObj.extendedStatus, "");
});
test(function shouldHandleFailedEncryption() {
const errorOutput = "gpg: encrypted with 4096-bit RSA key, ID B60E9E71, created 2015-05-04\n" +
"\"anonymous strike \"\n" +
"[GNUPG:] BEGIN_DECRYPTION\n" +
"[GNUPG:] DECRYPTION_INFO 2 9\n" +
"[GNUPG:] PLAINTEXT 62 1431644287 text.txt\n" +
"[GNUPG:] PLAINTEXT_LENGTH 15\n" +
"File `textd.txt' exists. Overwrite? (y/N) y\n" +
"gpg: mdc_packet with invalid encoding\n" +
"[GNUPG:] DECRYPTION_FAILED\n" +
"gpg: decryption failed: Invalid packet\n" +
"[GNUPG:] END_DECRYPTION";
const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {});
Assert.assertContains(result, "decryption failed: Invalid packet");
});
test(withTestGpgHome(function shouldHandleSuccessfulImport() {
const errorOutput = "gpg: key 9CE311C4: public key \"anonymous strike \" imported\n" +
"[GNUPG:] IMPORTED 781617319CE311C4 anonymous strike \n" +
"[GNUPG:] IMPORT_OK 1 65537E212DC19025AD38EDB2781617319CE311C4\n" +
"gpg: key 9CE311C4: secret key imported\n" +
"[GNUPG:] IMPORT_OK 17 65537E212DC19025AD38EDB2781617319CE311C4\n" +
"[GNUPG:] IMPORT_OK 0 65537E212DC19025AD38EDB2781617319CE311C4\n" +
"gpg: key 9CE311C4: \"anonymous strike \" not changed\n" +
"gpg: Total number processed: 2\n" +
"gpg: imported: 1 (RSA: 1)\n" +
"gpg: unchanged: 1\n" +
"gpg: secret keys read: 1\n" +
"gpg: secret keys imported: 1\n" +
"[GNUPG:] IMPORT_RES 2 0 1 1 1 0 0 0 0 1 1 0 0 0";
const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {});
Assert.assertContains(result, "secret key imported");
}));
test(function shouldHandleUnverifiedSignature() {
const errorOutput = "gpg: B60E9E71: There is no assurance this key belongs to the named user\n" +
"\n" +
"pub 4096R/B60E9E71 2015-05-04 anonymous strike \n" +
" Primary key fingerprint: 6553 7E21 2DC1 9025 AD38 EDB2 7816 1731 9CE3 11C4\n" +
" Subkey fingerprint: D093 CD82 3BE1 3BD3 81EE FF7A D535 623B B60E 9E71\n" +
"\n" +
"It is NOT certain that the key belongs to the person named\n" +
"in the user ID. If you *really* know what you are doing,\n" +
"you may answer the next question with yes.\n" +
"\n" +
"[GNUPG:] USERID_HINT D535623BB60E9E71 anonymous strike \n" +
"Use this key anyway? (y/N) y";
const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {});
Assert.assertContains(result, "Use this key anyway");
});
test(function shouldHandleEncryptionFailedNoPublicKey() {
const errorOutput = "gpg: iapazmino@thoughtworks.com: skipped: No public key\n" +
"[GNUPG:] INV_RECP 0 iapazmino@thoughtworks.com\n" +
"gpg: salida3.xtxt: encryption failed: No public key";
const o = {};
const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, o);
Assert.assertContains(result, "No public key");
Assert.equal(o.errorMsg, EnigmailLocale.getString("keyError.keySpecNotFound", "iapazmino@thoughtworks.com"));
});
test(function shouldHandleErrors() {
const errorOutput = "gpg: problem with the agent: Invalid IPC response \n" +
"gpg: /dev/fd/5:0: key generation canceled\n" +
"\n" +
"Status text: [GNUPG:] NEED_PASSPHRASE_SYM 3 3 2 \n" +
"[GNUPG:] ERROR get_passphrase 260 \n" +
"[GNUPG:] MISSING_PASSPHRASE \n" +
"[GNUPG:] KEY_NOT_CREATED";
const result = EnigmailErrorHandling.parseErrorOutput(errorOutput, {});
Assert.assertContains(result, "Invalid IPC response");
});
test(function shouldHandleInvalidSender() {
const errorOutput = "gpg: skipped \"0x12345678\": No secret key\n" +
"[GNUPG:] INV_SGNR 9 0x12345678\n" +
"[GNUPG:] FAILURE sign 17\n" +
"gpg: signing failed: No secret key\n";
const retStatusObj = {};
EnigmailErrorHandling.parseErrorOutput(errorOutput, retStatusObj);
Assert.assertContains(retStatusObj.errorMsg, EnigmailLocale.getString("keyError.keyIdNotFound", "0x12345678"));
});
test(function shouldHandleFailures() {
const errorOutput = "[GNUPG:] BEGIN_SIGNING H2\n" +
"[gpg: signing failed: No pinentry\n" +
"[GNUPG:] FAILURE sign 67108949\n" +
"gpg: [stdin]: clearsign failed: No pinentry\n";
const retStatusObj = {};
EnigmailErrorHandling.parseErrorOutput(errorOutput, retStatusObj);
Assert.ok((retStatusObj.statusFlags & Ci.nsIEnigmail.DISPLAY_MESSAGE) !== 0);
Assert.assertContains(retStatusObj.statusMsg, EnigmailLocale.getString("errorHandling.pinentryError"));
});
enigmail/package/tests/execution-test.js 0000664 0000000 0000000 00000003167 12667016244 0020735 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false, Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */
testing("execution.jsm"); /*global EnigmailExecution: false */
component("enigmail/gpgAgent.jsm"); /*global EnigmailGpgAgent: false */
component("enigmail/gpg.jsm"); /*global EnigmailGpg: false */
test(withTestGpgHome(withEnigmail(function shouldExecCmd() {
const command = EnigmailGpgAgent.agentPath;
const args = EnigmailGpg.getStandardArgs(false).
concat(["--no-tty", "--status-fd", "1", "--logger-fd", "1", "--command-fd", "0"]).
concat(["--list-packets", "resources/dev-strike.asc"]);
let output = "";
EnigmailExecution.execCmd2(command, args,
function(pipe) {
//Assert.equal(stdin, 0);
},
function(stdout) {
output += stdout;
},
function(result) {
Assert.deepEqual(result, {
"exitCode": 0,
"stdout": "",
"stderr": ""
});
}
);
Assert.assertContains(output, ":public key packet:");
Assert.assertContains(output, ":user ID packet:");
Assert.assertContains(output, ":signature packet:");
Assert.assertContains(output, ":public sub key packet:");
})));
enigmail/package/tests/expiry-test.js 0000664 0000000 0000000 00000012237 12667016244 0020250 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false */
/*global do_test_finished: false, component: false, Cc: false, Ci: false, setupTestAccounts: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */
testing("expiry.jsm"); /*global EnigmailExpiry: false */
component("enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
component("enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
component("enigmail/locale.jsm"); /*global EnigmailLocale: false */
/*global Math: false, Date: false, uniqueKeyList: false, DAY: false */
setupTestAccounts();
test(function shouldCheckKeyExpiry() {
EnigmailKeyRing.clearCache();
let keyListObj = EnigmailKeyRing.getAllKeys();
let now = Math.floor(Date.now() / 1000);
let a = [{
keyId: "123"
}, {
keyId: "456"
}, {
keyId: "123"
}, {
keyId: "763"
}, {
keyId: "456"
}];
let b = uniqueKeyList(a);
Assert.equal(b.length, 3);
keyListObj.keySortList.push(1); // ensure that key list is not reloaded
keyListObj.keyList.push(createKeyObj("ABCDEF0123456789", "user1@enigmail-test.net", now + DAY * 5, true));
keyListObj.keyList.push(createKeyObj("DBCDEF0123456789", "user2@enigmail-test.net", now - DAY * 5, true));
keyListObj.keyList.push(createKeyObj("EBCDEF0123456789", "user2@enigmail-test.net", now + DAY * 100, true));
keyListObj.keyList.push(createKeyObj("CBCDEF0123456789", "user3@enigmail-test.net", 0, true));
keyListObj.keyList.push(createKeyObj("BBCDEF0123456789", "user4@enigmail-test.net", now - DAY * 5, true));
keyListObj.keyList.push(createKeyObj("FBCDEF0123456789", "user5@enigmail-test.net", now - DAY * 5, true));
keyListObj.keyList.push(createKeyObj("ACCDEF0123456789", "user5@enigmail-test.net", now + DAY * 5, true));
EnigmailKeyRing.rebuildKeyIndex();
let k = EnigmailExpiry.getExpiryForKeySpec([], 10);
Assert.equal(k.length, 0);
k = EnigmailExpiry.getExpiryForKeySpec(["0xABCDEF0123456789", "BBCDEF0123456789", "CBCDEF0123456789"], 10);
Assert.equal(k.map(getKeyId).join(" "), "ABCDEF0123456789");
k = EnigmailExpiry.getExpiryForKeySpec(["user1@enigmail-test.net", "user2@enigmail-test.net", "user5@enigmail-test.net"], 10);
Assert.equal(k.map(getKeyId).join(" "), "ABCDEF0123456789 ACCDEF0123456789");
});
test(function shouldCheckKeySpecs() {
let a = EnigmailExpiry.getKeysSpecForIdentities();
Assert.equal(a.join(" "), "ABCDEF0123456789 user2@enigmail-test.net user4@enigmail-test.net");
});
test(function shouldGetNewlyExpiredKeys() {
EnigmailPrefs.setPref("keyCheckResult", "");
EnigmailPrefs.setPref("warnKeyExpiryNumDays", 10);
let a = EnigmailExpiry.getNewlyExpiredKeys();
Assert.equal(a.map(getKeyId).join(" "), "ABCDEF0123456789");
EnigmailPrefs.setPref("warnKeyExpiryNumDays", 101);
a = EnigmailExpiry.getNewlyExpiredKeys();
Assert.equal(a, null);
let keyCheckResult = JSON.parse(EnigmailPrefs.getPref("keyCheckResult", ""));
keyCheckResult.lastCheck = Date.now() - 86401000;
EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(keyCheckResult));
a = EnigmailExpiry.getNewlyExpiredKeys();
Assert.equal(a.map(getKeyId).join(" "), "EBCDEF0123456789");
keyCheckResult = JSON.parse(EnigmailPrefs.getPref("keyCheckResult", ""));
keyCheckResult.lastCheck = Date.now() - 86401000;
EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(keyCheckResult));
a = EnigmailExpiry.getNewlyExpiredKeys();
Assert.equal(a.length, 0);
});
test(function shouldDoKeyExpiryCheck() {
EnigmailPrefs.setPref("keyCheckResult", "");
EnigmailPrefs.setPref("warnKeyExpiryNumDays", 101);
let str = EnigmailExpiry.keyExpiryCheck();
Assert.equal(str, EnigmailLocale.getString("expiry.keysExpireSoon", [101, '- "user1@enigmail-test.net" (key ID 123456781234567812345678ABCDEF0123456789)\n' +
'- "user2@enigmail-test.net" (key ID 123456781234567812345678EBCDEF0123456789)\n'
]));
let keyCheckResult = JSON.parse(EnigmailPrefs.getPref("keyCheckResult", ""));
keyCheckResult.lastCheck = Date.now() - 86401000;
EnigmailPrefs.setPref("keyCheckResult", JSON.stringify(keyCheckResult));
EnigmailPrefs.setPref("warnKeyExpiryNumDays", 10);
str = EnigmailExpiry.keyExpiryCheck();
Assert.equal(str, "");
});
function getKeyId(key) {
return key.keyId;
}
function createKeyObj(keyId, userId, expiryDate, hasSecretKey) {
return {
keyId: keyId,
userId: userId,
fpr: "123456781234567812345678" + keyId,
expiryTime: expiryDate,
keyUseFor: "escESC",
secretAvailable: hasSecretKey,
keyTrust: "u",
type: "pub",
userIds: [{
userId: userId,
type: "uid",
keyTrust: "u"
}],
subKeys: [],
signatures: [],
getKeyExpiry: function() {
if (this.expiryTime === 0) return Number.MAX_VALUE;
return this.expiryTime;
},
get fprFormatted() {
return this.fpr;
}
};
}
enigmail/package/tests/files-test.js 0000664 0000000 0000000 00000002511 12667016244 0020024 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */
/*global EnigmailCore: false, Cc: false, Ci: false, EnigmailFiles: false, EnigmailLog: false, EnigmailPrefs: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("files.jsm");
// testing: readFile
test(function readFileReturnsContentOfExistingFile() {
var md = do_get_cwd().clone();
md = md.parent.parent;
md.append("uuid_enig.txt");
var result = EnigmailFiles.readFile(md);
Assert.assertContains(result, "847b3a00-7ab1-11d4-8f02-006008948af5");
});
test(function readFileReturnsEmptyStringForNonExistingFile() {
var md = do_get_cwd().clone();
md = md.parent.parent;
md.append("THIS_FILE_DOESNT_EXIST");
var result = EnigmailFiles.readFile(md);
Assert.equal("", result);
});
test(function shouldFormatCmdLine() {
var md = do_get_cwd();
Assert.equal(EnigmailFiles.formatCmdLine(md, ["1", "2", "3"]), do_get_cwd().path + " 1 2 3");
});
enigmail/package/tests/funcs-test.js 0000664 0000000 0000000 00000004574 12667016244 0020053 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, EnigmailApp: false */
/*global EnigmailFuncs: false, rulesListHolder: false, EC: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("funcs.jsm");
var EnigmailFuncsTests = {
testStripEmail(str, res) {
let addr;
addr = EnigmailFuncs.stripEmail(str);
Assert.equal(addr, res);
}
};
test(function stripEmail() {
EnigmailFuncsTests.testStripEmail("some stuff some stuff",
"a@b.de");
EnigmailFuncsTests.testStripEmail("\"some stuff\" a@b.de",
"a@b.de");
EnigmailFuncsTests.testStripEmail("\"some, stuff\" a@b.de",
"a@b.de");
EnigmailFuncsTests.testStripEmail("some stuff some stuff, xyzxyc",
"a@b.de,xy@a.xx");
EnigmailFuncsTests.testStripEmail(" a@b.de , ",
"a@b.de,aa@bb.de");
EnigmailFuncsTests.testStripEmail(" ,,,,;;;; , ; , ;",
"");
EnigmailFuncsTests.testStripEmail(";",
"");
EnigmailFuncsTests.testStripEmail(" ,,oneRule,;;; , ;",
"oneRule");
EnigmailFuncsTests.testStripEmail(" ,,,nokey,;;;; , nokey2 ; , ;",
"nokey,nokey2");
EnigmailFuncsTests.testStripEmail(",,,newsgroupa ",
"newsgroupa");
// test invalid email addresses:
Assert.throws(
function() {
EnigmailFuncs.stripEmail(" a@b.de , ");
}
);
Assert.throws(
function() {
EnigmailFuncs.stripEmail("\"some stuff a@b.de");
}
);
});
test(function compareMimePartLevel() {
Assert.throws(
function() {
EnigmailFuncs.compareMimePartLevel("1.2.e", "1.2");
}
);
let e = EnigmailFuncs.compareMimePartLevel("1.1", "1.1.2");
Assert.equal(e, -2);
e = EnigmailFuncs.compareMimePartLevel("1.1", "1.2.2");
Assert.equal(e, -1);
e = EnigmailFuncs.compareMimePartLevel("1", "2");
Assert.equal(e, -1);
e = EnigmailFuncs.compareMimePartLevel("1.2", "1.1.2");
Assert.equal(e, 1);
e = EnigmailFuncs.compareMimePartLevel("1.2.2", "1.2");
Assert.equal(e, 2);
e = EnigmailFuncs.compareMimePartLevel("1.2.2", "1.2.2");
Assert.equal(e, 0);
});
enigmail/package/tests/gpgAgent-test.js 0000664 0000000 0000000 00000026353 12667016244 0020470 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false */
/*global TestHelper: false, withEnvironment: false, nsIWindowsRegKey: true */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
/*global TestHelper: false, withEnvironment: false, withEnigmail: false, component: false,
withTestGpgHome: false, osUtils: false, EnigmailFiles */
testing("gpgAgent.jsm"); /*global EnigmailGpgAgent: false, EnigmailOS: false, getHomedirFromParam: false */
component("enigmail/prefs.jsm"); /*global EnigmailPrefs: false */
component("enigmail/gpg.jsm"); /*global EnigmailGpg: false */
// testing: determineGpgHomeDir
// environment: GNUPGHOME
// isWin32:
// registry Software\GNU\GNUPG\HomeDir
// environment: USERPROFILE + \Application Data\GnuPG
// environment: SystemRoot + \Application Data\GnuPG
// c:\gnupg
// environment: HOME + .gnupg
test(function determineGpgHomeDirReturnsGNUPGHOMEIfExists() {
withEnvironment({
"GNUPGHOME": "stuffResult1"
}, function(e) {
var enigmail = {
environment: e
};
Assert.equal("stuffResult1", EnigmailGpgAgent.determineGpgHomeDir(enigmail));
});
});
// this test cannot be reliably performed on Windows
if (JSUnit.getOS() != "WINNT") {
test(function determineGpgHomeDirReturnsHomePlusGnupgForNonWindowsIfNoGNUPGHOMESpecificed() {
withEnvironment({
"HOME": "/my/little/home"
}, function(e) {
e.set("GNUPGHOME", null);
var enigmail = {
environment: e
};
Assert.equal("/my/little/home/.gnupg", EnigmailGpgAgent.determineGpgHomeDir(enigmail));
});
});
}
test(function determineGpgHomeDirReturnsRegistryValueForWindowsIfExists() {
withEnvironment({}, function(e) {
e.set("GNUPGHOME", null);
resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {
if (a === "Software\\GNU\\GNUPG" && b === "HomeDir" && c === "foo bar") {
return "\\foo\\bar\\gnupg";
}
else {
return "\\somewhere\\else";
}
}, function() {
resetting(EnigmailOS, 'isWin32', true, function() {
var enigmail = {
environment: e
};
nsIWindowsRegKey = {
ROOT_KEY_CURRENT_USER: "foo bar"
};
Assert.equal("\\foo\\bar\\gnupg", EnigmailGpgAgent.determineGpgHomeDir(enigmail));
});
});
});
});
test(function determineGpgHomeDirReturnsUserprofileIfItExists() {
withEnvironment({
"USERPROFILE": "\\bahamas"
}, function(e) {
e.set("GNUPGHOME", null);
resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {}, function() {
resetting(EnigmailOS, 'isWin32', true, function() {
var enigmail = {
environment: e
};
nsIWindowsRegKey = {
ROOT_KEY_CURRENT_USER: "foo bar"
};
Assert.equal("\\bahamas\\Application Data\\GnuPG", EnigmailGpgAgent.determineGpgHomeDir(enigmail));
});
});
});
});
test(function determineGpgHomeDirReturnsSystemrootIfItExists() {
withEnvironment({
"SystemRoot": "\\tahiti",
"USERPROFILE": null
}, function(e) {
e.set("GNUPGHOME", null);
resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {}, function() {
resetting(EnigmailOS, 'isWin32', true, function() {
var enigmail = {
environment: e
};
nsIWindowsRegKey = {
ROOT_KEY_CURRENT_USER: "foo bar"
};
Assert.equal("\\tahiti\\Application Data\\GnuPG", EnigmailGpgAgent.determineGpgHomeDir(enigmail));
});
});
});
});
test(function determineGpgHomeDirReturnsDefaultForWin32() {
withEnvironment({
"SystemRoot": null,
"USERPROFILE": null
}, function(e) {
e.set("GNUPGHOME", null);
resetting(EnigmailOS, 'getWinRegistryString', function(a, b, c) {}, function() {
resetting(EnigmailOS, 'isWin32', true, function() {
var enigmail = {
environment: e
};
nsIWindowsRegKey = {
ROOT_KEY_CURRENT_USER: "foo bar"
};
Assert.equal("C:\\gnupg", EnigmailGpgAgent.determineGpgHomeDir(enigmail));
});
});
});
});
// // testing: useGpgAgent
// // useGpgAgent depends on several values:
// // EnigmailOS.isDosLike()
// // Gpg.getGpgFeature("supports-gpg-agent")
// // Gpg.getGpgFeature("autostart-gpg-agent")
// // EnigmailGpgAgent.gpgAgentInfo.envStr.length>0
// // EnigmailPrefs.getPrefBranch().getBoolPref("useGpgAgent")
function asDosLike(f) {
resetting(EnigmailOS, 'isDosLikeVal', true, f);
}
function notDosLike(f) {
resetting(EnigmailOS, 'isDosLikeVal', false, f);
}
function withGpgFeatures(features, f) {
resetting(EnigmailGpg, 'getGpgFeature', function(feature) {
return features.indexOf(feature) != -1;
}, f);
}
function mockPrefs(prefs) {
return {
getBoolPref: function(name) {
return prefs[name];
}
};
}
test(function useGpgAgentIsFalseIfIsDosLikeAndDoesntSupportAgent() {
asDosLike(function() {
withGpgFeatures([], function() {
Assert.ok(!EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsTrueIfIsDosLikeAndSupportsAgentAndAutostartsAgent() {
asDosLike(function() {
withGpgFeatures(["supports-gpg-agent", "autostart-gpg-agent"], function() {
Assert.ok(EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsTrueIfIsDosLikeAndSupportsAgentAndThereExistsAnAgentString() {
asDosLike(function() {
withGpgFeatures(["supports-gpg-agent"], function() {
EnigmailGpgAgent.gpgAgentInfo.envStr = "blarg";
Assert.ok(EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsFalseIfIsDosLikeAndSupportsAgentButNoAgentInfoAvailable() {
asDosLike(function() {
withGpgFeatures(["supports-gpg-agent"], function() {
EnigmailGpgAgent.gpgAgentInfo.envStr = "";
Assert.ok(!EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsTrueIfIsDosLikeAndSupportsAgentAndPrefIsSet() {
asDosLike(function() {
withGpgFeatures(["supports-gpg-agent"], function() {
resetting(EnigmailPrefs, 'getPrefBranch', function() {
return mockPrefs({
useGpgAgent: true
});
}, function() {
Assert.ok(EnigmailGpgAgent.useGpgAgent());
});
});
});
});
test(function useGpgAgentIsTrueIfNotDosLikeAndSupportsAgentAndAutostartsAgent() {
notDosLike(function() {
withGpgFeatures(["supports-gpg-agent", "autostart-gpg-agent"], function() {
Assert.ok(EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsTrueIfNotDosLikeAndSupportsAgentAndThereExistsAnAgentString() {
notDosLike(function() {
withGpgFeatures(["supports-gpg-agent"], function() {
EnigmailGpgAgent.gpgAgentInfo.envStr = "blarg";
Assert.ok(EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsFalseIfNotDosLikeAndSupportsAgentButNoAgentInfoAvailable() {
notDosLike(function() {
withGpgFeatures(["supports-gpg-agent"], function() {
EnigmailGpgAgent.gpgAgentInfo.envStr = "";
Assert.ok(!EnigmailGpgAgent.useGpgAgent());
});
});
});
test(function useGpgAgentIsTrueIfNotDosLikeAndSupportsAgentAndPrefIsSet() {
notDosLike(function() {
withGpgFeatures(["supports-gpg-agent"], function() {
resetting(EnigmailPrefs, 'getPrefBranch', function() {
return mockPrefs({
useGpgAgent: true
});
}, function() {
Assert.ok(EnigmailGpgAgent.useGpgAgent());
});
});
});
});
// // setAgentPath
test(withEnigmail(function setAgentPathDefaultValues(enigmail) {
withEnvironment({}, function(e) {
enigmail.environment = e;
EnigmailGpgAgent.setAgentPath(JSUnit.createStubWindow(), enigmail);
Assert.equal("gpg", EnigmailGpgAgent.agentType);
Assert.equal("gpg", EnigmailGpgAgent.agentPath.leafName.substr(0, 3));
Assert.equal("gpgconf", EnigmailGpgAgent.gpgconfPath.leafName.substr(0, 7));
Assert.equal("gpg-connect-agent", EnigmailGpgAgent.connGpgAgentPath.leafName.substr(0, 17));
// Basic check to test if GnuPG version was properly extracted
Assert.ok(EnigmailGpg.agentVersion.search(/^[2-9]\.[0-9]+(\.[0-9]+)?/) === 0);
});
}));
// // resolveToolPath
test(withEnigmail(function resolveToolPathDefaultValues(enigmail) {
withEnvironment({}, function(e) {
resetting(EnigmailGpgAgent, 'agentPath', "/usr/bin/gpg-agent", function() {
enigmail.environment = e;
var result = EnigmailGpgAgent.resolveToolPath("zip");
Assert.equal("zip", result.leafName.substr(0, 3));
});
});
}));
// route cannot be tested reliably on non-Unix systems
// test(withEnigmail(function resolveToolPathFromPATH(enigmail) {
// withEnvironment({PATH: "/sbin"}, function(e) {
// resetting(EnigmailGpgAgent, 'agentPath', "/usr/bin/gpg-agent", function() {
// enigmail.environment = e;
// var result = EnigmailGpgAgent.resolveToolPath("route");
// Assert.equal("/sbin/route", result.path);
// });
// });
// }));
// detectGpgAgent
test(withEnigmail(function detectGpgAgentSetsAgentInfoFromEnvironmentVariable(enigmail) {
withEnvironment({
GPG_AGENT_INFO: "a happy agent"
}, function(e) {
enigmail.environment = e;
EnigmailGpgAgent.detectGpgAgent(JSUnit.createStubWindow(), enigmail);
Assert.ok(EnigmailGpgAgent.gpgAgentInfo.preStarted);
Assert.equal("a happy agent", EnigmailGpgAgent.gpgAgentInfo.envStr);
Assert.ok(!EnigmailGpgAgent.gpgAgentIsOptional);
});
}));
test(withEnigmail(function detectGpgAgentWithNoAgentInfoInEnvironment(enigmail) {
withEnvironment({}, function(e) {
enigmail.environment = e;
EnigmailGpgAgent.detectGpgAgent(JSUnit.createStubWindow(), enigmail);
Assert.ok(!EnigmailGpgAgent.gpgAgentInfo.preStarted);
Assert.ok(!EnigmailGpgAgent.gpgAgentIsOptional);
});
}));
test(withEnigmail(function detectGpgAgentWithAutostartFeatureWillDoNothing(enigmail) {
withEnvironment({}, function(e) {
withGpgFeatures(["autostart-gpg-agent"], function() {
enigmail.environment = e;
EnigmailGpgAgent.detectGpgAgent(JSUnit.createStubWindow(), enigmail);
Assert.equal("none", EnigmailGpgAgent.gpgAgentInfo.envStr);
});
});
}));
//getGpgHomeDir
test(withTestGpgHome(withEnigmail(function shouldGetGpgHomeDir() {
let homedirExpected = osUtils.OS.Path.join(EnigmailFiles.getTempDir(), ".gnupgTest");
let homeDir = EnigmailGpgAgent.getGpgHomeDir();
Assert.equal(homedirExpected, homeDir);
})));
// getHomedirFromParam
test(function shouldGetHomedirFromParam() {
let hd = getHomedirFromParam('--homedir /some1/path');
Assert.equal(hd, "/some1/path");
hd = getHomedirFromParam('--opt1 --homedir /some2/path --opt2');
Assert.equal(hd, "/some2/path");
hd = getHomedirFromParam('--opt1 --homedir "C:\\My Path\\is\\Very \\"long 1\\"" --opt2');
Assert.equal(hd, 'C:\\My Path\\is\\Very \\"long 1\\"');
hd = getHomedirFromParam('--opt1 --homedir "C:\\My Path\\is\\Very \\"long 2\\"" --opt2 "Some \\"more\\" fun"');
Assert.equal(hd, 'C:\\My Path\\is\\Very \\"long 2\\"');
});
enigmail/package/tests/installGnuPG-test.js 0000664 0000000 0000000 00000001747 12667016244 0021303 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false */
/*global do_test_finished: false, component: false, Cc: false, Ci: false, setupTestAccounts: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false */
testing("installGnuPG.jsm"); /*global EnigmailInstallGnuPG: false, Installer: false */
test(function shouldCheckHashSum() {
let inst = new Installer(null);
inst.installerFile = do_get_file("resources/dev-strike.asc", false);
inst.hash = "2ad19a1943152833a47c1a04c01d9ff4b3d7a6da"; // SHA1 sum of installerFile
Assert.ok(inst.checkHashSum());
});
enigmail/package/tests/keyEditor-test.js 0000664 0000000 0000000 00000010574 12667016244 0020671 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, withTestGpgHome:false */
/*global Ec: false, Cc: false, Ci: false, do_print: false, EnigmailCore: false, EnigmailKeyEditor: false, Components: false, component: false, EnigmailPrefs: false, EnigmailExecution: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false */
testing("keyEditor.jsm"); /*global editKey: false */
component("enigmail/keyRing.jsm"); /*global EnigmailKeyRing: false */
component("enigmail/time.jsm"); /*global EnigmailTime: false */
test(withTestGpgHome(withEnigmail(function shouldEditKey() {
importKeys();
do_test_pending();
var window = JSUnit.createStubWindow();
editKey(
window,
false,
null,
"781617319CE311C4",
"trust", {
trustLevel: 5
},
function(inputData, keyEdit, ret) {
ret.writeTxt = "";
ret.errorMsg = "";
ret.quitNow = true;
ret.exitCode = 0;
},
null,
function(exitCode, errorMsg) {
Assert.equal(exitCode, 0);
Assert.equal("", errorMsg);
do_test_finished();
}
);
})));
test(withTestGpgHome(withEnigmail(function shouldSetTrust() {
importKeys();
do_test_pending();
var window = JSUnit.createStubWindow();
EnigmailKeyEditor.setKeyTrust(window,
"781617319CE311C4",
5,
function(exitCode, errorMsg) {
Assert.equal(exitCode, 0);
Assert.equal("", errorMsg);
do_test_finished();
}
);
})));
test(withTestGpgHome(withEnigmail(function shouldSignKey() {
importKeys();
do_test_pending();
var window = JSUnit.createStubWindow();
EnigmailKeyEditor.signKey(window,
"anonymous strike ",
"781617319CE311C4",
false,
5,
function(exitCode, errorMsg) {
Assert.equal(exitCode, -1);
Assert.equal("The key is already signed, you cannot sign it twice.", errorMsg);
do_test_finished();
}
);
})));
test(withTestGpgHome(function importKeyForEdit() {
const result = importKeys();
Assert.equal(result[0], 0);
Assert.equal(result[1], 0);
}));
test(withTestGpgHome(withEnigmail(function shouldGetSecretKeys() {
const secretKey = do_get_file("resources/dev-strike.sec", false);
const errorMsgObj = {};
const importedKeysObj = {};
const window = JSUnit.createStubWindow();
const importResult = EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj);
const createDate = EnigmailTime.getDateTime(1430756251, true, false);
const expectedKey = [{
userId: "anonymous strike ",
keyId: "781617319CE311C4",
created: createDate,
keyTrust: "u"
}];
do_test_pending();
EnigmailKeyEditor.setKeyTrust(window,
"781617319CE311C4",
5,
function() {
let result = EnigmailKeyRing.getAllSecretKeys();
Assert.equal(result.length, 1);
Assert.equal(result[0].userId, expectedKey[0].userId);
Assert.equal(result[0].keyId, expectedKey[0].keyId);
// FIXME: The expected date needs to be converted to the locale of the enviroment
Assert.equal(result[0].created, expectedKey[0].created);
Assert.equal(result[0].keyTrust, expectedKey[0].keyTrust);
do_test_finished();
}
);
})));
test(function shouldDoErrorHandling() {
let nextCmd = "";
/* global GpgEditorInterface: false */
let editor = new GpgEditorInterface(null, null, "");
editor._stdin = {
write: function processStdin(data) {
nextCmd = data;
}
};
editor.gotData("[GNUPG:] FAILURE sign 85\n");
Assert.ok(editor.errorMsg.length > 0);
Assert.equal("save\n", nextCmd);
});
function importKeys() {
var publicKey = do_get_file("resources/dev-strike.asc", false);
var secretKey = do_get_file("resources/dev-strike.sec", false);
var errorMsgObj = {};
var importedKeysObj = {};
var publicImportResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj);
var secretImportResult = EnigmailKeyRing.importKeyFromFile(secretKey, errorMsgObj, importedKeysObj);
return [publicImportResult, secretImportResult];
}
enigmail/package/tests/keyRing-test.js 0000664 0000000 0000000 00000076503 12667016244 0020346 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, */
/*global Components: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false, Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/* eslint no-useless-concat: 0*/
"use strict";
/* global EnigmailFiles: false */
do_load_module("file://" + do_get_cwd().path + "/testHelper.js"); /*global withEnigmail: false, withTestGpgHome: false, getKeyListEntryOfKey: false, gKeyListObj: true */
Components.utils.import("resource://enigmail/trust.jsm"); /*global EnigmailTrust: false */
component("enigmail/locale.jsm"); /*global EnigmailLocale: false */
/* global getUserIdList: false, createAndSortKeyList: false, Number: false */
testing("keyRing.jsm"); /*global EnigmailKeyRing: false */
test(withTestGpgHome(withEnigmail(function shouldImportFromFileAndGetKeyDetails() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
const errorMsgObj = {};
const importedKeysObj = {};
const importResult = EnigmailKeyRing.importKeyFromFile(publicKey, errorMsgObj, importedKeysObj);
Assert.assertContains(importedKeysObj.value, "65537E212DC19025AD38EDB2781617319CE311C4");
Assert.equal(importResult, 0, errorMsgObj);
const keyDetails = EnigmailKeyRing.getValidUids("0xD535623BB60E9E71").join("\n");
Assert.assertContains(keyDetails, "strike.devtest@gmail.com");
})));
test(withTestGpgHome(withEnigmail(function shouldGetKeyListEntryOfKey() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
const importResult = EnigmailKeyRing.importKeyFromFile(publicKey, {}, {});
const keyDetails = getKeyListEntryOfKey("0xD535623BB60E9E71");
// Output from GnuPG varies sligtly between different versions (new output data is added
// at the end of the list). Therefore each line is only compared to the length provided below
let expectedListing = [
"pub:-:4096:1:781617319CE311C4:1430756251:1556986651::-:::scESC:",
"fpr:::::::::65537E212DC19025AD38EDB2781617319CE311C4:",
"uid:-::::1430756251::DB54FB278F6AE719DE0DE881B17D4C762F5752A9::anonymous strike :",
"sub:-:4096:1:D535623BB60E9E71:1430756251:1556986651:::::e:"
];
let keyDetList = keyDetails.split(/\n\r?/);
for (let i = 0; i < expectedListing.length; i++) {
Assert.equal(keyDetList[i].substr(0, expectedListing[i].length), expectedListing[i]);
}
})));
test(withTestGpgHome(withEnigmail(function shouldGetKeyFunctions() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
const secretKey = do_get_file("resources/dev-strike.sec", false);
EnigmailKeyRing.importKeyFromFile(publicKey, {}, {});
EnigmailKeyRing.importKeyFromFile(secretKey, {}, {});
// search for key ID
let k = EnigmailKeyRing.getKeyById("0x9CE311C4");
Assert.equal(k.subKeys[0].keyId, "D535623BB60E9E71");
// search for subkey ID
k = EnigmailKeyRing.getKeyById("0xD535623BB60E9E71");
Assert.equal(k.fpr, "65537E212DC19025AD38EDB2781617319CE311C4");
Assert.equal(gKeyListObj.keySortList.length, 1);
EnigmailKeyRing.clearCache();
Assert.equal(gKeyListObj.keySortList.length, 0);
// search for fingerprint
k = EnigmailKeyRing.getKeyById("65537E212DC19025AD38EDB2781617319CE311C4");
Assert.equal(k.fpr, "65537E212DC19025AD38EDB2781617319CE311C4");
let s = k.signatures;
let fpr = "DB54FB278F6AE719DE0DE881B17D4C762F5752A9";
Assert.equal(fpr in s, true);
if (fpr in s) {
Assert.equal(s[fpr].sigList[0].signerKeyId, "781617319CE311C4");
}
let ka = EnigmailKeyRing.getKeysByUserId("devtest@gmail.com>$");
Assert.equal(ka.length, 1);
ka = EnigmailKeyRing.getAllSecretKeys();
Assert.equal(ka.length, 1);
ka = EnigmailKeyRing.getKeyListById("0x9CE311C4 D535623BB60E9E71"); // the space is on purpose(!)
Assert.equal(ka.length, 2);
})));
test(withTestGpgHome(withEnigmail(function shouldGetUserIdList() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
const secretKey = do_get_file("resources/dev-strike.sec", false);
EnigmailKeyRing.importKeyFromFile(publicKey, {}, {});
EnigmailKeyRing.importKeyFromFile(secretKey, {}, {});
let l = null;
l = getUserIdList(false, {}, {}, {});
Assert.notEqual(l, null);
l = getUserIdList(true, {}, {}, {});
Assert.notEqual(l, null);
})));
test(withTestGpgHome(withEnigmail(function shouldCleanupClearCache() {
const publicKey = do_get_file("resources/dev-strike.asc", false);
const secretKey = do_get_file("resources/dev-strike.sec", false);
EnigmailKeyRing.importKeyFromFile(publicKey, {}, {});
EnigmailKeyRing.importKeyFromFile(secretKey, {}, {});
EnigmailKeyRing.getAllKeys();
Assert.notEqual(gKeyListObj.keyList.length, 0);
EnigmailKeyRing.clearCache();
Assert.equal(gKeyListObj.keyList.length, 0);
})));
test(withTestGpgHome(withEnigmail(function shouldImportFromTextAndGetKeyDetails() {
EnigmailKeyRing.importKey(
JSUnit.createStubWindow(),
false,
"-----BEGIN PGP PUBLIC KEY BLOCK-----" +
"\n" + "Comment: GPGTools - https://gpgtools.org" +
"\n" +
"\n" + "mQINBFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" +
"\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" +
"\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" +
"\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" +
"\n" + "7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" +
"\n" + "ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" +
"\n" + "Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" +
"\n" + "WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" +
"\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" +
"\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" +
"\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" +
"\n" + "tCthbm9ueW1vdXMgc3RyaWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9" +
"\n" + "BBMBCgAnBQJVR5ubAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJ" +
"\n" + "EHgWFzGc4xHEt/4P/1zf/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrW" +
"\n" + "LDPqxSbotXTXi72Dwug6a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywM" +
"\n" + "dSfTAXa+popNccD5yPCJVBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy" +
"\n" + "+m2bXb1pTbg6OpqDIPCqlmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ" +
"\n" + "+E8Khyha2tfz1WFPmoy0rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6Gc" +
"\n" + "NcZnuvnZVBbjCpqXtDJ7UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB" +
"\n" + "8Z75FACi7d65Kp8Q6sNYVfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu" +
"\n" + "5TmYriLyAvfyoyeMhRjV0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+ca" +
"\n" + "P75XoVUyXmIpC/UZTrF4IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbK" +
"\n" + "qemK8D0rbaoxJq5RLkwU6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdg" +
"\n" + "oWv9xZU7asdsm5cpHpy7lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYuQIN" +
"\n" + "BFVHm5sBEADBX28bR5QxbrGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BY" +
"\n" + "tOqqP7Dur8k0A8fcLkZCSBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn" +
"\n" + "0dLqpVXJRqMt3ULS/Rwy18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6R" +
"\n" + "W5lhbG8WFJfCniFuRnim+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoB" +
"\n" + "ckT701sMs2pk48O5Y/vP6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mq" +
"\n" + "i4YIQsuF3NfS13+U2lhjlR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSF" +
"\n" + "IAiqVl6pdlSBU84bOLHoCUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7" +
"\n" + "TxrHAQ/O1fJnGZNBRgn8LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0" +
"\n" + "vtwBPLrRbbRhy6Z77BNfE9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZx" +
"\n" + "Q8xOUfstsAR1TM+JboXJDuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr" +
"\n" + "5HctpLgwvLVKCeDfU8nchzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQABiQIl" +
"\n" + "BBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc4xHEo+UP/02AIUR0349zGk9a" +
"\n" + "4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0ZoqTO8A0uFmEhCkw++reQcWOz1N" +
"\n" + "n+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq7oWYwlxsgVGCMDYE0TOMN8p/" +
"\n" + "Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/ECTHxqi9UKc68qHNVH9ZgtTXnm" +
"\n" + "gLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mlivy+UW6XN0WBE0oetKjT8/Cb1" +
"\n" + "dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfnRn9JG1aSXNYB/xZWzCBdykZp" +
"\n" + "+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUhXYoYc7232RkNSiiKndeJNryv" +
"\n" + "TowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkKG8ydHKFEFObtsTLaut4lHTtx" +
"\n" + "n+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23MzTs1hhwgIy4+UejU/Yeny6VkB" +
"\n" + "odA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3gJgH0QONrUaRY84/hil05T4E" +
"\n" + "nUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+wp1ovyC/fp5XjZaLHcyPAWAXK" +
"\n" + "LBn4tb400iHp7byO85tF/H0OOI1K" +
"\n" + "=CVNK" +
"\n" + "-----END PGP PUBLIC KEY BLOCK-----" +
"\n" + "-----BEGIN PGP PRIVATE KEY BLOCK-----" +
"\n" + "Comment: GPGTools - https://gpgtools.org" +
"\n" +
"\n" + "lQc+BFVHm5sBEACs94Ln+RMdeyBpWQtTZ/NZnwntsB10Wd3HTgo5sdA/OOFOJrWe" +
"\n" + "tJfAZ/HRxiSu1bwRaFVC8p061ftTbxf8bsdfsykYJQQqPODfcO0/oY2n/Z93ya8K" +
"\n" + "TzjXR3qBQ1P7f5x71yeuo7Zrj7B0G44Xjfy+1L0eka9paBqmm3U5cUew5wSr772L" +
"\n" + "cflipWfncWXD2rBqgRfR339lRHd3Vwo7V8jje8rlP9msOuTMWCvQuQvpEkfIioXA" +
"\n" + "7QipP2f0aPzsavNjFnAfC9rm2FDs6lX4syTMVUWy8IblRYo6MjhNaJFlBJkTCl0b" +
"\n" + "ugT9Ge0ZUifuAI0ihVGBpMSh4GF2B3ZPidwGSjgx1sojNHzU/3vBa9DuOmW95qrD" +
"\n" + "Notvz61xYueTpOYK6ZeT880QMDvxXG9S5/H1KJxuOF1jx1DibAn9sfP4gtiQFI3F" +
"\n" + "WMV9w3YrrqidoWSZBqyBO0Toqt5fNdRyH4ET6HlJAQmFQUbqqnZrc07s/aITZN36" +
"\n" + "d9eupCZQfW6e80UkXRPCU53vhh0GQey9reDyVCsV7xi6oXk1fqlpDYigQwEr4+yJ" +
"\n" + "+1qAjtSVHJhFE0inQWkUwc2nxef6n7v/M9HszhP/aABadVE49oDaRm54PtA1l0mC" +
"\n" + "T8IHcVR4ZDkaNwrHJtidEQcQ/+YVV3g7UJI9+g2nPvgMhk86AzBIlGpG+wARAQAB" +
"\n" + "/gMDAtfSz5hVoDvp4Vugj4T3VQk8mJ3uYDZmPbNL8SK18VTIVpd3xgrjTP+JEtB+" +
"\n" + "aw1WQK4Qik0BdKAu9Lv6wz4u/QNC8q4x3lBcoYleD6iXRL2Tpnh7RcEakIoxIeFH" +
"\n" + "joBTZOI+v0HUlyVvSkIaEhE60UvdX+If9p9sx5+uHdYRRfOkM3SZMxLxCUVHMp1e" +
"\n" + "ZBcmW+x9UiyA07wXyvAhlS2/iTijDtQFRqK8xs9w7zn0A12afksGtPEL7J5MRqQs" +
"\n" + "BuxUrWSKVQ3DkgWXd56qEtbKuklKXe9t93eMPvcFQ2ZVhgic436dygtpNgkGliVq" +
"\n" + "Di83wUjorTZFMeC0uhvQ2akfQxvj5TgYoI0rFABvn/6He1LBSWyiu6ZK1nC1PKUc" +
"\n" + "KLGQGfq+kbHwJg3q0wIJ5+e1v6hZ9HClhaRsR4ADnTDnp3mGqPxDWvQox1S2+ESx" +
"\n" + "8N6AcZ+q47D78IE4EzF4LyQ0g9FdDiNsPwqN4oS2/ZkXb/IbFoVoottU7915KqZO" +
"\n" + "6kiJvpMcZrs4TJ4zR++CGBEvJDfUE4RoQHQe/XLA1RJXIwXr3kWPvB2Tc16vdhkh" +
"\n" + "LZ9z/HOrPW6SI/UwVYFHpmJIYj3nHdjGcyWwz0KmQ3H5+AYe36afwJws6TFx/QLi" +
"\n" + "fqlOkcaBaiQwpcpuSX2y4rTgcjDEaVdPGmvs2m5vKv66a8yybIl2P0veVTutGtC8" +
"\n" + "DfQaggqZWQYHmXXvGUnBM+H9YSBJ2g3W3w51fKcN2FtX42OsVxXqZkqlGR2zBE00" +
"\n" + "ilVZmiv6ajV9mmO7W8EV9TPqjrYuEDf2M57LllQ7OB1p1v6CtqIyVSL/Jak6ckMT" +
"\n" + "5VdqMoup6ib5j4CR+C4i7Btu+gkXhW775l/jbFlUXKE5Vn+LAAIOpxiVZ2Z7azL6" +
"\n" + "sNwxtfmpaTAgIvHGSysgPeXeEN3fgTsfZ0PYaqlEHggsYDDU4XvXIOKcUmrr6zEI" +
"\n" + "KXeeS0+V3nxSIb9kQHYZyUFvNv98gCCj0wgNl+LoVJ9NvMkaOrCS0jkRaxJicQfa" +
"\n" + "bu4XL9XbUBESuHvG6jiK6DNlhT1j3qFFcRBO7COI3OQ0JD7Y1XPYYR48EP69Fwe0" +
"\n" + "82LZH5dq9kslpn8VsuygTum9jYFnE5UVLfmjbroFu9YlLE54T0CdZ4UQEWTrZiuz" +
"\n" + "TXYf13FaVEgfAim+hjdUUVSCptsX2crC7Vrsk/xMjT2ETU1w/yZb5BVoCvbK/eaf" +
"\n" + "sqQAPGElSp0YlI/mgpbc5rRQzcSXghenjOol/gJM0MbFJuyQ93sLW0Gi7zEeBxQi" +
"\n" + "aO/Ua4F4VhPilPf+T66fNMM0bG29X5j41eRrN0m1ly4M+jOOIyocLcUamgFsRDTe" +
"\n" + "XG9kHZUylAJqNMwQvDzbVSTbHKjhOTa3PyinrTwauYiQP6fIbd4JWkIW88cBynbR" +
"\n" + "IHHCYYGxZoDUDd366QyNHKTd5wxw1MicK54tUDcUVDq8NKC+yGuGi6WLYt4WdNEg" +
"\n" + "pYb/MzxGRzbhVEHNbfFEr5e706VcQlglpPcMTUctzRVF18wWHzPVbHdZiTBXdr0t" +
"\n" + "hJkRNaAvnmQMvP0bXk+QDGW24Z66Yz0X2YzFo4Rdp/MAm/1KwagIu0hIGbwk8egq" +
"\n" + "tq6Q5zyyiSp7dVvcNAPaEzEKZXRSrSjyNwQw0CHI940SRgK5JDkAMHZWK8vg8Ih4" +
"\n" + "DR7m69XmYXwvTScrQqkFa+8XIb5QqeH7W3Qe4aKiC6QOJav/ptYLZ+s1TTzeIOA8" +
"\n" + "5zxhWPj81YgifDtWPc4MG+Y0QuSzMdMue+/oJUt6lyQmtCthbm9ueW1vdXMgc3Ry" +
"\n" + "aWtlIDxzdHJpa2UuZGV2dGVzdEBnbWFpbC5jb20+iQI9BBMBCgAnBQJVR5ubAhsD" +
"\n" + "BQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEHgWFzGc4xHEt/4P/1zf" +
"\n" + "/2VsEwpJVlqwoLiJGQbViCRW34W8rTyL45GjRYAgDXrWLDPqxSbotXTXi72Dwug6" +
"\n" + "a/Pn1VI1R2ZaBsWXH8qUYtSV/0b/2HfqUyDhaiuASywMdSfTAXa+popNccD5yPCJ" +
"\n" + "VBD0xmPCAmrOciYePMMNBk4SCDV5DJcCyGhEAkSeGsXy+m2bXb1pTbg6OpqDIPCq" +
"\n" + "lmNQ8ZyAZNzWIyRWcqUY+B6xcZk+n50wG9A0TCOvVjsZ+E8Khyha2tfz1WFPmoy0" +
"\n" + "rMD4g2ggvII3v4elosBQW0pxYdkwBAwk6g3DMyUzR6GcNcZnuvnZVBbjCpqXtDJ7" +
"\n" + "UcjjcP8zvzDYlXAY74gM8Nu7/89Pw676rVUXtS7c/LUB8Z75FACi7d65Kp8Q6sNY" +
"\n" + "Vfi/mTggNwEAuAkjp9acEGvk67q2we+lEoeAwCyfBiBu5TmYriLyAvfyoyeMhRjV" +
"\n" + "0FdBaRh+4CkVgSG4/eTLFcnHVB2ZzhX7Uw0qoxM8R+caP75XoVUyXmIpC/UZTrF4" +
"\n" + "IGDUc4jbIqSGU2/Kln4Z8vQpuCw0vavbT93jSCyqaIbKqemK8D0rbaoxJq5RLkwU" +
"\n" + "6gJ3dOpQdDRuqUAkfbEZd8yVRSmfugRhCTbdAA5/1kdgoWv9xZU7asdsm5cpHpy7" +
"\n" + "lM7ponHsA+B+ykApDqDzPIHDZBoeqKl6qNe2BYOYnQc+BFVHm5sBEADBX28bR5Qx" +
"\n" + "brGNVPT3jM60IT+m/GTLH6lm4OcZomAej/XrBOcX/0BYtOqqP7Dur8k0A8fcLkZC" +
"\n" + "SBse1m6fvfACo8Vbeunv4IrST5FgXh7bYPZseIy5U7Xn0dLqpVXJRqMt3ULS/Rwy" +
"\n" + "18Xx8j9sXJJDAKIqZ4MHwgBknPeeBnD4aG6bJAuBEI6RW5lhbG8WFJfCniFuRnim" +
"\n" + "+VD6ucf93x3NkL0TWY0l0PbUdW92sLfiKp1nmz+1dRoBckT701sMs2pk48O5Y/vP" +
"\n" + "6OEDzFzjGdA1r9YkblXjN9VxhSN00Wlmcq1DqEU36+Mqi4YIQsuF3NfS13+U2lhj" +
"\n" + "lR5HpRxdDMfHjFYlk5hlOtuvopseYTlMykFl8D7y0qSFIAiqVl6pdlSBU84bOLHo" +
"\n" + "CUGens+Ul7m0UShwZdVmMifFw/fJwISZI8D5vGkM3rE7TxrHAQ/O1fJnGZNBRgn8" +
"\n" + "LjnZjRGA/u1fweptFY0NyzO5lOzTWI6HBJl1hMave2l0vtwBPLrRbbRhy6Z77BNf" +
"\n" + "E9a2w7Y4aFeshjEpWxE8bQIyMrBGaRaiQ2lpXmA6XYZxQ8xOUfstsAR1TM+JboXJ" +
"\n" + "DuTw+YhaVa2W7Z/RzdtNnahWCCjptFq60DuggLwAGnjr5HctpLgwvLVKCeDfU8nc" +
"\n" + "hzCkL7Hikh2LC7ySUR/VzORag/TkjxYRRwARAQAB/gMDAtfSz5hVoDvp4ZpoCdrR" +
"\n" + "S4An9JABiMWCTG4IUYuShVQKJJR3KtZ0C5D4gH4BUlEGDsUtY3/6deakvzedbVxv" +
"\n" + "mb59QoU8GuHZ/iWAlsY+37YIBu9kbywIFDDGJeD9th9cXPpuQ31kEvwE37gsNn5p" +
"\n" + "IB38oB3mgWoLi2nH4AAVNZXPNBTJ7rS1pi69v4BepUTbglb805ypmWJllzhyRUvm" +
"\n" + "DAU/8cu0cPWaaBU4s8Mi7SLv2s+i9EPYNzDkBEy7RYvZApP7G8x447iYPRvmaFnB" +
"\n" + "Fd3Ctpd3xkZhZatDV6MJCEfssIdy5yARV4zwCcZ5JDGXGlxoiPH6A3b11SwPOEMv" +
"\n" + "QJ0PRZ334XLK93hwzxjYKBJ8hBrR2oPvRUOAVs2/J8JSASYrufyqkXnYJ1EBnP3H" +
"\n" + "5TwbjRQ9Qmg1ScFCzTfYgu5emiIF5LFAfTasZGSJvjrXFVeocCswHUvHztzJmpbt" +
"\n" + "BAov3Lw6lBkxdvhZomyx74CGOnyz/eFD/khvIV/oms5lR8NNrkpkRGZ/xCN8Kmau" +
"\n" + "KhRBebGVEITzOWJQHz0QMhuTloVvtDbDDgqW8gH8eVQJkQCDw8Wd79uj0kw1Xaln" +
"\n" + "nseFPLCRNRN0js7cCGW95fVtawRNBCNYambNCLthkBfzT0+1/ULRC2JrP1rutr6D" +
"\n" + "sye0S44kNyXKhM72Hamu4XygYlzRsYQflv2PgypjVmkdcZ2rwomMVdqQll3Q7jde" +
"\n" + "kWKDpKdx7lR2pnDoXmn43VR1X4uD1PHab56tYE0JUrKDgqZJqzCwJXc3FcPV7LgD" +
"\n" + "8pISoMZJ5+84UiRBvNN7N24kpLd9k97Iz29qY6u86Uy/f7/X77qur58r6K04vTfH" +
"\n" + "8nA/ybc/9Ube6oyQ44A2NEwBrP3NUA6lHNPeaYBO2RGxTJJU2Edxuy3bJMpEkBhU" +
"\n" + "CeWWIZnuxojF+pGjiPLArVZg6Mahc0GlYoiA66cxTuoGHM/wO5Xl0f33L0jny3Kv" +
"\n" + "I9OWvUJbKs+J8G6q0zorl5nNmPpTwGYLJkUKhLtMhjS+jf5XA7b5jN1079/oToXu" +
"\n" + "Xsfl6J7vnwJt7gglLRpK8iw3xlF4X4AWodBLj36HEyOgTimJXLt2fdpIrkiutUFF" +
"\n" + "qdWdZeK+sII8ZAyrfgvwxvmairFK3ylbPwA340jsRQeA8boOOSiDV0cPOszQi1Rt" +
"\n" + "Ygnae9or6faA3lqe+fRQi5JsmnJ1jLMe0mxw1mMOR4YLCMjgBc0CTMkY5kmCykA7" +
"\n" + "NCQBec2Fueu9cxsu7LJO4+OAUF+i+G/BWPzvWqyJrLk52tME2TxyVL5PRZvqAcrK" +
"\n" + "CV+d9IKxH4Ng40qPXL1gM27wWrrFa6RGq12oGvTqkVcomImzqK1ASSPWU3bSYiOy" +
"\n" + "2JOQvjLxjQw6emNYG09SlKrzNmXlbrZ4BfolL4eI8H2+3+UG4l/cXxPnLEeQzkvu" +
"\n" + "XuW5yajWoNBocEICcopmv8QgpwgiTUstmOTMFXD1EbVasonaH5R+wxBMB4Y1K+ot" +
"\n" + "eRawIyFA75FO8HCPoTBe5+Qb6G8+5i7nsgDtHG337G8JFz3hE3U++90zbYxxtjYx" +
"\n" + "Y2PYHfOwsDE8IDu1ZqzuB7lgrNADzOzelhSrcaW/jNHPGlxcsPTXl7S2QazgIPqk" +
"\n" + "kZ9g4ceXSsZOV9Yl4Bu2ODeUiVeYGGEXwJ7WAKNvaR3bMbhl+iwIQFy3A12/fz0w" +
"\n" + "B16C9qp7P9+5FEFWjlqi/28dSfECiDD4X4iyEe+sWTS86Cv0VsL300dIUQPIs65d" +
"\n" + "ddkrIkcpM4jyabKTZcltiQIlBBgBCgAPBQJVR5ubAhsMBQkHhh+AAAoJEHgWFzGc" +
"\n" + "4xHEo+UP/02AIUR0349zGk9a4D5Jv007y+d0tWKPL0V2btaq9xQzoM51CtuT0Zoq" +
"\n" + "TO8A0uFmEhCkw++reQcWOz1Nn+MarPjjJwMjhTPS/H1qiwTXmuwx92xLL0pajloq" +
"\n" + "7oWYwlxsgVGCMDYE0TOMN8p/Vc+eoJaWZh8yO1xJGDP98RHbZQWwYN6qLzE4y/EC" +
"\n" + "THxqi9UKc68qHNVH9ZgtTXnmgLAkEvXzRV1UOEEttJ6rrgPrTubjsIG+ckZK5mli" +
"\n" + "vy+UW6XN0WBE0oetKjT8/Cb1dQYiX/8MJkGcIUFRurU7gtGW3ncSTdr6WRXaQtfn" +
"\n" + "Rn9JG1aSXNYB/xZWzCBdykZp+tLuu4A3LVeOzn064hqf3rz2N7b8dWMk5WL5LIUh" +
"\n" + "XYoYc7232RkNSiiKndeJNryvTowFt9anuMj4pFgGveClQc9+QGyMVdTe6G5kOJkK" +
"\n" + "G8ydHKFEFObtsTLaut4lHTtxn+06QO/LKtQTXqNEyOyfYhbyX7xDbCbu4/MA23Mz" +
"\n" + "Ts1hhwgIy4+UejU/Yeny6VkBodA3bFyEYKWPoMDDgfdlZbzjv3qAN4Qq+ollo8K3" +
"\n" + "gJgH0QONrUaRY84/hil05T4EnUZiXdzPWvhMv5lEK+pTMlO8FbOG31+aB8rxCg+w" +
"\n" + "p1ovyC/fp5XjZaLHcyPAWAXKLBn4tb400iHp7byO85tF/H0OOI1K" +
"\n" + "=h0dN" +
"\n" + "-----END PGP PRIVATE KEY BLOCK-----",
null, {});
const keyDetails = EnigmailKeyRing.getValidUids("0xD535623BB60E9E71").join("\n");
Assert.assertContains(keyDetails, "strike.devtest@gmail.com");
EnigmailKeyRing.getAllKeys();
Assert.notEqual(gKeyListObj.keyList.length, 0);
})));
test(function shouldCreateKeyListObject() {
// from: "P:\Program Files (x86)\GNU\GnuPG\pub\gpg2.exe" --charset utf-8 --display-charset utf-8 --batch --no-tty --status-fd 2 --with-fingerprint --fixed-list-mode --with-colons --list-keys
let keyInfo = [
// user with trust level "o" (unknown)
"tru::1:1443339321:1451577200:3:1:5",
"pub:o:4096:1:DEF9FC808A3FF001:1388513885:1546188604::u:::scaESCA:",
"fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:",
"uid:o::::1389038412::44F73158EF0F47E4595B1FD8EC740519DE24B994::A User ID with CAPITAL letters :",
"uid:o::::1389038405::3FC8999BDFF08EF4210026D3F1C064C072517376::A second User ID with CAPITAL letters :",
"sub:o:4096:1:E2DEDFFB80C14584:1388513885:1546188604:::::e:",
];
// from: "P:\Program Files (x86)\GNU\GnuPG\pub\gpg2.exe" --charset utf-8 --display-charset utf-8 --batch --no-tty --status-fd 2 --with-fingerprint --fixed-list-mode --with-colons --list-secret-keys
let secKeyInfo = [
"sec::4096:1:DEF9FC808A3FF001:1388513885:1546188604:::::::::",
"fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:",
"uid:::::::44F73158EF0F47E4595B1FD8EC740519DE24B994::A User ID with CAPITAL letters :",
"uid:::::::3FC8999BDFF08EF4210026D3F1C064C072517376::A second User ID with CAPITAL letters :",
"ssb::4096:1:E2DEDFFB80C14584:1388513885::::::::::",
];
createAndSortKeyList(keyInfo, secKeyInfo,
"validity", // sorted acc. to key validity
-1); // descending
let keyListObj = gKeyListObj;
Assert.notEqual(keyListObj, null);
Assert.notEqual(keyListObj.keySortList, null);
Assert.notEqual(keyListObj.keySortList.length, null);
Assert.equal(keyListObj.keySortList.length, 1);
Assert.equal(keyListObj.keySortList[0].userId, "a user id with capital letters ");
Assert.equal(keyListObj.keySortList[0].keyId, "DEF9FC808A3FF001");
Assert.notEqual(keyListObj.keyList, null);
Assert.equal(keyListObj.keyList[keyListObj.keySortList[0].keyNum].userId, "A User ID with CAPITAL letters ");
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
let minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
let details = {};
let key = EnigmailKeyRing.getValidKeyForRecipient("user1@enigmail-test.de", minTrustLevelIndex, details);
Assert.notEqual(key, null);
Assert.equal(key, "DEF9FC808A3FF001");
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("user1@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, null);
Assert.notEqual(details.msg, null);
});
const KeyRingHelper = {
loadTestKeyList: function() {
const pkFile = do_get_file("resources/pub-keys.asc", false);
let publicKeys = EnigmailFiles.readFile(pkFile);
let rows = publicKeys.split("\n");
let testKeyList = [];
for (let i = 0; i < rows.length; ++i) {
let row = rows[i];
if (row !== "" && row[0] != "#") {
testKeyList.push(row);
}
}
createAndSortKeyList(testKeyList, [],
"validity", // sorted acc. to key validity
-1); // descending
let keyListObj = gKeyListObj;
Assert.notEqual(keyListObj, null);
Assert.notEqual(keyListObj.keySortList, null);
Assert.notEqual(keyListObj.keySortList.length, null);
}
};
test(function testGetValidKeyForOneRecipient() {
KeyRingHelper.loadTestKeyList();
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
let minTrustLevelIndex = null;
let details = null;
let key = null;
// unknown key:
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("unknown@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, null);
Assert.equal(details.msg, null);
//Assert.equal(details.msg, "undefined");
// ordinary full trusted key:
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("full@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0003AAAA00010001");
Assert.equal(details.msg, null);
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("full@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0003AAAA00010001");
Assert.equal(details.msg, null);
// key not valid for encryption:
// - no details because it would take time to check details of such a key
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("no-encrypt@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, null);
Assert.equal(details.msg, null);
// disabled key:
// - no details because it would take time to check details of such a key
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {
all: ""
};
key = EnigmailKeyRing.getValidKeyForRecipient("disabled@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, null);
Assert.equal(details.msg, null);
// multiple non-trusted and one full trusted keys
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("multiple-onefull@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0030AAAA00020001");
Assert.equal(details.msg, null);
// multiple non-trusted and two full trusted keys (first taken)
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("multiple-twofull@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0034AAAA00020001");
Assert.equal(details.msg, null);
// multiple non-trusted and one marginal trusted keys
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("f");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("multiple-onemarginal@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, null);
Assert.equal(details.msg, "ProblemNoKey");
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("multiple-onemarginal@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0031AAAA00020001");
Assert.equal(details.msg, null);
// multiple non-trusted keys with same trust level
// (faked keys case if no special trust given)
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("multiple-nofull@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, null);
Assert.equal(details.msg, "ProblemMultipleKeys");
// some key with subkey that encrypts:
// we return first main key
minTrustLevelIndex = TRUSTLEVELS_SORTED.indexOf("?");
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("withsubkey-uid1@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0040EEEE00010001");
Assert.equal(details.msg, null);
details = {};
key = EnigmailKeyRing.getValidKeyForRecipient("withsubkey-uid2@enigmail-test.de", minTrustLevelIndex, details);
Assert.equal(key, "0040EEEE00010001");
Assert.equal(details.msg, null);
});
test(function testGetValidKeysForMultipleRecipients() {
KeyRingHelper.loadTestKeyList();
const TRUSTLEVELS_SORTED = EnigmailTrust.trustLevelsSorted();
let minTrustLevel = null;
let details = null;
let addrs = null;
let keys = null;
let keyMissing = null;
// some matching keys:
minTrustLevel = "?";
addrs = ["full@enigmail-test.de",
"multiple-onefull@enigmail-test.de",
"multiple-twofull@enigmail-test.de",
"multiple-onemarginal@enigmail-test.de",
"withsubkey-uid1@enigmail-test.de",
"withsubkey-uid2@enigmail-test.de",
];
details = {};
keys = [];
keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys);
Assert.equal(keyMissing, false);
Assert.notEqual(keys, null);
Assert.equal(keys.length, 6);
Assert.equal(keys[0], "0x0003AAAA00010001");
Assert.equal(keys[1], "0x0030AAAA00020001");
Assert.equal(keys[2], "0x0034AAAA00020001");
Assert.equal(keys[3], "0x0031AAAA00020001");
Assert.equal(keys[4], "0x0040EEEE00010001");
Assert.equal(keys[5], "0x0040EEEE00010001");
Assert.equal(details.errArray.length, 0);
// some non-matching keys:
minTrustLevel = "?";
addrs = ["no-encrypt@enigmail-test.de",
"disabled@enigmail-test.de",
"multiple-nofull@enigmail-test.de",
];
details = {};
keys = [];
keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys);
Assert.equal(keyMissing, true);
Assert.equal(keys.length, 0);
Assert.notEqual(details, null);
Assert.equal(details.errArray.length, 3);
Assert.equal(details.errArray[0].msg, "ProblemNoKey");
Assert.equal(details.errArray[1].msg, "ProblemNoKey");
Assert.equal(details.errArray[2].msg, "ProblemMultipleKeys");
// just two keys:
minTrustLevel = "?";
addrs = ["0x0040EEEE00010001",
"0x0003AAAA00010001",
"0003AAAA00010001",
];
details = {};
keys = [];
keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys);
Assert.equal(keyMissing, false);
Assert.notEqual(keys, null);
Assert.equal(keys.length, 3);
Assert.equal(keys[0], "0x0040EEEE00010001");
Assert.equal(keys[1], "0x0003AAAA00010001");
Assert.equal(keys[2], "0x0003AAAA00010001");
Assert.equal(details.errArray.length, 0);
// disabled key:
// - this BEHAVIOR is PROBABLY WRONG:
minTrustLevel = "?";
addrs = ["0005AAAA00010001", ];
details = {};
keys = [];
keyMissing = EnigmailKeyRing.getValidKeysForAllRecipients(addrs, minTrustLevel, details, keys);
Assert.equal(keyMissing, false);
Assert.notEqual(keys, null);
Assert.equal(keys.length, 1);
Assert.equal(keys[0], "0x0005AAAA00010001");
Assert.equal(details.errArray.length, 0);
});
test(function shouldGetKeyValidityErrors() {
// from: gpg2 --with-fingerprint --fixed-list-mode --with-colons --list-keys
let keyInfo = [
// Key 1: Revoked key
"tru::1:1443339321:1451577200:3:1:5",
"pub:r:4096:1:DEF9FC808A3FF001:1388513885:1546188604::u:::sca:",
"fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:",
"uid:r::::1389038412::44F73158EF0F47E4595B1FD8EC740519DE24B994::User ID 1 :",
"sub:r:4096:1:E2DEDFFB80C14584:1388513885:1546188603:::::e:",
// Key 2: valid public key, usable for signing, with expired subkeys for encryption
"pub:u:1024:17:F05B29A5CEFE4B70:1136219252:::u:::scaSCA:::::::",
"fpr:::::::::6D67E7817D588BEA263F41B9F05B29A5CEFE4B70:",
"uid:u::::1446568426::560DE55D9C611718F777EDD11A84F126CCD71965::User ID 2 :::::::::",
"sub:e:2048:1:B2417304FFC57041:1136219469:1199291469:::::e::::::",
"sub:e:2048:1:770EA47A1DB0E8B0:1136221524:1293901524:::::s::::::",
"sub:e:2048:1:805B29A5CEFB2B70:1199298291:1262370291:::::e::::::",
"sub:e:2048:1:0F6B6901667E633C:1262537932:1325437132:::::e::::::",
// Key 3: valid public key, usable subkey for encryption, no secret key
"pub:u:1024:17:86345DFA372ADB32:1136219252:::u:::scESC:::::::",
"fpr:::::::::9876E7817D588BEA263F41B986345DFA372ADB32:",
"uid:u::::1446568426::560DE55D9C611718F777EDD11A84F126CCD71965::User ID 3 :::::::::",
"sub:u:2048:1:B2417304FFC57041:1136219469::::::s::::::",
"sub:u:2048:1:770EA47A1DB0E8B0:1136221524::::::e::::::",
];
// from: gpg2 --with-fingerprint --fixed-list-mode --with-colons --list-secret-keys
let secKeyInfo = [
// Key 1
"sec::4096:1:DEF9FC808A3FF001:1388513885:1546188604:::::::::",
"fpr:::::::::EA25EF48BF2001E41FAB0C1CDEF9FC808A3FF001:",
"uid:::::::44F73158EF0F47E4595B1FD8EC740519DE24B994::User ID 1 :",
"ssb::4096:1:E2DEDFFB80C14584:1388513885::::::::::",
// Key 2
"sec:u:1024:17:F05B29A5CEFE4B70:1136219252:1507997328::u:::scaSCA:::::::",
"fpr:::::::::6D67E7817D588BEA263F41B9F05B29A5CEFE4B70:",
"uid:u::::1446568426::560DE55D9C611718F777EDD11A84F126CCD71965::User ID 2 :::::::::",
"ssb:e:2048:1:B2417304FFC57041:1136219469:1199291469:::::e::::::",
"ssb:e:2048:1:770EA47A1DB0E8B0:1136221524:1293901524:::::s::::::",
"ssb:e:2048:1:805B29A5CEFB2B70:1199298291:1262370291:::::e::::::",
"ssb:e:2048:1:0F6B6901667E633C:1262537932:1325437132:::::e::::::",
// NO Key 3
];
createAndSortKeyList(keyInfo, secKeyInfo,
"validity", // sorted acc. to key validity
-1); // descending
let key = EnigmailKeyRing.getKeyById("DEF9FC808A3FF001");
let result = key.getSigningValidity();
Assert.equal(result.reason, EnigmailLocale.getString("keyRing.pubKeyRevoked", [key.userId, "0x" + key.keyId]));
key = EnigmailKeyRing.getKeyById("F05B29A5CEFE4B70");
result = key.getEncryptionValidity();
Assert.equal(result.keyValid, false);
Assert.equal(result.reason, EnigmailLocale.getString("keyRing.encSubKeysExpired", [key.userId, "0x" + key.keyId]));
result = key.getSigningValidity();
Assert.equal(result.keyValid, true);
key = EnigmailKeyRing.getKeyById("86345DFA372ADB32");
result = key.getSigningValidity();
Assert.equal(result.keyValid, false);
Assert.equal(result.reason, EnigmailLocale.getString("keyRing.noSecretKey", [key.userId, "0x" + key.keyId]));
result = key.getEncryptionValidity();
Assert.equal(result.keyValid, true);
});
test(function shouldGetKeyExpiry() {
// uses the key listing from shouldGetKeyValidityErrors
let key = EnigmailKeyRing.getKeyById("DEF9FC808A3FF001");
Assert.equal(key.getKeyExpiry(), 1546188603);
key = EnigmailKeyRing.getKeyById("F05B29A5CEFE4B70");
Assert.equal(key.getKeyExpiry(), 1325437132);
key = EnigmailKeyRing.getKeyById("86345DFA372ADB32");
Assert.equal(key.getKeyExpiry(), Number.MAX_VALUE);
});
test(function shouldClone() {
// uses the key listing from shouldGetKeyValidityErrors
let key = EnigmailKeyRing.getKeyById("DEF9FC808A3FF001");
let cp = key.clone();
Assert.equal(cp.fprFormatted, "EA25 EF48 BF20 01E4 1FAB 0C1C DEF9 FC80 8A3F F001");
Assert.equal(cp.getEncryptionValidity().keyValid, false);
});
enigmail/package/tests/locale-test.js 0000664 0000000 0000000 00000001340 12667016244 0020160 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("locale.jsm"); /*global EnigmailLocale: false */
test(function shouldReadProperty() {
const importBtnValue = EnigmailLocale.getString("enigHeader");
Assert.equal("Enigmail:", importBtnValue);
});
enigmail/package/tests/log-test.js 0000664 0000000 0000000 00000002240 12667016244 0017502 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false, JSUnit: false, do_test_pending: false, do_test_finished: false, component: false, Cc: false, Ci: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("log.jsm"); /*global EnigmailLog: false */
component("enigmail/files.jsm"); /*global EnigmailFiles: false */
test(function shouldCreateLogFile() {
EnigmailLog.setLogDirectory(do_get_cwd().path);
EnigmailLog.setLogLevel(5);
EnigmailLog.createLogFiles();
const filePath = EnigmailLog.directory + "enigdbug.txt";
const localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);
EnigmailFiles.initPath(localFile, filePath);
try {
Assert.equal(localFile.exists(), true);
}
finally {
if (localFile.exists()) {
EnigmailLog.fileStream.close();
localFile.remove(false);
}
}
});
enigmail/package/tests/mailHelper.js 0000664 0000000 0000000 00000005316 12667016244 0020035 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_cwd: false, component: false, do_get_file: false, Components: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
component("/modules/mailServices.js"); /*global MailServices: false */
component("enigmail/files.jsm"); /*global EnigmailFiles: false */
component("/modules/iteratorUtils.jsm");
const MailHelper = {
init: function() {
if (!MailHelper.initialized) {
try {
MailServices.accounts.createLocalMailAccount();
}
catch (ex) {
// This will fail if someone already called this.
}
let localAccount = MailServices.accounts.FindAccountForServer(MailServices.accounts.localFoldersServer);
let identity = MailServices.accounts.createIdentity();
identity.email = "tester@enigmail.org";
localAccount.addIdentity(identity);
localAccount.defaultIdentity = identity;
MailHelper.incomingServer = MailServices.accounts.localFoldersServer;
MailHelper.rootFolder = MailHelper.incomingServer.rootMsgFolder;
if (!MailHelper.rootFolder.containsChildNamed("EngimailTestInbox")) {
MailHelper.rootFolder.createSubfolder("EngimailTestInbox", null);
MailHelper.inboxFolder = MailHelper.rootFolder.getChildNamed("EngimailTestInbox");
MailHelper.inboxFolder.setFlag(Components.interfaces.nsMsgFolderFlags.Mail);
MailHelper.inboxFolder.setFlag(Components.interfaces.nsMsgFolderFlags.Inbox);
}
MailHelper.initialized = true;
}
},
getRootFolder: function() {
MailHelper.init();
return MailHelper.rootFolder;
},
createMailFolder: function(name) {
MailHelper.init();
let localRoot = MailHelper.rootFolder.QueryInterface(Components.interfaces.nsIMsgLocalMailFolder);
let mailFolder = localRoot.createLocalSubfolder(name);
mailFolder.setFlag(Components.interfaces.nsMsgFolderFlags.Mail);
return mailFolder;
},
cleanMailFolder: function(mailFolder) {
MailHelper.init();
let it = mailFolder.subFolders;
while (it.hasMoreElements()) {
mailFolder.propagateDelete(it.getNext(), true, null);
}
},
loadEmailToMailFolder: function(emailFilePath, mailFolder) {
let emailFile = do_get_file(emailFilePath, false);
MailServices.copy.CopyFileMessage(emailFile, mailFolder, null, false, 0, null, null, null);
},
fetchFirstMessageHeaderIn: function(mailFolder) {
let msgDb = mailFolder.msgDatabase;
let enumerator = msgDb.EnumerateMessages();
return enumerator.getNext().QueryInterface(Components.interfaces.nsIMsgDBHdr);
}
};
enigmail/package/tests/main.js 0000664 0000000 0000000 00000001666 12667016244 0016703 0 ustar 00root root 0000000 0000000 /*global do_subtest: false */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_subtest("armor-test.js");
do_subtest("data-test.js");
do_subtest("system-test.js");
do_subtest("decryption-test.js");
do_subtest("decryptPermanently-test.js");
do_subtest("errorHandling-test.js");
do_subtest("encryption-test.js");
do_subtest("gpgAgent-test.js");
do_subtest("enigmail-test.js");
do_subtest("files-test.js");
do_subtest("streams-test.js");
do_subtest("keyRing-test.js");
do_subtest("keyEditor-test.js");
do_subtest("locale-test.js");
do_subtest("log-test.js");
do_subtest("mime-test.js");
do_subtest("prefs-test.js");
do_subtest("rules-test.js");
do_subtest("funcs-test.js");
do_subtest("mimeDecrypt-test.js");
do_subtest("expiry-test.js");
do_subtest("installGnuPG-test.js");
enigmail/package/tests/mime-test.js 0000664 0000000 0000000 00000007414 12667016244 0017660 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("mime.jsm"); /*global EnigmailMime: false */
test(function getBoundaryTest() {
var got = EnigmailMime.getBoundary("content-type: application/pgp-encrypted;\n boundary='abc'; procol='any'\n");
Assert.equal(got, "abc", "get boundary 1");
got = EnigmailMime.getBoundary("content-type: application/pgp-encrypted; boundary='abc'; protocol='any'");
Assert.equal(got, "abc", "get boundary 2");
got = EnigmailMime.getBoundary('content-type: application/pgp-encrypted; boundary="abc"; protocol="any"');
Assert.equal(got, "abc", "get boundary 2");
});
test(function extractProtectedHeadersTest() {
var inputData = 'Content-Type: multipart/mixed; boundary="OuterBoundary"\n' +
'References: \n' +
'Subject: Outer hidden subject\n' +
'\n' +
'--OuterBoundary\n' +
'Content-Transfer-Encoding: base64\n' +
'Content-Type: text/rfc822-headers; charset="us-ascii";\n' +
' protected-headers="v1,<12345678@enigmail-test.net>"\n' +
'Content-Disposition: inline\n' +
'\n' +
'U3ViamVjdDogVGhlIGhpZGRlbiBzdWJqZWN0CkRhdGU6IFN1biwgMjEgSnVuIDIwMTUgMT\n' +
'U6MTk6MzIgKzAyMDAKRnJvbTogU3RhcndvcmtzIDxzdHJpa2VmcmVlZG9tQGVuaWdtYWls\n' +
'LXRlc3QubmV0PgpUbzogUGF0cmljayA8cGF0cmlja0BlbmlnbWFpbC10ZXN0Lm5ldD4sIE\n' +
'JpbmdvIDxiaW5nb0BlbmlnbWFpbC10ZXN0Lm5ldD4KQ2M6IFBhdHJpY2sgPHBhdHJpY2sy\n' +
'QGVuaWdtYWlsLXRlc3QubmV0PiwgQmluZ28gPDJiaW5nb0BlbmlnbWFpbC10ZXN0Lm5ldD\n' +
'4KUmVwbHktVG86IFN0YXJ3b3JrcyBhbHRlcm5hdGl2ZSA8YWx0ZXJuYXRpdmVAZW5pZ21h\n' +
'aWwtdGVzdC5uZXQ+Cg==\n' +
'\n' +
'--OuterBoundary\n' +
'Content-Type: multipart/mixed; boundary="innerContent"\n' +
'\n' +
'--innerContent\n' +
'Content-Type: text/plain; charset="us-ascii"\n' +
'\n' +
'Hello World!\n' +
'\n' +
'--innerContent--\n' +
'--OuterBoundary--\n\n';
var r = EnigmailMime.extractProtectedHeaders(inputData);
var expected = 'Content-Type: multipart/mixed; boundary="OuterBoundary"\n' +
'References: \n' +
'Subject: Outer hidden subject\n' +
'\n' +
'--OuterBoundary\n' +
'Content-Type: multipart/mixed; boundary="innerContent"\n' +
'\n' +
'--innerContent\n' +
'Content-Type: text/plain; charset="us-ascii"\n' +
'\n' +
'Hello World!\n' +
'\n' +
'--innerContent--\n' +
'--OuterBoundary--\n\n';
var got = r.startPos;
Assert.equal(got, 113, "startPos of removed data");
got = r.endPos;
Assert.equal(got, 749, "endPos of removed data");
got = r.newHeaders.subject;
expected = "The hidden subject";
Assert.equal(got, expected, "subject");
got = r.newHeaders.from;
expected = "Starworks ";
Assert.equal(got, expected, "from");
got = r.newHeaders.to;
expected = "Patrick , Bingo ";
Assert.equal(got, expected, "to");
got = r.newHeaders.cc;
expected = "Patrick , Bingo <2bingo@enigmail-test.net>";
Assert.equal(got, expected, "cc");
got = r.newHeaders["reply-to"];
expected = "Starworks alternative ";
Assert.equal(got, expected, "reply-to");
got = r.newHeaders.date;
expected = "Sun, 21 Jun 2015 15:19:32 +0200";
Assert.equal(got, expected, "date");
got = r.newHeaders.references;
expected = "";
Assert.equal(got, expected, "references");
});
enigmail/package/tests/mimeDecrypt-test.js 0000664 0000000 0000000 00000002154 12667016244 0021207 0 ustar 00root root 0000000 0000000 /*global do_load_module: false, do_get_file: false, do_get_cwd: false, testing: false, test: false, Assert: false, resetting: false */
/*jshint -W097 */
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
"use strict";
var EnigmailMime = {
extractProtectedHeaders: function(str) {
return {
startPos: 10,
endPos: 22,
newHeaders: {
subject: "The hidden subject"
}
};
}
};
do_load_module("file://" + do_get_cwd().path + "/testHelper.js");
testing("mimeDecrypt.jsm"); /* global EnigmailMimeDecrypt: false */
test(function extractEncryptedHeadersTest() {
var dec = new EnigmailMimeDecrypt();
dec.decryptedData = 'This is a Hello World example';
dec.extractEncryptedHeaders();
var expected = 'This is a example';
var got = dec.decryptedData;
Assert.equal(got, expected, "removed rfc822 header");
got = dec.decryptedHeaders.subject;
expected = "The hidden subject";
Assert.equal(got, expected, "subject");
});
enigmail/package/tests/pinentry-auto 0000775 0000000 0000000 00000002476 12667016244 0020165 0 ustar 00root root 0000000 0000000 #!/bin/bash
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Emulates pinentry programs, with a static PIN
# This can be used to bypass PIN requirement while using GnuPG/scdaemon
# and automation. Another solution is to use PSCS/OpenSC.
# Obviously, this is a hack, even if it's pretty damn clean.
# This means, do not use this if you do not know what you are doing.
# If you don't know what to put here,
# you probably shouldn't be using this.
# 123456 is the default for OpenPGP smartcards
USER_PIN=STRIKEfreedom@Qu1to
function tolower()
{
echo $1 | tr '[A-Z]' '[a-z]'
}
function reply_ok()
{
echo "OK $*"
}
function reply_d()
{
echo "D $*"
echo "OK"
}
function error()
{
echo "ERR 83886355 unknown command"
}
function main()
{
echo "OK Your orders please"
while read reply; do
reply=$(tolower "$reply")
case $reply in
"getpin")
reply_d $USER_PIN
;;
"bye")
reply_ok "closing connection"
break
;;
"getinfo pid")
reply_d $BASHPID
;;
*)
# This generally includes OPTION, SETDESC, SETPROMPT
# i.e. things we don't care for if we're not displaying
# a prompt
reply_ok
;;
esac
done
}
main
exit 0
enigmail/package/tests/pinentry-auto.c 0000775 0000000 0000000 00000006226 12667016244 0020403 0 ustar 00root root 0000000 0000000 /*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
// Emulates pinentry programs, with a static PIN
// This can be used to bypass PIN requirement while using GnuPG/scdaemon
// and automation. Another solution is to use PSCS/OpenSC.
// Obviously, this is a hack, even if it's pretty damn clean.
// This means, do not use this if you do not know what you are doing.
// This version of pinentry-auto is adapted for use on Windows, where
// shell scripts can't be used as replacement for pinentry
#include
#include
#include
#define USER_PIN "STRIKEfreedom@Qu1to"
size_t getline(char **lineptr, size_t *n, FILE *stream) {
char *bufptr = NULL;
char *p = bufptr;
size_t size;
int c;
if (lineptr == NULL) {
return -1;
}
if (stream == NULL) {
return -1;
}
if (n == NULL) {
return -1;
}
bufptr = *lineptr;
size = *n;
c = fgetc(stream);
if (c == EOF) {
return -1;
}
if (bufptr == NULL) {
bufptr = malloc(128);
if (bufptr == NULL) {
return -1;
}
size = 128;
}
p = bufptr;
while(c != EOF) {
if ((p - bufptr) > (size - 1)) {
size = size + 128;
bufptr = realloc(bufptr, size);
if (bufptr == NULL) {
return -1;
}
}
*p++ = c;
if (c == '\n') {
break;
}
c = fgetc(stream);
}
*p++ = '\0';
*lineptr = bufptr;
*n = size;
return p - bufptr - 1;
}
void toLowerCase(char* str) {
int i;
for (i = 0; i < strlen(str); i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] = str[i] + 32;
}
}
}
// remove trailing \r and \n from a string
void chomp(char* str) {
int i;
for (i = strlen(str) - 1; i >= 0; i-- ) {
if (str[i] == '\n' || str[i] == '\r') {
str[i] = 0;
}
else {
return;
}
}
}
void reply_d(char* str)
{
printf("D %s\n", str);
printf("OK\n");
fflush(stdout);
}
void reply_pid()
{
printf("D %d\n", getpid());
printf("OK\n");
fflush(stdout);
}
void reply_ok(char* str)
{
printf("OK %s\n", str);
fflush(stdout);
}
void error()
{
printf("ERR 83886355 unknown command\n");
fflush(stdout);
}
int main( ) {
printf("OK Your orders please\n");
fflush(stdout);
char *line = NULL;
size_t size;
int l = getline(&line, &size, stdin);
while ( l != -1) {
chomp(line);
toLowerCase(line);
if (strcmp(line, "getpin") == 0) {
reply_d(USER_PIN);
}
else if (strcmp(line, "bye") == 0) {
reply_ok("closing connection");
break;
}
else if (strcmp(line, "getinfo pid") == 0) {
reply_pid();
}
else {
// This generally includes OPTION, SETDESC, SETPROMPT
// i.e. things we don't care for if we're not displaying
// a prompt
reply_ok("");
}
l = getline(&line, &size, stdin);
}
return 0;
} enigmail/package/tests/pinentry-auto.exe 0000775 0000000 0000000 00000277325 12667016244 0020754 0 ustar 00root root 0000000 0000000 MZ ÿÿ ¸ @ € º ´ Í!¸LÍ!This program cannot be run in DOS mode.
$ PE L ãÙŸU " P à , D @ @ à ñÓ € ´ , Ü .text ”+ , ` P`.data @ 0 @ 0À.rdata ¸ P 2 @ 0@/4 ü `
4 @ 0@.bss | p € 0À.idata ´ € > @ 0À.CRT D @ 0À.tls F @ 0À/14 ð ° H @ @B/29 Dk À l J @ B/41 © 0 ¶ @ B/55 Í P Ì @ B/67 8 p ä @ 0B/80 Œ € æ @ B/91 í1 2 è @ B/102 Ð Ð @ B U‰åWVSƒìl¡ìP@ …ÀtÇD$ ÇD$ Ç$ ÿЃìÇ$@ è¦* ƒìè¾
è™ ¡ @@ ¨„ è* ƒÉÿ‰e´‰Æ1À‰÷ò®÷ÑD ƒàðè‹ )ÄD$‰E¸¡ @@ ‹]¸ÇEä ÇEÄ ƒà@ƒøÀ% Àÿÿ@ ‰EÀ1ÀÇE¼ ¶ƒÆ¾Ê…É„ €ú?„{ – €ú'„5 €ú*f„a €ú"„Ù …À<t
Æ\ƒÃ9ûuö‹EÄ…À…¯ ‰$ˆU°èÊ( ¶U°…À„˜ ƒ}¼ u1À9]¸sƒEØÆ ‰D$ÇD$ ‹EÀ‰D$‹E¸‰$è ‹]¸1ÀƒMÀÇE¼ éJÿÿÿ€ú\„O €ú„Í €ú[…lÿÿÿ‹= @@ Áïƒ÷ƒç…ÀtØÆ\ƒÃ9Ãuö‰ø„Àu‹}Ä…ÿuƒùuƃȶƒÃ1ÀƒÆ¾Ê…É…ñþÿÿ…ÀtØÆ\ƒÃ9Ãuöƒ}¼ u9]¸s$EØÆ ‰D$ÇD$ ‹EÀ‰D$‹E¸‰$èß ‹EÜ£p@ ‹E࣠p@ ‹e´¡0p@ …ÀtB‹œ@ £@@ ‰D$‹C‰$è¡' ¡0p@ ‰D$‹C0‰$è' ¡0p@ ‰D$‹CP‰$èy' è|' ‹@@ ‰èÏ
ƒäðè7
èj' ‹ ‰D$¡ p@ ‰D$¡p@ ‰$è? ‰ÃèO' ‰$è7( ´&