broken interface fixed in 'partition' plugin for ie
rendering bug of volume_properties fixed for ie fixed screen width in a mozilla/ie compatible way added german translation: 'log', 'network', 'volume_automount' and 'volume_details' fixed config management of 'plugin_manager' plugin fixed filtering of log level messages for 'logs' plugin updated documentation for ssl configurations changed default installation destinations in setup.py added nice background images to environment and help messages replaced message 'div' with 'fieldset' moved stylesheet data of plugins to html header (as required by spec) removed obsolete css definitions removed obsolete old perl/bash code improved 'update_po_files': remove obsolete msgids functionality of 'update_english.sh' moved to 'update_po_files' omit 'weblang' link attribute if it does not change the default setting changed default language from 'de' to 'en' fixed template bug that prevented the translation of plugin links fixed invalid html implement filecheck overriding for unittests
This commit is contained in:
parent
52dd35e7b4
commit
794998f950
13
README
13
README
|
@ -52,16 +52,11 @@ For source installation follow these steps:
|
|||
Install the program:
|
||||
python setup.by install
|
||||
|
||||
The installed files can be found in your local python installation directory.
|
||||
The installed pyhton modules can be found in your local python installation directory.
|
||||
The default location should be:
|
||||
/usr/lib/python2.4/site-packages/cryptobox
|
||||
|
||||
Adapt the directories given in /etc/cryptobox-server/cryptobox.conf to your
|
||||
local installation. The paths below /usr/share should be below your python
|
||||
directoy instead (see above) - sorry for this inconvenience!
|
||||
|
||||
The CryptoBox webserver daemon that is given in /etc/init.d/cryptobox-server
|
||||
may have to be changed to /usr/bin instead of /usr/sbin.
|
||||
/usr/lib/python2.4/site-packages/cryptobox/
|
||||
The data files are (by default) installed to:
|
||||
/usr/share/cryptobox-server/
|
||||
|
||||
As some actions of the cryptobox require root privileges, you have to add the
|
||||
following line to /etc/super.tab:
|
||||
|
|
|
@ -32,9 +32,11 @@ forwarding requests to the cherrypy server of the CryptoBox.
|
|||
ProxyPass http://localhost:8080/
|
||||
ProxyPassReverse http://localhost:8080/
|
||||
RequestHeader set CryptoBox-Location /cryptobox
|
||||
# uncomment the next line for ssl-enabled virtualhosts
|
||||
RequestHeader set X-SSL-Request 1
|
||||
</Location>
|
||||
|
||||
Now you should to a restart of apache2.
|
||||
Now you should restart apache2.
|
||||
|
||||
|
||||
3) Testing
|
||||
|
|
|
@ -14,8 +14,9 @@ There are two ways for setting up a SSL connection:
|
|||
ssl encryption.
|
||||
|
||||
The CryptoBox webserver cannot detect whether the connection is encrypted
|
||||
or not since it is behind the proxy webserver. Thus you have to tell the
|
||||
CryptoBox whether the connection is encrypted or not.
|
||||
or not since it is behind the proxy webserver and does not share its
|
||||
environment. Thus you have to tell the CryptoBox in the request header
|
||||
whether the connection is encrypted or not.
|
||||
|
||||
for apache2:
|
||||
1) enable the 'headers' module (for debian: "a2enmod headers")
|
||||
|
@ -49,7 +50,7 @@ There are two ways for setting up a SSL connection:
|
|||
If the CryptoBox continues to complain about the unencrypted connection, even
|
||||
if it runs behind an ssl-enabled webserver or behind stunnel, then you can do
|
||||
one of the following things:
|
||||
- set the request header value "X-SSL-Request" to "1" (one)
|
||||
- set the request header value "X-SSL-Request" to "1" (the digit 'one')
|
||||
- set the environment setting "HTTPS" to a non-empty value during the
|
||||
startup of the CryptoBox webserver. Maybe /etc/default/cryptobox-server
|
||||
would be the right place for this.
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
# Makefile to compile the binary suid-wrapper for cryptobox
|
||||
#
|
||||
# LIB_DIR should be defined in the higher level Makefile
|
||||
#
|
||||
|
||||
HEADER_FILE = cryptobox_wrapper.h
|
||||
SRC_FILE = cryptobox_wrapper.c
|
||||
CGI_SUID_FILE = cryptobox_cgi_wrapper
|
||||
ROOT_SUID_FILE = cryptobox_root_wrapper
|
||||
|
||||
CGI_FILENAME = cryptobox.pl
|
||||
ROOT_SCRIPT_FILENAME = cbox-root-actions.sh
|
||||
# fall back to default, if not overwritten
|
||||
LIB_DIR = /usr/local/lib/cryptobox
|
||||
|
||||
|
||||
# _always_ recompile (in case of a changed LIB_DIR)
|
||||
.PHONY: build clean $(CGI_SUID_FILE) $(ROOT_SUID_FILE)
|
||||
|
||||
build: $(CGI_SUID_FILE) $(ROOT_SUID_FILE)
|
||||
|
||||
|
||||
$(CGI_SUID_FILE): $(SRC_FILE)
|
||||
@echo '#define EXEC_PATH "$(LIB_DIR)/$(CGI_FILENAME)"' >$(HEADER_FILE)
|
||||
$(CC) -o $(CGI_SUID_FILE) $(SRC_FILE)
|
||||
-rm $(HEADER_FILE)
|
||||
|
||||
|
||||
$(ROOT_SUID_FILE): $(SRC_FILE)
|
||||
@echo '#define EXEC_PATH "$(LIB_DIR)/$(ROOT_SCRIPT_FILENAME)"' >$(HEADER_FILE)
|
||||
$(CC) -o $(ROOT_SUID_FILE) $(SRC_FILE)
|
||||
-rm $(HEADER_FILE)
|
||||
|
||||
|
||||
clean:
|
||||
-rm -f $(CGI_SUID_FILE) $(ROOT_SUID_FILE) $(HEADER_FILE)
|
||||
|
|
@ -1,474 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 02005 sense.lab <senselab@systemausfall.org>
|
||||
#
|
||||
# License: This script is distributed under the terms of version 2
|
||||
# of the GNU GPL. See the LICENSE file included with the package.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# this script does EVERYTHING
|
||||
# all other scripts are only frontends :)
|
||||
#
|
||||
# called by:
|
||||
# - some rc-scripts
|
||||
# - the web frontend cgi
|
||||
#
|
||||
|
||||
# TODO: check permissions and owners of config files, directories and scripts before
|
||||
# running cbox-root-actions.sh
|
||||
|
||||
set -eu
|
||||
|
||||
|
||||
# default location of config file
|
||||
CONF_FILE=/etc/cryptobox/cryptobox.conf
|
||||
|
||||
LIB_DIR=$(dirname "$0")
|
||||
|
||||
# to determine a nice default partition name
|
||||
DEVICE_NAME_PREFIX="Disk #"
|
||||
|
||||
# read the default setting file, if it exists
|
||||
test -e /etc/default/cryptobox && . /etc/default/cryptobox
|
||||
|
||||
test ! -e "$CONF_FILE" && echo "Could not find the configuration file: $CONF_FILE" >&2 && exit 1
|
||||
|
||||
# parse config file
|
||||
. "$CONF_FILE"
|
||||
|
||||
test ! -e "$CONF_FILE" && echo "Could not find the distribution specific configuration file: $CONF_FILE" >&2 && exit 1
|
||||
|
||||
# parse the distribution specific file
|
||||
. "$DISTRIBUTION_CONF"
|
||||
|
||||
# check for writable log file
|
||||
test -w "$LOG_FILE" || LOG_FILE=/tmp/$(basename "$LOG_FILE")
|
||||
|
||||
# retrieve configuration directory
|
||||
CONFIG_DIR="$(getent passwd $CRYPTOBOX_USER | cut -d ':' -f 6)/config"
|
||||
CONFIG_MARKER=cryptobox.marker
|
||||
|
||||
## configuration
|
||||
ROOT_PERM_SCRIPT="$LIB_DIR/cryptobox_root_wrapper"
|
||||
# ROOT_PERM_SCRIPT needs the MNT_PARENT setting
|
||||
export MNT_PARENT="$(cd ~; pwd)/mnt"
|
||||
|
||||
######## stuff ##########
|
||||
|
||||
# all partitions with a trailing number
|
||||
ALL_PARTITIONS=$(cat /proc/partitions | sed '1,2d; s/ */ /g; s/^ *//' | cut -d " " -f 4 | grep '[0-9]$')
|
||||
|
||||
#########################
|
||||
|
||||
function log_msg()
|
||||
{
|
||||
# the log file is (maybe) not writable during boot - try
|
||||
# before writing ...
|
||||
test -w "$LOG_FILE" || return 0
|
||||
echo >>"$LOG_FILE"
|
||||
echo "##### `date` #####" >>"$LOG_FILE"
|
||||
echo "$1" >>"$LOG_FILE"
|
||||
}
|
||||
|
||||
|
||||
function error_msg()
|
||||
# parameters: ExitCode ErrorMessage
|
||||
{
|
||||
local all=$@
|
||||
test $# -ne 2 && error_msg 1 "*** invalid call of error_msg *** $all"
|
||||
echo "[`date`] - $2" | tee -a "$LOG_FILE" >&2
|
||||
# print the execution stack - not usable with busybox
|
||||
# caller | sed 's/^/\t/' >&2
|
||||
exit "$1"
|
||||
}
|
||||
|
||||
|
||||
# Parameter: device
|
||||
function is_device_allowed() {
|
||||
# check for invalid characters and exit if one is found
|
||||
local device=$(echo "$1" | sed 's#[^a-zA-Z0-9_\-\./]##g')
|
||||
test "$1" = "$device" || return 1
|
||||
# remove leading "/dev/"
|
||||
device=$(echo "$device" | sed 's#^/dev/##')
|
||||
# return for empty name
|
||||
test -z "$device" && return 1
|
||||
for a in $ALL_PARTITIONS
|
||||
do echo "$device" | grep -q "^$a.*" && return 0
|
||||
done
|
||||
# no matching device found - exit with error
|
||||
return 1
|
||||
}
|
||||
|
||||
function config_set_value()
|
||||
# parameters: SettingName [SettingValue]
|
||||
# read from stdin if SettingValue is not defined
|
||||
{
|
||||
if test $# -gt 1
|
||||
then echo "$2" > "$CONFIG_DIR/$1"
|
||||
else cat - >"$CONFIG_DIR/$1"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function config_get_value()
|
||||
# parameters: SettingName
|
||||
{
|
||||
# use mounted config, if it exists - otherwise use defaults
|
||||
local conf_dir
|
||||
test -z "$1" && error_msg 1 "empty setting name"
|
||||
# check for existence - maybe use default values (even for old
|
||||
# releases that did not contain this setting)
|
||||
if test -e "$CONFIG_DIR/$1"
|
||||
then cat "$CONFIG_DIR/$1"
|
||||
elif test -e "$CONFIG_DEFAULTS_DIR/$1"
|
||||
then cat "$CONFIG_DEFAULTS_DIR/$1"
|
||||
else case "$1" in
|
||||
# you may place default values for older versions here
|
||||
# for compatibility
|
||||
* )
|
||||
error_msg 2 "unknown configuration value ($1)"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
function list_partitions_of_type()
|
||||
# parameter: { config | crypto | plaindata | unused }
|
||||
{
|
||||
local config=
|
||||
local crypto=
|
||||
local plaindata=
|
||||
local unused=
|
||||
for a in $ALL_PARTITIONS
|
||||
do if "$ROOT_PERM_SCRIPT" is_crypto_partition "/dev/$a"
|
||||
then crypto="$crypto /dev/$a"
|
||||
elif "$ROOT_PERM_SCRIPT" is_config_partition "/dev/$a"
|
||||
then config="$config /dev/$a"
|
||||
elif "$ROOT_PERM_SCRIPT" is_plaindata_partition "/dev/$a"
|
||||
then plaindata="$plaindata /dev/$a"
|
||||
else unused="$unused /dev/$a"
|
||||
fi
|
||||
done
|
||||
case "$1" in
|
||||
config )
|
||||
echo "$config"
|
||||
;;
|
||||
crypto )
|
||||
echo "$crypto"
|
||||
;;
|
||||
plaindata )
|
||||
echo "$plaindata"
|
||||
;;
|
||||
unused )
|
||||
echo "$unused"
|
||||
;;
|
||||
* )
|
||||
error_msg 11 "wrong parameter ($1) for list_partition_types in $(basename $0)"
|
||||
;;
|
||||
esac | tr " " "\n" | grep -v '^$'
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
function get_device_mnt_name() {
|
||||
"$ROOT_PERM_SCRIPT" get_device_mnt_name "$1"
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
function get_device_uuid() {
|
||||
"$ROOT_PERM_SCRIPT" get_device_uuid "$1"
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
# return the readable name of the crypto container, if it is already defined
|
||||
# if undefined - return the uuid
|
||||
function get_device_name() {
|
||||
local uuid=$(get_device_uuid "$1")
|
||||
local dbname=$(config_get_value "names.db" | grep "^$uuid:" | cut -d ":" -f 2-)
|
||||
# return dbname if it exists
|
||||
test -n "$dbname" && echo "$dbname" && return 0
|
||||
# find a nice name for the new partition
|
||||
local counter=1
|
||||
local test_name
|
||||
local test_uuid
|
||||
local test_result
|
||||
# try to find a name with the defined "prefix" followed by a number ...
|
||||
while true
|
||||
do test_name="$DEVICE_NAME_PREFIX$counter"
|
||||
if config_get_value "names.db" | grep -q ":$test_name$"
|
||||
then counter=$((counter+1))
|
||||
else # save it for next time
|
||||
set_device_name "$1" "$test_name"
|
||||
echo "$test_name"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
function set_device_name()
|
||||
# TODO: the implementation is quite ugly, but it works (tm)
|
||||
# Parameter: DEVICE NAME
|
||||
{
|
||||
local uuid=$(get_device_uuid "$1")
|
||||
# remove the old setting for this device and every possible entry with the same name
|
||||
local new_config=$(config_get_value 'names.db' | sed "/^$uuid:/d; /^[^:]*:$2$/d"; echo "$uuid:$2")
|
||||
echo "$new_config" | config_set_value "names.db"
|
||||
}
|
||||
|
||||
|
||||
function does_crypto_name_exist()
|
||||
# Parameter: NAME
|
||||
{
|
||||
config_get_value 'names.db' | grep -q "^[^:]*:$1$"
|
||||
}
|
||||
|
||||
|
||||
function create_crypto()
|
||||
# Parameter: DEVICE NAME KEYFILE
|
||||
# keyfile is necessary, to allow background execution via 'at'
|
||||
{
|
||||
local device=$1
|
||||
local name=$2
|
||||
local keyfile=$3
|
||||
# otherwise the web interface will hang
|
||||
# passphrase may be passed via command line
|
||||
local key=$(<"$keyfile")
|
||||
# remove the passphrase-file as soon as possible
|
||||
dd if=/dev/zero of="$keyfile" bs=512 count=1 2>/dev/null
|
||||
rm "$keyfile"
|
||||
|
||||
log_msg "Creating crypto partition with the cipher $DEFAULT_CIPHER on $device"
|
||||
echo "$key" | "$ROOT_PERM_SCRIPT" create_crypto "$device"
|
||||
|
||||
set_crypto_name "$device" "$name"
|
||||
}
|
||||
|
||||
|
||||
function is_config_active() {
|
||||
test -f "$CONFIG_DIR/$CONFIG_MARKER"
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
function is_mounted() {
|
||||
local name=$(get_device_mnt_name "$1")
|
||||
test -n "$name" && mountpoint -q "$MNT_PARENT/$name"
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
function is_plain() {
|
||||
"$ROOT_PERM_SCRIPT" is_plain_partition "$1"
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
function is_encrypted() {
|
||||
"$ROOT_PERM_SCRIPT" is_crypto_partition "$1"
|
||||
}
|
||||
|
||||
|
||||
# list which allowed disks are at the moment connected with the cbox
|
||||
function get_available_disks() {
|
||||
for scan in $SCAN_DEVICES
|
||||
do for avail in $ALL_PARTITIONS
|
||||
do echo "$avail" | grep -q "^$scan[^/]*" && echo "/dev/$avail"
|
||||
done
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
# Parameter: DEVICE
|
||||
function mount_crypto() {
|
||||
local device=$1
|
||||
test -z "$device" && error_msg 4 'No valid harddisk found!'
|
||||
is_mounted "$device" && echo "The crypto filesystem is already active!" && return
|
||||
# passphrase is read from stdin
|
||||
log_msg "Mounting a crypto partition from $device"
|
||||
"$ROOT_PERM_SCRIPT" mount "$device" >>"$LOG_FILE" 2>&1
|
||||
}
|
||||
|
||||
|
||||
function umount_partition() {
|
||||
# Parameter: device
|
||||
local container=$(get_device_name "$1")
|
||||
"$ROOT_PERM_SCRIPT" umount "$1"
|
||||
}
|
||||
|
||||
|
||||
function box_purge()
|
||||
# removing just the first bytes from the harddisk should be enough
|
||||
# every harddisk will be overriden!
|
||||
# this feature is only useful for validation
|
||||
{
|
||||
# TODO: not ALL harddisks, please!
|
||||
get_available_disks | while read a
|
||||
do log_msg "Purging $a ..."
|
||||
"$ROOT_PERM_SCRIPT" trash_device "$a"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
function turn_off_all_containers() {
|
||||
# TODO - needs to be implemented
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
### main ###
|
||||
|
||||
# set PATH because thttpd removes /sbin and /usr/sbin for cgis
|
||||
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
||||
|
||||
|
||||
ACTION=help
|
||||
test $# -gt 0 && ACTION=$1 && shift
|
||||
|
||||
case "$ACTION" in
|
||||
crypto-up )
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'crypto-up'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
mount_crypto "$1"
|
||||
;;
|
||||
crypto-down )
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'crypto-down'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
umount_partition "$1"
|
||||
;;
|
||||
init )
|
||||
init_cryptobox </dev/null >>"$LOG_FILE" 2>&1
|
||||
;;
|
||||
list_container )
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'list_container'"
|
||||
case "$1" in
|
||||
config | unused | plaindata | crypto )
|
||||
list_partitions_of_type "$1"
|
||||
;;
|
||||
* )
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
return 0
|
||||
;;
|
||||
get_device_name )
|
||||
# Parameter: DEVICE
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'get_device_name'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
get_device_name "$1"
|
||||
;;
|
||||
set_device_name )
|
||||
# Parameter: DEVICE NAME
|
||||
test $# -ne 2 && error_msg 10 "invalid number of parameters for 'set_device_name'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
set_device_name "$1" "$2"
|
||||
;;
|
||||
device_init )
|
||||
# Parameter: DEVICE [KEYFILE]
|
||||
test $# -lt 1 && error_msg 10 "invalid number of parameters for 'device_init' ($@)"
|
||||
test $# -gt 2 && error_msg 10 "invalid number of parameters for 'device_init' ($@)"
|
||||
if test $# -eq 2
|
||||
then test -z "$2" -o ! -e "$2" && error_msg 11 "invalid keyfile ($2) given for 'device_init'"
|
||||
fi
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
if test $# -eq 2
|
||||
then "$ROOT_PERM_SCRIPT" create_crypto "$1" "$2"
|
||||
else "$ROOT_PERM_SCRIPT" create_plain "$1"
|
||||
fi
|
||||
true
|
||||
;;
|
||||
is_mounted )
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'is_mounted'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
is_mounted "$1"
|
||||
;;
|
||||
is_encrypted )
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'is_encrypted'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
is_encrypted "$1"
|
||||
;;
|
||||
is_plain )
|
||||
test $# -ne 1 && error_msg 10 "invalid number of parameters for 'is_plain'"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
is_plain "$1"
|
||||
;;
|
||||
check_config)
|
||||
is_config_active
|
||||
;;
|
||||
get_available_disks )
|
||||
get_available_disks
|
||||
;;
|
||||
set_config )
|
||||
test $# -ne 2 && error_msg 7 "'set_config' requires two parameters"
|
||||
config_set_value "$1" "$2"
|
||||
;;
|
||||
get_config )
|
||||
test $# -ne 1 && error_msg 6 "'get_config' requires exactly one parameter"
|
||||
config_get_value "$1"
|
||||
;;
|
||||
get_capacity_info )
|
||||
test $# -ne 1 && error_msg 6 "'get_capacity_info' requires exactly one parameter"
|
||||
is_device_allowed "$1" || error_msg 12 "invalid device: $1"
|
||||
is_mounted "$1" || error_msg 13 "the device is not mounted: $1"
|
||||
name=$(get_device_mnt_name "$1")
|
||||
df -h "$MNT_PARENT/$name" | tail -1
|
||||
;;
|
||||
diskinfo )
|
||||
get_available_disks | while read a
|
||||
do "$ROOT_PERM_SCRIPT" diskinfo "$a"
|
||||
done 2>/dev/null
|
||||
;;
|
||||
box-purge )
|
||||
log_msg "Cleaning the CryptoBox ..."
|
||||
turn_off_all_containers
|
||||
"$0" config-down
|
||||
box_purge >>"$LOG_FILE" 2>&1
|
||||
;;
|
||||
poweroff )
|
||||
log_msg "Shutting down the Cryptobox ..."
|
||||
turn_off_all_containers
|
||||
"$ROOT_PERM_SCRIPT" poweroff
|
||||
;;
|
||||
reboot )
|
||||
log_msg "Rebooting the Cryptobox ..."
|
||||
turn_off_all_containers
|
||||
"$ROOT_PERM_SCRIPT" reboot
|
||||
;;
|
||||
umount_all )
|
||||
log_msg "Unmounting all volumes ..."
|
||||
turn_off_all_containers
|
||||
;;
|
||||
* )
|
||||
echo "[$(basename $0)] - unknown action: $ACTION" >&2
|
||||
echo "Syntax: $(basename $0) ACTION [PARAMS]"
|
||||
echo " crypto-up - mount crypto partition"
|
||||
echo " crypto-down - unmount crypto partition"
|
||||
echo " crypto-create - a wrapper for 'crypto-create-bg'"
|
||||
echo " crypto-create-bg - create encrypted blockdevice and run mkfs"
|
||||
echo " is_mounted - check, if crypto partition is mounted"
|
||||
echo " check_config - check, if the configuration is usable"
|
||||
echo " get_available_disks - shows all accessible disks"
|
||||
echo " get_current_ip - get the current IP of the network interface"
|
||||
echo " set_config NAME VALUE - change a configuration setting"
|
||||
echo " get_config NAME - retrieve a configuration setting"
|
||||
echo " get_device_name DEVICE - retrieve the human readable name of a partition"
|
||||
echo " set_device_name DEVICE - set the human readable name of a partition"
|
||||
echo " device_init DEVICE KEYFILE - initialize the filesystem of a partition (the keyfile just contains the passphrase)"
|
||||
echo " get_capacity_info - print the output of 'df' for the (mounted) partition"
|
||||
echo " diskinfo - show the partition table of the harddisk"
|
||||
echo " box-purge - destroy the partition tables of all harddisks (delete everything)"
|
||||
echo " poweroff - turn off the computer"
|
||||
echo " reboot - reboot the computer"
|
||||
echo
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
@ -1,341 +0,0 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 02005 sense.lab <senselab@systemausfall.org>
|
||||
#
|
||||
# License: This script is distributed under the terms of version 2
|
||||
# of the GNU GPL. See the LICENSE file included with the package.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# this script is responsible for all dangerous actions, that require root privileges
|
||||
# every action should be checked at least TWICE a day for open holes :)
|
||||
# usually will get call via sudo
|
||||
#
|
||||
# called by:
|
||||
# - cbox-manage.sh
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
LIB_DIR=$(dirname "$0")
|
||||
LIB_DIR=$(cd "$LIB_DIR"; pwd)
|
||||
|
||||
test "$(id -u)" -ne 0 && echo "$(basename $0) - only root may call this script" >&2 && exit 100
|
||||
|
||||
# read the default setting file, if it exists
|
||||
test -e /etc/default/cryptobox && . /etc/default/cryptobox
|
||||
|
||||
# set CONF_FILE to default value, if not configured in /etc/default/cryptobox
|
||||
CONF_FILE=${CONF_FILE:-/etc/cryptobox/cryptobox.conf}
|
||||
# parse config file
|
||||
. "$CONF_FILE"
|
||||
# parse distribution specific file
|
||||
. "$DISTRIBUTION_CONF"
|
||||
|
||||
CB_SCRIPT="$LIB_DIR/cbox-manage.sh"
|
||||
CONFIG_MARKER=cryptobox.marker
|
||||
|
||||
|
||||
############ some useful functions ###############
|
||||
|
||||
# check if the given device is part of the SCAN_DEVICE list
|
||||
# every entry in SCAN_DEVICES is matched as "^/dev/${SCAN_DEVICE}[^/]*$" against
|
||||
# the given device
|
||||
# other devices may not be touched
|
||||
function is_device_allowed()
|
||||
# parameter: device
|
||||
{
|
||||
for a in $SCAN_DEVICES
|
||||
do echo "$1" | grep -q "^/dev/${a}[^/]*$" && return 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
# return the uuid of the partition (if possible)
|
||||
# this works at least for luks, ext2/3 and vfat partitions
|
||||
function get_device_uuid() {
|
||||
local UUID
|
||||
# check for luksUUID or ext2/3-uuid
|
||||
if is_luks_device "$1"
|
||||
then UUID=$("$CRYPTSETUP" luksUUID "$1")
|
||||
else test -x "$BLKID" && UUID=$("$BLKID" -s UUID -o value -c /dev/null -w /dev/null "$1" 2>/dev/null)
|
||||
fi
|
||||
if test -z "$UUID"
|
||||
then get_device_flat_name "$1"
|
||||
else echo "$UUID"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
# the device name is "flattened"
|
||||
function get_device_flat_name() {
|
||||
echo "$1" | sed 's#/#_#g'
|
||||
}
|
||||
|
||||
|
||||
# the basename of the mountpoint for this device - should be somehow human_readable
|
||||
function get_device_mnt_name() {
|
||||
"$CB_SCRIPT" get_device_name "$1"
|
||||
}
|
||||
|
||||
|
||||
# every devmapper name should look like a UUID
|
||||
function is_uuid_valid() {
|
||||
local hex=[0-9a-f]
|
||||
echo "$1" | grep -q "^$hex\{8\}-$hex\{4\}-$hex\{4\}-$hex\{4\}-$hex\{12\}$"
|
||||
}
|
||||
|
||||
|
||||
# parameter ExitCode ErrorMessage
|
||||
function error_msg() {
|
||||
echo "CBOX-ERROR: [$(basename $0) - $ACTION] - $2" >&2
|
||||
exit $1
|
||||
}
|
||||
|
||||
|
||||
# parameter: device sfdisk_layout_setup
|
||||
# e.g.: /dev/hda "0,1,L \n,,L\n"
|
||||
function partition_device() {
|
||||
# TODO: allow different layouts
|
||||
# TODO: skip config partition if a configuration is already active
|
||||
# sfdisk -n doesn't actually write (for testing purpose)
|
||||
if echo -e "$2" | "$SFDISK" -n "$1"
|
||||
then echo -e "$2" | "$SFDISK" "$1" || return 1
|
||||
else return 2
|
||||
fi
|
||||
true
|
||||
}
|
||||
|
||||
|
||||
function is_luks_device()
|
||||
# parameter: device
|
||||
{
|
||||
"$CRYPTSETUP" isLuks "$1" 2>/dev/null
|
||||
}
|
||||
|
||||
|
||||
################ main ####################
|
||||
|
||||
ACTION=unknown
|
||||
test $# -gt 0 && ACTION=$1 && shift
|
||||
|
||||
|
||||
case "$ACTION" in
|
||||
partition_disk )
|
||||
test $# -ne 2 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
partition_device "$1" "$2" || \
|
||||
error_msg 2 "failed to create new partition table on device $1"
|
||||
;;
|
||||
mount )
|
||||
# parameters: device
|
||||
# returns the relative name of the mointpoint for success
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
mnt_name=$(get_device_mnt_name "$1")
|
||||
mountpoint -q "$MNT_PARENT/$mnt_name" && \
|
||||
error_msg 5 "a device with the same name ($mnt_name) is already mounted"
|
||||
mkdir -p "$MNT_PARENT/$mnt_name"
|
||||
if is_luks_device "$1"
|
||||
then "$CRYPTSETUP" luksOpen "$1" "$mnt_name" || \
|
||||
error_msg 6 "could not open encrypted device $1"
|
||||
if mount "$DEV_MAPPER_DIR/$mnt_name" "$MNT_PARENT/$mnt_name"
|
||||
then true
|
||||
else "$CRYPTSETUP" luksClose "$mnt_name" || true
|
||||
error_msg 7 "wrong password for $1 supplied"
|
||||
fi
|
||||
else mount "$1" "$MNT_PARENT/$mnt_name" || \
|
||||
error_msg 8 "invalid filesystem on device $1"
|
||||
fi
|
||||
# just in case, that there is no ext2/3 filesystem:
|
||||
# set uid option (will fail silently for ext2/3)
|
||||
# TODO: there is no FILE_USER setting anymore - do we still need it?
|
||||
#mount -o remount,uid="$FILE_USER" "$MNT_PARENT/$name" 2>/dev/null || true
|
||||
# adapt top-level permission to current setup - again: may fail silently
|
||||
#chown "$FILE_USER" "$MNT_PARENT/$name" 2>/dev/null || true
|
||||
true
|
||||
;;
|
||||
umount )
|
||||
#parameter: device
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
mnt_name=$(get_device_mnt_name "$1")
|
||||
mountpoint -q "$MNT_PARENT/$mnt_name" || \
|
||||
error_msg 9 "the device ($1) is not mounted as '$mnt_name'"
|
||||
# try to unmount - do it in lazy mode
|
||||
umount -l "$MNT_PARENT/$mnt_name"
|
||||
# TODO: check, what happens, if there are open files - does the device gets mapping removed?
|
||||
# remove (if necessary) the device mapping
|
||||
if test -e "$DEV_MAPPER_DIR/$mnt_name"
|
||||
then "$CRYPTSETUP" luksClose "$mnt_name" || \
|
||||
error_msg 11 "could not remove the device mapper ($mnt_name) for device $1"
|
||||
fi
|
||||
# try to remove the mountpoint - a failure is not important
|
||||
rmdir "$MNT_PARENT/$mnt_name" || true
|
||||
# set exitcode
|
||||
mountpoint -q "$MNT_PARENT/$mnt_name" && exit 1
|
||||
true
|
||||
;;
|
||||
create_crypto )
|
||||
# parameter: device keyfile
|
||||
test $# -ne 2 && error_msg 1 "wrong number of parameters"
|
||||
keyfile=$2
|
||||
test -e "$keyfile" || error_msg 2 "keyfile ($keyfile) not found"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
# read the passphrase from stdin
|
||||
# the iter-time is in milliseconds - keep it low for fast mounting
|
||||
cat "$keyfile" | \
|
||||
"$CRYPTSETUP" --cipher "$DEFAULT_CIPHER" --iter-time 2000 --batch-mode luksFormat "$1" || \
|
||||
error_msg 11 "failed to create the encrypted partition"
|
||||
name=$(get_device_mnt_name "$1")
|
||||
cat "$keyfile" | "$CRYPTSETUP" --batch-mode luksOpen "$1" "$name" || \
|
||||
error_msg 12 "failed to open the encrypted partition"
|
||||
# trash the passphrase in keyfile
|
||||
echo "0123456789abcdefghijklmnopqrstuvwxyz" > "$keyfile"
|
||||
# the disk cache surely prevents the previous line from being written, but we do it anyway ...
|
||||
echo "zyxwvutsrqponmlkjihgfedcba9876543210" > "$keyfile"
|
||||
rm "$keyfile"
|
||||
# complete in background
|
||||
(
|
||||
"$MKFS_DATA" "$DEV_MAPPER_DIR/$name" || \
|
||||
error_msg 13 "failed to create the encrypted filesystem"
|
||||
"$CRYPTSETUP" --batch-mode luksClose "$name" || \
|
||||
error_msg 14 "failed to close the encrypted mapped device"
|
||||
) </dev/null >/dev/null 2>/dev/null &
|
||||
true
|
||||
;;
|
||||
create_plain )
|
||||
# parameter: device
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters for 'create_plain'"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
# complete in background
|
||||
(
|
||||
"$MKFS_DATA" "$1" || \
|
||||
error_msg 15 "failed to create the plaintext filesystem"
|
||||
) </dev/null >/dev/null 2>/dev/null &
|
||||
true
|
||||
;;
|
||||
get_device_mnt_name )
|
||||
# parameter: device
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
get_device_mnt_name "$1"
|
||||
;;
|
||||
get_device_uuid )
|
||||
# parameter: device
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
get_device_uuid "$1"
|
||||
;;
|
||||
is_config_partition )
|
||||
# parameter: device
|
||||
# returns exitcode 0 if the device contains a configuration
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
is_config=0
|
||||
tmp_dir=/tmp/$(basename $0)-$$-mnt
|
||||
mkdir -p "$tmp_dir"
|
||||
# error means "no config partition"
|
||||
if mount "$1" "$CONFIG_DIR"
|
||||
then test -e "$CONFIG_DIR/$CONFIG_MARKER" && is_config=1
|
||||
umount "$CONFIG_DIR" || \
|
||||
error_msg 14 "unable to unmount configation partition after probing"
|
||||
fi
|
||||
rmdir "$tmp_dir" || true
|
||||
# return 0 if $device is a config partition
|
||||
test "$is_config" -eq 1 && exit 0
|
||||
exit 1
|
||||
;;
|
||||
is_crypto_partition )
|
||||
# parameter: device
|
||||
# returns exitcode 0 if the device contains a luks header
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
is_luks_device "$1"
|
||||
;;
|
||||
is_plain_partition )
|
||||
# parameter: device
|
||||
# returns exitcode 0 if the device contains a readable filesystem
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
status=0
|
||||
tmp_dir=/tmp/$(basename $0)-$$-mnt
|
||||
mkdir -p "$tmp_dir"
|
||||
if mount "$1" "$tmp_dir" >/dev/null 2>/dev/null
|
||||
then test ! -e "$tmp_dir/$CONFIG_MARKER" && status=1
|
||||
umount "$tmp_dir"
|
||||
fi
|
||||
rmdir "$tmp_dir" || true
|
||||
test "$status" -eq 1 && exit 0
|
||||
exit 1
|
||||
;;
|
||||
trash_device )
|
||||
# parameter: device
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
dd if=/dev/urandom of="$1" bs=512 count=1 2>/dev/null
|
||||
;;
|
||||
diskinfo )
|
||||
# parameter: device
|
||||
test $# -ne 1 && error_msg 1 "wrong number of parameters"
|
||||
is_device_allowed "$1" || \
|
||||
error_msg 3 "this device ($1) is not listed in SCAN_DEVICES (see $CONF_FILE)"
|
||||
"$SFDISK" -L -q -l "$1"
|
||||
;;
|
||||
update_network )
|
||||
# parameter: none
|
||||
ip=
|
||||
# TODO: can we avoid to hard-code the filename ($CONFIG_DIR/ip) here?
|
||||
test -e "$CONFIG_DIR/ip" && ip=$(<"$CONFIG_DIR/ip")
|
||||
test -n "$z" && ifconfig "$NET_IFACE" "$ip"
|
||||
;;
|
||||
poweroff )
|
||||
# TODO: check configuration setting before
|
||||
"$POWEROFF"
|
||||
;;
|
||||
reboot )
|
||||
# TODO: check configuration setting before
|
||||
"$REBOOT"
|
||||
;;
|
||||
* )
|
||||
echo "[$(basename $0)] - unknown action: $ACTION" >&2
|
||||
echo "Syntax: $(basename $0) ACTION PARAMETERS"
|
||||
echo ' partition_disk $device $disk_layout'
|
||||
echo ' get_device_name $device'
|
||||
echo ' get_device_uuid $device'
|
||||
echo ' create_crypto $device'
|
||||
echo ' mount $device'
|
||||
echo ' umount $name'
|
||||
echo ' create_config $device'
|
||||
echo ' mount_config $device'
|
||||
echo ' remount_config { ro | rw }'
|
||||
echo ' umount_config'
|
||||
echo ' is_config_partition $device'
|
||||
echo ' is_plain_partition $device'
|
||||
echo ' is_crypto_partition $device'
|
||||
echo ' trash_device $device'
|
||||
echo ' diskinfo $device'
|
||||
echo ' update_network'
|
||||
echo ' poweroff'
|
||||
echo ' reboot'
|
||||
echo ' help'
|
||||
echo
|
||||
test "$ACTION" = "help" && exit 0
|
||||
# return error for any unknown/unspecified action
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
|
@ -1,946 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# Copyright (c) 02005 sense.lab <senselab@systemausfall.org>
|
||||
#
|
||||
# License: This script is distributed under the terms of version 2
|
||||
# of the GNU GPL. See the LICENSE file included with the package.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# the web interface of the CryptoBox
|
||||
#
|
||||
|
||||
|
||||
###############################################
|
||||
|
||||
use strict;
|
||||
use CGI;
|
||||
use ClearSilver;
|
||||
use ConfigFile;
|
||||
use English;
|
||||
use CGI::Carp;
|
||||
use IO::File;
|
||||
use POSIX;
|
||||
|
||||
use constant CRYPTOBOX_VERSION => 0.3;
|
||||
|
||||
# debug levels
|
||||
use constant DEBUG_NONE => 0;
|
||||
use constant DEBUG_ERROR => 1;
|
||||
use constant DEBUG_WARN => 2;
|
||||
use constant DEBUG_INFO => 3;
|
||||
|
||||
# drop privileges
|
||||
$UID = $EUID;
|
||||
$GID = $EGID;
|
||||
|
||||
# necessary for suid perl scripts (see 'man perlsec' for details)
|
||||
$ENV{'PATH'} = '/bin:/usr/bin';
|
||||
delete @ENV{qw(IFS CDPATH ENV BASH_ENV)}; # Make %ENV safer
|
||||
|
||||
my $CONFIG_FILE = '/etc/cryptobox/cryptobox.conf';
|
||||
|
||||
my $pagedata;
|
||||
|
||||
my ($LANGUAGE_DIR, $DEFAULT_LANGUAGE, $HTML_TEMPLATE_DIR, $DOC_DIR);
|
||||
my ($CB_SCRIPT, $LOG_FILE, $IS_DEVEL, $STYLESHEET_URL, $DEBUG_LEVEL);
|
||||
|
||||
# get the directory of the cryptobox scripts/binaries and untaint it
|
||||
$CB_SCRIPT = $0;
|
||||
$CB_SCRIPT =~ m/^(.*)\/[^\/]*$/;
|
||||
$CB_SCRIPT = ($1)? "$1/cbox-manage.sh" : './cbox-manage.sh';
|
||||
|
||||
&fatal_error ("could not find configuration file ($CONFIG_FILE)") unless (-e $CONFIG_FILE);
|
||||
my $config = ConfigFile::read_config_file($CONFIG_FILE);
|
||||
|
||||
$LOG_FILE = $config->{LOG_FILE};
|
||||
$LANGUAGE_DIR = $config->{LANGUAGE_DIR};
|
||||
$DEFAULT_LANGUAGE = $config->{LANGUAGE};
|
||||
$HTML_TEMPLATE_DIR = $config->{HTML_TEMPLATE_DIR};
|
||||
$DOC_DIR = $config->{DOC_DIR};
|
||||
$IS_DEVEL = ( -e $config->{DEV_FEATURES_SCRIPT});
|
||||
$STYLESHEET_URL = $config->{STYLESHEET_URL};
|
||||
if (defined($config->{DEBUG_LEVEL})) {
|
||||
$DEBUG_LEVEL = $config->{DEBUG_LEVEL};
|
||||
} else {
|
||||
$DEBUG_LEVEL = DEBUG_ERROR; # default debug level
|
||||
}
|
||||
|
||||
my $query = new CGI;
|
||||
|
||||
#################### subs ######################
|
||||
|
||||
# for fatal errors without the chance of clearsilver-rendering
|
||||
sub fatal_error() {
|
||||
my $message = shift;
|
||||
|
||||
print "Content-Type: text/html\n\n";
|
||||
print "<html><head><title>CryptoBox</title></head>\n";
|
||||
print "<body>\n";
|
||||
print '<h1 align="center">' . $message . "</h1>\n";
|
||||
print "</body></html>\n";
|
||||
die "[CryptoBox]: $message";
|
||||
}
|
||||
|
||||
|
||||
sub debug_msg() {
|
||||
my ($level, $message) = @_;
|
||||
return 0 unless ($level >= $DEBUG_LEVEL);
|
||||
warn "[cryptobox]: $message";
|
||||
}
|
||||
|
||||
|
||||
sub load_hdf {
|
||||
my $hdf = ClearSilver::HDF->new();
|
||||
|
||||
my $fname = "$HTML_TEMPLATE_DIR/main.cs";
|
||||
&fatal_error ("Template directory is invalid ($fname not found)!") unless (-e "$fname");
|
||||
$hdf->setValue("Settings.TemplateDir","$HTML_TEMPLATE_DIR");
|
||||
|
||||
&fatal_error ("Documentation directory ($DOC_DIR) not found!") unless (-d "$DOC_DIR");
|
||||
$hdf->setValue("Settings.DocDir","$DOC_DIR");
|
||||
|
||||
# if it was requested as directory index (link from index.html), we should
|
||||
# set a real script name - otherwise links with a query string will break
|
||||
# ignore POST part of the SCRIPT_NAME (after "&")
|
||||
(my $script_url = $ENV{'SCRIPT_NAME'}) =~ m/^[^&]*/;
|
||||
$hdf->setValue("ScriptName", ($ENV{'SCRIPT_NAME'} eq '/')? '/cryptobox' : $script_url );
|
||||
|
||||
# set stylesheet url
|
||||
$hdf->setValue("Settings.Stylesheet",$STYLESHEET_URL);
|
||||
|
||||
&load_selected_language($hdf);
|
||||
|
||||
&get_available_languages($hdf);
|
||||
|
||||
return $hdf;
|
||||
}
|
||||
|
||||
|
||||
sub load_selected_language {
|
||||
my $data = shift;
|
||||
my $config_language;
|
||||
|
||||
# load $DEFAULT_LANGUAGE - this is necessary, if a translation is incomplete
|
||||
$data->readFile("$LANGUAGE_DIR/$DEFAULT_LANGUAGE" . ".hdf");
|
||||
|
||||
# load configured language, if it is valid
|
||||
$config_language = &get_cbox_config("language");
|
||||
$config_language = $DEFAULT_LANGUAGE unless (&validate_language("$config_language"));
|
||||
|
||||
# check for preferred browser language, if the box was not initialized yet
|
||||
if ( ! &check_config())
|
||||
{
|
||||
my $prefLang = &get_browser_language();
|
||||
# take it, if a supported browser language was found
|
||||
$config_language = $prefLang unless ($prefLang eq '');
|
||||
}
|
||||
|
||||
######### temporary language setting? ############
|
||||
# the default language can be overriden by the language links in the
|
||||
# upper right of the page
|
||||
if ($query->param('weblang')) {
|
||||
my $weblang = $query->param('weblang');
|
||||
if (&validate_language($weblang)) {
|
||||
# load the data
|
||||
$config_language = "$weblang";
|
||||
# add the setting to every link
|
||||
# how it should be done now ...
|
||||
$data->setValue('Settings.LinkAttrs.weblang', "$weblang");
|
||||
# old way of doing this ... (TODO: to be removed)
|
||||
$data->setValue('Data.PostData.weblang', "$weblang");
|
||||
} else {
|
||||
# no valid language was selected - so you may ignore it
|
||||
$data->setValue('Data.Warning', 'InvalidLanguage');
|
||||
}
|
||||
}
|
||||
# import the configured resp. the temporarily selected language
|
||||
$data->readFile("$LANGUAGE_DIR/$config_language" . ".hdf");
|
||||
|
||||
########## select documentation language ##########
|
||||
if (&validate_doc_language($config_language)) {
|
||||
# selected web interface language
|
||||
$data->setValue('Settings.DocLang', "$config_language");
|
||||
} elsif (&validate_doc_language($DEFAULT_LANGUAGE)) {
|
||||
# configured CryptoBox language
|
||||
$data->setValue('Settings.DocLang', "$DEFAULT_LANGUAGE");
|
||||
} else {
|
||||
# default hardcoded language (english)
|
||||
$data->setValue('Settings.DocLang', "en");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# import the names of all available languages
|
||||
sub get_available_languages {
|
||||
my $data = shift;
|
||||
my ($file, @files, $hdf, $lang_name);
|
||||
|
||||
opendir(DIR, $LANGUAGE_DIR) or &fatal_error ("Language directory ($LANGUAGE_DIR) not accessible!");
|
||||
@files = sort grep { /.*\.hdf$/ } readdir(DIR);
|
||||
close(DIR);
|
||||
|
||||
foreach $file (@files) {
|
||||
$hdf = ClearSilver::HDF->new();
|
||||
$hdf->readFile("$LANGUAGE_DIR/$file");
|
||||
substr($file, -4) = "";
|
||||
$lang_name = $hdf->getValue("Lang.Name", "$file");
|
||||
$data->setValue("Data.Languages." . "$file", "$lang_name");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# look for preferred browser language setting
|
||||
# this code was adapted from Per Cederberg - http://www.percederberg.net/home/perl/select.perl
|
||||
# it returns an empty string, if no supported language was found
|
||||
sub get_browser_language {
|
||||
my ($str, @langs, @res);
|
||||
|
||||
# Use language preference settings
|
||||
if ($ENV{'HTTP_ACCEPT_LANGUAGE'} ne '')
|
||||
{
|
||||
@langs = split(/,/, $ENV{'HTTP_ACCEPT_LANGUAGE'});
|
||||
foreach (@langs)
|
||||
{
|
||||
# get the first part of the language setting
|
||||
($str) = ($_ =~ m/([a-z]+)/);
|
||||
# check, if it supported by the cryptobox
|
||||
$res[$#res+1] = $str if validate_language($str);
|
||||
}
|
||||
}
|
||||
|
||||
# if everything fails - return empty string
|
||||
$res[0] = "" if ($#res lt 0);
|
||||
return $res[0];
|
||||
}
|
||||
|
||||
|
||||
sub log_msg {
|
||||
my $text = shift;
|
||||
open(LOGFILE,">> $LOG_FILE");
|
||||
print LOGFILE "$text";
|
||||
close(LOGFILE);
|
||||
}
|
||||
|
||||
|
||||
sub check_ssl {
|
||||
# check, if we are behind a proxy with ssl (e.g. pound)
|
||||
return (0==0) if ($ENV{'HTTP_FRONT_END_HTTPS'} =~ m/^on$/i);
|
||||
# environment variable set (e.g. via apache directive "SetEnv HTTPS On")
|
||||
return (0==0) if ($ENV{'HTTPS'} =~ m/^on$/i);
|
||||
# port 80 -> not encrypted
|
||||
return (0==1) if ($ENV{'SERVER_PORT'} == 80);
|
||||
# other ports -> maybe ok - we accept it
|
||||
return (0==0);
|
||||
}
|
||||
|
||||
|
||||
# check, if the given device is mounted/used somehow
|
||||
# Paramter: device
|
||||
sub check_mounted {
|
||||
my ($dev) = @_;
|
||||
return (system($CB_SCRIPT,"is_mounted",$dev) == 0);
|
||||
}
|
||||
|
||||
|
||||
sub check_config {
|
||||
return (system($CB_SCRIPT,"check_config") == 0);
|
||||
}
|
||||
|
||||
|
||||
sub exec_cb_script {
|
||||
my (@params) = @_;
|
||||
my ($pid, @result);
|
||||
&fatal_error("unable to fork process") unless defined($pid = open(PROG_OUT, "-|"));
|
||||
if (!$pid) {
|
||||
# child
|
||||
exec($CB_SCRIPT, @params) or &fatal_error("failed to execute $CB_SCRIPT!");
|
||||
exit 0;
|
||||
} else {
|
||||
# parent
|
||||
# only read lines containing at least one non-whitespace character
|
||||
@result = grep /\S/, <PROG_OUT>;
|
||||
foreach (@result) { chomp; }
|
||||
unless (close PROG_OUT) {
|
||||
&debug_msg(DEBUG_WARN, "error while running $CB_SCRIPT (params:" . join(" ",@params) . "): $?");
|
||||
return undef;
|
||||
}
|
||||
}
|
||||
if (wantarray) {
|
||||
return @result;
|
||||
} elsif (@result > 0) {
|
||||
return join('',@result);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub check_init_running {
|
||||
# TODO: improve this
|
||||
return (0==1);
|
||||
}
|
||||
|
||||
|
||||
# Parameter: device
|
||||
sub check_device_plaintext {
|
||||
return (system("$CB_SCRIPT","is_plain",$1) == 0);
|
||||
}
|
||||
|
||||
|
||||
# Parameter: device
|
||||
sub check_device_encryption {
|
||||
return (system("$CB_SCRIPT","is_encrypted",$1) == 0);
|
||||
}
|
||||
|
||||
|
||||
sub is_harddisk_available {
|
||||
my @all_disks = &exec_cb_script("get_available_disks");
|
||||
return @all_disks > 0;
|
||||
}
|
||||
|
||||
|
||||
sub get_available_disks {
|
||||
my @all_disks = &exec_cb_script("get_available_disks");
|
||||
my ($disk, @return_disks);
|
||||
foreach $disk (@all_disks) {
|
||||
$disk =~ m#^([/\._\-\w]*)$#;
|
||||
push @return_disks, $1 if ($1);
|
||||
}
|
||||
return @return_disks;
|
||||
}
|
||||
|
||||
|
||||
sub get_disk_name {
|
||||
my ($dev) = @_;
|
||||
my $disk_name = &exec_cb_script("get_device_name", $dev);
|
||||
return $disk_name;
|
||||
}
|
||||
|
||||
|
||||
# return the value of a configuration setting (timeout, language, ip, ...)
|
||||
# Parameter: setting_name
|
||||
sub get_cbox_config {
|
||||
my ($setting) = @_;
|
||||
# tell the exec function, that we want a scalar instead of an array
|
||||
my $scalar = &exec_cb_script("get_config",$setting);
|
||||
return $scalar;
|
||||
}
|
||||
|
||||
|
||||
sub render {
|
||||
my $pagefile = "$HTML_TEMPLATE_DIR/main.cs";
|
||||
print "Content-Type: text/html\n\n";
|
||||
|
||||
my $cs = ClearSilver::CS->new($pagedata);
|
||||
$cs->parseFile($pagefile);
|
||||
|
||||
print $cs->render();
|
||||
}
|
||||
|
||||
|
||||
# mount an encrypted volume
|
||||
# Parameter: device password
|
||||
sub mount_vol {
|
||||
my ($device, $pw) = @_;
|
||||
|
||||
if (&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning', 'IsMounted');
|
||||
} else {
|
||||
if ($pw eq '') {
|
||||
&exec_cb_script("crypto-up", $device);
|
||||
} else {
|
||||
open(PW_INPUT, "| $CB_SCRIPT crypto-up $device");
|
||||
print PW_INPUT $pw;
|
||||
close(PW_INPUT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# unmount a volume
|
||||
# Parameter: device
|
||||
sub umount_vol {
|
||||
my ($device) = @_;
|
||||
if (&check_mounted($device)) {
|
||||
system($CB_SCRIPT, "crypto-down",$device);
|
||||
} else {
|
||||
$pagedata->setValue('Data.Warning', 'NotMounted');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Parameter: device passphrase
|
||||
# ignore passphrase (or leave it empty) to create a plaintext volume
|
||||
sub volume_init {
|
||||
my ($device, $crypto_pw) = @_;
|
||||
my $result;
|
||||
|
||||
# only for encrypted volumes:
|
||||
# write passphrase to a file - necessary as perl in secured mode does not allow
|
||||
# the 'open(FH, "|/bin/prog ....")' call because of possible shell expansion - stupid 'open' :(
|
||||
if ($crypto_pw) {
|
||||
my ($fh, $temp_file);
|
||||
# generate a temporary filename (as suggested by the Perl Cookbook)
|
||||
do { $temp_file = POSIX::tmpnam() }
|
||||
# TODO: reduce the file mask to the minimum - maybe 0600 would be a good choice
|
||||
until $fh = IO::File->new($temp_file, O_RDWR|O_CREAT|O_EXCL);
|
||||
close $fh;
|
||||
unless (open(TMP, ">$temp_file")) {
|
||||
&debug_msg(DEBUG_ERROR, "could not open a temporary file");
|
||||
return (1==0);
|
||||
}
|
||||
print TMP $crypto_pw;
|
||||
close TMP;
|
||||
$result = &exec_cb_script("device_init", $device, $temp_file);
|
||||
unlink ($temp_file) if (-e $temp_file);
|
||||
} else {
|
||||
$result = &exec_cb_script("device_init", $device);
|
||||
}
|
||||
# just to be sure, that the file does not get left behind
|
||||
# usually the script should overwrite and remove it
|
||||
return defined($result);
|
||||
}
|
||||
|
||||
|
||||
sub box_purge {
|
||||
&exec_cb_script("box-purge");
|
||||
}
|
||||
|
||||
|
||||
sub system_poweroff {
|
||||
&exec_cb_script("poweroff");
|
||||
}
|
||||
|
||||
|
||||
sub system_reboot {
|
||||
&exec_cb_script("reboot");
|
||||
}
|
||||
|
||||
|
||||
sub validate_ip {
|
||||
my $ip = shift;
|
||||
my @octets = split /\./, $ip;
|
||||
return 0 if ($#octets == 4);
|
||||
# check for values and non-digits
|
||||
return 0 if (($octets[0] <= 0) || ($octets[0] >= 255) || ($octets[0] =~ /\D/));
|
||||
return 0 if (($octets[1] < 0) || ($octets[1] >= 255) || ($octets[1] =~ /\D/));
|
||||
return 0 if (($octets[2] < 0) || ($octets[2] >= 255) || ($octets[2] =~ /\D/));
|
||||
return 0 if (($octets[3] <= 0) || ($octets[3] >= 255) || ($octets[3] =~ /\D/));
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
sub validate_timeout {
|
||||
my $timeout = shift;
|
||||
return 0 if ($timeout =~ /\D/);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
# check for a valid interface language
|
||||
sub validate_language {
|
||||
my $language = shift;
|
||||
# check for non-alphanumeric character
|
||||
return 0 if ($language =~ /\W/);
|
||||
return 0 if ($language eq "");
|
||||
return 0 if ( ! -e "$LANGUAGE_DIR/$language" . '.hdf');
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
# check for a valid documentation language
|
||||
sub validate_doc_language {
|
||||
my $language = shift;
|
||||
# check for non-alphanumeric character
|
||||
return 0 if ($language =~ /\W/);
|
||||
return 0 if ($language eq "");
|
||||
return 0 if ( ! -e "$DOC_DIR/$language");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
################### main #########################
|
||||
|
||||
|
||||
$pagedata = load_hdf();
|
||||
my $current_admin_pw;
|
||||
|
||||
my $action = $query->param('action');
|
||||
$action =~ m#^([\w\._\-]*)$#;
|
||||
$action = ($1)? $1 : '';
|
||||
|
||||
my $device = $query->param('device');
|
||||
$device =~ m#^([/_\-\w\.]*)$#;
|
||||
$device = ($1)? $1 : '';
|
||||
|
||||
# BEWARE: there are two kinds of actions:
|
||||
# * some require a harddisk
|
||||
# * some do not require a harddisk
|
||||
# take care, that you put a new action into the appropriate block below
|
||||
|
||||
# first: check for ssl!
|
||||
if ( ! &check_ssl()) {
|
||||
$pagedata->setValue('Data.Error', 'NoSSL');
|
||||
# remove port number from HTTP_HOST
|
||||
my $hostname = $ENV{'HTTP_HOST'};
|
||||
$hostname =~ s/:[0-9]*//;
|
||||
$pagedata->setValue('Data.Redirect.URL', "https://" . $hostname . $ENV{'SCRIPT_NAME'});
|
||||
$pagedata->setValue('Data.Redirect.Delay', "3");
|
||||
} elsif ($query->param('action')) {
|
||||
#--------------------------------------------------------------#
|
||||
# here you may define all cases that do not require a harddisk #
|
||||
# put all other cases below the harddisk check #
|
||||
#--------------------------------------------------------------#
|
||||
#################### show_log #######################
|
||||
if ($action eq 'show_log') {
|
||||
$pagedata->setValue('Data.Action', 'show_log');
|
||||
##################### doc ############################
|
||||
} elsif ($action eq 'doc') {
|
||||
if ($query->param('page')) {
|
||||
$pagedata->setValue('Data.Doc.Page', $query->param('page'));
|
||||
$pagedata->setValue('Data.Action', 'show_doc');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Doc.Page', 'CryptoBoxUser');
|
||||
$pagedata->setValue('Data.Action', 'show_doc');
|
||||
}
|
||||
##################### poweroff ######################
|
||||
} elsif ($action eq 'system_ask') {
|
||||
$pagedata->setValue('Data.Action', 'form_system');
|
||||
##################### reboot ########################
|
||||
} elsif ($action eq 'shutdown_do') {
|
||||
if ($query->param('type') eq 'reboot') {
|
||||
&system_reboot();
|
||||
$pagedata->setValue('Data.Success', 'ReBoot');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "180");
|
||||
} else {
|
||||
&system_poweroff();
|
||||
$pagedata->setValue('Data.Success', 'PowerOff');
|
||||
}
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
##################### check for a harddisk ##########################
|
||||
# catch this error, to prevent all following actions from execution #
|
||||
#####################################################################
|
||||
} elsif ( ! &is_harddisk_available()) {
|
||||
$pagedata->setValue('Data.Error', 'NoHardDisk');
|
||||
#-------------------------------------------------------#
|
||||
# here you may define all cases that require a harddisk #
|
||||
#-------------------------------------------------------#
|
||||
################ umount_do #######################
|
||||
} elsif ($action eq 'umount_do') {
|
||||
if ($device eq '') {
|
||||
&debug_msg(DEBUG_INFO, "invalid device: " . $query->param('device'));
|
||||
$pagedata->setValue('Data.Warning', 'InvalidDevice');
|
||||
$pagedata->setValue('Data.Action', 'emptu');
|
||||
} elsif ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'form_config');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "30");
|
||||
} elsif ( ! &check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning', 'NotMounted');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
# unmounten
|
||||
&umount_vol($device);
|
||||
if (&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning', 'UmountFailed');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
#$pagedata->setValue('Data.Success', 'UmountDone');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
}
|
||||
}
|
||||
################ mount_do ########################
|
||||
} elsif ($action eq 'mount_do') {
|
||||
my $is_encrypted = &check_device_encryption($device) if ($device ne '');
|
||||
if ($device eq '') {
|
||||
&debug_msg(DEBUG_INFO, "invalid device: " . $query->param('device'));
|
||||
$pagedata->setValue('Data.Warning', 'InvalidDevice');
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
} elsif ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'form_config');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "30");
|
||||
} elsif (&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning', 'IsMounted');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} elsif ($is_encrypted && ($query->param('crypto_password') eq '')) {
|
||||
# leeres Passwort
|
||||
$pagedata->setValue('Data.Warning', 'EmptyCryptoPassword');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
# mounten
|
||||
if ($is_encrypted) {
|
||||
&mount_vol($device, $query->param('crypto_password'));
|
||||
} else {
|
||||
&mount_vol($device);
|
||||
}
|
||||
if (!&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning', 'MountFailed');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
#$pagedata->setValue('Data.Success', 'MountDone');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
}
|
||||
}
|
||||
################## mount_ask #######################
|
||||
} elsif ($action eq 'mount_ask') {
|
||||
if ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'form_config');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "30");
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'form_mount');
|
||||
}
|
||||
################# umount_ask ########################
|
||||
} elsif ($action eq 'umount_ask') {
|
||||
if ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'form_umount');
|
||||
}
|
||||
################## init_ask #########################
|
||||
} elsif ($action eq 'init_ask') {
|
||||
if (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
} elsif (&check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'AlreadyConfigured');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
}
|
||||
#################### init_do ########################
|
||||
} elsif ($action eq 'init_do') {
|
||||
$current_admin_pw = &get_cbox_config("admin_pw");
|
||||
if ($current_admin_pw ne '' && $current_admin_pw ne $query->param('current_admin_password')) {
|
||||
$pagedata->setValue('Data.Warning', 'WrongAdminPassword');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif ($query->param('admin_password') ne $query->param('admin_password2')) {
|
||||
# different admin-passwords
|
||||
$pagedata->setValue('Data.Warning', 'DifferentAdminPasswords');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif ($query->param('crypto_password') ne $query->param('crypto_password2')) {
|
||||
# different crypto-passwords
|
||||
$pagedata->setValue('Data.Warning', 'DifferentCryptoPasswords');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif ($query->param('crypto_password') eq '') {
|
||||
# empty password
|
||||
$pagedata->setValue('Data.Warning', 'EmptyCryptoPassword');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif ($query->param('confirm') ne $pagedata->getValue('Lang.Text.ConfirmInit','')) {
|
||||
# wrong confirm string
|
||||
$pagedata->setValue('Data.Warning', 'InitNotConfirmed');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} else {
|
||||
if (&volume_init($query->param('crypto_password'),$query->param('admin_password'))) {
|
||||
#$pagedata->setValue('Data.Success', 'InitRunning');
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Error', 'InitFailed');
|
||||
}
|
||||
}
|
||||
#################### config_ask ######################
|
||||
} elsif ($action eq 'config_ask') {
|
||||
if ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
}
|
||||
#################### config_do #######################
|
||||
} elsif ($action eq 'config_do') {
|
||||
my $query_language = $query->param('language');
|
||||
$query_language =~ m/^(\w+)$/; $query_language = $1;
|
||||
my $query_timeout = $query->param('timeout');
|
||||
$query_timeout =~ m/^(\d+)$/; $query_timeout = $1;
|
||||
if ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} else {
|
||||
$current_admin_pw = &get_cbox_config("admin_pw");
|
||||
if ($current_admin_pw ne '' && $current_admin_pw ne $query->param('current_admin_password')) {
|
||||
$pagedata->setValue('Data.Warning', 'WrongAdminPassword');
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
} elsif ( ! &validate_language($query_language)) {
|
||||
$pagedata->setValue('Data.Warning', 'InvalidLanguage');
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
} elsif ( ! &validate_timeout($query_timeout)) {
|
||||
$pagedata->setValue('Data.Warning', 'InvalidTimeOut');
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
} else {
|
||||
system($CB_SCRIPT, "set_config", "language", $query_language);
|
||||
&load_selected_language($pagedata);
|
||||
system($CB_SCRIPT, "set_config", "timeout", $query_timeout);
|
||||
# check, if the ip was reconfigured
|
||||
# TODO: IP stuff should be moved to the live-cd stuff
|
||||
if (defined($query->param('ip')) && ($query->param('ip') ne &get_cbox_config("ip"))) {
|
||||
# set the new value
|
||||
system($CB_SCRIPT, "set_config", "ip", $query->param('ip'));
|
||||
# redirect to the new address
|
||||
$pagedata->setValue('Data.Redirect.URL', "https://" . $query->param('ip') . $ENV{'SCRIPT_NAME'});
|
||||
$pagedata->setValue('Data.Redirect.Delay', "5");
|
||||
# display a warning for the redirection
|
||||
$pagedata->setValue('Data.Warning', 'IPAddressChanged');
|
||||
}
|
||||
# check for success
|
||||
if (defined($query->param('timeout'))
|
||||
&& (&get_cbox_config("timeout") ne $query->param('timeout'))) {
|
||||
$pagedata->setValue('Data.Warning', 'ConfigTimeOutFailed');
|
||||
} elsif (defined($query->param('ip')) &&
|
||||
(&get_cbox_config("ip") ne $query->param('ip'))) {
|
||||
$pagedata->setValue('Data.Warning', 'ConfigIPFailed');
|
||||
} elsif (defined($query->param('language'))
|
||||
&& (&get_cbox_config("language") ne $query->param('language'))) {
|
||||
$pagedata->setValue('Data.Warning', 'ConfigLanguageFailed');
|
||||
} else {
|
||||
#$pagedata->setValue('Data.Success', 'ConfigSaved');
|
||||
}
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "30");
|
||||
}
|
||||
}
|
||||
############## change volume name ###################
|
||||
} elsif ($action eq 'volume_name_set') {
|
||||
my $volume_name = $query->param('volume_name');
|
||||
# remove all special characters which are not white-listed
|
||||
$volume_name =~ s#[^\w \-_\#/\(\)\[\]]##g;
|
||||
# untaint variable
|
||||
$volume_name =~ m#^(.*)$#; $volume_name = $1;
|
||||
if ($device eq '') {
|
||||
&debug_msg(DEBUG_INFO, "invalid device: " . $query->param('device'));
|
||||
$pagedata->setValue('Data.Warning', 'InvalidDevice');
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
} elsif (&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning','VolumeMayNotBeMounted');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} elsif ($volume_name eq '') {
|
||||
$pagedata->setValue('Data.Warning','InvalidVolumeName');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
&exec_cb_script('set_device_name',$device,$volume_name);
|
||||
my $new_volume_name = &exec_cb_script('get_device_name',$device);
|
||||
$pagedata->setValue('Data.Warning','SetVolumeNameFailed') unless ($new_volume_name eq $volume_name);
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
}
|
||||
############ initialize volume (form) ###############
|
||||
} elsif ($action eq 'volume_init_ask') {
|
||||
if ($device eq '') {
|
||||
&debug_msg(DEBUG_INFO, "invalid device: " . $query->param('device'));
|
||||
$pagedata->setValue('Data.Warning', 'InvalidDevice');
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
} elsif (&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning','VolumeMayNotBeMounted');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
$pagedata->setValue('Data.CurrentDisk.InitParams.encrypted',defined($query->param('encryption'))? 1 : 0);
|
||||
$pagedata->setValue('Data.Action', 'form_init_partition');
|
||||
}
|
||||
############### initialize volume ###################
|
||||
} elsif ($action eq 'volume_init_do') {
|
||||
$current_admin_pw = &get_cbox_config("admin_pw");
|
||||
# remember the current "encryption" setting - just in case, we want to emit a warning and
|
||||
# return to the same screen
|
||||
$pagedata->setValue('Data.CurrentDisk.InitParams.encrypted',defined($query->param('encryption'))? 1 : 0);
|
||||
if ($device eq '') {
|
||||
&debug_msg(DEBUG_INFO, "invalid device: " . $query->param('device'));
|
||||
$pagedata->setValue('Data.Warning', 'InvalidDevice');
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
} elsif (&check_mounted($device)) {
|
||||
$pagedata->setValue('Data.Warning','VolumeMayNotBeMounted');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} elsif ($current_admin_pw ne ''
|
||||
&& $current_admin_pw ne $query->param('current_admin_password')) {
|
||||
$pagedata->setValue('Data.Warning', 'WrongAdminPassword');
|
||||
$pagedata->setValue('Data.Action', 'form_init_partition');
|
||||
} elsif (defined($query->param('encryption')) && ($query->param('crypto_password') ne $query->param('crypto_password2'))) {
|
||||
# different crypto-passwords
|
||||
$pagedata->setValue('Data.Warning', 'DifferentCryptoPasswords');
|
||||
$pagedata->setValue('Data.Action', 'form_init_partition');
|
||||
} elsif (defined($query->param('encryption')) && ($query->param('crypto_password') eq '')) {
|
||||
# empty password
|
||||
$pagedata->setValue('Data.Warning', 'EmptyCryptoPassword');
|
||||
$pagedata->setValue('Data.Action', 'form_init_partition');
|
||||
} elsif ($query->param('confirm') ne $pagedata->getValue('Lang.Text.ConfirmInit','')) {
|
||||
# wrong confirm string
|
||||
$pagedata->setValue('Data.Warning', 'InitNotConfirmed');
|
||||
$pagedata->setValue('Data.Action', 'form_init_partition');
|
||||
} else {
|
||||
my $init_result;
|
||||
if (defined($query->param('encryption'))) {
|
||||
$init_result = &volume_init($device,$query->param('crypto_password'));
|
||||
} else {
|
||||
$init_result = &volume_init($device);
|
||||
}
|
||||
if ($init_result) {
|
||||
#$pagedata->setValue('Data.Success', 'InitRunning');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Error', 'InitFailed');
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
}
|
||||
}
|
||||
################## volume info ######################
|
||||
} elsif ($action eq 'show_volume') {
|
||||
if ($device eq '') {
|
||||
&debug_msg(DEBUG_INFO, "invalid device: " . $query->param('device'));
|
||||
$pagedata->setValue('Data.Warning', 'InvalidDevice');
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'show_volume');
|
||||
}
|
||||
#################### status #########################
|
||||
} elsif ($action eq 'show_status') {
|
||||
if ( ! &check_config()) {
|
||||
$pagedata->setValue('Data.Warning', 'NotInitialized');
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
} elsif (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'form_config');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "30");
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "60");
|
||||
}
|
||||
################### box_purge #######################
|
||||
# if we find an existing config partition, then check the adminpw
|
||||
} elsif ($action eq 'do_purge') {
|
||||
if ( &check_config()) {
|
||||
$current_admin_pw = &get_cbox_config("admin_pw");
|
||||
if ($current_admin_pw ne '' && $current_admin_pw ne $query->param('current_admin_password')) {
|
||||
$pagedata->setValue('Data.Warning', 'WrongAdminPassword');
|
||||
$pagedata->setValue('Data.Action', 'form_config');
|
||||
} else {
|
||||
&box_purge;
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
}
|
||||
}
|
||||
################### unknown #########################
|
||||
} else {
|
||||
$pagedata->setValue('Data.Error', 'UnknownAction');
|
||||
}
|
||||
#################### default action ##########################
|
||||
# check for a harddisk again, as this check was skipped
|
||||
# because there was no action defined
|
||||
} elsif ( ! &is_harddisk_available()) {
|
||||
$pagedata->setValue('Data.Error', 'NoHardDisk');
|
||||
} else {
|
||||
if (&check_init_running()) {
|
||||
$pagedata->setValue('Data.Warning', 'InitNotFinished');
|
||||
$pagedata->setValue('Data.Action', 'empty');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'form_config');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "60");
|
||||
} elsif (&check_config()) {
|
||||
$pagedata->setValue('Data.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Action', 'show_status');
|
||||
$pagedata->setValue('Data.Redirect.Delay', "60");
|
||||
} else {
|
||||
$pagedata->setValue('Data.Action', 'form_init');
|
||||
}
|
||||
}
|
||||
|
||||
# check state of the cryptobox
|
||||
$pagedata->setValue('Data.Status.Config', &check_config() ? 1 : 0);
|
||||
$pagedata->setValue('Data.Status.InitRunning', &check_init_running() ? 1 : 0);
|
||||
|
||||
my $output = &get_cbox_config("admin_pw");
|
||||
$pagedata->setValue('Data.Config.AdminPasswordIsSet', 1) if ($output ne '');
|
||||
|
||||
$output = join ("<br/>", &exec_cb_script("diskinfo"));
|
||||
$pagedata->setValue('Data.PartitionInfo',"$output");
|
||||
|
||||
# preset config settings for clearsilver
|
||||
$pagedata->setValue('Data.Config.IP', &get_cbox_config("ip"));
|
||||
$pagedata->setValue('Data.Config.TimeOut', &get_cbox_config("timeout"));
|
||||
$pagedata->setValue('Data.Config.Language', &get_cbox_config("language"));
|
||||
|
||||
# read log and add html linebreaks
|
||||
$output = '';
|
||||
if (-e "$LOG_FILE") {
|
||||
open(LOGFILE, "< $LOG_FILE");
|
||||
while (<LOGFILE>) { $output .= "$_<br/>" }
|
||||
close(LOGFILE);
|
||||
}
|
||||
$pagedata->setValue('Data.Log',"$output");
|
||||
|
||||
$pagedata->setValue('Data.Status.DevelopmentMode', 1) if ($IS_DEVEL);
|
||||
|
||||
# save QUERY_STRING (e.g. for weblang-links)
|
||||
my $querystring = $ENV{'QUERY_STRING'};
|
||||
# remove weblang setting
|
||||
$querystring =~ s/weblang=\w\w&?//;
|
||||
$pagedata->setValue('Data.QueryString', "$querystring") if ($querystring ne '');
|
||||
|
||||
$pagedata->setValue('Data.Version', CRYPTOBOX_VERSION);
|
||||
|
||||
my ($one_disk, $one_name, $isActive, $isEncrypted, $isPlaintext);
|
||||
my $avail_counter = 0; my $active_counter = 0; my $passive_counter = 0;
|
||||
for $one_disk (&get_available_disks()) {
|
||||
$one_name = &get_disk_name($one_disk);
|
||||
$isEncrypted = &check_device_encryption($one_disk);
|
||||
$isPlaintext = &check_device_plaintext($one_disk);
|
||||
$pagedata->setValue("Data.Disks.available.${avail_counter}.device",$one_disk);
|
||||
$pagedata->setValue("Data.Disks.available.${avail_counter}.name",$one_name);
|
||||
$pagedata->setValue("Data.Disks.available.${avail_counter}.encryption", $isEncrypted? 1 : 0);
|
||||
$pagedata->setValue("Data.Disks.available.${avail_counter}.plaintext", $isPlaintext? 1 : 0);
|
||||
$isActive = &check_mounted($one_disk);
|
||||
if ($isActive) {
|
||||
$pagedata->setValue("Data.Disks.available.${avail_counter}.isActive",1);
|
||||
$pagedata->setValue("Data.Disks.active.${active_counter}.device",$one_disk);
|
||||
$pagedata->setValue("Data.Disks.active.${active_counter}.name",$one_name);
|
||||
$pagedata->setValue("Data.Disks.active.${active_counter}.encryption", $isEncrypted? 1 : 0);
|
||||
$pagedata->setValue("Data.Disks.active.${active_counter}.plaintext", $isPlaintext? 1 : 0);
|
||||
$active_counter++;
|
||||
} else {
|
||||
$pagedata->setValue("Data.Disks.available.${avail_counter}.isActive",0);
|
||||
$pagedata->setValue("Data.Disks.passive.${passive_counter}.device",$one_disk);
|
||||
$pagedata->setValue("Data.Disks.passive.${passive_counter}.name",$one_name);
|
||||
$pagedata->setValue("Data.Disks.passive.${passive_counter}.encryption", $isEncrypted? 1 : 0);
|
||||
$pagedata->setValue("Data.Disks.passive.${passive_counter}.plaintext", $isPlaintext? 1 : 0);
|
||||
$passive_counter++;
|
||||
}
|
||||
if ($device eq $one_disk) {
|
||||
$pagedata->setValue('Data.CurrentDisk.device', $one_disk);
|
||||
$pagedata->setValue('Data.CurrentDisk.name', $one_name);
|
||||
$pagedata->setValue('Data.CurrentDisk.active', $isActive? 1 : 0);
|
||||
$pagedata->setValue("Data.CurrentDisk.encryption", $isEncrypted? 1 : 0);
|
||||
$pagedata->setValue("Data.CurrentDisk.plaintext", $isPlaintext? 1 : 0);
|
||||
# retrieve capacity information if the device is mounted
|
||||
if (&check_mounted($device)) {
|
||||
my $cap_info = &exec_cb_script("get_capacity_info",$device);
|
||||
# filter the relevant values (a simple split is not working, as the device name may
|
||||
# contain spaces
|
||||
$cap_info =~ m#^.*\s+([0-9\.,]+\w)\s+([0-9\.,]+\w)\s+([0-9\.,]+\w)\s+([0-9\.,]+\%)\s+#;
|
||||
my ($cap_size, $cap_used, $cap_free, $cap_percent) = ($1, $2, $3, $4);
|
||||
$pagedata->setValue('Data.CurrentDisk.capacity.used', $cap_used);
|
||||
$pagedata->setValue('Data.CurrentDisk.capacity.free', $cap_free);
|
||||
$pagedata->setValue('Data.CurrentDisk.capacity.size', $cap_size);
|
||||
$pagedata->setValue('Data.CurrentDisk.capacity.percent', $cap_percent);
|
||||
}
|
||||
}
|
||||
$avail_counter++;
|
||||
}
|
||||
|
||||
&render();
|
||||
|
||||
close STDOUT;
|
||||
|
||||
exit 0;
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
/* $Id$ */
|
||||
|
||||
// define the location of your cryptobox.pl file in this header file
|
||||
#include "cryptobox_wrapper.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* C wrapper to allow cryptobox to run under a different uid */
|
||||
/* Copyright (C) 02006, senselab, All Rights Reserved */
|
||||
/* See the LICENSE file in this distribution for copyright information */
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
// necessary for mount action of the root-script
|
||||
setreuid(geteuid(), -1);
|
||||
|
||||
argv[0] = EXEC_PATH;
|
||||
execv(EXEC_PATH, argv);
|
||||
|
||||
}
|
|
@ -1,191 +0,0 @@
|
|||
function create_config()
|
||||
# Parameter: device
|
||||
{
|
||||
local device=$1
|
||||
unload_config
|
||||
# create the new configuration filesystem if it is not static
|
||||
if [ "$USE_SEPERATE_CONFIG_PARTITION" != "1" ]
|
||||
then log_msg "Using static configuration ..."
|
||||
else log_msg "Creating config filesystem ..."
|
||||
"$ROOT_PERM_SCRIPT" create_config "$device"
|
||||
log_msg "Mounting config partition ..."
|
||||
"$ROOT_PERM_SCRIPT" mount_config "$device"
|
||||
"$ROOT_PERM_SCRIPT" remount_config rw
|
||||
fi
|
||||
log_msg "Copying configuration defaults ..."
|
||||
cp -a "$CONFIG_DEFAULTS_DIR/." "$CONFIG_DIR"
|
||||
|
||||
log_msg "Copying temporary certificate file to config filesystem ..."
|
||||
log_msg "Setting inital values ..."
|
||||
# beware: config_set_value remounts the config partition read-only
|
||||
config_set_value "ip" "$(get_current_ip)"
|
||||
# create database of readable names
|
||||
config_set_value "names.db" ""
|
||||
# create a marker to recognize a cryptobox partition
|
||||
# this should be the last step, to prevent a half-initialized state
|
||||
config_set_value "$CONFIG_MARKER" "$(date -I)"
|
||||
}
|
||||
|
||||
|
||||
function find_harddisk()
|
||||
# look for the harddisk to be partitioned
|
||||
{
|
||||
local device=$(get_available_disks | head -1)
|
||||
if [ -z "$device" ] ; then
|
||||
log_msg "no valid harddisk for initialisation found!"
|
||||
cat /proc/partitions >>"$LOG_FILE"
|
||||
# do not return with an error, to avoid a failing of the script ('break on error')
|
||||
# the caller of this function should handle an empty return string
|
||||
fi
|
||||
echo -n "$device"
|
||||
}
|
||||
|
||||
|
||||
function load_config()
|
||||
{
|
||||
unload_config
|
||||
local status=0
|
||||
# look for a configuration partition
|
||||
[ "$USE_SEPERATE_CONFIG_PARTITION" = "1" ] && \
|
||||
list_partitions_of_type config | while read part && [ "$status" = 0 ]
|
||||
do log_msg "configuraton found on $part"
|
||||
# error check?
|
||||
"$ROOT_PERM_SCRIPT" mount_config "/dev/$part"
|
||||
status=1
|
||||
done
|
||||
if is_config_active
|
||||
then return 0
|
||||
else log_msg "failed to locate config partition"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function unload_config()
|
||||
{
|
||||
is_config_active || return
|
||||
# only try to unmount, if it is not static (the config of a live-cd is always dynamic)
|
||||
if [ "$USE_SEPERATE_CONFIG_PARTITION" = "1" ]
|
||||
then "$ROOT_PERM_SCRIPT" umount_config
|
||||
else return 0
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# rename to "prepare_cryptobox"
|
||||
function init_cryptobox()
|
||||
# this is only the first part of initialisation that takes no time - good for a smooth web interface
|
||||
{
|
||||
local device=$(find_harddisk)
|
||||
[ -z "$device" ] && log_msg 'No valid harddisk found!' && return 1
|
||||
turn_off_all_crypto
|
||||
unload_config || true
|
||||
log_msg "Partitioning the device ($device) ..."
|
||||
"$ROOT_PERM_SCRIPT" partition_disk "$device" "0,1,L \n,,L\n"
|
||||
log_msg "Initializing config partition on ${device}1 ..."
|
||||
# TODO: this should not be hard-coded
|
||||
create_config "${device}1"
|
||||
}
|
||||
|
||||
|
||||
case "$ACTION" of
|
||||
network-up )
|
||||
if [ "$SKIP_NETWORK_CONFIG" != 1 ]
|
||||
then conf_ip=$(config_get_value "ip")
|
||||
log_msg "Configuring $NET_IFACE for $conf_ip ..."
|
||||
echo "Configuring network interface for $NET_IFACE: $conf_ip"
|
||||
"$IFCONFIG" "$NET_IFACE" "$conf_ip"
|
||||
fi
|
||||
if [ "$EXEC_FIREWALL_RULES" = 1 ]
|
||||
then log_msg "Starting the firewall ..."
|
||||
"$FIREWALL_SCRIPT" start
|
||||
fi
|
||||
if [ "$USE_STUNNEL" = 1 ]
|
||||
then # start stunnel
|
||||
if [ -f "$CERT_FILE" ]
|
||||
then USE_CERT=$CERT_FILE
|
||||
else USE_CERT=$CERT_TEMP
|
||||
$MAKE_CERT_SCRIPT "$CERT_TEMP" >>"$LOG_FILE" 2>&1
|
||||
# TODO: this could be dangerous - right?
|
||||
# this is necessary, to allow www-data to copy the certificate
|
||||
chown "$WEB_USER" "$CERT_TEMP"
|
||||
fi
|
||||
log_msg "Starting stunnel ..."
|
||||
stunnel -p "$USE_CERT" -r localhost:80 -d 443 \
|
||||
|| echo "$USE_CERT not found - not starting stunnel"
|
||||
fi
|
||||
;;
|
||||
network-down )
|
||||
if [ "$EXEC_FIREWALL_RULES" = 1 ]
|
||||
then log_msg "Stopping the firewall ..."
|
||||
"$FIREWALL_SCRIPT" stop
|
||||
fi
|
||||
if [ "$USE_STUNNEL" = 1 ]
|
||||
then log_msg "Stopping stunnel ..."
|
||||
# TODO: what about a pid?
|
||||
killall stunnel 2>/dev/null || true
|
||||
fi
|
||||
if [ "$SKIP_NETWORK_CONFIG" != 1 ]
|
||||
then log_msg "Shutting the network interface down ..."
|
||||
"$IFCONFIG" "$NET_IFACE" down
|
||||
fi
|
||||
;;
|
||||
services-up )
|
||||
# the mount point has to be writeable
|
||||
# this action is called as root - so we are allowed to umount
|
||||
# TODO: do this only for ro-filesystem
|
||||
# TODO: this way of mounting is evil
|
||||
if mountpoint -q "$MNT_PARENT"
|
||||
then true
|
||||
else mount -t tmpfs tmpfs "$MNT_PARENT"
|
||||
fi
|
||||
true
|
||||
;;
|
||||
services-down )
|
||||
# this action is called as root - so we are allowed to umount
|
||||
mountpoint -q "$MNT_PARENT" && umount "$MNT_PARENT"
|
||||
# TODO: we should not depend on samba and thttpd
|
||||
# /etc/init.d/samba stop || true
|
||||
# /etc/init.d/thttpd stop || true
|
||||
true
|
||||
;;
|
||||
is_harddisk_available )
|
||||
[ -z "$(find_harddisk)" ] && exit 1
|
||||
exit 0
|
||||
;;
|
||||
update_ip_address )
|
||||
# reconfigure the network interface to a new IP address
|
||||
# wait for 5 seconds to finish present http requests
|
||||
if [ "$SKIP_NETWORK_CONFIG" != 1 ]
|
||||
then echo -n "sleep 5; \"$ROOT_PERM_SCRIPT\" update_network" | at now
|
||||
fi
|
||||
;;
|
||||
poweroff )
|
||||
log_msg "Turning off the CryptoBox ..."
|
||||
turn_off_all_crypto
|
||||
echo "poweroff" | at now
|
||||
;;
|
||||
reboot )
|
||||
log_msg "Rebooting the CryptoBox ..."
|
||||
turn_off_all_crypto
|
||||
echo "reboot" | at now
|
||||
;;
|
||||
* )
|
||||
echo "Syntax: $(basename $0) ACTION"
|
||||
echo " config-up - scan for configuration partition and mount it"
|
||||
echo " config-down - unmount configuration partition"
|
||||
echo " network-up - enable network interface"
|
||||
echo " network-down - disable network interface"
|
||||
echo " services-up - run some cryptobox specific daemons"
|
||||
echo " services-down - stop some cryptobox specific daemons"
|
||||
echo " update_ip_address - update the network interface after reconfiguration"
|
||||
echo " is_config_mounted - check, if configuration partition is mounted"
|
||||
echo " box-init - initialize cryptobox (ALL data is LOST)"
|
||||
echo " box-init-fg - the first part of initialization"
|
||||
echo " box-init-bg - the last part of initialization (background)"
|
||||
echo " is_harddisk_available - check, if there is a usable harddisk"
|
||||
echo " poweroff - shutdown the cryptobox"
|
||||
echo " reboot - reboot the cryptobox"
|
||||
echo
|
||||
;;
|
||||
esac
|
|
@ -48,6 +48,9 @@ allowedProgs = {
|
|||
"blkid": "/sbin/blkid",
|
||||
}
|
||||
|
||||
## this line is necessary to run unittests - otherwise these tests are too strict
|
||||
# TODO: check this before every release!
|
||||
OVERRIDE_FILECHECK = True
|
||||
|
||||
DEV_TYPES = { "pipe":1, "char":2, "dir":4, "block":6, "file":8, "link":10, "socket":12}
|
||||
EVENT_MARKER = '_event_scripts_'
|
||||
|
@ -55,6 +58,9 @@ EVENT_MARKER = '_event_scripts_'
|
|||
|
||||
def checkIfFileIsSafe(fname):
|
||||
"""check if the file and its parents are only writeable for root"""
|
||||
## the override setting may be turned off temporarily to allow unittests
|
||||
if OVERRIDE_FILECHECK:
|
||||
return True
|
||||
props = os.stat(fname)
|
||||
## check if it is owned by non-root
|
||||
if props.st_uid != 0: return False
|
||||
|
|
|
@ -84,13 +84,7 @@ class CryptoBoxWebserver:
|
|||
sys.stderr.write("Error: the CryptoBox is misconfigured - please fix it!\n")
|
||||
sys.stderr.write("%s\n" % str(errMsg))
|
||||
sys.exit(1)
|
||||
#expose static content:
|
||||
#I currently have no idea how to cleanly extract the stylesheet path from
|
||||
#the config object without an extra cryptobox.core.main.CryptoBoxProps instance.
|
||||
#perhaps put config handling into a separate class in CryptoBox.py?
|
||||
#
|
||||
# the following manual mapping is necessary, as we may not use relative
|
||||
# paths in the config file
|
||||
## expose static content and set options
|
||||
cherrypy.config.update({
|
||||
"global": {
|
||||
"server.socket_port" : int(opts.port),
|
||||
|
|
|
@ -84,5 +84,5 @@ umount = /bin/umount
|
|||
nice = /usr/bin/nice
|
||||
super = /usr/bin/super
|
||||
# this is the "program" name as defined in /etc/super.tab
|
||||
CryptoBoxRootActions = CryptoBoxRootActions
|
||||
CryptoBoxRootActions = CryptoBoxRootActionsLocal
|
||||
|
||||
|
|
|
@ -2,11 +2,26 @@
|
|||
#
|
||||
# run this script _before_ you do a commit and fix errors before uploading
|
||||
#
|
||||
# preparations:
|
||||
# - add the following lines to /etc/super.tab:
|
||||
# :global_options relative_path=y
|
||||
# CryptoBoxRootActionsLocal ./CryptoBoxRootActions cryptobox
|
||||
#
|
||||
|
||||
BASE_DIR=$(cd "$(dirname $0)/.."; pwd)
|
||||
|
||||
export PYTHONPATH=$BASE_DIR/src
|
||||
|
||||
function disable_filecheck()
|
||||
{
|
||||
sed -i "s/^OVERRIDE_FILECHECK = .*$/OVERRIDE_FILECHECK = True/" "$BASE_DIR/bin/CryptoBoxRootActions"
|
||||
}
|
||||
|
||||
function enable_filecheck()
|
||||
{
|
||||
sed -i "s/^OVERRIDE_FILECHECK = .*$/OVERRIDE_FILECHECK = False/" "$BASE_DIR/bin/CryptoBoxRootActions"
|
||||
}
|
||||
|
||||
# check if /dev/loop1 is available - otherwise some tests will fail!
|
||||
if /sbin/losetup /dev/loop1 &>/dev/null || test -e /dev/ubdb
|
||||
then true
|
||||
|
@ -28,6 +43,8 @@ while test $# -gt 0
|
|||
# chdir to 'bin' - all config settings depend on this
|
||||
cd "${BASE_DIR}/bin"
|
||||
|
||||
disable_filecheck
|
||||
|
||||
if test -n "$files"
|
||||
then # do the specified tests
|
||||
for a in $files
|
||||
|
@ -39,3 +56,4 @@ if test -n "$files"
|
|||
done
|
||||
fi
|
||||
|
||||
enable_filecheck
|
||||
|
|
|
@ -9,6 +9,8 @@ BIN_DIR=$(cd "$(dirname $0)"; pwd)
|
|||
|
||||
## add the local python directory to the search path
|
||||
export PYTHONPATH="$BIN_DIR/../src"
|
||||
## disable ssl detection
|
||||
#export HTTPS=1
|
||||
|
||||
## create necessary directories
|
||||
mkdir -p "$BIN_DIR/../ttt/mnt"
|
||||
|
|
11
changelog
11
changelog
|
@ -1,4 +1,13 @@
|
|||
Version 0.3 - 02/15/02007
|
||||
Version 0.3.0.1 - 02/18/02007
|
||||
* fixed broken interface of 'partition' plugin for ie
|
||||
* fixed rendering bug of volume_properties for ie
|
||||
* fixed screen width in a mozilla/ie compatible way
|
||||
* fixed config management of 'plugin_manager' plugin
|
||||
* fixed filtering of log level messages for 'logs' plugin
|
||||
* added some german translations
|
||||
* changed default language to english
|
||||
|
||||
Version 0.3.0 - 02/15/02007
|
||||
* new interface
|
||||
* manage multiple disks
|
||||
* support custom partitioning
|
||||
|
|
|
@ -67,11 +67,10 @@ Stylesheet = cryptobox-misc/cryptobox.css
|
|||
# comma seperated list of available languages for the web interface
|
||||
# the first language is the default
|
||||
# all other languages serve as fallbacks for an incomplete translation
|
||||
# please check the current state of the translation before activating a language
|
||||
# see /usr/share/locale for a list of possible language codes
|
||||
# if a translated string is not available, then the english original is displayed
|
||||
# available languages: cs, da, de, en, es, fi, fr, hu, it, ja, nl, pl, pt, ru, sl, sv
|
||||
Languages = de, en, fr, es, sl
|
||||
# well supported languages: en, de
|
||||
# partly translated: sl
|
||||
Languages = en, de, sl
|
||||
|
||||
|
||||
[Programs]
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
cryptobox (0.3.0.1-1) unstable; urgency=low
|
||||
|
||||
* new upstream release
|
||||
|
||||
-- Lars Kruse <devel@sumpfralle.de> Mon, 18 Dec 2006 09:07:32 +0100
|
||||
|
||||
cryptobox (0.3.0-1) unstable; urgency=low
|
||||
|
||||
* first release of the CryptoBox as a seperate package
|
||||
|
|
|
@ -32,6 +32,8 @@ CONF_FILE=/etc/cryptobox-server/cryptobox.conf
|
|||
[ "$NO_START" = "1" ] && exit 0
|
||||
|
||||
DAEMON=/usr/sbin/CryptoBoxWebserver
|
||||
# default install location is /usr/bin/ - debian installation requires /usr/sbin/
|
||||
test -x "$DAEMON" || DAEMON=/usr/bin/CryptoBoxWebserver
|
||||
PYTHON_EXEC=/usr/bin/python
|
||||
PIDFILE=/var/run/cryptobox-server/webserver.pid
|
||||
DESC="CryptoBox Daemon (webinterface)"
|
||||
|
|
|
@ -59,11 +59,8 @@ install: build
|
|||
mv $(DEB_BUILD_DIR)/usr/bin/CryptoBoxRootActions $(DEB_BUILD_DIR)/usr/sbin/
|
||||
# remove tests
|
||||
rm -r $(CB_PYDIR)/tests
|
||||
# remove duplicate documentation files
|
||||
rm -r $(CB_PYDIR)/doc
|
||||
# move shared files
|
||||
mv $(CB_PYDIR)/share/* $(DEB_BUILD_DIR)/usr/share/cryptobox-server/
|
||||
rmdir $(CB_PYDIR)/share
|
||||
# remove doc directory (installed by debian scripts anyway)
|
||||
rm -r $(DEB_BUILD_DIR)/usr/share/doc/cryptobox-server
|
||||
# install lintian override file: for multiple dependency caused by {python:Depends}
|
||||
install -D -m 644 debian/cryptobox-server.lintian \
|
||||
$(DEB_BUILD_DIR)/usr/share/lintian/overrides/cryptobox-server
|
||||
|
|
|
@ -21,6 +21,44 @@
|
|||
inkscape:export-ydpi="76.669998">
|
||||
<defs
|
||||
id="defs12525">
|
||||
<linearGradient
|
||||
id="linearGradient2884">
|
||||
<stop
|
||||
id="stop2886"
|
||||
offset="0"
|
||||
style="stop-color:#e0e0a0;stop-opacity:0.5411765;" />
|
||||
<stop
|
||||
style="stop-color:#e0e0a0;stop-opacity:0.84753364;"
|
||||
offset="0.16"
|
||||
id="stop2888" />
|
||||
<stop
|
||||
id="stop2890"
|
||||
offset="0.50039214"
|
||||
style="stop-color:#e0e0a0;stop-opacity:0.68235296;" />
|
||||
<stop
|
||||
style="stop-color:#e0e0a0;stop-opacity:0.29803923;"
|
||||
offset="1"
|
||||
id="stop2892" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2768">
|
||||
<stop
|
||||
style="stop-color:#fdee9a;stop-opacity:0.54054052;"
|
||||
offset="0"
|
||||
id="stop2770" />
|
||||
<stop
|
||||
id="stop5759"
|
||||
offset="0.16"
|
||||
style="stop-color:#fdee9a;stop-opacity:0.9054054;" />
|
||||
<stop
|
||||
style="stop-color:#fdee9a;stop-opacity:0.68018019;"
|
||||
offset="0.50039214"
|
||||
id="stop5761" />
|
||||
<stop
|
||||
id="stop4870"
|
||||
offset="1"
|
||||
style="stop-color:#fdee9a;stop-opacity:0.2972973;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient6418">
|
||||
<stop
|
||||
|
@ -324,6 +362,26 @@
|
|||
y1="815.78918"
|
||||
x2="-463.87494"
|
||||
y2="836.25873" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2768"
|
||||
id="linearGradient5757"
|
||||
x1="-2291.9741"
|
||||
y1="1645.2468"
|
||||
x2="-1303.7869"
|
||||
y2="2159.5962"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,1.5,0,-894.994)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2884"
|
||||
id="linearGradient1997"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(1898.208,137.3085)"
|
||||
x1="-2291.9741"
|
||||
y1="1645.2468"
|
||||
x2="-1303.7869"
|
||||
y2="2159.5962" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
|
@ -332,13 +390,13 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.38983435"
|
||||
inkscape:cx="843.76306"
|
||||
inkscape:cy="741.45354"
|
||||
inkscape:zoom="0.19270493"
|
||||
inkscape:cx="-616.47894"
|
||||
inkscape:cy="-379.45036"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="1024"
|
||||
inkscape:window-height="693"
|
||||
inkscape:window-width="1014"
|
||||
inkscape:window-height="688"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="26" />
|
||||
<metadata
|
||||
|
@ -509,15 +567,15 @@
|
|||
xml:space="preserve"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
|
||||
x="-2363.8096"
|
||||
y="1595.5544"
|
||||
y="1569.5544"
|
||||
id="text5498"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5500"
|
||||
x="-2363.8096"
|
||||
y="1595.5544">volume_property_frame</tspan><tspan
|
||||
y="1569.5544">volume_property_frame</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="-2363.8096"
|
||||
y="1645.5544"
|
||||
y="1619.5544"
|
||||
id="tspan5502">1800x1600</tspan></text>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
|
@ -655,5 +713,53 @@
|
|||
inkscape:export-filename="/home/lars/subversion/cryptobox/trunk/www-data/register_passive2.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient5757);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1872"
|
||||
width="1600"
|
||||
height="600"
|
||||
x="-2428.3655"
|
||||
y="1681.9889"
|
||||
inkscape:export-filename="/home/lars/subversion/cryptobox/trunk/www-data/help_background.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
|
||||
x="-2363.4165"
|
||||
y="2338.6685"
|
||||
id="text3090"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3092"
|
||||
x="-2363.4165"
|
||||
y="2338.6685">help_background</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="-2363.4165"
|
||||
y="2388.6685"
|
||||
id="tspan3094">1600x600</tspan></text>
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient1997);fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1995"
|
||||
width="1600"
|
||||
height="400"
|
||||
x="-530.15741"
|
||||
y="1855.297"
|
||||
inkscape:export-filename="/home/lars/subversion/cryptobox/trunk/www-data/environment_warning_background.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-size:40px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
|
||||
x="-482.99741"
|
||||
y="2318.8374"
|
||||
id="text2894"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan2896"
|
||||
x="-482.99741"
|
||||
y="2318.8374">environment_warning_background</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="-482.99741"
|
||||
y="2368.8374"
|
||||
id="tspan2898">1600x400</tspan></text>
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 27 KiB |
|
@ -1,21 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: sense.lab <devel@senselab.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -57,11 +39,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -69,7 +67,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -105,15 +103,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -151,59 +149,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr "English"
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
|
@ -46,20 +40,36 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr "The CryptoBox is a project of"
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgstr "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr "Volume's name"
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
msgstr "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr "Enable help"
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr "Disable help"
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr "Disk is busy"
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr "This disk is currently busy. Please wait for a moment."
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr "Show all disks"
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
msgid "Invalid access credentials"
|
||||
msgstr "Invalid access credentials"
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgstr "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
msgid "Missing password"
|
||||
|
@ -94,34 +104,24 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr "The device you have chosen is invalid!"
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgstr "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr "The volume is open"
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid ""
|
||||
"This action is not available while the container is active. Please turn it "
|
||||
"off first."
|
||||
msgstr ""
|
||||
"This action is not available while the container is active. Please turn it "
|
||||
"off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr "This action is not available while the volume is active. Please close it first."
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgstr "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr "Close volume"
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
msgid "Invalid request"
|
||||
msgstr "Invalid request"
|
||||
|
||||
#: WarningMessage.InvalidAction.Text
|
||||
msgid ""
|
||||
"Sorry - I do not know how to handle this request. If you think, that this is "
|
||||
"a bug, then you should send the most recent part of the CryptoBox log to "
|
||||
"info@cryptobox.org."
|
||||
msgstr ""
|
||||
"Sorry - I do not know how to handle this request. If you think, that this is "
|
||||
"a bug, then you should send the most recent part of the CryptoBox log to "
|
||||
"info@cryptobox.org."
|
||||
msgid "Sorry - I do not know how to handle this request. If you think, that this is a bug, then you should send the most recent part of the CryptoBox log to info@cryptobox.org."
|
||||
msgstr "Sorry - I do not know how to handle this request. If you think, that this is a bug, then you should send the most recent part of the CryptoBox log to info@cryptobox.org."
|
||||
|
||||
#: WarningMessage.InvalidAction.Link.Text
|
||||
msgid "View log"
|
||||
|
@ -132,22 +132,12 @@ msgid "Something weird happened"
|
|||
msgstr "Something weird happened"
|
||||
|
||||
#: WarningMessage.RuntimeError.Text
|
||||
msgid ""
|
||||
"We (the developer of the CryptoBox) would like to fix this problem for you "
|
||||
"and others. Please send the most recent part of the CryptoBox log to "
|
||||
"info@cryptobox.org. Thanks for your contribution!"
|
||||
msgstr ""
|
||||
"We (the developer of the CryptoBox) would like to fix this problem for you "
|
||||
"and others. Please send the most recent part of the CryptoBox log to "
|
||||
"info@cryptobox.org. Thanks for your contribution!"
|
||||
msgid "We (the developer of the CryptoBox) would like to fix this problem for you and others. Please send the most recent part of the CryptoBox log to info@cryptobox.org. Thanks for your contribution!"
|
||||
msgstr "We (the developer of the CryptoBox) would like to fix this problem for you and others. Please send the most recent part of the CryptoBox log to info@cryptobox.org. Thanks for your contribution!"
|
||||
|
||||
#: EnvironmentWarning.ReadOnlyConfig.Text
|
||||
msgid ""
|
||||
"Read-only setup detected - probably you should create a configuration "
|
||||
"partition."
|
||||
msgstr ""
|
||||
"Read-only setup detected - probably you should create a configuration "
|
||||
"partition."
|
||||
msgid "Read-only setup detected - probably you should create a configuration partition."
|
||||
msgstr "Read-only setup detected - probably you should create a configuration partition."
|
||||
|
||||
#: EnvironmentWarning.ReadOnlyConfig.Link.Text
|
||||
msgid "Initialize partition"
|
||||
|
@ -161,77 +151,65 @@ msgstr "The connection is not encrypted - passwords can be easily intercepted."
|
|||
msgid "Use encrypted connection"
|
||||
msgstr "Use encrypted connection"
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr "Disk is busy"
|
||||
#, fuzzy
|
||||
#~ msgid ""
|
||||
#~ msgstr ""
|
||||
#~ "Project-Id-Version: PACKAGE VERSION\n"
|
||||
#~ "Report-Msgid-Bugs-To: \n"
|
||||
#~ "POT-Creation-Date: 2006-12-17 23:59+0100\n"
|
||||
#~ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
#~ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
#~ "Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
#~ "MIME-Version: 1.0\n"
|
||||
#~ "Content-Type: text/plain; charset=UTF-8\n"
|
||||
#~ "Content-Transfer-Encoding: 8bit\n"
|
||||
#~ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||
#~ "X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr "This disk is currently busy. Please wait for a moment."
|
||||
#~ msgid "English"
|
||||
#~ msgstr "English"
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr "Show all disks"
|
||||
#~ msgid "Container's name"
|
||||
#~ msgstr "Container's name"
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid ""
|
||||
"Sorry - you did not enter the right credentials! (Try user 'admin' and "
|
||||
"password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
"Sorry - you did not enter the right credentials! (Try user 'admin' and "
|
||||
"password 'admin' and change this setting soon.)"
|
||||
#~ msgid "Get help"
|
||||
#~ msgstr "Get help"
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr "Change password now"
|
||||
#~ msgid "Sorry - you are not allowed to do this!"
|
||||
#~ msgstr "Sorry - you are not allowed to do this!"
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr "Volume's name"
|
||||
#~ msgid "The container is mounted"
|
||||
#~ msgstr "The container is mounted"
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid ""
|
||||
"Sorry - you did not enter the right credentials! (Maybe try the default "
|
||||
"setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
"Sorry - you did not enter the right credentials! (Maybe try the default "
|
||||
"setting: username=>'admin' / password=>'admin'.)"
|
||||
#~ msgid ""
|
||||
#~ "This action is not available while the container is active. Please turn "
|
||||
#~ "it off first."
|
||||
#~ msgstr ""
|
||||
#~ "This action is not available while the container is active. Please turn "
|
||||
#~ "it off first."
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr "The CryptoBox is a project by"
|
||||
#~ msgid "Deactivate volume"
|
||||
#~ msgstr "Deactivate volume"
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr "Enable help"
|
||||
#~ msgid ""
|
||||
#~ "Sorry - you did not enter the right credentials! (Try user 'admin' and "
|
||||
#~ "password 'admin' and change this setting soon.)"
|
||||
#~ msgstr ""
|
||||
#~ "Sorry - you did not enter the right credentials! (Try user 'admin' and "
|
||||
#~ "password 'admin' and change this setting soon.)"
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr "Disable help"
|
||||
#~ msgid "Change password now"
|
||||
#~ msgstr "Change password now"
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid ""
|
||||
"Sorry - you did not enter the right credentials! Maybe you should try the "
|
||||
"default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
"Sorry - you did not enter the right credentials! Maybe you should try the "
|
||||
"default setting: username=>'admin' / password=>'admin'."
|
||||
#~ msgid ""
|
||||
#~ "Sorry - you did not enter the right credentials! (Maybe try the default "
|
||||
#~ "setting: username=>'admin' / password=>'admin'.)"
|
||||
#~ msgstr ""
|
||||
#~ "Sorry - you did not enter the right credentials! (Maybe try the default "
|
||||
#~ "setting: username=>'admin' / password=>'admin'.)"
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr "The volume is open"
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid ""
|
||||
"This action is not available while the volume is active. Please close it "
|
||||
"first."
|
||||
msgstr ""
|
||||
"This action is not available while the volume is active. Please close it "
|
||||
"first."
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr "Close volume"
|
||||
#~ msgid "The CryptoBox is a project by"
|
||||
#~ msgstr "The CryptoBox is a project by"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This request is not defined. If you think, this is a bug, get in contact "
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: 2006-11-30 08:49+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -12,10 +12,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr "La CryptoBox"
|
||||
|
@ -57,11 +53,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -69,7 +81,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -105,15 +117,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -151,59 +163,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: 2006-12-11 01:40+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -12,10 +12,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -57,11 +53,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -69,7 +81,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -105,15 +117,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -151,59 +163,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:38+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -13,10 +13,6 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "English"
|
||||
msgstr ""
|
||||
|
||||
#: Title.Top
|
||||
msgid "The CryptoBox"
|
||||
msgstr ""
|
||||
|
@ -58,11 +54,27 @@ msgid "The CryptoBox is a project of"
|
|||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Container's name"
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: Button.HelpForForm
|
||||
msgid "Get help"
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Title
|
||||
|
@ -70,7 +82,7 @@ msgid "Invalid access credentials"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you are not allowed to do this!"
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.EmptyPassword.Title
|
||||
|
@ -106,15 +118,15 @@ msgid "The device you have chosen is invalid!"
|
|||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The container is mounted"
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the container is active. Please turn it off first."
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Deactivate volume"
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.InvalidAction.Title
|
||||
|
@ -152,59 +164,3 @@ msgstr ""
|
|||
#: EnvironmentWarning.NoSSL.Link.Text
|
||||
msgid "Use encrypted connection"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Title
|
||||
msgid "Disk is busy"
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Text
|
||||
msgid "This disk is currently busy. Please wait for a moment."
|
||||
msgstr ""
|
||||
|
||||
#: AdviceMessage.VolumeIsBusy.Link.Text
|
||||
msgid "Show all disks"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Try user 'admin' and password 'admin' and change this setting soon.)"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Link.Text
|
||||
msgid "Change password now"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ContainerName
|
||||
msgid "Volume's name"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! (Maybe try the default setting: username=>'admin' / password=>'admin'.)"
|
||||
msgstr ""
|
||||
|
||||
#: Text.ProjectNote
|
||||
msgid "The CryptoBox is a project by"
|
||||
msgstr ""
|
||||
|
||||
#: Button.EnableHelp
|
||||
msgid "Enable help"
|
||||
msgstr ""
|
||||
|
||||
#: Button.DisableHelp
|
||||
msgid "Disable help"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.AccessDenied.Text
|
||||
msgid "Sorry - you did not enter the right credentials! Maybe you should try the default setting: username=>'admin' / password=>'admin'."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Title
|
||||
msgid "The volume is open"
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Text
|
||||
msgid "This action is not available while the volume is active. Please close it first."
|
||||
msgstr ""
|
||||
|
||||
#: WarningMessage.VolumeMayNotBeMounted.Link.Text
|
||||
msgid "Close volume"
|
||||
msgstr ""
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
debian
|
||||
design
|
||||
stuff
|
||||
bin-perl-old
|
||||
package.exclude
|
||||
|
|
|
@ -1,17 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: sense.lab <devel@senselab.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "Change date and time"
|
||||
msgstr ""
|
||||
|
@ -84,6 +70,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -99,7 +89,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: 2006-12-14 03:43+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -84,6 +84,10 @@ msgstr "November"
|
|||
msgid "December"
|
||||
msgstr "Dezember"
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr "Einstellen der Uhrzeit und des Datums des CryptoBox-Servers."
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr "Datum gesetzt"
|
||||
|
@ -99,7 +103,3 @@ msgstr "Ungültiger Eingabewert"
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr "Es wurde ein ungültiger Wert für das Datum oder die Uhrzeit eingegeben. Bitte versuche es erneut."
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr "Einstellen der Uhrzeit und des Datums des CryptoBox-Servers."
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: Name
|
||||
msgid "Change date and time"
|
||||
|
@ -73,6 +71,10 @@ msgstr "November"
|
|||
msgid "December"
|
||||
msgstr "December"
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr "Change the time and date for the CryptoBox server."
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr "Date changed"
|
||||
|
@ -88,7 +90,3 @@ msgstr "Invalid value"
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr "An invalid value for date or time was supplied. Please try again."
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr "Change the time and date for the CryptoBox server."
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: 2006-12-09 17:00+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -84,6 +84,10 @@ msgstr "November"
|
|||
msgid "December"
|
||||
msgstr "December"
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr "Datum je spremenjen"
|
||||
|
@ -99,7 +103,3 @@ msgstr "Neveljavna vrednost"
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr "Nepravilen vnos datuma ali časa. Prosimo poskusite ponovno."
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -85,6 +85,10 @@ msgstr ""
|
|||
msgid "December"
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
||||
#: SuccessMessage.DateChanged.Title
|
||||
msgid "Date changed"
|
||||
msgstr ""
|
||||
|
@ -100,7 +104,3 @@ msgstr ""
|
|||
#: WarningMessage.InvalidDate.Text
|
||||
msgid "An invalid value for date or time was supplied. Please try again."
|
||||
msgstr ""
|
||||
|
||||
#: Help.ChangeDate
|
||||
msgid "Change the time and date for the CryptoBox server."
|
||||
msgstr ""
|
||||
|
|
|
@ -1,17 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: sense.lab <devel@senselab.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "Disk overview"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: 2006-12-14 03:46+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: Name
|
||||
msgid "Disk overview"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:04+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:50+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -1,17 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: sense.lab <devel@senselab.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "User manual"
|
||||
msgstr ""
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: 2006-12-14 03:47+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: Name
|
||||
msgid "User manual"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: 2006-12-09 16:28+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -1,17 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: sense.lab <devel@senselab.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: utf-8\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Translate Toolkit 0.10.1\n"
|
||||
|
||||
#: Name
|
||||
msgid "Choose interface language"
|
||||
msgstr ""
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -2,7 +2,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: 2006-12-14 03:53+0100\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: Name
|
||||
msgid "Choose interface language"
|
||||
|
@ -14,12 +12,8 @@ msgid "Choose an interface language"
|
|||
msgstr "Choose an interface language"
|
||||
|
||||
#: Help.Select
|
||||
msgid ""
|
||||
"Choose your preferred interface language. This setting will be kept for your "
|
||||
"browsing session."
|
||||
msgstr ""
|
||||
"Choose your preferred interface language. This setting will be kept for your "
|
||||
"browsing session."
|
||||
msgid "Choose your preferred interface language. This setting will be kept for your browsing session."
|
||||
msgstr "Choose your preferred interface language. This setting will be kept for your browsing session."
|
||||
|
||||
#~ msgid "Choose your interface language"
|
||||
#~ msgstr "Choose youur interface language"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
|
@ -3,7 +3,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: CryptoBox-Server 0.3\n"
|
||||
"Report-Msgid-Bugs-To: translate@cryptobox.org\n"
|
||||
"POT-Creation-Date: 2006-11-28 05:03+0100\n"
|
||||
"POT-Creation-Date: 2006-12-18 11:39+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue