forked from I2P_Developers/i2p.i2p
propagate from branch 'i2p.i2p' (head ea4e5cdef1ba51f6eb24828f05dd7ef66d5188ae)
to branch 'i2p.i2p.zzz.android' (head 03199a42adae7400f4627e7391fe3768493fd65f)
This commit is contained in:
16
.tx/config
16
.tx/config
@ -8,6 +8,7 @@ trans.fr = apps/i2ptunnel/locale/messages_fr.po
|
||||
trans.nl = apps/i2ptunnel/locale/messages_nl.po
|
||||
trans.ru = apps/i2ptunnel/locale/messages_ru.po
|
||||
trans.sv_SE = apps/i2ptunnel/locale/messages_sv.po
|
||||
trans.vi = apps/i2ptunnel/locale/messages_vi.po
|
||||
trans.zh_CN = apps/i2ptunnel/locale/messages_zh.po
|
||||
|
||||
[I2P.routerconsole]
|
||||
@ -16,10 +17,14 @@ source_lang = en
|
||||
trans.ar = apps/routerconsole/locale/messages_ar.po
|
||||
trans.de = apps/routerconsole/locale/messages_de.po
|
||||
trans.es = apps/routerconsole/locale/messages_es.po
|
||||
trans.fi = apps/routerconsole/locale/messages_fi.po
|
||||
trans.fr = apps/routerconsole/locale/messages_fr.po
|
||||
trans.it = apps/routerconsole/locale/messages_it.po
|
||||
trans.nl = apps/routerconsole/locale/messages_nl.po
|
||||
trans.pl = apps/routerconsole/locale/messages_pl.po
|
||||
trans.ru = apps/routerconsole/locale/messages_ru.po
|
||||
trans.sv_SE = apps/routerconsole/locale/messages_sv.po
|
||||
trans.vi = apps/routerconsole/locale/messages_vi.po
|
||||
trans.zh_CN = apps/routerconsole/locale/messages_zh.po
|
||||
|
||||
[I2P.i2psnark]
|
||||
@ -29,10 +34,13 @@ trans.ar = apps/i2psnark/locale/messages_ar.po
|
||||
trans.de = apps/i2psnark/locale/messages_de.po
|
||||
trans.es = apps/i2psnark/locale/messages_es.po
|
||||
trans.fr = apps/i2psnark/locale/messages_fr.po
|
||||
trans.it = apps/i2psnark/locale/messages_it.po
|
||||
trans.nl = apps/i2psnark/locale/messages_nl.po
|
||||
trans.pl = apps/i2psnark/locale/messages_pl.po
|
||||
trans.pt = apps/i2psnark/locale/messages_pt.po
|
||||
trans.ru = apps/i2psnark/locale/messages_ru.po
|
||||
trans.sv_SE = apps/i2psnark/locale/messages_sv.po
|
||||
trans.vi = apps/i2psnark/locale/messages_vi.po
|
||||
trans.zh_CN = apps/i2psnark/locale/messages_zh.po
|
||||
|
||||
[I2P.susidns]
|
||||
@ -43,6 +51,7 @@ trans.de = apps/susidns/locale/messages_de.po
|
||||
trans.es = apps/susidns/locale/messages_es.po
|
||||
trans.fr = apps/susidns/locale/messages_fr.po
|
||||
trans.nl = apps/susidns/locale/messages_nl.po
|
||||
trans.pl = apps/susidns/locale/messages_pl.po
|
||||
trans.ru = apps/susidns/locale/messages_ru.po
|
||||
trans.sv_SE = apps/susidns/locale/messages_sv.po
|
||||
trans.zh_CN = apps/susidns/locale/messages_zh.po
|
||||
@ -53,10 +62,14 @@ source_lang = en
|
||||
trans.ar = apps/desktopgui/locale/messages_ar.po
|
||||
trans.de = apps/desktopgui/locale/messages_de.po
|
||||
trans.es = apps/desktopgui/locale/messages_es.po
|
||||
trans.fi = apps/desktopgui/locale/messages_fi.po
|
||||
trans.fr = apps/desktopgui/locale/messages_fr.po
|
||||
trans.it = apps/desktopgui/locale/messages_it.po
|
||||
trans.nl = apps/desktopgui/locale/messages_nl.po
|
||||
trans.pl = apps/desktopgui/locale/messages_pl.po
|
||||
trans.ru = apps/desktopgui/locale/messages_ru.po
|
||||
trans.sv_SE = apps/desktopgui/locale/messages_sv.po
|
||||
trans.vi = apps/desktopgui/locale/messages_vi.po
|
||||
trans.zh_CN = apps/desktopgui/locale/messages_zh.po
|
||||
|
||||
[I2P.susimail]
|
||||
@ -67,6 +80,9 @@ trans.es = apps/susimail/locale/messages_es.po
|
||||
trans.fr = apps/susimail/locale/messages_fr.po
|
||||
trans.nl = apps/susimail/locale/messages_nl.po
|
||||
trans.sv_SE = apps/susimail/locale/messages_sv.po
|
||||
trans.pl = apps/susimail/locale/messages_pl.po
|
||||
trans.vi = apps/susimail/locale/messages_vi.po
|
||||
trans.zh_CN = apps/susimail/locale/messages_zh.po
|
||||
|
||||
[main]
|
||||
host = http://www.transifex.net
|
||||
|
@ -127,8 +127,8 @@ Installer:
|
||||
|
||||
|
||||
|
||||
Wrapper 3.1.1:
|
||||
Copyright (c) 1999, 2004 Tanuki Software
|
||||
Java Service Wrapper Community Edition 32-bit 3.5.9:
|
||||
Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.
|
||||
See licenses/LICENSE-Wrapper.txt
|
||||
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="net.i2p.android.router"
|
||||
android.versionCode="0"
|
||||
android.versionName="0.0.0"
|
||||
android:installLocation="preferExternal"
|
||||
>
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
<!-- 3 = 1.5, 2 = 1.1, 1 = 1.0; would probably work with 1 but don't have a 1.0 SDK to test against -->
|
||||
<!-- 3 required for NDK -->
|
||||
<uses-sdk android:minSdkVersion="3" />
|
||||
|
||||
<application android:label="@string/app_name"
|
||||
android:icon="@drawable/ic_launcher_itoopie" >
|
||||
<service android:name=".service.RouterService"
|
||||
android:label="@string/app_name"
|
||||
android:icon="@drawable/ic_launcher_itoopie" />
|
||||
<activity android:name=".activity.MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:icon="@drawable/ic_launcher_itoopie"
|
||||
android:launchMode="singleTask" >
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
@ -1,58 +0,0 @@
|
||||
These instructions are for a recent Android SDK (1.6 or later)..
|
||||
Should also still work with a 1.5 SDK.
|
||||
The build file is not compatible with the 1.1 SDK any more.
|
||||
These instructions were last updated for SDK Tools Version 11 with
|
||||
SDK Platform-tools Version 5, June 2011.
|
||||
|
||||
#Download the SDK from http://developer.android.com/sdk/index.html
|
||||
#Unzip the android SDK in ../../
|
||||
#So then the android tools will be in ../../android-sdk-linux_86/tools/
|
||||
#
|
||||
# Run the GUI updater, which you must do to get an SDK Platform:
|
||||
../../android-sdk-linux_86/tools/android &
|
||||
|
||||
# now go to the available packages tab, check the box and click refresh,
|
||||
# and download an SDK Platform
|
||||
# Since I2P is configured to run on 1.1 or higher
|
||||
# (API 2) download that one. Otherwise you must change the
|
||||
# target in default.properties from android-2 to andriod-x
|
||||
# where x is the API version.
|
||||
|
||||
# To run the debugger (ddms) you also need to download the
|
||||
# "Android SDK Platform-Tools" package from the GUI updater.
|
||||
|
||||
# create a file local.properties with the following line (without the leading # of course):
|
||||
# sdk.dir=/path/to/your/android-sdk-linux_86
|
||||
# The old property was sdk-location=/path/to/your/android-sdk-linux_86
|
||||
# but it changed in more recent tools.
|
||||
|
||||
# DO NOT create a new project or anything. It's all set up right here for you.
|
||||
|
||||
# Create the android 1.5 (API 3) virtual device
|
||||
# (don't make a custom hardware profile)
|
||||
# A AVD created with the 1.5 SDK will not work with the newer tools
|
||||
../../android-sdk-linux_86/tools/android create avd --name i2p --target 3
|
||||
|
||||
#then run the emulator:
|
||||
../../android-sdk-linux_86/tools/emulator -avd i2p &
|
||||
|
||||
# or to talk to a real phone in debug mode:
|
||||
adb kill-server
|
||||
sudo adb start-server
|
||||
adb devices
|
||||
|
||||
#then wait a couple minutes until the emulator is up
|
||||
#then install the I2P app
|
||||
ant install
|
||||
|
||||
#then run the debugger
|
||||
../../android-sdk-linux_86/tools/ddms &
|
||||
|
||||
#to rebuild and reinstall to emulator or phone:
|
||||
ant reinstall
|
||||
|
||||
# Now click on the I2P icon on your phone!
|
||||
|
||||
#other helpful commands
|
||||
../../android-sdk-linux_86/platform-tools/adb shell
|
||||
../../android-sdk-linux_86/platform-tools/adb pull /some/file/on/emulator some-local-dir/
|
@ -1 +0,0 @@
|
||||
application-package=net.i2p.router
|
@ -1,210 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
- Portions copied and modified from Android SDK
|
||||
- Copyright (c) 2005-2008, The Android Open Source Project
|
||||
- Apache 2.0 license
|
||||
- See ../licenses/LICENSE-Apache2.0.txt
|
||||
-->
|
||||
|
||||
<project name="I2PAndroid" default="help">
|
||||
|
||||
<!-- The local.properties file is created and updated by the 'android' tool.
|
||||
It contain the path to the SDK. It should *NOT* be checked in in Version
|
||||
Control Systems. -->
|
||||
<property file="local.properties"/>
|
||||
|
||||
<!-- The build.properties file can be created by you and is never touched
|
||||
by the 'android' tool. This is the place to change some of the default property values
|
||||
used by the Ant rules.
|
||||
Here are some properties you may want to change/update:
|
||||
|
||||
application-package
|
||||
the name of your application package as defined in the manifest. Used by the
|
||||
'uninstall' rule.
|
||||
source-folder
|
||||
the name of the source folder. Default is 'src'.
|
||||
out-folder
|
||||
the name of the output folder. Default is 'bin'.
|
||||
|
||||
Properties related to the SDK location or the project target should be updated
|
||||
using the 'android' tool with the 'update' action.
|
||||
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems.
|
||||
|
||||
-->
|
||||
<property file="build.properties"/>
|
||||
<!-- set the old name to the new name -->
|
||||
<property name="sdk-location" value="${sdk.dir}" />
|
||||
|
||||
<!-- The default.properties file is created and updated by the 'android' tool, as well
|
||||
as ADT.
|
||||
This file is an integral part of the build system for your application and
|
||||
should be checked in in Version Control Systems. -->
|
||||
<property file="default.properties"/>
|
||||
|
||||
<!-- Custom Android task to deal with the project target, and import the proper rules.
|
||||
This requires ant 1.6.0 or above. -->
|
||||
<path id="android.antlibs">
|
||||
<pathelement path="${sdk-location}/tools/lib/anttasks.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/sdklib.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/androidprefs.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/apkbuilder.jar" />
|
||||
<pathelement path="${sdk-location}/tools/lib/jarutils.jar" />
|
||||
</path>
|
||||
|
||||
<taskdef name="setup"
|
||||
classname="com.android.ant.SetupTask"
|
||||
classpathref="android.antlibs"/>
|
||||
|
||||
<!-- Execute the Android Setup task that will setup some properties specific to the target,
|
||||
and import the rules files.
|
||||
To customize the rules, copy/paste them below the task, and disable import by setting
|
||||
the import attribute to false:
|
||||
<setup import="false" />
|
||||
|
||||
This will ensure that the properties are setup correctly but that your customized
|
||||
targets are used.
|
||||
-->
|
||||
<setup import="true" />
|
||||
|
||||
<echo>Ignore warning about SDK version</echo>
|
||||
<!--
|
||||
================================================================================
|
||||
New I2P rules
|
||||
================================================================================
|
||||
-->
|
||||
|
||||
<!-- overrides of those in main_rules.xml -->
|
||||
|
||||
<target name="-pre-build" depends="copy-i2p-resources, incrementBuild" />
|
||||
|
||||
<target name="-pre-compile" depends="buildrouter" />
|
||||
|
||||
<target name="-post-compile" depends="hackcleanup, jbigi" />
|
||||
|
||||
<!-- new rules -->
|
||||
|
||||
<target name="buildrouter" depends="-dirs" >
|
||||
<!-- build router and core -->
|
||||
<ant dir=".." target="buildrouter" />
|
||||
|
||||
<!-- router -->
|
||||
<copy file="../build/router.jar" todir="${jar.libs.dir}" />
|
||||
|
||||
<!-- core -->
|
||||
|
||||
<!-- org.bouncycastle.crypto already in android
|
||||
but we need a little trickery because our HMac is incompatible...
|
||||
and the libs aren't in the SDK to compile against??? -->
|
||||
<jar destfile="${jar.libs.dir}/crypto.jar" >
|
||||
<zipfileset src="../build/i2p.jar" >
|
||||
<include name="org/bouncycastle/crypto/Digest.class" />
|
||||
<include name="org/bouncycastle/crypto/Mac.class" />
|
||||
<include name="org/bouncycastle/crypto/digests/GeneralDigest.class" />
|
||||
<include name="org/bouncycastle/crypto/digests/MD5Digest.class" />
|
||||
</zipfileset >
|
||||
</jar>
|
||||
|
||||
<!-- lots of unneeded stuff could be deleted here -->
|
||||
<jar destfile="${jar.libs.dir}/i2p.jar" >
|
||||
<zipfileset src="../build/i2p.jar" >
|
||||
<exclude name="net/i2p/util/LogWriter.class" />
|
||||
<exclude name="net/i2p/util/SecureDirectory.class" />
|
||||
<exclude name="net/i2p/util/SecureFile.class" />
|
||||
<exclude name="net/i2p/util/SecureFileOutputStream.class" />
|
||||
<exclude name="org/bouncycastle/crypto/Digest.class" />
|
||||
<exclude name="org/bouncycastle/crypto/Mac.class" />
|
||||
<exclude name="org/bouncycastle/crypto/digests/GeneralDigest.class" />
|
||||
<exclude name="org/bouncycastle/crypto/digests/MD5Digest.class" />
|
||||
</zipfileset >
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<!-- some resources -->
|
||||
<target name="copy-i2p-resources" depends="-dirs" >
|
||||
<copy file="../installer/resources/themes/console/images/i2plogo.png" todir="res/drawable/" />
|
||||
<copy file="../installer/resources/blocklist.txt" tofile="res/raw/blocklist_txt" />
|
||||
</target>
|
||||
|
||||
<target name="hackcleanup">
|
||||
<delete file="${jar.libs.dir}/crypto.jar" />
|
||||
</target>
|
||||
|
||||
<target name="jbigi">
|
||||
<exec executable="sh" osfamily="unix" failonerror="true">
|
||||
<arg value="-c" />
|
||||
<arg value="jni/build.sh" />
|
||||
</exec>
|
||||
<copy file="jni/libjbigi.so" todir="${native.libs.dir}/armeabi" />
|
||||
</target>
|
||||
|
||||
<target name="incrementBuild">
|
||||
<buildnumber file="scripts/build.number" />
|
||||
<exec executable="sh" osfamily="unix" failonerror="true">
|
||||
<arg value="-c" />
|
||||
<arg value="scripts/setversion.sh" />
|
||||
</exec>
|
||||
<!-- this loads my.version.code and my.version.name -->
|
||||
<property file="scripts/version.properties" />
|
||||
</target>
|
||||
|
||||
<!-- install now does both -->
|
||||
<target name="reinstall" depends="install" />
|
||||
|
||||
<target name="distclean" depends="clean">
|
||||
<delete dir="${jar.libs.dir}" verbose="${verbose}" />
|
||||
<delete file="res/drawable/i2plogo.png" verbose="${verbose}"/>
|
||||
<delete file="res/raw/blocklist_txt" verbose="${verbose}" />
|
||||
<delete dir="jni/build/" verbose="${verbose}" />
|
||||
<delete file="jni/libjbigi.so" verbose="${verbose}" />
|
||||
<delete file="scripts/build.number" verbose="${verbose}" />
|
||||
<delete file="scripts/version.properties" verbose="${verbose}" />
|
||||
</target>
|
||||
|
||||
<!--
|
||||
================================================================================
|
||||
From here down copied from SDK tools/ant/main_rules.xml from Tools version 11
|
||||
and then modified
|
||||
================================================================================
|
||||
-->
|
||||
|
||||
<!-- not necessary to copy if setup import="true" -->
|
||||
|
||||
|
||||
<!--
|
||||
override this because the ant task com.android.ant.AaptExecLoopTask has issues:
|
||||
a) it uses version.code which main_rules sets to "" and
|
||||
b) it can't set versionName via the aapt task, have to use the aapt command line
|
||||
-->
|
||||
|
||||
<!-- Puts the project's resources into the output package file
|
||||
This actually can create multiple resource package in case
|
||||
Some custom apk with specific configuration have been
|
||||
declared in default.properties.
|
||||
-->
|
||||
<target name="-package-resources">
|
||||
<echo>Packaging resources</echo>
|
||||
<exec executable="${aapt}" failonerror="true" >
|
||||
<arg value="package" />
|
||||
<arg value="--version-code" />
|
||||
<arg value="${my.version.code}" />
|
||||
<arg value="--version-name" />
|
||||
<arg value="${my.version.name}" />
|
||||
<arg value="-f" />
|
||||
<arg value="-m" />
|
||||
<arg value="-M" />
|
||||
<arg value="AndroidManifest.xml" />
|
||||
<arg value="-I" />
|
||||
<arg value="${android.jar}" />
|
||||
<arg value="-S" />
|
||||
<arg value="${resource.absolute.dir}" />
|
||||
<arg value="-J" />
|
||||
<arg value="${gen.absolute.dir}" />
|
||||
<arg value="-F" />
|
||||
<arg value="${out.absolute.dir}/${resource.package.file.name}" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
</project>
|
@ -1,11 +0,0 @@
|
||||
# This file is automatically generated by Android Tools.
|
||||
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
|
||||
#
|
||||
# This file must be checked in Version Control Systems.
|
||||
#
|
||||
# To customize properties used by the Ant build system use,
|
||||
# "build.properties", and override values to adapt the script to your
|
||||
# project structure.
|
||||
|
||||
# Project target.
|
||||
target=android-8
|
@ -1,83 +0,0 @@
|
||||
#
|
||||
# build GMP and libjbigi.so using the Android tools directly
|
||||
#
|
||||
|
||||
# uncomment to skip
|
||||
# exit 0
|
||||
|
||||
THISDIR=$(realpath $(dirname $(which $0)))
|
||||
cd $THISDIR
|
||||
export NDK=$(realpath ../../../android-ndk-r5b/)
|
||||
|
||||
#
|
||||
# API level, must match that in ../AndroidManifest.xml
|
||||
#
|
||||
LEVEL=3
|
||||
ARCH=arm
|
||||
export SYSROOT=$NDK/platforms/android-$LEVEL/arch-$ARCH/
|
||||
export AABI=arm-linux-androideabi-4.4.3
|
||||
export SYSTEM=linux-x86
|
||||
export BINPREFIX=arm-linux-androideabi-
|
||||
export CC="$NDK/toolchains/$AABI/prebuilt/$SYSTEM/bin/${BINPREFIX}gcc --sysroot=$SYSROOT"
|
||||
|
||||
#echo "CC is $CC"
|
||||
|
||||
JBIGI=$(realpath ../../core/c/jbigi)
|
||||
GMPVER=4.3.2
|
||||
GMP=$JBIGI/gmp-$GMPVER
|
||||
|
||||
if [ ! -d $GMP ]
|
||||
then
|
||||
echo "Source dir for GMP version $GMPVER not found in $GMP"
|
||||
echo "Install it there or change GMPVER and/or GMP in this script"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
LIBFILE=$PWD/libjbigi.so
|
||||
if [ -f $LIBFILE ]
|
||||
then
|
||||
echo "$LIBFILE exists, nothing to do here"
|
||||
echo "If you wish to force a recompile, delete it"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
|
||||
# we must set both build and host, so that the configure
|
||||
# script will set cross_compile=yes, so that it
|
||||
# won't attempt to run the a.out files
|
||||
if [ ! -f config.status ]
|
||||
then
|
||||
echo "Configuring GMP..."
|
||||
$GMP/configure --with-pic --build=x86-none-linux --host=armv5-eabi-linux || exit 1
|
||||
fi
|
||||
|
||||
echo "Building GMP..."
|
||||
make || exit 1
|
||||
|
||||
export JAVA_HOME=$(dirname $(dirname $(realpath $(which javac))))
|
||||
if [ ! -f "$JAVA_HOME/include/jni.h" ]; then
|
||||
echo "Cannot find jni.h! Looked in '$JAVA_HOME/include/jni.h'"
|
||||
echo "Please set JAVA_HOME to a java home that has the JNI"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
COMPILEFLAGS="-fPIC -Wall"
|
||||
INCLUDES="-I. -I$JBIGI/jbigi/include -I$JAVA_HOME/include -I$JAVA_HOME/include/linux"
|
||||
LINKFLAGS="-shared -Wl,-soname,libjbigi.so,--fix-cortex-a8"
|
||||
|
||||
echo "Building jbigi lib that is statically linked to GMP"
|
||||
STATICLIBS=".libs/libgmp.a"
|
||||
|
||||
echo "Compiling C code..."
|
||||
rm -f jbigi.o $LIBFILE
|
||||
echo "$CC -c $COMPILEFLAGS $INCLUDES $JBIGI/jbigi/src/jbigi.c"
|
||||
$CC -c $COMPILEFLAGS $INCLUDES $JBIGI/jbigi/src/jbigi.c || exit 1
|
||||
echo "$CC $LINKFLAGS $INCLUDES $INCLUDELIBS -o $LIBFILE jbigi.o $STATICLIBS"
|
||||
$CC $LINKFLAGS $INCLUDES $INCLUDELIBS -o $LIBFILE jbigi.o $STATICLIBS || exit 1
|
||||
|
||||
ls -l $LIBFILE || exit 1
|
||||
|
||||
|
||||
echo 'Built successfully'
|
Binary file not shown.
Before Width: | Height: | Size: 2.6 KiB |
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
>
|
||||
<TextView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Hello World, I2PAndroid"
|
||||
/>
|
||||
<ImageView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/i2plogo"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
@ -1,8 +0,0 @@
|
||||
logger.defaultLevel=INFO
|
||||
logger.record.net.i2p.router.peerManager.ProfileOrganizer=WARN
|
||||
logger.record.net.i2p.router.transport=WARN
|
||||
logger.record.net.i2p.router.transport.FIFOBandwidthRefiller=ERROR
|
||||
logger.record.net.i2p.stat.Rate=ERROR
|
||||
logger.record.net.i2p.util.LogManager=WARN
|
||||
logger.record.net.i2p.util.LogWriter=WARN
|
||||
logger.record.net.i2p.util.NativeBigInteger=DEBUG
|
@ -1,52 +0,0 @@
|
||||
# initial router.config
|
||||
# temp directory
|
||||
i2p.dir.temp=/data/data/net.i2p.router/files/tmp
|
||||
i2p.dir.pid=/data/data/net.i2p.router/files/tmp
|
||||
# save memory
|
||||
prng.buffers=2
|
||||
router.decayingBloomFilterM=20
|
||||
stat.full=false
|
||||
#
|
||||
# Don't run NTP client, the phone should have a valid time
|
||||
#
|
||||
time.disabled=true
|
||||
#
|
||||
# no I2CP
|
||||
#
|
||||
i2p.dummyClientFacade=true
|
||||
i2cp.disableInterface=true
|
||||
#
|
||||
##### Tunnels
|
||||
#
|
||||
router.inboundPool.backupQuantity=0
|
||||
router.inboundPool.length=2
|
||||
router.inboundPool.lengthVariance=0
|
||||
router.inboundPool.quantity=2
|
||||
router.outboundPool.backupQuantity=0
|
||||
router.outboundPool.length=2
|
||||
router.outboundPool.lengthVariance=0
|
||||
router.outboundPool.quantity=2
|
||||
router.maxParticipatingTunnels=0
|
||||
router.sharePercentage=10
|
||||
#
|
||||
##### Transport
|
||||
#
|
||||
i2np.bandwidth.inboundKBytesPerSecond=100
|
||||
i2np.bandwidth.outboundKBytesPerSecond=30
|
||||
#
|
||||
# NTCP
|
||||
#
|
||||
#i2np.ntcp.enable=false
|
||||
i2np.ntcp.maxConnections=12
|
||||
#
|
||||
# UDP disabled for now
|
||||
#
|
||||
i2np.udp.enable=false
|
||||
i2np.udp.maxConnections=12
|
||||
#
|
||||
# no COMM at all!!!
|
||||
#i2p.vmCommSystem=true
|
||||
#
|
||||
# not on android
|
||||
i2np.upnp.enable=false
|
||||
routerconsole.geoip.enable=false
|
@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
</resources>
|
@ -1,59 +0,0 @@
|
||||
#
|
||||
# Get the version number and fix up AndroidManifest.xml
|
||||
# Public domain
|
||||
#
|
||||
THISDIR=$(realpath $(dirname $(which $0)))
|
||||
cd $THISDIR
|
||||
MANIFEST=../AndroidManifest.xml
|
||||
TMP=AndroidManifest.xml.tmp
|
||||
|
||||
CORE=`grep 'public final static String VERSION' ../../core/java/src/net/i2p/CoreVersion.java | \
|
||||
cut -d '"' -f 2`
|
||||
|
||||
MAJOR=`echo $CORE | cut -d '.' -f 1`
|
||||
MINOR=`echo $CORE | cut -d '.' -f 2`
|
||||
RELEASE=`echo $CORE | cut -d '.' -f 3`
|
||||
|
||||
ROUTERBUILD=$((`grep 'public final static long BUILD' ../../router/java/src/net/i2p/router/RouterVersion.java | \
|
||||
cut -d '=' -f 2 | \
|
||||
cut -d ';' -f 1`))
|
||||
|
||||
ANDROIDBUILD=`grep 'build.number' build.number | \
|
||||
cut -d '=' -f 2`
|
||||
|
||||
SDK=`grep 'android:minSdkVersion' $MANIFEST | \
|
||||
cut -d '"' -f 2`
|
||||
|
||||
# don't let build number get too long
|
||||
VERSIONSTRING="${CORE}-${ROUTERBUILD}_b$(($ANDROIDBUILD % 256))-SDK$SDK"
|
||||
|
||||
#
|
||||
# Android version code is an integer.
|
||||
# So we have 31 bits.
|
||||
# MAJOR 4 bits 0-15
|
||||
# MINOR 8 bits 0-255
|
||||
# RELEASE 8 bits 0-255
|
||||
# ROUTERBUILD 8 bits 0-255
|
||||
# ANDROIDBUILD 3 bits 0-7
|
||||
#
|
||||
# Note that ANDROIDBUILD is modded % 8, it will wrap,
|
||||
# beware of that if you release multiple builds using the
|
||||
# same ROUTERBUILD, or clear it if you update ROUTERBUILD
|
||||
#
|
||||
VERSIONINT=$(( \
|
||||
(($MAJOR % 16) << 27) + \
|
||||
(($MINOR % 256) << 19) + \
|
||||
(($RELEASE % 256) << 11) + \
|
||||
(($ROUTERBUILD % 256) << 3) + \
|
||||
($ANDROIDBUILD % 8) \
|
||||
))
|
||||
|
||||
echo "Android version: '$VERSIONSTRING' (${VERSIONINT})"
|
||||
echo "my.version.name=${VERSIONSTRING}" > version.properties
|
||||
echo "my.version.code=${VERSIONINT}" >> version.properties
|
||||
|
||||
SUBST='s/android.versionCode="[0-9]"/android.versionCode="'${VERSIONINT}'"/'
|
||||
sed "$SUBST" < $MANIFEST > $TMP
|
||||
SUBST='s/android.versionName="[^"]*"/android.versionName="'${VERSIONSTRING}'"/'
|
||||
sed "$SUBST" < $TMP > $MANIFEST
|
||||
rm -f $TMP
|
@ -1,65 +0,0 @@
|
||||
package net.i2p.android.router.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
public abstract class I2PActivityBase extends Activity {
|
||||
protected String _myDir;
|
||||
|
||||
/** Called when the activity is first created. */
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
_myDir = getFilesDir().getAbsolutePath();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRestart()
|
||||
{
|
||||
System.err.println(this + " onRestart called");
|
||||
super.onRestart();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart()
|
||||
{
|
||||
System.err.println(this + " onStart called");
|
||||
super.onStart();
|
||||
Intent intent = new Intent();
|
||||
intent.setClassName(this, "net.i2p.android.router.service.RouterService");
|
||||
System.err.println(this + " calling startService");
|
||||
ComponentName name = startService(intent);
|
||||
System.err.println(this + " got from startService: " + name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume()
|
||||
{
|
||||
System.err.println(this + " onResume called");
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause()
|
||||
{
|
||||
System.err.println(this + " onPause called");
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop()
|
||||
{
|
||||
System.err.println(this + " onStop called");
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy()
|
||||
{
|
||||
System.err.println(this + "onDestroy called");
|
||||
super.onDestroy();
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package net.i2p.android.router.activity;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
|
||||
public class MainActivity extends I2PActivityBase {
|
||||
|
||||
/** Called when the activity is first created. */
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.main);
|
||||
}
|
||||
}
|
@ -1,134 +0,0 @@
|
||||
package net.i2p.android.router.service;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.Resources.NotFoundException;
|
||||
import android.os.Build;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.data.DataHelper;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.RouterLaunch;
|
||||
import net.i2p.util.OrderedProperties;
|
||||
import net.i2p.util.NativeBigInteger;
|
||||
|
||||
class Init {
|
||||
|
||||
private final Context ctx;
|
||||
private final String myDir;
|
||||
|
||||
public Init(Context c) {
|
||||
ctx = c;
|
||||
myDir = c.getFilesDir().getAbsolutePath();
|
||||
}
|
||||
|
||||
void debugStuff() {
|
||||
System.err.println("java.io.tmpdir" + ": " + System.getProperty("java.io.tmpdir"));
|
||||
System.err.println("java.vendor" + ": " + System.getProperty("java.vendor"));
|
||||
System.err.println("java.version" + ": " + System.getProperty("java.version"));
|
||||
System.err.println("os.arch" + ": " + System.getProperty("os.arch"));
|
||||
System.err.println("os.name" + ": " + System.getProperty("os.name"));
|
||||
System.err.println("os.version" + ": " + System.getProperty("os.version"));
|
||||
System.err.println("user.dir" + ": " + System.getProperty("user.dir"));
|
||||
System.err.println("user.home" + ": " + System.getProperty("user.home"));
|
||||
System.err.println("user.name" + ": " + System.getProperty("user.name"));
|
||||
System.err.println("getFilesDir()" + ": " + myDir);
|
||||
System.err.println("Package" + ": " + ctx.getPackageName());
|
||||
System.err.println("Version" + ": " + getOurVersion());
|
||||
System.err.println("MODEL" + ": " + Build.MODEL);
|
||||
System.err.println("DISPLAY" + ": " + Build.DISPLAY);
|
||||
System.err.println("VERSION" + ": " + Build.VERSION.RELEASE);
|
||||
System.err.println("SDK" + ": " + Build.VERSION.SDK);
|
||||
}
|
||||
|
||||
private String getOurVersion() {
|
||||
PackageManager pm = ctx.getPackageManager();
|
||||
String us = ctx.getPackageName();
|
||||
try {
|
||||
PackageInfo pi = pm.getPackageInfo(us, 0);
|
||||
System.err.println("VersionCode" + ": " + pi.versionCode);
|
||||
if (pi.versionName != null)
|
||||
return pi.versionName;
|
||||
} catch (Exception e) {}
|
||||
return "??";
|
||||
}
|
||||
|
||||
void initialize() {
|
||||
mergeResourceToFile(R.raw.router_config, "router.config");
|
||||
mergeResourceToFile(R.raw.logger_config, "logger.config");
|
||||
copyResourceToFile(R.raw.blocklist_txt, "blocklist.txt");
|
||||
|
||||
// Set up the locations so Router and WorkingDir can find them
|
||||
System.setProperty("i2p.dir.base", myDir);
|
||||
System.setProperty("i2p.dir.config", myDir);
|
||||
System.setProperty("wrapper.logfile", myDir + "/wrapper.log");
|
||||
}
|
||||
|
||||
private void copyResourceToFile(int resID, String f) {
|
||||
InputStream in = null;
|
||||
FileOutputStream out = null;
|
||||
|
||||
System.err.println("Creating file " + f + " from resource");
|
||||
byte buf[] = new byte[4096];
|
||||
try {
|
||||
// Context methods
|
||||
in = ctx.getResources().openRawResource(resID);
|
||||
out = ctx.openFileOutput(f, 0);
|
||||
|
||||
int read = 0;
|
||||
while ( (read = in.read(buf)) != -1)
|
||||
out.write(buf, 0, read);
|
||||
|
||||
} catch (IOException ioe) {
|
||||
} catch (Resources.NotFoundException nfe) {
|
||||
} finally {
|
||||
if (in != null) try { in.close(); } catch (IOException ioe) {}
|
||||
if (out != null) try { out.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load defaults from resource,
|
||||
* then add props from file,
|
||||
* and write back
|
||||
*/
|
||||
private void mergeResourceToFile(int resID, String f) {
|
||||
InputStream in = null;
|
||||
InputStream fin = null;
|
||||
|
||||
byte buf[] = new byte[4096];
|
||||
try {
|
||||
Properties props = new OrderedProperties();
|
||||
in = ctx.getResources().openRawResource(resID);
|
||||
DataHelper.loadProps(props, in);
|
||||
|
||||
try {
|
||||
fin = ctx.openFileInput(f);
|
||||
DataHelper.loadProps(props, fin);
|
||||
System.err.println("Merging resource into file " + f);
|
||||
} catch (IOException ioe) {
|
||||
System.err.println("Creating file " + f + " from resource");
|
||||
} finally {
|
||||
if (fin != null) try { fin.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
|
||||
DataHelper.storeProps(props, ctx.getFileStreamPath(f));
|
||||
} catch (IOException ioe) {
|
||||
} catch (Resources.NotFoundException nfe) {
|
||||
} finally {
|
||||
if (in != null) try { in.close(); } catch (IOException ioe) {}
|
||||
if (fin != null) try { fin.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,137 +0,0 @@
|
||||
package net.i2p.android.router.service;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.router.Router;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.RouterLaunch;
|
||||
import net.i2p.util.NativeBigInteger;
|
||||
|
||||
/**
|
||||
* Runs the router
|
||||
*/
|
||||
public class RouterService extends Service {
|
||||
private RouterContext _context;
|
||||
private String _myDir;
|
||||
private int _state;
|
||||
private Thread _starterThread;
|
||||
private StatusBar _statusBar;
|
||||
private final Object _stateLock = new Object();
|
||||
|
||||
private static final int STATE_INIT = 0;
|
||||
private static final int STATE_STARTING = 1;
|
||||
private static final int STATE_RUNNING = 2;
|
||||
private static final int STATE_STOPPING = 3;
|
||||
private static final int STATE_STOPPED = 4;
|
||||
|
||||
private static final String MARKER = "************************************** ";
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
System.err.println(this + " onCreate called" +
|
||||
" Current state is: " + _state);
|
||||
|
||||
_myDir = getFilesDir().getAbsolutePath();
|
||||
Init init = new Init(this);
|
||||
init.debugStuff();
|
||||
init.initialize();
|
||||
_statusBar = new StatusBar(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
System.err.println(this + " onStart called" +
|
||||
"Current state is: " + _state);
|
||||
synchronized (_stateLock) {
|
||||
if (_state != STATE_INIT)
|
||||
return START_STICKY;
|
||||
_statusBar.update("I2P is starting up");
|
||||
_state = STATE_STARTING;
|
||||
_starterThread = new Thread(new Starter());
|
||||
_starterThread.start();
|
||||
}
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
private class Starter implements Runnable {
|
||||
public void run() {
|
||||
System.err.println(MARKER + this + " starter thread");
|
||||
NativeBigInteger.main(null);
|
||||
RouterLaunch.main(null);
|
||||
synchronized (_stateLock) {
|
||||
if (_state != STATE_STARTING)
|
||||
return;
|
||||
_state = STATE_RUNNING;
|
||||
List contexts = RouterContext.listContexts();
|
||||
if ( (contexts == null) || (contexts.isEmpty()) )
|
||||
throw new IllegalStateException("No contexts. This is usually because the router is either starting up or shutting down.");
|
||||
_statusBar.update("I2P is running");
|
||||
_context = (RouterContext)contexts.get(0);
|
||||
_context.router().setKillVMOnEnd(false);
|
||||
_context.addShutdownTask(new ShutdownHook());
|
||||
_starterThread = null;
|
||||
}
|
||||
System.err.println("Router.main finished");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent intent)
|
||||
{
|
||||
System.err.println("onBind called" +
|
||||
"Current state is: " + _state);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
System.err.println("onDestroy called" +
|
||||
"Current state is: " + _state);
|
||||
synchronized (_stateLock) {
|
||||
if (_state == STATE_STARTING)
|
||||
_starterThread.interrupt();
|
||||
if (_state == STATE_STARTING || _state == STATE_RUNNING) {
|
||||
_state = STATE_STOPPING;
|
||||
// should this be in a thread?
|
||||
_statusBar.update("I2P is stopping");
|
||||
Thread stopperThread = new Thread(new Stopper());
|
||||
stopperThread.start();
|
||||
} else if (_state != STATE_STOPPING) {
|
||||
_statusBar.off(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class Stopper implements Runnable {
|
||||
public void run() {
|
||||
System.err.println(MARKER + this + " stopper thread");
|
||||
_context.router().shutdown(Router.EXIT_HARD);
|
||||
_statusBar.off(RouterService.this);
|
||||
System.err.println("shutdown complete");
|
||||
synchronized (_stateLock) {
|
||||
_state = STATE_STOPPED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class ShutdownHook implements Runnable {
|
||||
public void run() {
|
||||
System.err.println(this + " shutdown hook" +
|
||||
"Current state is: " + _state);
|
||||
synchronized (_stateLock) {
|
||||
if (_state == STATE_STARTING || _state == STATE_RUNNING) {
|
||||
_state = STATE_STOPPED;
|
||||
_statusBar.off(RouterService.this);
|
||||
stopSelf();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
package net.i2p.android.router.service;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.activity.MainActivity;
|
||||
|
||||
public class StatusBar {
|
||||
|
||||
private final Context ctx;
|
||||
private final Intent intent;
|
||||
private final Notification notif;
|
||||
private final NotificationManager mgr;
|
||||
|
||||
private static final int ID = 1;
|
||||
|
||||
StatusBar(Context cx) {
|
||||
ctx = cx;
|
||||
String ns = Context.NOTIFICATION_SERVICE;
|
||||
mgr = (NotificationManager)ctx.getSystemService(ns);
|
||||
|
||||
int icon = R.drawable.ic_launcher_itoopie;
|
||||
String text = "Starting I2P";
|
||||
long now = System.currentTimeMillis();
|
||||
notif = new Notification(icon, text, now);
|
||||
notif.flags |= Notification.FLAG_ONGOING_EVENT | Notification.FLAG_NO_CLEAR;
|
||||
intent = new Intent(ctx, MainActivity.class);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
|
||||
public void update(String details) {
|
||||
String title = "I2P Status";
|
||||
PendingIntent pi = PendingIntent.getActivity(ctx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
notif.setLatestEventInfo(ctx, title, details, pi);
|
||||
mgr.notify(ID, notif);
|
||||
}
|
||||
|
||||
public void off(Context ctx) {
|
||||
mgr.cancel(ID);
|
||||
}
|
||||
}
|
@ -1,174 +0,0 @@
|
||||
package net.i2p.util;
|
||||
|
||||
/*
|
||||
* public domain
|
||||
*
|
||||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.util.List;
|
||||
import java.util.Queue;
|
||||
|
||||
/**
|
||||
* bridge to android logging
|
||||
*
|
||||
* @author zzz
|
||||
*/
|
||||
class LogWriter implements Runnable {
|
||||
private final static long CONFIG_READ_ITERVAL = 10 * 1000;
|
||||
private long _lastReadConfig = 0;
|
||||
private long _numBytesInCurrentFile = 0;
|
||||
private OutputStream _currentOut; // = System.out
|
||||
private int _rotationNum = -1;
|
||||
private String _logFilenamePattern;
|
||||
private File _currentFile;
|
||||
private LogManager _manager;
|
||||
|
||||
private boolean _write;
|
||||
|
||||
private LogWriter() { // nop
|
||||
}
|
||||
|
||||
public LogWriter(LogManager manager) {
|
||||
_manager = manager;
|
||||
}
|
||||
|
||||
public void stopWriting() {
|
||||
_write = false;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
_write = true;
|
||||
try {
|
||||
while (_write) {
|
||||
flushRecords();
|
||||
rereadConfig();
|
||||
}
|
||||
System.err.println("Done writing");
|
||||
} catch (Exception e) {
|
||||
System.err.println("Error writing the logs: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void flushRecords() { flushRecords(true); }
|
||||
public void flushRecords(boolean shouldWait) {
|
||||
try {
|
||||
// zero copy, drain the manager queue directly
|
||||
Queue<LogRecord> records = _manager.getQueue();
|
||||
if (records == null) return;
|
||||
if (!records.isEmpty()) {
|
||||
LogRecord rec;
|
||||
while ((rec = records.poll()) != null) {
|
||||
writeRecord(rec);
|
||||
}
|
||||
try {
|
||||
if (_currentOut != null)
|
||||
_currentOut.flush();
|
||||
} catch (IOException ioe) {
|
||||
//if (++_diskFullMessageCount < MAX_DISKFULL_MESSAGES)
|
||||
System.err.println("Error writing the router log - disk full? " + ioe);
|
||||
}
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
} finally {
|
||||
if (shouldWait) {
|
||||
try {
|
||||
synchronized (this) {
|
||||
this.wait(10*1000);
|
||||
}
|
||||
} catch (InterruptedException ie) { // nop
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String currentFile() {
|
||||
return _currentFile != null ? _currentFile.getAbsolutePath() : "uninitialized";
|
||||
}
|
||||
|
||||
private void rereadConfig() {
|
||||
long now = Clock.getInstance().now();
|
||||
if (now - _lastReadConfig > CONFIG_READ_ITERVAL) {
|
||||
_manager.rereadConfig();
|
||||
_lastReadConfig = now;
|
||||
}
|
||||
}
|
||||
|
||||
private void writeRecord(LogRecord rec) {
|
||||
if (rec.getThrowable() == null)
|
||||
log(rec.getPriority(), rec.getSource(), rec.getSourceName(), rec.getThreadName(), rec.getMessage());
|
||||
else
|
||||
log(rec.getPriority(), rec.getSource(), rec.getSourceName(), rec.getThreadName(), rec.getMessage(), rec.getThrowable());
|
||||
}
|
||||
|
||||
public void log(int priority, Class src, String name, String threadName, String msg) {
|
||||
if (src != null) {
|
||||
String tag = src.getName();
|
||||
int dot = tag.lastIndexOf(".");
|
||||
if (dot >= 0)
|
||||
tag = tag.substring(dot + 1);
|
||||
android.util.Log.println(toAndroidLevel(priority),
|
||||
tag,
|
||||
'[' + threadName + "] " + msg);
|
||||
} else if (name != null)
|
||||
android.util.Log.println(toAndroidLevel(priority),
|
||||
name,
|
||||
'[' + threadName + "] " + msg);
|
||||
else
|
||||
android.util.Log.println(toAndroidLevel(priority),
|
||||
threadName, msg);
|
||||
}
|
||||
|
||||
public void log(int priority, Class src, String name, String threadName, String msg, Throwable t) {
|
||||
if (src != null) {
|
||||
String tag = src.getName();
|
||||
int dot = tag.lastIndexOf(".");
|
||||
if (dot >= 0)
|
||||
tag = tag.substring(dot + 1);
|
||||
android.util.Log.println(toAndroidLevel(priority),
|
||||
tag,
|
||||
'[' + threadName + "] " + msg +
|
||||
' ' + t.toString() + ' ' + android.util.Log.getStackTraceString(t));
|
||||
} else if (name != null)
|
||||
android.util.Log.println(toAndroidLevel(priority),
|
||||
name,
|
||||
'[' + threadName + "] " + msg +
|
||||
' ' + t.toString() + ' ' + android.util.Log.getStackTraceString(t));
|
||||
else
|
||||
android.util.Log.println(toAndroidLevel(priority),
|
||||
threadName,
|
||||
msg + ' ' + t.toString() + ' ' + android.util.Log.getStackTraceString(t));
|
||||
}
|
||||
|
||||
private static int toAndroidLevel(int level) {
|
||||
switch (level) {
|
||||
case Log.DEBUG:
|
||||
return android.util.Log.DEBUG;
|
||||
case Log.INFO:
|
||||
return android.util.Log.INFO;
|
||||
case Log.WARN:
|
||||
return android.util.Log.WARN;
|
||||
case Log.ERROR:
|
||||
case Log.CRIT:
|
||||
default:
|
||||
return android.util.Log.ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
private static final String replace(String pattern, int num) {
|
||||
char c[] = pattern.toCharArray();
|
||||
StringBuffer buf = new StringBuffer();
|
||||
for (int i = 0; i < c.length; i++) {
|
||||
if ( (c[i] != '#') && (c[i] != '@') )
|
||||
buf.append(c[i]);
|
||||
else
|
||||
buf.append(num);
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
package net.i2p.util;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* setXXX() not available until API level 9 (Platform Version 2.3)
|
||||
* @since 0.8.7
|
||||
*/
|
||||
public class SecureDirectory extends File {
|
||||
|
||||
public SecureDirectory(String pathname) {
|
||||
super(pathname);
|
||||
}
|
||||
|
||||
public SecureDirectory(String parent, String child) {
|
||||
super(parent, child);
|
||||
}
|
||||
|
||||
public SecureDirectory(File parent, String child) {
|
||||
super(parent, child);
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
package net.i2p.util;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* setXXX() not available until API level 9 (Platform Version 2.3)
|
||||
* @since 0.8.7
|
||||
*/
|
||||
public class SecureFile extends SecureDirectory {
|
||||
|
||||
public SecureFile(String pathname) {
|
||||
super(pathname);
|
||||
}
|
||||
|
||||
public SecureFile(String parent, String child) {
|
||||
super(parent, child);
|
||||
}
|
||||
|
||||
public SecureFile(File parent, String child) {
|
||||
super(parent, child);
|
||||
}
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
package net.i2p.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
|
||||
/**
|
||||
* setXXX() not available until API level 9 (Platform Version 2.3)
|
||||
* @since 0.8.7
|
||||
*/
|
||||
public class SecureFileOutputStream extends FileOutputStream {
|
||||
|
||||
/**
|
||||
* super()
|
||||
*/
|
||||
public SecureFileOutputStream(String file) throws FileNotFoundException {
|
||||
super(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* super()
|
||||
*/
|
||||
public SecureFileOutputStream(String file, boolean append) throws FileNotFoundException {
|
||||
super(file, append);
|
||||
}
|
||||
|
||||
/**
|
||||
* super()
|
||||
*/
|
||||
public SecureFileOutputStream(File file) throws FileNotFoundException {
|
||||
super(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* super()
|
||||
*/
|
||||
public SecureFileOutputStream(File file, boolean append) throws FileNotFoundException {
|
||||
super(file, append);
|
||||
}
|
||||
|
||||
/** @return false */
|
||||
static boolean canSetPerms() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* noop
|
||||
*/
|
||||
public static void setPerms(File f) {
|
||||
}
|
||||
}
|
@ -51,6 +51,8 @@
|
||||
<!-- unused for now, as we oddly ship addressbook as a .war -->
|
||||
<target name="jar" depends="compile, changes">
|
||||
<jar basedir="${build}" destfile="${dist}/${jar}">
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes" value="" />
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="addressbook.Daemon"/>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
@ -67,6 +69,8 @@
|
||||
<copy todir="${dist}/tmp/WEB-INF/classes">
|
||||
<fileset dir="${build}"/>
|
||||
</copy>
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<war basedir="${dist}/tmp" webxml="web.xml" destfile="${dist}/${war}">
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
@ -81,9 +85,17 @@
|
||||
<uptodate property="war.uptodate" targetfile="${dist}/${war}">
|
||||
<srcfiles dir= "." includes="${build}/**/*.class, web.xml"/>
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="war.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="changes">
|
||||
<target name="changes" depends="warUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
|
@ -9,6 +9,7 @@
|
||||
<property name="javadoc" value="javadoc"/>
|
||||
|
||||
<property name="javac.compilerargs" value=""/>
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="${build}"/>
|
||||
@ -29,8 +30,7 @@
|
||||
<compilerarg line="${javac.compilerargs}" />
|
||||
<classpath>
|
||||
<pathelement location="../../core/java/build/i2p.jar" />
|
||||
<!-- doesn't matter if we're not on win32, we just need the java classes, not the platform-dependent code -->
|
||||
<pathelement location="../../installer/lib/wrapper/win32/wrapper.jar" />
|
||||
<pathelement location="../../installer/lib/wrapper/all/wrapper.jar" />
|
||||
<pathelement location="../../router/java/build/router.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
@ -39,17 +39,20 @@
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile">
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<target name="bundle" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<!-- multi-lang is optional -->
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="false" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -61,6 +64,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, bundle, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar basedir="${build}" destfile="${dist}/${jar}">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="net.i2p.desktopgui.Main"/>
|
||||
@ -71,6 +79,20 @@
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="jarUpToDate">
|
||||
<uptodate property="jar.uptodate" targetfile="${dist}/${jar}" >
|
||||
<srcfiles dir= "." includes="build/**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="javadoc">
|
||||
<mkdir dir="${build}" />
|
||||
<mkdir dir="${build}/${javadoc}" />
|
||||
@ -88,15 +110,15 @@
|
||||
</target>
|
||||
|
||||
<target name="poupdate">
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
|
@ -13,6 +13,7 @@
|
||||
CLASS=net.i2p.desktopgui.messages
|
||||
TMPFILE=build/javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
@ -76,15 +77,17 @@ do
|
||||
-o ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - xgettext failed, not updating translations'
|
||||
echo "ERROR - xgettext failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
msgmerge -U --backup=none $i ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgmerge failed, not updating translations'
|
||||
echo "ERROR - msgmerge failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
rm -f ${i}t
|
||||
@ -101,11 +104,13 @@ do
|
||||
msgfmt --java --statistics -r $CLASS -l $LG -d build $i
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgfmt failed, not updating translations'
|
||||
echo "ERROR - msgfmt failed on ${i}, not updating translations"
|
||||
# msgfmt leaves the class file there so the build would work the next time
|
||||
find build -name messages_${LG}.class -exec rm -f {} \;
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f $TMPFILE
|
||||
# todo: return failure
|
||||
exit 0
|
||||
exit $RC
|
||||
|
57
apps/desktopgui/locale/messages_it.po
Normal file
57
apps/desktopgui/locale/messages_it.po
Normal file
@ -0,0 +1,57 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# <jokjok@hotmail.it>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-06-09 17:09+0000\n"
|
||||
"Last-Translator: mkkid <jokjok@hotmail.it>\n"
|
||||
"Language-Team: Italian (http://www.transifex.net/projects/p/I2P/team/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "Avvia I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "Avvio di I2P in corso!"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "Starting"
|
||||
msgstr "Avvio"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "Avvia il Browser I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
msgstr "Configura desktopgui"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Restart I2P"
|
||||
msgstr "Riavvia I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
msgid "Stop I2P"
|
||||
msgstr "Ferma I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:44
|
||||
msgid "Tray icon configuration"
|
||||
msgstr "Configurazione dell'icona nell'Area di notifica"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:47
|
||||
msgid "Should tray icon be enabled?"
|
||||
msgstr "Vuoi che l'icona nell'Area di notifica venga abilitata?"
|
||||
|
||||
|
57
apps/desktopgui/locale/messages_pl.po
Normal file
57
apps/desktopgui/locale/messages_pl.po
Normal file
@ -0,0 +1,57 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# <b790979@klzlk.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-05-25 18:36+0000\n"
|
||||
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pl\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "Uruchom I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "Uruchamianie I2P!"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "Starting"
|
||||
msgstr "Uruchamianie"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "Uruchom Przeglądarke I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
msgstr "Skonfiguruj intrefejs pulpitu (desktopgui)"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Restart I2P"
|
||||
msgstr "Zrestartuj I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
msgid "Stop I2P"
|
||||
msgstr "Zatrzymaj I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:44
|
||||
msgid "Tray icon configuration"
|
||||
msgstr "Konfiguracja ikony zasobnika"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:47
|
||||
msgid "Should tray icon be enabled?"
|
||||
msgstr "Czy ikona zasobnika powinna być aktywna?"
|
||||
|
||||
|
57
apps/desktopgui/locale/messages_vi.po
Normal file
57
apps/desktopgui/locale/messages_vi.po
Normal file
@ -0,0 +1,57 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the desktopgui package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# dich_tran <tran.nathan@gmail.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-04-12 06:13+0000\n"
|
||||
"Last-Translator: dich_tran <tran.nathan@gmail.com>\n"
|
||||
"Language-Team: Vietnamese (http://www.transifex.net/projects/p/I2P/team/vi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: vi\n"
|
||||
"Plural-Forms: nplurals=1; plural=0\n"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:23
|
||||
msgid "Start I2P"
|
||||
msgstr "Khởi động I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "I2P is starting!"
|
||||
msgstr "I2P đang bắt đầu"
|
||||
|
||||
#: src/net/i2p/desktopgui/ExternalTrayManager.java:38
|
||||
msgid "Starting"
|
||||
msgstr "Bắt đầu"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:26
|
||||
msgid "Launch I2P Browser"
|
||||
msgstr "Kích hoạt trình duyệt I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:50
|
||||
msgid "Configure desktopgui"
|
||||
msgstr "Cấu hình giao diện"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:67
|
||||
msgid "Restart I2P"
|
||||
msgstr "Khởi động lại I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/InternalTrayManager.java:85
|
||||
msgid "Stop I2P"
|
||||
msgstr "Ngưng I2P"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:44
|
||||
msgid "Tray icon configuration"
|
||||
msgstr "Cấu hình tray icon"
|
||||
|
||||
#: src/net/i2p/desktopgui/gui/DesktopguiConfigurationFrame.java:47
|
||||
msgid "Should tray icon be enabled?"
|
||||
msgstr "Cần dùng tray icon?"
|
||||
|
||||
|
@ -22,7 +22,10 @@
|
||||
</classpath>
|
||||
</depend>
|
||||
</target>
|
||||
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="compile" depends="depend">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
@ -36,7 +39,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="builddep, compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -48,6 +51,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="builddep, compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./build/i2psnark.jar" basedir="./build/obj" includes="**/*.class" excludes="**/I2PSnarkServlet*.class **/messages_*.class">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="org.klomp.snark.Snark" />
|
||||
@ -63,6 +71,17 @@
|
||||
<uptodate property="jar.uptodate" targetfile="build/i2psnark.jar" >
|
||||
<srcfiles dir= "build/obj" includes="**/*.class" excludes="**/I2PSnarkServlet*.class **/messages_*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<not>
|
||||
<isset property="wjar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<!-- Ideally we would include
|
||||
@ -72,7 +91,9 @@
|
||||
- So we must continue to duplicate everything in the war.
|
||||
<classes dir="./build/obj" includes="**/I2PSnarkServlet*.class" />
|
||||
-->
|
||||
<target name="war" depends="jar, bundle, warUpToDate" unless="war.uptodate" >
|
||||
<target name="war" depends="jar, bundle, warUpToDate, listChangedFiles" unless="war.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<war destfile="../i2psnark.war" webxml="../web.xml" basedir="../" includes="_icons/*" >
|
||||
<!-- include only the web stuff, as of 0.7.12 the router will add i2psnark.jar to the classpath for the war -->
|
||||
<classes dir="./build/obj" includes="**/web/*.class" />
|
||||
@ -93,10 +114,10 @@
|
||||
<target name="bundle" depends="compile">
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<!-- multi-lang is optional -->
|
||||
@ -107,15 +128,15 @@
|
||||
|
||||
<target name="poupdate" depends="builddep, compile">
|
||||
<!-- Update the messages_*.po files. -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
|
@ -12,6 +12,7 @@
|
||||
CLASS=org.klomp.snark.web.messages
|
||||
TMPFILE=build/javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
@ -67,15 +68,17 @@ do
|
||||
-o ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - xgettext failed, not updating translations'
|
||||
echo "ERROR - xgettext failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
msgmerge -U --backup=none $i ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgmerge failed, not updating translations'
|
||||
echo "ERROR - msgmerge failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
rm -f ${i}t
|
||||
@ -92,11 +95,13 @@ do
|
||||
msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgfmt failed, not updating translations'
|
||||
echo "ERROR - msgfmt failed on ${i}, not updating translations"
|
||||
# msgfmt leaves the class file there so the build would work the next time
|
||||
find build/obj -name messages_${LG}.class -exec rm -f {} \;
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f $TMPFILE
|
||||
# todo: return failure
|
||||
exit 0
|
||||
exit $RC
|
||||
|
@ -1038,6 +1038,8 @@ public class I2PSnarkServlet extends Default {
|
||||
client = "Robert";
|
||||
else if (ch.startsWith("LV")) // LVCS 1.0.2?; LVRS 1.0.4
|
||||
client = "Transmission";
|
||||
else if ("LUtU".equals(ch))
|
||||
client = "KTorrent";
|
||||
else
|
||||
client = _("Unknown") + " (" + ch + ')';
|
||||
out.write(client + " <tt>" + peer.toString().substring(5, 9)+ "</tt>");
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2psnark\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-03 18:28+0000\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:22+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@ -128,16 +128,16 @@ msgid "Cannot open \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#. TODO - if the existing one is a magnet, delete it and add the metainfo instead?
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:586
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:661
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:716
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:589
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:665
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:720
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1976
|
||||
#, java-format
|
||||
msgid "Torrent with this info hash is already running: {0}"
|
||||
msgstr ""
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers and DHT only.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:593
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:596
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers "
|
||||
@ -145,136 +145,141 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open trackers are disabled, you should enable open trackers or DHT before starting the torrent.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:598
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:601
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is "
|
||||
"enabled before starting this torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:619
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:622
|
||||
#, java-format
|
||||
msgid "Torrent in \"{0}\" is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:624
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1999
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:627
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1998
|
||||
#, java-format
|
||||
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:635
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:639
|
||||
#, java-format
|
||||
msgid "Torrent added and started: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:637
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:641
|
||||
#, java-format
|
||||
msgid "Torrent added: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:672
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:490
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:676
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:491
|
||||
#, java-format
|
||||
msgid "Fetching {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:675
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:679
|
||||
#, java-format
|
||||
msgid ""
|
||||
"We have no saved peers and no other torrents are running. Fetch of {0} will "
|
||||
"not succeed until you start another torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:679
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:683
|
||||
#, java-format
|
||||
msgid "Adding {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:726
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:749
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1174
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:730
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:753
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1180
|
||||
#, java-format
|
||||
msgid "Failed to copy torrent file to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:972
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#, java-format
|
||||
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:974
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:978
|
||||
#, java-format
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:980
|
||||
#, java-format
|
||||
msgid "No pieces in \"{0}\", deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:978
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:982
|
||||
#, java-format
|
||||
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:980
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:984
|
||||
#, java-format
|
||||
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:981
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:985
|
||||
#, java-format
|
||||
msgid "Limit is {0}B"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:989
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:987
|
||||
#, java-format
|
||||
msgid "Torrent \"{0}\" has no data, deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:995
|
||||
#, java-format
|
||||
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1005
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1011
|
||||
#, java-format
|
||||
msgid "Error: Could not remove the torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1026
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1044
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1032
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1050
|
||||
#, java-format
|
||||
msgid "Torrent stopped: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1065
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1071
|
||||
#, java-format
|
||||
msgid "Torrent removed: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1073
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1079
|
||||
#, java-format
|
||||
msgid "Adding torrents in {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1122
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1128
|
||||
#, java-format
|
||||
msgid "Download finished: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1170
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1176
|
||||
#, java-format
|
||||
msgid "Metainfo received for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1171
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:525
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1177
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:526
|
||||
#, java-format
|
||||
msgid "Starting up torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1225
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1231
|
||||
msgid "Unable to connect to I2P!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1231
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1237
|
||||
#, java-format
|
||||
msgid "Unable to add {0}"
|
||||
msgstr ""
|
||||
@ -365,79 +370,79 @@ msgstr ""
|
||||
msgid "Up Rate"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:365
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
|
||||
msgid "Stop all torrents and the I2P tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:367
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:368
|
||||
msgid "Stop All"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:376
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
|
||||
msgid "Start all torrents and the I2P tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:378
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:379
|
||||
msgid "Start All"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:397
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:398
|
||||
msgid "No torrents loaded."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:402
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
|
||||
msgid "Totals"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:404
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:405
|
||||
#, java-format
|
||||
msgid "1 torrent"
|
||||
msgid_plural "{0} torrents"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:407
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:408
|
||||
#, java-format
|
||||
msgid "1 connected peer"
|
||||
msgid_plural "{0} connected peers"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:496
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:497
|
||||
#, java-format
|
||||
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:544
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:571
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:545
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:572
|
||||
#, java-format
|
||||
msgid "Magnet deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:552
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:577
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:553
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:578
|
||||
#, java-format
|
||||
msgid "Torrent file deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:583
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:593
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594
|
||||
#, java-format
|
||||
msgid "Data file deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:585
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:595
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:596
|
||||
#, java-format
|
||||
msgid "Data file could not be deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:604
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:605
|
||||
#, java-format
|
||||
msgid "Data dir deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:637
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:638
|
||||
msgid "Error creating torrent - you must select a tracker"
|
||||
msgstr ""
|
||||
|
||||
@ -888,22 +893,22 @@ msgstr ""
|
||||
msgid "Torrent fetched from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1989
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988
|
||||
#, java-format
|
||||
msgid "Torrent already running: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1991
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1990
|
||||
#, java-format
|
||||
msgid "Torrent already in the queue: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1997
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1996
|
||||
#, java-format
|
||||
msgid "Torrent at {0} was not valid"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2004
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2003
|
||||
#, java-format
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr ""
|
||||
|
920
apps/i2psnark/locale/messages_it.po
Normal file
920
apps/i2psnark/locale/messages_it.po
Normal file
@ -0,0 +1,920 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the i2psnark package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:22+0000\n"
|
||||
"PO-Revision-Date: 2011-06-11 09:17+0000\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: Italian (http://www.transifex.net/projects/p/I2P/team/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:307
|
||||
#, java-format
|
||||
msgid "Total uploaders limit changed to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:309
|
||||
#, java-format
|
||||
msgid "Minimum total uploaders limit is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:321
|
||||
#, java-format
|
||||
msgid "Up BW limit changed to {0}KBps"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:323
|
||||
#, java-format
|
||||
msgid "Minimum up bandwidth limit is {0}KBps"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:335
|
||||
#, java-format
|
||||
msgid "Startup delay changed to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:386
|
||||
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:393
|
||||
msgid "Disconnecting old I2CP destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:397
|
||||
#, java-format
|
||||
msgid "I2CP settings changed to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:402
|
||||
msgid ""
|
||||
"Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:406
|
||||
msgid "Unable to reconnect with the old settings!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:408
|
||||
msgid "Reconnected on the new I2CP destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:418
|
||||
#, java-format
|
||||
msgid "I2CP listener restarted for \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:429
|
||||
msgid "Enabled autostart"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:431
|
||||
msgid "Disabled autostart"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:437
|
||||
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:439
|
||||
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:447
|
||||
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:454
|
||||
#, java-format
|
||||
msgid "{0} theme loaded, return to main i2psnark page to view."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:461
|
||||
msgid "Configuration unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:471
|
||||
#, java-format
|
||||
msgid "Unable to save the config to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:536
|
||||
msgid "Connecting to I2P"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:539
|
||||
msgid "Error connecting to I2P - check your I2CP settings!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:548
|
||||
#, java-format
|
||||
msgid "Error: Could not add the torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#. catch this here so we don't try do delete it below
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:570
|
||||
#, java-format
|
||||
msgid "Cannot open \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#. TODO - if the existing one is a magnet, delete it and add the metainfo
|
||||
#. instead?
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:589
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:665
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:720
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1976
|
||||
#, java-format
|
||||
msgid "Torrent with this info hash is already running: {0}"
|
||||
msgstr ""
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P
|
||||
#. open trackers and DHT only.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:596
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers "
|
||||
"only."
|
||||
msgstr ""
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open
|
||||
#. trackers are disabled, you should enable open trackers or DHT before
|
||||
#. starting the torrent.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:601
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is "
|
||||
"enabled before starting this torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:622
|
||||
#, java-format
|
||||
msgid "Torrent in \"{0}\" is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:627
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1998
|
||||
#, java-format
|
||||
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:639
|
||||
#, java-format
|
||||
msgid "Torrent added and started: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:641
|
||||
#, java-format
|
||||
msgid "Torrent added: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:676
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:491
|
||||
#, java-format
|
||||
msgid "Fetching {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:679
|
||||
#, java-format
|
||||
msgid ""
|
||||
"We have no saved peers and no other torrents are running. Fetch of {0} will "
|
||||
"not succeed until you start another torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:683
|
||||
#, java-format
|
||||
msgid "Adding {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:730
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:753
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1180
|
||||
#, java-format
|
||||
msgid "Failed to copy torrent file to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#, java-format
|
||||
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:978
|
||||
#, java-format
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:980
|
||||
#, java-format
|
||||
msgid "No pieces in \"{0}\", deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:982
|
||||
#, java-format
|
||||
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:984
|
||||
#, java-format
|
||||
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:985
|
||||
#, java-format
|
||||
msgid "Limit is {0}B"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:987
|
||||
#, java-format
|
||||
msgid "Torrent \"{0}\" has no data, deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:995
|
||||
#, java-format
|
||||
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1011
|
||||
#, java-format
|
||||
msgid "Error: Could not remove the torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1032
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1050
|
||||
#, java-format
|
||||
msgid "Torrent stopped: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1071
|
||||
#, java-format
|
||||
msgid "Torrent removed: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1079
|
||||
#, java-format
|
||||
msgid "Adding torrents in {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1128
|
||||
#, java-format
|
||||
msgid "Download finished: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1176
|
||||
#, java-format
|
||||
msgid "Metainfo received for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1177
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:526
|
||||
#, java-format
|
||||
msgid "Starting up torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1231
|
||||
msgid "Unable to connect to I2P!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1237
|
||||
#, java-format
|
||||
msgid "Unable to add {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205
|
||||
msgid "I2PSnark - Anonymous BitTorrent Client"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:218
|
||||
msgid "Torrents"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:221
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:228
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1028
|
||||
msgid "I2PSnark"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:225
|
||||
msgid "Refresh page"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:230
|
||||
msgid "Forum"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:284
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1719
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:292
|
||||
msgid "Hide Peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:299
|
||||
msgid "Show Peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:306
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1643
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1659
|
||||
msgid "Torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310
|
||||
msgid "Estimated time remaining"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
|
||||
msgid "Downloaded"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:320
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:334
|
||||
msgid "RX"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324
|
||||
msgid "Uploaded"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:327
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:344
|
||||
msgid "TX"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:332
|
||||
msgid "Down Rate"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:337
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
|
||||
msgid "Rate"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342
|
||||
msgid "Up Rate"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
|
||||
msgid "Stop all torrents and the I2P tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:368
|
||||
msgid "Stop All"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
|
||||
msgid "Start all torrents and the I2P tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:379
|
||||
msgid "Start All"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:398
|
||||
msgid "No torrents loaded."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
|
||||
msgid "Totals"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:405
|
||||
#, java-format
|
||||
msgid "1 torrent"
|
||||
msgid_plural "{0} torrents"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:408
|
||||
#, java-format
|
||||
msgid "1 connected peer"
|
||||
msgid_plural "{0} connected peers"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:497
|
||||
#, java-format
|
||||
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:545
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:572
|
||||
#, java-format
|
||||
msgid "Magnet deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:553
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:578
|
||||
#, java-format
|
||||
msgid "Torrent file deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594
|
||||
#, java-format
|
||||
msgid "Data file deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:596
|
||||
#, java-format
|
||||
msgid "Data file could not be deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:605
|
||||
#, java-format
|
||||
msgid "Data dir deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:638
|
||||
msgid "Error creating torrent - you must select a tracker"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:653
|
||||
#, java-format
|
||||
msgid "Torrent created for \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:655
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Many I2P trackers require you to register new torrents before seeding - "
|
||||
"please do so before starting \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657
|
||||
#, java-format
|
||||
msgid "Error creating a torrent for \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660
|
||||
#, java-format
|
||||
msgid "Cannot create a torrent for the nonexistent data: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663
|
||||
msgid "Error creating torrent - you must enter a file or directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666
|
||||
msgid "Stopping all torrents and closing the I2P tunnel."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677
|
||||
msgid "I2P tunnel closed."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680
|
||||
msgid "Opening the I2P tunnel and starting all torrents."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:803
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:808
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:814
|
||||
msgid "Tracker Error"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:806
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:822
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:834
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:838
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:843
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:847
|
||||
#, java-format
|
||||
msgid "1 peer"
|
||||
msgid_plural "{0} peers"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:819
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:824
|
||||
msgid "Seeding"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:828
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1665
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1770
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:831
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:840
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:845
|
||||
msgid "Stalled"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:849
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852
|
||||
msgid "No Peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:854
|
||||
msgid "Stopped"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:886
|
||||
msgid "Torrent details"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:898
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1160
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:913
|
||||
msgid "View files"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:915
|
||||
msgid "Open file"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:957
|
||||
msgid "Stop the torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:959
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969
|
||||
msgid "Start the torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:971
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982
|
||||
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||
msgstr ""
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:987
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded "
|
||||
"data will not be deleted) ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:990
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001
|
||||
msgid "Delete the .torrent file and the associated data file(s)"
|
||||
msgstr ""
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded "
|
||||
"data?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1042
|
||||
msgid "Unknown"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1054
|
||||
msgid "Seed"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077
|
||||
msgid "Uninteresting (The peer has no pieces we need)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1079
|
||||
msgid "Choked (The peer is not allowing us to request pieces)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1099
|
||||
msgid "Uninterested (We have no pieces the peer needs)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101
|
||||
msgid "Choking (We are not allowing the peer to request pieces)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1159
|
||||
#, java-format
|
||||
msgid "Details at {0} tracker"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1188
|
||||
msgid "Add Torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190
|
||||
msgid "From URL"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1193
|
||||
msgid ""
|
||||
"Enter the torrent file download URL (I2P only), magnet link, or maggot link"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1198
|
||||
msgid "Add torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1201
|
||||
#, java-format
|
||||
msgid "You can also copy .torrent files to: {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1203
|
||||
msgid "Removing a .torrent will cause it to stop."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1226
|
||||
msgid "Create Torrent"
|
||||
msgstr ""
|
||||
|
||||
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\"
|
||||
#. value=\"" + newFile + "\" /><br>\n");
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1229
|
||||
msgid "Data to seed"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1233
|
||||
msgid "File or directory to seed (must be within the specified path)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1235
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1684
|
||||
msgid "Tracker"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1237
|
||||
msgid "Select a tracker"
|
||||
msgstr ""
|
||||
|
||||
#. out.write(_("Open trackers and DHT only"));
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242
|
||||
msgid "Open trackers only"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1260
|
||||
msgid "Specify custom tracker announce URL"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1263
|
||||
msgid "Create torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1281
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1420
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1285
|
||||
msgid "Data directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1287
|
||||
msgid "Edit i2psnark.config and restart to change"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291
|
||||
msgid "Auto start"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295
|
||||
msgid "If checked, automatically start torrents that are added"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1299
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312
|
||||
msgid "Startup delay"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1314
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1338
|
||||
msgid "Total uploader limit"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1341
|
||||
msgid "peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1345
|
||||
msgid "Up bandwidth limit"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1348
|
||||
msgid "Half available bandwidth recommended."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1350
|
||||
msgid "View or change router bandwidth"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1354
|
||||
msgid "Use open trackers also"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1358
|
||||
msgid ""
|
||||
"If checked, announce torrents to open trackers as well as the tracker listed"
|
||||
" in the torrent file"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1362
|
||||
msgid "Open tracker announce URLs"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1374
|
||||
msgid "Inbound Settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1380
|
||||
msgid "Outbound Settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1388
|
||||
msgid "I2CP host"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1393
|
||||
msgid "I2CP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1406
|
||||
msgid "I2CP options"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1411
|
||||
msgid "Save configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1436
|
||||
#, java-format
|
||||
msgid "Invalid magnet URL {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1470
|
||||
#, java-format
|
||||
msgid "Invalid info hash in magnet URL {0}"
|
||||
msgstr ""
|
||||
|
||||
#. * dummies for translation
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1500
|
||||
#, java-format
|
||||
msgid "1 hop"
|
||||
msgid_plural "{0} hops"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1501
|
||||
#, java-format
|
||||
msgid "1 tunnel"
|
||||
msgid_plural "{0} tunnels"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
|
||||
msgid "Completion"
|
||||
msgstr ""
|
||||
|
||||
#. else unknown
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1667
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1716
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1672
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1674
|
||||
msgid "Pieces"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1675
|
||||
msgid "Piece size"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1697
|
||||
msgid "Magnet link"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1753
|
||||
msgid "Directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1723
|
||||
msgid "Priority"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1728
|
||||
msgid "Up to higher level directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1758
|
||||
msgid "Torrent not found?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1767
|
||||
msgid "File not found in torrent?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1780
|
||||
msgid "complete"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1781
|
||||
msgid "bytes remaining"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1806
|
||||
msgid "Open"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1832
|
||||
msgid "High"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1837
|
||||
msgid "Normal"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1842
|
||||
msgid "Skip"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1851
|
||||
msgid "Save priorities"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1967
|
||||
#, java-format
|
||||
msgid "Torrent fetched from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988
|
||||
#, java-format
|
||||
msgid "Torrent already running: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1990
|
||||
#, java-format
|
||||
msgid "Torrent already in the queue: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1996
|
||||
#, java-format
|
||||
msgid "Torrent at {0} was not valid"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2003
|
||||
#, java-format
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr ""
|
||||
|
||||
|
772
apps/i2psnark/locale/messages_pl.po
Normal file
772
apps/i2psnark/locale/messages_pl.po
Normal file
@ -0,0 +1,772 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the i2psnark package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
# foo <foo@bar>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2psnark\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2010-06-26 21:02+0000\n"
|
||||
"PO-Revision-Date: 2011-01-13 17:43+0100\n"
|
||||
"Last-Translator: Polacco <polacco@mail.i2p>\n"
|
||||
"Language-Team: foo <foo@bar>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Polish\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:88
|
||||
#, java-format
|
||||
msgid "Adding torrents in {0} minutes"
|
||||
msgstr "Dodawanie torrentów w ciągu {0} minut"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:258
|
||||
#, java-format
|
||||
msgid "Total uploaders limit changed to {0}"
|
||||
msgstr "Ograniczenie liczby uploaderów zmieniono do {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:260
|
||||
#, java-format
|
||||
msgid "Minimum total uploaders limit is {0}"
|
||||
msgstr "Minimalny całkowity limit uploadera: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:272
|
||||
#, java-format
|
||||
msgid "Up BW limit changed to {0}KBps"
|
||||
msgstr "Ograniczenie pasma WY zmieniono na: {0} KB/s"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:274
|
||||
#, java-format
|
||||
msgid "Minimum up bandwidth limit is {0}KBps"
|
||||
msgstr "Minimalne pasmo WY to: {0} KB/s"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:286
|
||||
#, java-format
|
||||
msgid "Startup delay limit changed to {0} minutes"
|
||||
msgstr "Opóźnienie uruchomienia zmieniono do {0} minut"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:333
|
||||
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
|
||||
msgstr "Zmiany dotyczące I2CP i tuneli będą wprowadzone po zatrzymaniu wszystkich torrentów."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:339
|
||||
msgid "Disconnecting old I2CP destination"
|
||||
msgstr "Rozłączanie starych celów I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:343
|
||||
#, java-format
|
||||
msgid "I2CP settings changed to {0}"
|
||||
msgstr "Ustawienia I2CP zmienione do: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:347
|
||||
msgid "Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr "Nie można połączyć się z nowymi ustawieniami, powrót do starych ustawień I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:351
|
||||
msgid "Unable to reconnect with the old settings!"
|
||||
msgstr "Nie można się połączyć ze starymi ustawieniami!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:353
|
||||
msgid "Reconnected on the new I2CP destination"
|
||||
msgstr "Ponowne podłączanie do nowych celów I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:364
|
||||
#, java-format
|
||||
msgid "I2CP listener restarted for \"{0}\""
|
||||
msgstr "Nasłuch I2CP zrestartowany dla \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:375
|
||||
msgid "Enabled autostart"
|
||||
msgstr "Włącz automatycznie uruchamianie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:377
|
||||
msgid "Disabled autostart"
|
||||
msgstr "Wyłącz automatycznie uruchamianie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:383
|
||||
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||
msgstr "Włączono otwarte trackery - wymagane ponowne uruchomienie torrenta."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:385
|
||||
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||
msgstr "Wyłączono otwarte trackery - wymagane ponowne uruchomienie torrenta."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:392
|
||||
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||
msgstr "Zmieniła się lista otwartych trackerów - wymagane ponowne uruchomienie torrenta."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:399
|
||||
msgid "Configuration unchanged."
|
||||
msgstr "Ustawienia niezmienione."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:409
|
||||
#, java-format
|
||||
msgid "Unable to save the config to {0}"
|
||||
msgstr "Nie można zapisać konfiguracji do {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:445
|
||||
msgid "Connecting to I2P"
|
||||
msgstr "Łączenie z I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:448
|
||||
msgid "Error connecting to I2P - check your I2CP settings!"
|
||||
msgstr "Nie można się połączyć z I2P, sprawdź swoje ustawienia I2CP!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:457
|
||||
#, java-format
|
||||
msgid "Error: Could not add the torrent {0}"
|
||||
msgstr "Błąd: Nie można dodać torrenta {0}"
|
||||
|
||||
#. catch this here so we don't try do delete it below
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:479
|
||||
#, java-format
|
||||
msgid "Cannot open \"{0}\""
|
||||
msgstr "Nie można otworzyć \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:492
|
||||
#, java-format
|
||||
msgid "Warning - Ignoring non-i2p tracker in \"{0}\", will announce to i2p open trackers only"
|
||||
msgstr "Uwaga! Ignorowanie trackera spoza I2P w \"{0}\"; będzie anonsować tylko z trackerami I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:494
|
||||
#, java-format
|
||||
msgid "Warning - Ignoring non-i2p tracker in \"{0}\", and open trackers are disabled, you must enable open trackers before starting the torrent!"
|
||||
msgstr "Uwaga! Ignorowanie trackera spoza I2P w \"{0}\"; otwarty trackery wyłączone, musisz włączyć otwarte trackery zanim uruchomisz torrenta!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:513
|
||||
#, java-format
|
||||
msgid "Torrent in \"{0}\" is invalid"
|
||||
msgstr "Torrent w \"{0}\" jest niepoprawny"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:528
|
||||
#, java-format
|
||||
msgid "Torrent added and started: \"{0}\""
|
||||
msgstr "Torrent dodany i uruchomiony: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:530
|
||||
#, java-format
|
||||
msgid "Torrent added: \"{0}\""
|
||||
msgstr "Torrent dodany: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:627
|
||||
#, java-format
|
||||
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||
msgstr "Za dużo plików w \"{0}\" ({1}), usuwanie go!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:629
|
||||
#, java-format
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr "Torrent \"{0}\" nie może się kończyć w \".torrent\", usuwanie go!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:631
|
||||
#, java-format
|
||||
msgid "No pieces in \"{0}\", deleting it!"
|
||||
msgstr "W torrencie \"{0}\" nie ma piece'ów, usuwanie go!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:633
|
||||
#, java-format
|
||||
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||
msgstr "Za dużo piece''ów w \"{0}\" (limit to {1}), usuwanie go!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:635
|
||||
#, java-format
|
||||
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||
msgstr "Za duże piece''y w torrencie \"{0}\" ({1}B), usuwanie go."
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:636
|
||||
#, java-format
|
||||
msgid "Limit is {0}B"
|
||||
msgstr "Granica to {0}B"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:644
|
||||
#, java-format
|
||||
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||
msgstr "Torrenty większe niż {0}B nie są jeszcze wspierane, usunięcie \"{1}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:660
|
||||
#, java-format
|
||||
msgid "Error: Could not remove the torrent {0}"
|
||||
msgstr "Błąd: nie można usunąć torrenta {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:681
|
||||
#, java-format
|
||||
msgid "Torrent stopped: \"{0}\""
|
||||
msgstr "Torrent zatrzymany: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:696
|
||||
#, java-format
|
||||
msgid "Torrent removed: \"{0}\""
|
||||
msgstr "Torrent usunięty: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:729
|
||||
#, java-format
|
||||
msgid "Download finished: \"{0}\""
|
||||
msgstr "Pobieranie zakończone: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:729
|
||||
#, java-format
|
||||
msgid "size: {0}B"
|
||||
msgstr "rozmiar: {0}B"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:757
|
||||
msgid "Unable to connect to I2P!"
|
||||
msgstr "Nie można podłączyć się do I2P!"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:168
|
||||
msgid "I2PSnark - Anonymous BitTorrent Client"
|
||||
msgstr "I2PSnark – anonimowy klient BitTorrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:179
|
||||
msgid "Torrents"
|
||||
msgstr "Torrenty"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:181
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:187
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:831
|
||||
msgid "I2PSnark"
|
||||
msgstr "I2PSnark"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:185
|
||||
msgid "Refresh page"
|
||||
msgstr "Odśwież stronę"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:189
|
||||
msgid "Forum"
|
||||
msgstr "Forum"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:234
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1283
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:240
|
||||
msgid "Hide Peers"
|
||||
msgstr "Ukryj peery"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:243
|
||||
msgid "Show Peers"
|
||||
msgstr "Pokaż peery"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:248
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1265
|
||||
msgid "Torrent"
|
||||
msgstr "Torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:250
|
||||
msgid "ETA"
|
||||
msgstr "Pozostało"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:252
|
||||
msgid "Downloaded"
|
||||
msgstr "Pobrano"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:254
|
||||
msgid "Uploaded"
|
||||
msgstr "Wysłano"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:256
|
||||
msgid "Down Rate"
|
||||
msgstr "Prędkość pobierania"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:258
|
||||
msgid "Up Rate"
|
||||
msgstr "Prędkość wysyłania"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:265
|
||||
msgid "Stop all torrents and the I2P tunnel"
|
||||
msgstr "Zatrzymaj wszystkie torrenty i tunel I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:267
|
||||
msgid "Stop All"
|
||||
msgstr "Zatrzymaj wszystkie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:272
|
||||
msgid "Start all torrents and the I2P tunnel"
|
||||
msgstr "Uruchom wszystkie torrenty i tunel I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:274
|
||||
msgid "Start All"
|
||||
msgstr "Uruchom wszystkie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:291
|
||||
msgid "No torrents loaded."
|
||||
msgstr "Nie załadowano torrentów."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:296
|
||||
msgid "Totals"
|
||||
msgstr "Łącznie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:298
|
||||
#, java-format
|
||||
msgid "1 torrent"
|
||||
msgid_plural "{0} torrents"
|
||||
msgstr[0] "{0} torrent"
|
||||
msgstr[1] "{0} torrenty"
|
||||
msgstr[2] "{0} torrentów"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:301
|
||||
#, java-format
|
||||
msgid "1 connected peer"
|
||||
msgid_plural "{0} connected peers"
|
||||
msgstr[0] "{0} podłączony peer"
|
||||
msgstr[1] "{0} podłączone peery"
|
||||
msgstr[2] "{0} podłączonych peerów"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:330
|
||||
#, java-format
|
||||
msgid "Torrent file {0} does not exist"
|
||||
msgstr "Plik torrent {0} nie istnieje"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:340
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1470
|
||||
#, java-format
|
||||
msgid "Torrent already running: {0}"
|
||||
msgstr "Torrent już uruchomiony: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1472
|
||||
#, java-format
|
||||
msgid "Torrent already in the queue: {0}"
|
||||
msgstr "Torrent już w kolejce: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
|
||||
#, java-format
|
||||
msgid "Copying torrent to {0}"
|
||||
msgstr "Kopiowanie torrenta do: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:349
|
||||
#, java-format
|
||||
msgid "Unable to copy the torrent to {0}"
|
||||
msgstr "Nie można skopiować torrenta do: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:349
|
||||
#, java-format
|
||||
msgid "from {0}"
|
||||
msgstr "od: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:357
|
||||
#, java-format
|
||||
msgid "Fetching {0}"
|
||||
msgstr "Pobieranie: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:361
|
||||
msgid "Invalid URL - must start with http://"
|
||||
msgstr "Niepoprawny URL - musi się zaczynać od http://"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:391
|
||||
#, java-format
|
||||
msgid "Starting up torrent {0}"
|
||||
msgstr "Uruchamianie torrenta: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:411
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:429
|
||||
#, java-format
|
||||
msgid "Torrent file deleted: {0}"
|
||||
msgstr "Plik torrenta usunięto: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:435
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:445
|
||||
#, java-format
|
||||
msgid "Data file deleted: {0}"
|
||||
msgstr "Pliki z danymi usunięte: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:437
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:447
|
||||
#, java-format
|
||||
msgid "Data file could not be deleted: {0}"
|
||||
msgstr "Nie można usunąć pliku z danymi: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:456
|
||||
#, java-format
|
||||
msgid "Data dir deleted: {0}"
|
||||
msgstr "Usunięto katalog z danymi: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:488
|
||||
msgid "Error creating torrent - you must select a tracker"
|
||||
msgstr "Błąd przy tworzeniu torrenta - musisz wybrać tracker"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:503
|
||||
#, java-format
|
||||
msgid "Torrent created for \"{0}\""
|
||||
msgstr "Utworzono torrent dla \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:506
|
||||
#, java-format
|
||||
msgid "Many I2P trackers require you to register new torrents before seeding - please do so before starting \"{0}\""
|
||||
msgstr "Wiele trackerów w I2P wymaga zarejestrowania torrenta przed seedowaniem - proszę, zrób tak przed uruchomieniem \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:508
|
||||
#, java-format
|
||||
msgid "Error creating a torrent for \"{0}\""
|
||||
msgstr "Błąd podczas tworzenia torrenta dla: \"{0}\""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:511
|
||||
#, java-format
|
||||
msgid "Cannot create a torrent for the nonexistent data: {0}"
|
||||
msgstr "Nie można utworzyć torrenta dla nieistniejących danych: {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:514
|
||||
msgid "Error creating torrent - you must enter a file or directory"
|
||||
msgstr "Błąd przy tworzeniu torrenta - musisz podać plik lub katalog"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:517
|
||||
msgid "Stopping all torrents and closing the I2P tunnel."
|
||||
msgstr "Zatrzymywanie wszystkich torrentów i zamykanie tunelu I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:526
|
||||
msgid "I2P tunnel closed."
|
||||
msgstr "Zamknięto tunel I2P."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:529
|
||||
msgid "Opening the I2P tunnel and starting all torrents."
|
||||
msgstr "Otwieranie tunelu I2P i uruchamianie wszystkich torrentów."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:651
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:845
|
||||
msgid "Unknown"
|
||||
msgstr "Nieznany"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:654
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:659
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:664
|
||||
msgid "TrackerErr"
|
||||
msgstr "BładTrackera"
|
||||
|
||||
# TODO should replace "uploader limit NN peers" with "global number of upload slots: NN"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:671
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:674
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:682
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:685
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:690
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:693
|
||||
#, java-format
|
||||
msgid "1 peer"
|
||||
msgid_plural "{0} peers"
|
||||
msgstr[0] "{0} peer"
|
||||
msgstr[1] "{0} peery"
|
||||
msgstr[2] "{0} peerów"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:668
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:673
|
||||
msgid "Seeding"
|
||||
msgstr "Seedowanie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:676
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1321
|
||||
msgid "Complete"
|
||||
msgstr "Zakończono"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:679
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:684
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:687
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:692
|
||||
msgid "Stalled"
|
||||
msgstr "Utknięto"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:695
|
||||
msgid "No Peers"
|
||||
msgstr "Brak peerów"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:697
|
||||
msgid "Stopped"
|
||||
msgstr "Zatrzymany"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:712
|
||||
msgid "View files"
|
||||
msgstr "Zobacz pliki"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:714
|
||||
msgid "Open file"
|
||||
msgstr "Otwórz plik"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:744
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:961
|
||||
msgid "Tracker"
|
||||
msgstr "Tracker"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:745
|
||||
msgid "Details"
|
||||
msgstr "Szczegóły"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:779
|
||||
msgid "Stop the torrent"
|
||||
msgstr "Zatrzymaj torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:781
|
||||
msgid "Stop"
|
||||
msgstr "Zatrzymaj"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:787
|
||||
msgid "Start the torrent"
|
||||
msgstr "Uruchom torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:789
|
||||
msgid "Start"
|
||||
msgstr "Uruchom"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:794
|
||||
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||
msgstr "Usuń torrent z aktywnej listy, usuwając plik .torrent"
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:799
|
||||
#, java-format
|
||||
msgid "Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded data will not be deleted) ?"
|
||||
msgstr "Czy na pewno chcesz usunąć plik \\''{0}.torrent\\''? (pobrane dane nie zostaną usunięte)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:801
|
||||
msgid "Remove"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:805
|
||||
msgid "Delete the .torrent file and the associated data file(s)"
|
||||
msgstr "Usuń plik .torrent i związane z nim pliki z danymi"
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810
|
||||
#, java-format
|
||||
msgid "Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded data?"
|
||||
msgstr "Czy na pewno chcesz usunąć plik \\''{0}.torrent\\'' oraz pobrane dane?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:812
|
||||
msgid "Delete"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:855
|
||||
msgid "Seed"
|
||||
msgstr "Seed"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:873
|
||||
msgid "Uninteresting (The peer has no pieces we need)"
|
||||
msgstr "Uninteresting (peer nie ma piece'ów, które potrzebujemy)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:875
|
||||
msgid "Choked (The peer is not allowing us to request pieces)"
|
||||
msgstr "Choked (peer nie pozwala nam na prośbę o piece)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:889
|
||||
msgid "Uninterested (We have no pieces the peer needs)"
|
||||
msgstr "Uninterested (nie mamy piece'ów, których peer potrzebuje)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:891
|
||||
msgid "Choking (We are not allowing the peer to request pieces)"
|
||||
msgstr "Choking (nie pozwalamy peerowi na prośbę o piece)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:921
|
||||
msgid "Add Torrent"
|
||||
msgstr "Dodaj torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:923
|
||||
msgid "From URL"
|
||||
msgstr "Z adresu URL"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:928
|
||||
msgid "Add torrent"
|
||||
msgstr "Dodaj torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:931
|
||||
#, java-format
|
||||
msgid "Alternately, you can copy .torrent files to the directory {0}."
|
||||
msgstr "Albo możesz skopiować plik .torrent do katalogu {0}."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:933
|
||||
msgid "Removing a .torrent file will cause the torrent to stop."
|
||||
msgstr "Usunięcie pliku .torrent spowoduje zatrzymanie torrenta."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:952
|
||||
msgid "Create Torrent"
|
||||
msgstr "Utwórz torrent"
|
||||
|
||||
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\" value=\"" + newFile + "\" /><br>\n");
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:955
|
||||
msgid "Data to seed"
|
||||
msgstr "Dane do seedowania"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:959
|
||||
msgid "File or directory to seed (must be within the specified path)"
|
||||
msgstr "Plik lub katalog do seedowania (musi się znajdować wewnątrz podanej ścieżki)"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:963
|
||||
msgid "Select a tracker"
|
||||
msgstr "Wybierz tracker"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:976
|
||||
msgid "or"
|
||||
msgstr "lub"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:979
|
||||
msgid "Specify custom tracker announce URL"
|
||||
msgstr "Podaj własny adres announce trackera"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982
|
||||
msgid "Create torrent"
|
||||
msgstr "Utwórz torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1000
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1127
|
||||
msgid "Configuration"
|
||||
msgstr "Ustawienia"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1003
|
||||
msgid "Data directory"
|
||||
msgstr "Katalog z danymi"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
|
||||
msgid "Directory to store torrents and data"
|
||||
msgstr "Katalog, w którym znajdują się torrenty i dane"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1008
|
||||
msgid "Edit i2psnark.config and restart to change"
|
||||
msgstr "Edytuj plik i2psnark.config i uruchom ponownie by zmiany weszły w życie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1012
|
||||
msgid "Auto start"
|
||||
msgstr "Automatyczne uruchamianie"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1016
|
||||
msgid "If checked, automatically start torrents that are added"
|
||||
msgstr "Jeśli zaznaczone - automatycznie uruchamiaj dodane torrenty"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1020
|
||||
msgid "Startup delay"
|
||||
msgstr "Opóźnienie uruchomienia"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1022
|
||||
msgid "minutes"
|
||||
msgstr "minuty"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1046
|
||||
msgid "Total uploader limit"
|
||||
msgstr "Całkowity limit uploaderów"
|
||||
|
||||
# TODO should replace "uploader limit NN peers" with "global number of upload slots: NN"
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1049
|
||||
msgid "peers"
|
||||
msgstr "peery"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1053
|
||||
msgid "Up bandwidth limit"
|
||||
msgstr "Ograniczenie pasma WY"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1056
|
||||
msgid "Half available bandwidth recommended."
|
||||
msgstr "Zalecana połowa dostępnego pasma."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1058
|
||||
msgid "View or change router bandwidth"
|
||||
msgstr "Zobacz lub zmień pasmo routera"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1062
|
||||
msgid "Use open trackers also"
|
||||
msgstr "Używaj również otwartych trackerów"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1066
|
||||
msgid "If checked, announce torrents to open trackers as well as the tracker listed in the torrent file"
|
||||
msgstr "Jeśli zaznaczone, zgłaszaj torrenty do otwartych trackerów, jak również do trackerów podanych w pliku torrent"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1070
|
||||
msgid "Open tracker announce URLs"
|
||||
msgstr "URL otwartego trackera"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1082
|
||||
msgid "Inbound Settings"
|
||||
msgstr "Tunele wejściowe"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1088
|
||||
msgid "Outbound Settings"
|
||||
msgstr "Tunele wyjściowe"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1095
|
||||
msgid "I2CP host"
|
||||
msgstr "Adres I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1100
|
||||
msgid "I2CP port"
|
||||
msgstr "Port I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1112
|
||||
msgid "I2CP options"
|
||||
msgstr "Parametry I2CP"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1118
|
||||
msgid "Save configuration"
|
||||
msgstr "Zapisz ustawienia"
|
||||
|
||||
#. * dummies for translation
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1135
|
||||
#, java-format
|
||||
msgid "1 hop"
|
||||
msgid_plural "{0} hops"
|
||||
msgstr[0] "{0} skok"
|
||||
msgstr[1] "{0} skoki"
|
||||
msgstr[2] "{0} skoków"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1136
|
||||
#, java-format
|
||||
msgid "1 tunnel"
|
||||
msgid_plural "{0} tunnels"
|
||||
msgstr[0] "{0} tunel"
|
||||
msgstr[1] "{0} tunele"
|
||||
msgstr[2] "{0} tuneli"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1277
|
||||
msgid "Up to higher level directory"
|
||||
msgstr "Do katalogu nadrzędnego"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1282
|
||||
msgid "File"
|
||||
msgstr "Plik"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1282
|
||||
msgid "Size"
|
||||
msgstr "Rozmiar"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1305
|
||||
msgid "Directory"
|
||||
msgstr "Katalog"
|
||||
|
||||
# This debug error message intentionally left in English
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1310
|
||||
msgid "Torrent not found?"
|
||||
msgstr "Torrent not found?"
|
||||
|
||||
# This debug error message intentionally left in English
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1318
|
||||
msgid "File not found in torrent?"
|
||||
msgstr "File not found in torrent?"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1324
|
||||
msgid "complete"
|
||||
msgstr "zakończono"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1325
|
||||
msgid "bytes remaining"
|
||||
msgstr "bajtów pozostało"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1450
|
||||
#, java-format
|
||||
msgid "Torrent fetched from {0}"
|
||||
msgstr "Torrent pobrano z {0}"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1478
|
||||
#, java-format
|
||||
msgid "Torrent at {0} was not valid"
|
||||
msgstr "Torrent pobrany z {0} jest niepoprawny"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1483
|
||||
#, java-format
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr "Torrent nie był pobrany z: {0}"
|
||||
|
916
apps/i2psnark/locale/messages_vi.po
Normal file
916
apps/i2psnark/locale/messages_vi.po
Normal file
@ -0,0 +1,916 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the i2psnark package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# dich_tran <tran.nathan@gmail.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:22+0000\n"
|
||||
"PO-Revision-Date: 2011-05-17 18:05+0000\n"
|
||||
"Last-Translator: ducki2p <ducki2p@gmail.com>\n"
|
||||
"Language-Team: Vietnamese (http://www.transifex.net/projects/p/I2P/team/vi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: vi\n"
|
||||
"Plural-Forms: nplurals=1; plural=0\n"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:307
|
||||
#, java-format
|
||||
msgid "Total uploaders limit changed to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:309
|
||||
#, java-format
|
||||
msgid "Minimum total uploaders limit is {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:321
|
||||
#, java-format
|
||||
msgid "Up BW limit changed to {0}KBps"
|
||||
msgstr "Giới hạn băng thông lên đổi thành {0}KBps"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:323
|
||||
#, java-format
|
||||
msgid "Minimum up bandwidth limit is {0}KBps"
|
||||
msgstr "Tối thiểu băng thông lên là {0}KBps"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:335
|
||||
#, java-format
|
||||
msgid "Startup delay changed to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:386
|
||||
msgid "I2CP and tunnel changes will take effect after stopping all torrents"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:393
|
||||
msgid "Disconnecting old I2CP destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:397
|
||||
#, java-format
|
||||
msgid "I2CP settings changed to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:402
|
||||
msgid ""
|
||||
"Unable to connect with the new settings, reverting to the old I2CP settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:406
|
||||
msgid "Unable to reconnect with the old settings!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:408
|
||||
msgid "Reconnected on the new I2CP destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:418
|
||||
#, java-format
|
||||
msgid "I2CP listener restarted for \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:429
|
||||
msgid "Enabled autostart"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:431
|
||||
msgid "Disabled autostart"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:437
|
||||
msgid "Enabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:439
|
||||
msgid "Disabled open trackers - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:447
|
||||
msgid "Open Tracker list changed - torrent restart required to take effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:454
|
||||
#, java-format
|
||||
msgid "{0} theme loaded, return to main i2psnark page to view."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:461
|
||||
msgid "Configuration unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:471
|
||||
#, java-format
|
||||
msgid "Unable to save the config to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:536
|
||||
msgid "Connecting to I2P"
|
||||
msgstr "Nối kết vào I2P"
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:539
|
||||
msgid "Error connecting to I2P - check your I2CP settings!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:548
|
||||
#, java-format
|
||||
msgid "Error: Could not add the torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#. catch this here so we don't try do delete it below
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:570
|
||||
#, java-format
|
||||
msgid "Cannot open \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#. TODO - if the existing one is a magnet, delete it and add the metainfo
|
||||
#. instead?
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:589
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:665
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:720
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1976
|
||||
#, java-format
|
||||
msgid "Torrent with this info hash is already running: {0}"
|
||||
msgstr ""
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", will announce to I2P
|
||||
#. open trackers and DHT only.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:596
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P trackers in \"{0}\", will announce to I2P open trackers "
|
||||
"only."
|
||||
msgstr ""
|
||||
|
||||
#. addMessage(_("Warning - No I2P trackers in \"{0}\", and DHT and open
|
||||
#. trackers are disabled, you should enable open trackers or DHT before
|
||||
#. starting the torrent.", info.getName()));
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:601
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Warning - No I2P Trackers found in \"{0}\". Make sure Open Tracker is "
|
||||
"enabled before starting this torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:622
|
||||
#, java-format
|
||||
msgid "Torrent in \"{0}\" is invalid"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:627
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1998
|
||||
#, java-format
|
||||
msgid "ERROR - Out of memory, cannot create torrent from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:639
|
||||
#, java-format
|
||||
msgid "Torrent added and started: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:641
|
||||
#, java-format
|
||||
msgid "Torrent added: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:676
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:491
|
||||
#, java-format
|
||||
msgid "Fetching {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:679
|
||||
#, java-format
|
||||
msgid ""
|
||||
"We have no saved peers and no other torrents are running. Fetch of {0} will "
|
||||
"not succeed until you start another torrent."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:683
|
||||
#, java-format
|
||||
msgid "Adding {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:730
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:753
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1180
|
||||
#, java-format
|
||||
msgid "Failed to copy torrent file to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:976
|
||||
#, java-format
|
||||
msgid "Too many files in \"{0}\" ({1}), deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:978
|
||||
#, java-format
|
||||
msgid "Torrent file \"{0}\" cannot end in \".torrent\", deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:980
|
||||
#, java-format
|
||||
msgid "No pieces in \"{0}\", deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:982
|
||||
#, java-format
|
||||
msgid "Too many pieces in \"{0}\", limit is {1}, deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:984
|
||||
#, java-format
|
||||
msgid "Pieces are too large in \"{0}\" ({1}B), deleting it."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:985
|
||||
#, java-format
|
||||
msgid "Limit is {0}B"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:987
|
||||
#, java-format
|
||||
msgid "Torrent \"{0}\" has no data, deleting it!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:995
|
||||
#, java-format
|
||||
msgid "Torrents larger than {0}B are not supported yet, deleting \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1011
|
||||
#, java-format
|
||||
msgid "Error: Could not remove the torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1032
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1050
|
||||
#, java-format
|
||||
msgid "Torrent stopped: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1071
|
||||
#, java-format
|
||||
msgid "Torrent removed: \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1079
|
||||
#, java-format
|
||||
msgid "Adding torrents in {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1128
|
||||
#, java-format
|
||||
msgid "Download finished: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1176
|
||||
#, java-format
|
||||
msgid "Metainfo received for {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1177
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:526
|
||||
#, java-format
|
||||
msgid "Starting up torrent {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1231
|
||||
msgid "Unable to connect to I2P!"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/SnarkManager.java:1237
|
||||
#, java-format
|
||||
msgid "Unable to add {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:205
|
||||
msgid "I2PSnark - Anonymous BitTorrent Client"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:218
|
||||
msgid "Torrents"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:221
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:228
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1028
|
||||
msgid "I2PSnark"
|
||||
msgstr "I2PSnark"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:225
|
||||
msgid "Refresh page"
|
||||
msgstr "Nạp lại trang"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:230
|
||||
msgid "Forum"
|
||||
msgstr "Diễn đàn"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:284
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1719
|
||||
msgid "Status"
|
||||
msgstr "Tình trạng"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:290
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:292
|
||||
msgid "Hide Peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:297
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:299
|
||||
msgid "Show Peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:306
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1643
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1659
|
||||
msgid "Torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:310
|
||||
msgid "Estimated time remaining"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:313
|
||||
msgid "ETA"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:317
|
||||
msgid "Downloaded"
|
||||
msgstr "Đã tải xuống"
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:320
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:334
|
||||
msgid "RX"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:324
|
||||
msgid "Uploaded"
|
||||
msgstr "Đã tải lên"
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:327
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:344
|
||||
msgid "TX"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:332
|
||||
msgid "Down Rate"
|
||||
msgstr ""
|
||||
|
||||
#. Translators: Please keep short or translate as " "
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:337
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:346
|
||||
msgid "Rate"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:342
|
||||
msgid "Up Rate"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:366
|
||||
msgid "Stop all torrents and the I2P tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:368
|
||||
msgid "Stop All"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:377
|
||||
msgid "Start all torrents and the I2P tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:379
|
||||
msgid "Start All"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:398
|
||||
msgid "No torrents loaded."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:403
|
||||
msgid "Totals"
|
||||
msgstr "Tổng cộng"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:405
|
||||
#, java-format
|
||||
msgid "1 torrent"
|
||||
msgid_plural "{0} torrents"
|
||||
msgstr[0] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:408
|
||||
#, java-format
|
||||
msgid "1 connected peer"
|
||||
msgid_plural "{0} connected peers"
|
||||
msgstr[0] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:497
|
||||
#, java-format
|
||||
msgid "Invalid URL: Must start with \"http://\", \"{0}\", or \"{1}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:545
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:572
|
||||
#, java-format
|
||||
msgid "Magnet deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:553
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:578
|
||||
#, java-format
|
||||
msgid "Torrent file deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:584
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:594
|
||||
#, java-format
|
||||
msgid "Data file deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:586
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:596
|
||||
#, java-format
|
||||
msgid "Data file could not be deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:605
|
||||
#, java-format
|
||||
msgid "Data dir deleted: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:638
|
||||
msgid "Error creating torrent - you must select a tracker"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:653
|
||||
#, java-format
|
||||
msgid "Torrent created for \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:655
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Many I2P trackers require you to register new torrents before seeding - "
|
||||
"please do so before starting \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:657
|
||||
#, java-format
|
||||
msgid "Error creating a torrent for \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:660
|
||||
#, java-format
|
||||
msgid "Cannot create a torrent for the nonexistent data: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:663
|
||||
msgid "Error creating torrent - you must enter a file or directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:666
|
||||
msgid "Stopping all torrents and closing the I2P tunnel."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:677
|
||||
msgid "I2P tunnel closed."
|
||||
msgstr "Đường hầm I2P đóng lại."
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:680
|
||||
msgid "Opening the I2P tunnel and starting all torrents."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:803
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:808
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:814
|
||||
msgid "Tracker Error"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:806
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:810
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:822
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:826
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:834
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:838
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:843
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:847
|
||||
#, java-format
|
||||
msgid "1 peer"
|
||||
msgid_plural "{0} peers"
|
||||
msgstr[0] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:819
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:824
|
||||
msgid "Seeding"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:828
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1665
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1770
|
||||
msgid "Complete"
|
||||
msgstr "Hoàn tất"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:831
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:836
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:840
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:845
|
||||
msgid "Stalled"
|
||||
msgstr "Khựng"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:849
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:852
|
||||
msgid "No Peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:854
|
||||
msgid "Stopped"
|
||||
msgstr "Ngưng"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:886
|
||||
msgid "Torrent details"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:898
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1160
|
||||
msgid "Info"
|
||||
msgstr "Thông tin"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:913
|
||||
msgid "View files"
|
||||
msgstr "Xem tập tin"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:915
|
||||
msgid "Open file"
|
||||
msgstr "Mở tập tin"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:957
|
||||
msgid "Stop the torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:959
|
||||
msgid "Stop"
|
||||
msgstr "Ngưng"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:969
|
||||
msgid "Start the torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:971
|
||||
msgid "Start"
|
||||
msgstr "Bắt đầu"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:982
|
||||
msgid "Remove the torrent from the active list, deleting the .torrent file"
|
||||
msgstr ""
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:987
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the file \\''{0}.torrent\\'' (downloaded "
|
||||
"data will not be deleted) ?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:990
|
||||
msgid "Remove"
|
||||
msgstr "Bỏ"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1001
|
||||
msgid "Delete the .torrent file and the associated data file(s)"
|
||||
msgstr ""
|
||||
|
||||
#. Can't figure out how to escape double quotes inside the onclick string.
|
||||
#. Single quotes in translate strings with parameters must be doubled.
|
||||
#. Then the remaining single quite must be escaped
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1006
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Are you sure you want to delete the torrent \\''{0}\\'' and all downloaded "
|
||||
"data?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1009
|
||||
msgid "Delete"
|
||||
msgstr "Xóa"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1042
|
||||
msgid "Unknown"
|
||||
msgstr "Không rõ"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1054
|
||||
msgid "Seed"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1077
|
||||
msgid "Uninteresting (The peer has no pieces we need)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1079
|
||||
msgid "Choked (The peer is not allowing us to request pieces)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1099
|
||||
msgid "Uninterested (We have no pieces the peer needs)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1101
|
||||
msgid "Choking (We are not allowing the peer to request pieces)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1159
|
||||
#, java-format
|
||||
msgid "Details at {0} tracker"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1188
|
||||
msgid "Add Torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1190
|
||||
msgid "From URL"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1193
|
||||
msgid ""
|
||||
"Enter the torrent file download URL (I2P only), magnet link, or maggot link"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1198
|
||||
msgid "Add torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1201
|
||||
#, java-format
|
||||
msgid "You can also copy .torrent files to: {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1203
|
||||
msgid "Removing a .torrent will cause it to stop."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1226
|
||||
msgid "Create Torrent"
|
||||
msgstr ""
|
||||
|
||||
#. out.write("From file: <input type=\"file\" name=\"newFile\" size=\"50\"
|
||||
#. value=\"" + newFile + "\" /><br>\n");
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1229
|
||||
msgid "Data to seed"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1233
|
||||
msgid "File or directory to seed (must be within the specified path)"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1235
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1684
|
||||
msgid "Tracker"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1237
|
||||
msgid "Select a tracker"
|
||||
msgstr ""
|
||||
|
||||
#. out.write(_("Open trackers and DHT only"));
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1242
|
||||
msgid "Open trackers only"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1257
|
||||
msgid "or"
|
||||
msgstr "hoặc"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1260
|
||||
msgid "Specify custom tracker announce URL"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1263
|
||||
msgid "Create torrent"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1281
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1420
|
||||
msgid "Configuration"
|
||||
msgstr "Cấu hình"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1285
|
||||
msgid "Data directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1287
|
||||
msgid "Edit i2psnark.config and restart to change"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1291
|
||||
msgid "Auto start"
|
||||
msgstr "Tự động bắt đầu"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1295
|
||||
msgid "If checked, automatically start torrents that are added"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1299
|
||||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1312
|
||||
msgid "Startup delay"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1314
|
||||
msgid "minutes"
|
||||
msgstr "phút"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1338
|
||||
msgid "Total uploader limit"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1341
|
||||
msgid "peers"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1345
|
||||
msgid "Up bandwidth limit"
|
||||
msgstr "Giới hạn băng thông lên"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1348
|
||||
msgid "Half available bandwidth recommended."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1350
|
||||
msgid "View or change router bandwidth"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1354
|
||||
msgid "Use open trackers also"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1358
|
||||
msgid ""
|
||||
"If checked, announce torrents to open trackers as well as the tracker listed"
|
||||
" in the torrent file"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1362
|
||||
msgid "Open tracker announce URLs"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1374
|
||||
msgid "Inbound Settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1380
|
||||
msgid "Outbound Settings"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1388
|
||||
msgid "I2CP host"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1393
|
||||
msgid "I2CP port"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1406
|
||||
msgid "I2CP options"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1411
|
||||
msgid "Save configuration"
|
||||
msgstr "Lưu cấu hình"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1436
|
||||
#, java-format
|
||||
msgid "Invalid magnet URL {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1470
|
||||
#, java-format
|
||||
msgid "Invalid info hash in magnet URL {0}"
|
||||
msgstr ""
|
||||
|
||||
#. * dummies for translation
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1500
|
||||
#, java-format
|
||||
msgid "1 hop"
|
||||
msgid_plural "{0} hops"
|
||||
msgstr[0] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1501
|
||||
#, java-format
|
||||
msgid "1 tunnel"
|
||||
msgid_plural "{0} tunnels"
|
||||
msgstr[0] ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1663
|
||||
msgid "Completion"
|
||||
msgstr ""
|
||||
|
||||
#. else unknown
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1667
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1716
|
||||
msgid "Size"
|
||||
msgstr "Kích thước"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1672
|
||||
msgid "Files"
|
||||
msgstr "Tập tin"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1674
|
||||
msgid "Pieces"
|
||||
msgstr "Mảnh"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1675
|
||||
msgid "Piece size"
|
||||
msgstr "Kích thước mảnh"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1697
|
||||
msgid "Magnet link"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1714
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1753
|
||||
msgid "Directory"
|
||||
msgstr "Danh mục"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1723
|
||||
msgid "Priority"
|
||||
msgstr "Ưu tiên"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1728
|
||||
msgid "Up to higher level directory"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1758
|
||||
msgid "Torrent not found?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1767
|
||||
msgid "File not found in torrent?"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1780
|
||||
msgid "complete"
|
||||
msgstr "hoàn tất"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1781
|
||||
msgid "bytes remaining"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1806
|
||||
msgid "Open"
|
||||
msgstr "Mở"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1832
|
||||
msgid "High"
|
||||
msgstr "Cao"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1837
|
||||
msgid "Normal"
|
||||
msgstr "Thường"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1842
|
||||
msgid "Skip"
|
||||
msgstr "Lờ"
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1851
|
||||
msgid "Save priorities"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1967
|
||||
#, java-format
|
||||
msgid "Torrent fetched from {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1988
|
||||
#, java-format
|
||||
msgid "Torrent already running: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1990
|
||||
#, java-format
|
||||
msgid "Torrent already in the queue: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:1996
|
||||
#, java-format
|
||||
msgid "Torrent at {0} was not valid"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/org/klomp/snark/web/I2PSnarkServlet.java:2003
|
||||
#, java-format
|
||||
msgid "Torrent was not retrieved from {0}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -20,7 +20,10 @@
|
||||
</classpath>
|
||||
</depend>
|
||||
</target>
|
||||
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="compile" depends="depend">
|
||||
<mkdir dir="./build" />
|
||||
<mkdir dir="./build/obj" />
|
||||
@ -34,10 +37,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<!-- TODO: Move the web classes from the jar to the war - they are not part of the API
|
||||
- This will require sponge to rewrite some seedless stuff that uses it.
|
||||
-->
|
||||
<target name="jar" depends="builddep, compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes.j" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -49,6 +49,15 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
|
||||
<!-- TODO: Move the web classes from the jar to the war - they are not part of the API
|
||||
- This will require sponge to rewrite some seedless stuff that uses it.
|
||||
-->
|
||||
<target name="jar" depends="builddep, compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.j.tr" value="" />
|
||||
<jar destfile="./build/i2ptunnel.jar" basedir="./build/obj" includes="**/*.class">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="net.i2p.i2ptunnel.I2PTunnel" />
|
||||
@ -64,15 +73,23 @@
|
||||
<uptodate property="jar.uptodate" targetfile="build/i2ptunnel.jar" >
|
||||
<srcfiles dir= "build/obj" includes="**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="bundle" depends="compile, precompilejsp">
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<!-- multi-lang is optional -->
|
||||
@ -83,21 +100,21 @@
|
||||
|
||||
<target name="poupdate" depends="compile, precompilejsp">
|
||||
<!-- Update the messages_*.po files. -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="war" depends="precompilejsp, bundle, warUpToDate" unless="war.uptodate" >
|
||||
<target name="listChangedFiles2" depends="warUpToDate" if="shouldListChanges2" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes.w" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -109,6 +126,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="war" depends="precompilejsp, bundle, warUpToDate, listChangedFiles2" unless="war.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.w.tr" value="" />
|
||||
<war destfile="build/i2ptunnel.war" webxml="../jsp/web-out.xml"
|
||||
basedir="../jsp/" excludes="web.xml, web-fragment.xml, web-out.xml, **/*.java, *.jsp">
|
||||
<manifest>
|
||||
@ -123,6 +145,14 @@
|
||||
<uptodate property="war.uptodate" targetfile="build/i2ptunnel.war" >
|
||||
<srcfiles dir= "../jsp" excludes="web.xml, web-fragment.xml, **/*.java, *.jsp" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges2" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="war.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="precompilejsp" depends="jar" unless="precompilejsp.uptodate">
|
||||
|
@ -12,6 +12,7 @@
|
||||
CLASS=net.i2p.i2ptunnel.web.messages
|
||||
TMPFILE=build/javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
@ -69,15 +70,17 @@ do
|
||||
-o ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - xgettext failed, not updating translations'
|
||||
echo "ERROR - xgettext failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
msgmerge -U --backup=none $i ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgmerge failed, not updating translations'
|
||||
echo "ERROR - msgmerge failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
rm -f ${i}t
|
||||
@ -94,11 +97,13 @@ do
|
||||
msgfmt --java --statistics -r $CLASS -l $LG -d ../jsp/WEB-INF/classes $i
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgfmt failed, not updating translations'
|
||||
echo "ERROR - msgfmt failed on ${i}, not updating translations"
|
||||
# msgfmt leaves the class file there so the build would work the next time
|
||||
find src/WEB-INF/classes -name messages_${LG}.class -exec rm -f {} \;
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f $TMPFILE
|
||||
# todo: return failure
|
||||
exit 0
|
||||
exit $RC
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P i2ptunnel\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:23+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:474
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:514
|
||||
#, java-format
|
||||
msgid ""
|
||||
"To visit the destination in your host database, click <a href=\"{0}\">here</"
|
||||
@ -26,11 +26,83 @@ msgid ""
|
||||
"\"{1}\">here</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:931
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:875
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:876
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:881
|
||||
#, java-format
|
||||
msgid "Continue to {0} without saving"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:886
|
||||
#, java-format
|
||||
msgid "Save {0} to router address book and continue to eepsite"
|
||||
msgstr ""
|
||||
|
||||
#. only blockfile supports multiple books
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:889
|
||||
#, java-format
|
||||
msgid "Save {0} to master address book and continue to eepsite"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:890
|
||||
#, java-format
|
||||
msgid "Save {0} to private address book and continue to eepsite"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
|
||||
msgid ""
|
||||
"Click a link below to look for an address helper by using a \"jump\" service:"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1262
|
||||
msgid "Added via address helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1286
|
||||
#, java-format
|
||||
msgid "Redirecting to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1292
|
||||
msgid "Router Console"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
msgid "Addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1298
|
||||
#, java-format
|
||||
msgid "Saved {0} to the {1} addressbook, redirecting now."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1299
|
||||
#, java-format
|
||||
msgid "Failed to save {0} to the {1} addressbook, redirecting now."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1301
|
||||
msgid "Click here if you are not redirected automatically."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:326
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:336
|
||||
msgid "internal"
|
||||
@ -117,12 +189,12 @@ msgid "HTTP bidir"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:290
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:293
|
||||
msgid "Host not set"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:272
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:275
|
||||
msgid "Port not set"
|
||||
msgstr ""
|
||||
|
||||
@ -140,24 +212,24 @@ msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:107
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:121
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:242
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:257
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:110
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:124
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:245
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:260
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:246
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:279
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:249
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:282
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:226
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:386
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:229
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:389
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
@ -392,17 +464,11 @@ msgstr ""
|
||||
msgid "Router I2CP Address"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
|
||||
msgid "Host"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:396
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:148
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:409
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:244
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:266
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:247
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:269
|
||||
msgid "Port"
|
||||
msgstr ""
|
||||
|
||||
@ -650,131 +716,127 @@ msgstr ""
|
||||
msgid "Modify"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:71
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:74
|
||||
msgid "I2P Tunnel Manager - List"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:83
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:86
|
||||
msgid "Status Messages"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:87
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:90
|
||||
msgid "Refresh"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:91
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:94
|
||||
msgid "Stop All"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:95
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:98
|
||||
msgid "Start All"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:99
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:102
|
||||
msgid "Restart All"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:103
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:106
|
||||
msgid "Reload Config"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:105
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:108
|
||||
msgid "I2P Server Tunnels"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:109
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:130
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:133
|
||||
msgid "Points at"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:111
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:153
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:157
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:114
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:156
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:160
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:113
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:177
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:250
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:297
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:180
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:300
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:163
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:166
|
||||
msgid "Base32 Address"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:171
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:174
|
||||
msgid "No Preview"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:184
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:304
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:187
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:307
|
||||
msgid "Starting..."
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:191
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:205
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:311
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:325
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:339
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:194
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:208
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:314
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:328
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:342
|
||||
msgid "Stop"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:198
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:332
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:201
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:335
|
||||
msgid "Running"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:212
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:346
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:215
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:349
|
||||
msgid "Stopped"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:219
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:353
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:222
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:356
|
||||
msgid "Start"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:234
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:237
|
||||
msgid "New server tunnel"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:236
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:396
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:239
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:399
|
||||
msgid "Standard"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:238
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:398
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:241
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:401
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:240
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:243
|
||||
msgid "I2P Client Tunnels"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:248
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:283
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:286
|
||||
msgid "Interface"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:318
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:321
|
||||
msgid "Standby"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:363
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366
|
||||
msgid "Outproxy"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:367
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:381
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:384
|
||||
msgid "none"
|
||||
msgstr ""
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:394
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:397
|
||||
msgid "New client tunnel"
|
||||
msgstr ""
|
||||
|
860
apps/i2ptunnel/locale/messages_vi.po
Normal file
860
apps/i2ptunnel/locale/messages_vi.po
Normal file
@ -0,0 +1,860 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the i2ptunnel package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# <tran.nathan@gmail.com>, 2011.
|
||||
# dich_tran <tran.nathan@gmail.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:23+0000\n"
|
||||
"PO-Revision-Date: 2011-06-11 08:42+0000\n"
|
||||
"Last-Translator: ducki2p <ducki2p@gmail.com>\n"
|
||||
"Language-Team: Vietnamese (http://www.transifex.net/projects/p/I2P/team/vi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: vi\n"
|
||||
"Plural-Forms: nplurals=1; plural=0\n"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:514
|
||||
#, java-format
|
||||
msgid ""
|
||||
"To visit the destination in your host database, click <a "
|
||||
"href=\"{0}\">here</a>. To visit the conflicting addresshelper destination, "
|
||||
"click <a href=\"{1}\">here</a>."
|
||||
msgstr ""
|
||||
"Để truy cập vào điểm đến trong cơ sở dữ liệu máy chủ, bấm <a "
|
||||
"href=\"{0}\">vào đây</a>. Để truy cập vào địa chỉ giúp đỡ xung đột, bấm <a "
|
||||
"href=\"{1}\">vào đây</a>."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:875
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:388
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:142
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:401
|
||||
msgid "Host"
|
||||
msgstr "Máy chủ"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:876
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:370
|
||||
msgid "Destination"
|
||||
msgstr "Đích đến"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:881
|
||||
#, java-format
|
||||
msgid "Continue to {0} without saving"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:886
|
||||
#, java-format
|
||||
msgid "Save {0} to router address book and continue to eepsite"
|
||||
msgstr ""
|
||||
|
||||
#. only blockfile supports multiple books
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:889
|
||||
#, java-format
|
||||
msgid "Save {0} to master address book and continue to eepsite"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:890
|
||||
#, java-format
|
||||
msgid "Save {0} to private address book and continue to eepsite"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1046
|
||||
msgid ""
|
||||
"Click a link below to look for an address helper by using a \"jump\" "
|
||||
"service:"
|
||||
msgstr "Bấm vào đường dẫn dưới đây để tìm địa chỉ giúp đỡ bằng dịch vụ \"nhảy\":"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1262
|
||||
msgid "Added via address helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1286
|
||||
#, java-format
|
||||
msgid "Redirecting to {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1292
|
||||
msgid "Router Console"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
msgid "Addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1293
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1298
|
||||
#, java-format
|
||||
msgid "Saved {0} to the {1} addressbook, redirecting now."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1299
|
||||
#, java-format
|
||||
msgid "Failed to save {0} to the {1} addressbook, redirecting now."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java:1301
|
||||
msgid "Click here if you are not redirected automatically."
|
||||
msgstr ""
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:326
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/EditBean.java:336
|
||||
msgid "internal"
|
||||
msgstr "nội bộ"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:171
|
||||
msgid ""
|
||||
"Invalid form submission, probably because you used the 'back' or 'reload' "
|
||||
"button on your browser. Please resubmit."
|
||||
msgstr ""
|
||||
"Mẫu đơn đệ nạp không đúng, có lẻ vì bạn dùng nút 'back' hay 'reload\" của "
|
||||
"trình duyệt. Xin vui lòng đệ nạp lại."
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:218
|
||||
msgid "Configuration reloaded for all tunnels"
|
||||
msgstr "Nạp lại cấu hình cho mọi đường hầm"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:230
|
||||
msgid "Starting tunnel"
|
||||
msgstr "Bắt đầu đường hầm"
|
||||
|
||||
#. and give them something to look at in any case
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:243
|
||||
msgid "Stopping tunnel"
|
||||
msgstr "Ngưng đường hầm"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:311
|
||||
msgid "Configuration changes saved"
|
||||
msgstr "Lưu giữ thay đổi cấu hình"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:314
|
||||
msgid "Failed to save configuration"
|
||||
msgstr "Không lưu cấu hình được"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:398
|
||||
msgid "New Tunnel"
|
||||
msgstr "Đường Hầm Mới"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:418
|
||||
msgid "Standard client"
|
||||
msgstr "Khách thường"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:419
|
||||
msgid "HTTP client"
|
||||
msgstr "Khách HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:420
|
||||
msgid "IRC client"
|
||||
msgstr "Khách IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:421
|
||||
msgid "Standard server"
|
||||
msgstr "Máy chủ thường"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:422
|
||||
msgid "HTTP server"
|
||||
msgstr "Máy chủ HTTP"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:423
|
||||
msgid "SOCKS 4/4a/5 proxy"
|
||||
msgstr "Proxy SOCKS 4/4a/5"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:424
|
||||
msgid "SOCKS IRC proxy"
|
||||
msgstr "Proxy SOCKS IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:425
|
||||
msgid "CONNECT/SSL/HTTPS proxy"
|
||||
msgstr "Proxy nối kết/SSL/HTTPS"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:426
|
||||
msgid "IRC server"
|
||||
msgstr "Máy chủ IRC"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:427
|
||||
msgid "Streamr client"
|
||||
msgstr "Khách Streamr"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:428
|
||||
msgid "Streamr server"
|
||||
msgstr "Máy chủ Streamr"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:429
|
||||
msgid "HTTP bidir"
|
||||
msgstr "HTTP hai chiều"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:517
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:293
|
||||
msgid "Host not set"
|
||||
msgstr "Máy chủ chưa cấu hình"
|
||||
|
||||
#: ../java/src/net/i2p/i2ptunnel/web/IndexBean.java:521
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:275
|
||||
msgid "Port not set"
|
||||
msgstr "Cổng chưa cấu hình"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:73
|
||||
msgid "I2P Tunnel Manager - Edit Client Tunnel"
|
||||
msgstr "Quảng Lý Hầm I2P - Chỉnh đổi hầm khách"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:93
|
||||
msgid "Edit proxy settings"
|
||||
msgstr "Chỉnh đổi cấu hình proxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:101
|
||||
msgid "New proxy settings"
|
||||
msgstr "Cấu hình mới cho proxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:110
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:124
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:245
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:260
|
||||
msgid "Name"
|
||||
msgstr "Tên"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:249
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:282
|
||||
msgid "Type"
|
||||
msgstr "Loại"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:120
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:229
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:389
|
||||
msgid "Description"
|
||||
msgstr "Mô tả"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:126
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:136
|
||||
msgid "Target"
|
||||
msgstr "Điểm đến"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:130
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:132
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:162
|
||||
msgid "Access Point"
|
||||
msgstr "Điểm Truy Cập"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:137
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:150
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:192
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:153
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:167
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:213
|
||||
msgid "required"
|
||||
msgstr "cần có"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:159
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:178
|
||||
msgid "Reachable by"
|
||||
msgstr "Với được qua"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:180
|
||||
msgid "Outproxies"
|
||||
msgstr "Proxy ra"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:187
|
||||
msgid "Tunnel Destination"
|
||||
msgstr "Địa điểm Hầm đến"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:199
|
||||
msgid "name or destination"
|
||||
msgstr "tên hay điểm đến"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:202
|
||||
msgid "b32 not recommended"
|
||||
msgstr "không nên dùng b32"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:208
|
||||
msgid "Shared Client"
|
||||
msgstr "Chia khách"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:212
|
||||
msgid ""
|
||||
"(Share tunnels with other clients and irc/httpclients? Change requires "
|
||||
"restart of client proxy)"
|
||||
msgstr ""
|
||||
"(Chia sẻ hầm với những khách khác hay khách irc/http? Chỉnh đổi yêu cầu khởi"
|
||||
" động lại proxy khách)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:216
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:124
|
||||
msgid "Auto Start"
|
||||
msgstr "Tự động khởi động"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:220
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:128
|
||||
msgid "(Check the Box for 'YES')"
|
||||
msgstr "Chọn YES trong ô"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:222
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:243
|
||||
msgid "Advanced networking options"
|
||||
msgstr "Tùy chọn mạng cao cấp "
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:224
|
||||
msgid ""
|
||||
"(NOTE: when this client proxy is configured to share tunnels, then these "
|
||||
"options are for all the shared proxy clients!)"
|
||||
msgstr ""
|
||||
"(GHI CHÚ: khi proxy khách được cấu hình để chia sẻ hầm, thì những tùy chọn "
|
||||
"này cho tất cả khách proxy chia sẻ)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:226
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:245
|
||||
msgid "Tunnel Options"
|
||||
msgstr "Tùy chọn hầm"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:228
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:247
|
||||
msgid "Length"
|
||||
msgstr "Độ dài"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:235
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:254
|
||||
msgid "0 hop tunnel (low anonymity, low latency)"
|
||||
msgstr "hầm 0 bước nhảy (độ ẩn danh thấp, độ trễ thấp)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:239
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:258
|
||||
msgid "1 hop tunnel (medium anonymity, medium latency)"
|
||||
msgstr "hầm 1 bước nhảy (độ ẩn danh vừa, độ trễ vừa)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:243
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:262
|
||||
msgid "2 hop tunnel (high anonymity, high latency)"
|
||||
msgstr "hầm 2 bước nhảy (độ ẩn danh cao, độ trễ cao"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:247
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:266
|
||||
msgid "3 hop tunnel (very high anonymity, poor performance)"
|
||||
msgstr "hầm 3 bước nhảy (độ ẩn danh rất cao, hiệu suất tệ)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:256
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:275
|
||||
msgid "hop tunnel (very poor performance)"
|
||||
msgstr "hầm bước nhảy (hiệu xuất rất tệ)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:261
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:280
|
||||
msgid "Variance"
|
||||
msgstr "Độ khác biệt"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:268
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:287
|
||||
msgid "0 hop variance (no randomisation, consistant performance)"
|
||||
msgstr "Khác biệt 0 bước (không ngẫu nhiên, hiệu xuất vững)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:272
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:291
|
||||
msgid ""
|
||||
"+ 0-1 hop variance (medium additive randomisation, subtractive performance)"
|
||||
msgstr ""
|
||||
"Khác biệt + 0-1 bước (độ ngẫu nhiên bổ xung trung bình, hiệu xuất trừ)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:276
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:295
|
||||
msgid ""
|
||||
"+ 0-2 hop variance (high additive randomisation, subtractive performance)"
|
||||
msgstr "Khác biệt + 0-2 bước (độ ngẫu nhiên bổ xung cao, hiệu xuất trừ)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:280
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:299
|
||||
msgid "+/- 0-1 hop variance (standard randomisation, standard performance)"
|
||||
msgstr "Khác biệt +/- 0-1 bước (độ ngẫu nhiên chuẩn, hiệu xuất chuẩn)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:284
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:303
|
||||
msgid "+/- 0-2 hop variance (not recommended)"
|
||||
msgstr "Khác biệt +/- 0-2 bước (không nên)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:296
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:315
|
||||
msgid "hop variance"
|
||||
msgstr "khác biệt bước"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:301
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:320
|
||||
msgid "Count"
|
||||
msgstr "Số lượng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:308
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:327
|
||||
msgid "1 inbound, 1 outbound tunnel (low bandwidth usage, less reliability)"
|
||||
msgstr "1 đường vô, 1 đường hầm ra (dùng băng thông thấp, độ bền vững thấp)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:312
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:331
|
||||
msgid ""
|
||||
"2 inbound, 2 outbound tunnels (standard bandwidth usage, standard "
|
||||
"reliability)"
|
||||
msgstr ""
|
||||
"2 đường vô, 2 đường hầm ra (dùng băng thông trung bình, độ bền vững trung "
|
||||
"bình)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:316
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:335
|
||||
msgid ""
|
||||
"3 inbound, 3 outbound tunnels (higher bandwidth usage, higher reliability)"
|
||||
msgstr "3 đường vô, 3 đường hầm ra (dùng băng thông cao, độ bền vững cao)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:325
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:344
|
||||
msgid "tunnels"
|
||||
msgstr "đường hầm"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:330
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:349
|
||||
msgid "Backup Count"
|
||||
msgstr "Số lượng trừ bị"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:337
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:356
|
||||
msgid "0 backup tunnels (0 redundancy, no added resource usage)"
|
||||
msgstr "0 hầm trừ bị (độ dư 0, không thêm tài nguyên)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:341
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:360
|
||||
msgid "1 backup tunnel each direction (low redundancy, low resource usage)"
|
||||
msgstr "1 hầm trừ bị mỗi hướng (độ dư thấp, dùng tài nguyên thấp)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:345
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:364
|
||||
msgid ""
|
||||
"2 backup tunnels each direction (medium redundancy, medium resource usage)"
|
||||
msgstr "2 hầm trừ bị mỗi hướng (độ dư trung bình, dùng tài nguyên trung bình)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:349
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:368
|
||||
msgid "3 backup tunnels each direction (high redundancy, high resource usage)"
|
||||
msgstr "3 hầm trừ bị mỗi hướng (độ dư cao, dùng tài nguyên cao)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:358
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:377
|
||||
msgid "backup tunnels"
|
||||
msgstr "hầm trừ bị"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:365
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:384
|
||||
msgid "Profile"
|
||||
msgstr "Hồ sơ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:372
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:391
|
||||
msgid "interactive connection"
|
||||
msgstr "đường nối tương tác"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:376
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:395
|
||||
msgid "bulk connection (downloads/websites/BT)"
|
||||
msgstr "đường nối khổ to"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:378
|
||||
msgid "Delay Connect"
|
||||
msgstr "Chờ nối kết"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:382
|
||||
msgid "for request/response connections"
|
||||
msgstr "cho nối kết yêu cầu/phản hồi"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:386
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:399
|
||||
msgid "Router I2CP Address"
|
||||
msgstr "Địa chỉ Định Tuyến I2CP"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:396
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:148
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:409
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:247
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:269
|
||||
msgid "Port"
|
||||
msgstr "Cổng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:406
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:479
|
||||
msgid "Reduce tunnel quantity when idle"
|
||||
msgstr "Giảm số lượng hầm khi rổi"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:408
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:422
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:430
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:442
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:452
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:472
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:486
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:419
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:481
|
||||
msgid "Enable"
|
||||
msgstr "Mở"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:412
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:485
|
||||
msgid "Reduced tunnel count"
|
||||
msgstr "Số lượng đường hầm giảm"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:416
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:436
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:489
|
||||
msgid "Idle minutes"
|
||||
msgstr "Số phút rảnh rổi"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:420
|
||||
msgid "Close tunnels when idle"
|
||||
msgstr "Đóng đường hầm khi rảnh rổi"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:426
|
||||
msgid "New Keys on Reopen"
|
||||
msgstr "Chìa khóa mới khi mở lại"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:434
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:435
|
||||
msgid "Disable"
|
||||
msgstr "Tắt"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:440
|
||||
msgid "Delay tunnel open until required"
|
||||
msgstr "Đợi mở đường hầm cho đến khi yêu cầu"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:450
|
||||
msgid "Persistent private key"
|
||||
msgstr "Chìa khóa riêng bền dai"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:456
|
||||
msgid "File"
|
||||
msgstr "Tập tin"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:460
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:220
|
||||
msgid "Local destination"
|
||||
msgstr "Điểm đến nội bộ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:464
|
||||
msgid "(if known)"
|
||||
msgstr "(nếu biết)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:470
|
||||
msgid "Local Authorization"
|
||||
msgstr "Cho phép nội bộ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:476
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:490
|
||||
msgid "Username"
|
||||
msgstr "Tên đăng nhập"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:480
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:494
|
||||
msgid "Password"
|
||||
msgstr "Mật khẩu"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:484
|
||||
msgid "Outproxy Authorization"
|
||||
msgstr "Cho phép Outproxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:502
|
||||
msgid "Jump URL List"
|
||||
msgstr "Danh sách đường dẫn nhảy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:508
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:525
|
||||
msgid "Custom options"
|
||||
msgstr "Tùy chọn tùy ý"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:512
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:529
|
||||
msgid ""
|
||||
"NOTE: If tunnel is currently running, most changes will not take effect "
|
||||
"until tunnel is stopped and restarted."
|
||||
msgstr ""
|
||||
"GHI CHÚ: nếu đường hầm đang chạy thì những sửa đổi sẽ không có tác động cho "
|
||||
"đến khi đường hầm ngừng và khởi động lại."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:514
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:531
|
||||
msgid "Cancel"
|
||||
msgstr "Hủy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:518
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:535
|
||||
msgid "Delete"
|
||||
msgstr "Xóa"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editClient_jsp.java:520
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:537
|
||||
msgid "Save"
|
||||
msgstr "Giữ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:73
|
||||
msgid "I2P Tunnel Manager - Edit Server Tunnel"
|
||||
msgstr "Quản Lý Hầm I2P - Điều chỉnh Hầm Máy Chủ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:93
|
||||
msgid "Edit server settings"
|
||||
msgstr "Chỉnh sửa cấu hình máy chủ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:101
|
||||
msgid "New server settings"
|
||||
msgstr "Cấu hình mới cho máy chủ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:199
|
||||
msgid "Website name"
|
||||
msgstr "Tên trang web"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:203
|
||||
msgid "(leave blank for outproxies)"
|
||||
msgstr "(để trống cho outproxies)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:208
|
||||
msgid "Private key file"
|
||||
msgstr "Tập tin khóa riêng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:230
|
||||
msgid "Add to local addressbook"
|
||||
msgstr "Thêm vô sổ địa chỉ địa phương"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:237
|
||||
msgid "Hostname Signature"
|
||||
msgstr "Chữ ký tên máy chủ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:417
|
||||
msgid "Encrypt Leaseset"
|
||||
msgstr "Leaseset mã hóa"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:423
|
||||
msgid "Encryption Key"
|
||||
msgstr "Khóa mã hóa"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:427
|
||||
msgid "Generate New Key"
|
||||
msgstr "Tạo khóa mới"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:429
|
||||
msgid "Generate"
|
||||
msgstr "Kiến tạo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:431
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:523
|
||||
msgid "(Tunnel must be stopped first)"
|
||||
msgstr "(Hầm phải ngưng trước)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:433
|
||||
msgid "Restricted Access List"
|
||||
msgstr "Sổ truy cập giới hạn"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:439
|
||||
msgid "Whitelist"
|
||||
msgstr "Sổ trắng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:443
|
||||
msgid "Blacklist"
|
||||
msgstr "Sổ đen"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:447
|
||||
msgid "Access List"
|
||||
msgstr "Sổ truy cập"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:451
|
||||
msgid "Inbound connection limits (0=unlimited)"
|
||||
msgstr "Giới hạn đường nối vào (0=không giới hạn)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:453
|
||||
msgid "Per client"
|
||||
msgstr "Mỗi khách"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:455
|
||||
msgid "Per minute"
|
||||
msgstr "Mỗi phút"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:459
|
||||
msgid "Per hour"
|
||||
msgstr "Mỗi giờ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:463
|
||||
msgid "Per day"
|
||||
msgstr "Mỗi ngày"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:467
|
||||
msgid "Total"
|
||||
msgstr "Tổng cộng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:475
|
||||
msgid "Max concurrent connections (0=unlimited)"
|
||||
msgstr "Số đường nối tối đa cùng lúc (0=không giới hạn)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:493
|
||||
msgid "New Certificate type"
|
||||
msgstr "Loại Chứng chỉ mới"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:495
|
||||
msgid "None"
|
||||
msgstr "Không có"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:499
|
||||
msgid "Hashcash (effort)"
|
||||
msgstr "Hashcash (nỗ lực)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:505
|
||||
msgid "Hashcash Calc Time"
|
||||
msgstr "Hashcash (giờ tính toán)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:507
|
||||
msgid "Estimate"
|
||||
msgstr "Ước lượng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:509
|
||||
msgid "Hidden"
|
||||
msgstr "Dấu"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:513
|
||||
msgid "Signed (signed by)"
|
||||
msgstr "Ký (ký bởi)"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:519
|
||||
msgid "Modify Certificate"
|
||||
msgstr "Chứng chỉ Điều chỉnh"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/editServer_jsp.java:521
|
||||
msgid "Modify"
|
||||
msgstr "Điều chỉnh"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:74
|
||||
msgid "I2P Tunnel Manager - List"
|
||||
msgstr "Quản Lý Hầm I2P - Danh sách"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:86
|
||||
msgid "Status Messages"
|
||||
msgstr "Thông báo hiện trạng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:90
|
||||
msgid "Refresh"
|
||||
msgstr "Nạp lại"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:94
|
||||
msgid "Stop All"
|
||||
msgstr "Ngưng tất cả"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:98
|
||||
msgid "Start All"
|
||||
msgstr "Bắt đầu tất cả"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:102
|
||||
msgid "Restart All"
|
||||
msgstr "Khởi động lại tất cả"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:106
|
||||
msgid "Reload Config"
|
||||
msgstr "Nạp lại cấu hình"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:108
|
||||
msgid "I2P Server Tunnels"
|
||||
msgstr "Đường hầm máy chủ I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:112
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:133
|
||||
msgid "Points at"
|
||||
msgstr "Điểm ở"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:114
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:156
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:160
|
||||
msgid "Preview"
|
||||
msgstr "Xem trước"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:116
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:180
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:253
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:300
|
||||
msgid "Status"
|
||||
msgstr "Hiện trạng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:166
|
||||
msgid "Base32 Address"
|
||||
msgstr "Địa chỉ Base32"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:174
|
||||
msgid "No Preview"
|
||||
msgstr "Không xem trước"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:187
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:307
|
||||
msgid "Starting..."
|
||||
msgstr "Bắt đầu..."
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:194
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:208
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:314
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:328
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:342
|
||||
msgid "Stop"
|
||||
msgstr "Ngưng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:201
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:335
|
||||
msgid "Running"
|
||||
msgstr "Đang chạy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:215
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:349
|
||||
msgid "Stopped"
|
||||
msgstr "Đã ngưng"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:222
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:356
|
||||
msgid "Start"
|
||||
msgstr "Bắt đầu"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:237
|
||||
msgid "New server tunnel"
|
||||
msgstr "Hầm chủ mới"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:239
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:399
|
||||
msgid "Standard"
|
||||
msgstr "Chuẩn"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:241
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:401
|
||||
msgid "Create"
|
||||
msgstr "Kiến tạo"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:243
|
||||
msgid "I2P Client Tunnels"
|
||||
msgstr "Hầm khách I2P"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:251
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:286
|
||||
msgid "Interface"
|
||||
msgstr "Giao diện"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:321
|
||||
msgid "Standby"
|
||||
msgstr "Chờ"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:366
|
||||
msgid "Outproxy"
|
||||
msgstr "Outproxy"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:384
|
||||
msgid "none"
|
||||
msgstr "không có"
|
||||
|
||||
#: ../jsp/WEB-INF/classes/net/i2p/i2ptunnel/jsp/index_jsp.java:397
|
||||
msgid "New client tunnel"
|
||||
msgstr "Đường hầm mới"
|
||||
|
||||
|
@ -98,7 +98,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -110,6 +110,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./jettylib/org.mortbay.jetty.jar" basedir="./build/obj" includes="**/*.class" update="true" >
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
@ -123,6 +128,14 @@
|
||||
<uptodate property="jar.uptodate" targetfile="jettylib/org.mortbay.jetty.jar" >
|
||||
<srcfiles dir= "build/obj" includes="**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="clean" >
|
||||
|
@ -31,7 +31,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -43,6 +43,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./build/mstreaming.jar" basedir="./build/obj" includes="**/*.class" >
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
@ -56,6 +61,14 @@
|
||||
<uptodate property="jar.uptodate" targetfile="build/mstreaming.jar" >
|
||||
<srcfiles dir= "." includes="build/obj/**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="javadoc">
|
||||
|
@ -25,7 +25,7 @@
|
||||
<pathelement location="../../systray/java/build/obj" />
|
||||
<pathelement location="../../systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="../../desktopgui/build" />
|
||||
<pathelement location="../../../installer/lib/wrapper/win32/wrapper.jar" /> <!-- we dont care if we're not on win32 -->
|
||||
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
||||
<pathelement location="../../jrobin/jrobin-1.5.9.1.jar" />
|
||||
</classpath>
|
||||
</depend>
|
||||
@ -57,7 +57,7 @@
|
||||
<pathelement location="../../systray/java/build/systray.jar" />
|
||||
<pathelement location="../../systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
||||
<pathelement location="../../../installer/lib/wrapper/win32/wrapper.jar" /> <!-- we dont care if we're not on win32 -->
|
||||
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
||||
<pathelement location="../../jrobin/jrobin-1.5.9.1.jar" />
|
||||
</classpath>
|
||||
</javac>
|
||||
@ -67,7 +67,7 @@
|
||||
<target name="jar" depends="jar1, war, bundle" />
|
||||
|
||||
<!-- the jar without the latest message classes from the jsps -->
|
||||
<target name="jar1" depends="compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes.j" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -80,6 +80,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar1" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.j.tr" value="" />
|
||||
<jar destfile="./build/routerconsole.jar" basedir="./build/obj" includes="**/*.class">
|
||||
<manifest>
|
||||
<!-- top level installer will rename to jrobin.jar -->
|
||||
@ -96,10 +101,10 @@
|
||||
<target name="bundle" depends="jar1, precompilejsp" >
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<!-- multi-lang is optional -->
|
||||
@ -115,27 +120,34 @@
|
||||
<uptodate property="jar.uptodate" targetfile="build/routerconsole.jar" >
|
||||
<srcfiles dir= "build/obj" includes="**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="poupdate" depends="precompilejsp">
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- does NOT update the message classes, as those go in the jar -->
|
||||
<target name="war" depends="precompilejsp, warUpToDate" unless="war.uptodate" >
|
||||
<target name="listChangedFiles2" depends="warUpToDate" if="shouldListChanges2" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes.w" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -147,6 +159,12 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<!-- does NOT update the message classes, as those go in the jar -->
|
||||
<target name="war" depends="precompilejsp, warUpToDate, listChangedFiles2" unless="war.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.w.tr" value="" />
|
||||
<!-- Don't include the css in the war, the main build.xml will copy it to docs/themes/console/ -->
|
||||
<war destfile="build/routerconsole.war" webxml="../jsp/web-out.xml"
|
||||
basedir="../jsp/" excludes="web.xml, *.css, **/*.java, *.jsp, *.jsi, web-fragment.xml, web-out.xml">
|
||||
@ -162,6 +180,14 @@
|
||||
<uptodate property="war.uptodate" targetfile="build/routerconsole.war" >
|
||||
<srcfiles dir= "../jsp" excludes="web.xml, web-fragment.xml, *.css, **/*.java, *.jsp, *.jsi" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="precompilejsp" depends="jar1" unless="precompilejsp.uptodate">
|
||||
@ -211,7 +237,7 @@
|
||||
<pathelement location="../../systray/java/build/obj" />
|
||||
<pathelement location="../../systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
||||
<pathelement location="../../../installer/lib/wrapper/win32/wrapper.jar" />
|
||||
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
||||
<pathelement location="build/routerconsole.jar" />
|
||||
<pathelement location="build/" />
|
||||
<pathelement location="../../../router/java/build/router.jar" />
|
||||
@ -243,7 +269,7 @@
|
||||
<pathelement location="../../systray/java/build/obj" />
|
||||
<pathelement location="../../systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="../../desktopgui/dist/desktopgui.jar" />
|
||||
<pathelement location="../../../installer/lib/wrapper/win32/wrapper.jar" />
|
||||
<pathelement location="../../../installer/lib/wrapper/all/wrapper.jar" />
|
||||
<pathelement location="build/routerconsole.jar" />
|
||||
<pathelement location="build" />
|
||||
<pathelement location="../../../router/java/build/router.jar" />
|
||||
|
@ -12,6 +12,7 @@
|
||||
CLASS=net.i2p.router.web.messages
|
||||
TMPFILE=build/javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
@ -106,15 +107,17 @@ do
|
||||
-o ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - xgettext failed, not updating translations'
|
||||
echo "ERROR - xgettext failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
msgmerge -U --backup=none $i ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgmerge failed, not updating translations'
|
||||
echo "ERROR - msgmerge failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
rm -f ${i}t
|
||||
@ -131,11 +134,13 @@ do
|
||||
msgfmt --java --statistics -r $CLASS -l $LG -d build/obj $i
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgfmt failed, not updating translations'
|
||||
echo "ERROR - msgfmt failed on ${i}, not updating translations"
|
||||
# msgfmt leaves the class file there so the build would work the next time
|
||||
find build/obj -name messages_${LG}.class -exec rm -f {} \;
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f $TMPFILE
|
||||
# todo: return failure
|
||||
exit 0
|
||||
exit $RC
|
||||
|
@ -46,12 +46,15 @@ public class ConfigUIHelper extends HelperBase {
|
||||
return rv;
|
||||
}
|
||||
|
||||
private static final String langs[] = {"ar", "de", "en", "es", "fr", "nl", "pt", "ru", "sv", "zh"};
|
||||
private static final String flags[] = {"lang_ar", "de", "us", "es", "fr", "nl", "pt", "ru", "se", "cn"};
|
||||
private static final String langs[] = {"ar", "de", "en", "es", "fi", "fr", "it", "nl", "pl", "pt", "ru",
|
||||
"sv", "vi", "zh"};
|
||||
private static final String flags[] = {"lang_ar", "de", "us", "es", "fi", "fr", "it", "nl", "pl", "pt", "ru",
|
||||
"se", "vn", "cn"};
|
||||
private static final String xlangs[] = {_x("Arabic"),
|
||||
_x("German"), _x("English"), _x("Spanish"),_x("French"),
|
||||
_x("Dutch"), _x("Portuguese"), _x("Russian"),
|
||||
_x("Swedish"), _x("Chinese")};
|
||||
_x("German"), _x("English"), _x("Spanish"),_x("Finnish"),
|
||||
_x("French"), _x("Italian"), _x("Dutch"), _x("Polish"),
|
||||
_x("Portuguese"), _x("Russian"), _x("Swedish"),
|
||||
_x("Vietnamese"), _x("Chinese")};
|
||||
|
||||
/** todo sort by translated string */
|
||||
public String getLangSettings() {
|
||||
|
@ -10,6 +10,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.util.FileUtil;
|
||||
import net.i2p.util.Log;
|
||||
import net.i2p.util.SecureDirectory;
|
||||
|
||||
import org.mortbay.http.HttpContext;
|
||||
@ -36,6 +37,12 @@ import org.mortbay.jetty.servlet.WebApplicationContext;
|
||||
public class WebAppStarter {
|
||||
|
||||
static final Map<String, Long> warModTimes = new ConcurrentHashMap();
|
||||
static private Log _log;
|
||||
|
||||
static {
|
||||
_log = ContextHelper.getContext(null).logManager().getLog(WebAppStarter.class); ;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* adds and starts
|
||||
@ -44,6 +51,7 @@ public class WebAppStarter {
|
||||
static void startWebApp(I2PAppContext ctx, Server server, String appName, String warPath) throws Exception {
|
||||
File tmpdir = new SecureDirectory(ctx.getTempDir(), "jetty-work-" + appName + ctx.random().nextInt());
|
||||
WebApplicationContext wac = addWebApp(ctx, server, appName, warPath, tmpdir);
|
||||
_log.debug("Loading war from: " + warPath);
|
||||
wac.start();
|
||||
}
|
||||
|
||||
@ -89,6 +97,8 @@ public class WebAppStarter {
|
||||
// this does the passwords...
|
||||
RouterConsoleRunner.initialize(wac);
|
||||
|
||||
|
||||
|
||||
// see WebAppConfiguration for info
|
||||
String[] classNames = server.getWebApplicationConfigurationClassNames();
|
||||
String[] newClassNames = new String[classNames.length + 1];
|
||||
|
@ -34,12 +34,16 @@
|
||||
<a href="/?lang=ar&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=lang_ar" title="عربية" alt="عربية"></a>
|
||||
<a href="/?lang=zh&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=cn" title="中文" alt="中文"></a>
|
||||
<a href="/?lang=de&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=de" title="Deutsch" alt="Deutsch"></a>
|
||||
<a href="/?lang=fr&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=fr" title="Français" alt="Français"></a>
|
||||
<a href="/?lang=es&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=es" title="Español" alt="Español"></a>
|
||||
<a href="/?lang=pt&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=pt" title="Português" alt="Português"></a>
|
||||
<a href="/?lang=fi&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=fi" title="Suomi" alt="Suomi"></a>
|
||||
<a href="/?lang=fr&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=fr" title="Français" alt="Français"></a><br/>
|
||||
<a href="/?lang=it&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=it" title="Italiano" alt="Italiano"></a>
|
||||
<a href="/?lang=nl&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=nl" title="Nederlands" alt="Nederlands"></a>
|
||||
<a href="/?lang=pl&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=pl" title="Polski" alt="Polski"></a>
|
||||
<a href="/?lang=pt&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=pt" title="Português" alt="Português"></a>
|
||||
<a href="/?lang=ru&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=ru" title="Русский" alt="Русский"></a>
|
||||
<a href="/?lang=sv&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=se" title="Svenska" alt="Svenska"></a>
|
||||
<a href="/?lang=vi&consoleNonce=<%=consoleNonce%>"><img src="/flags.jsp?c=vn" title="Tiếng Việt" alt="Tiếng Việt"></a>
|
||||
</div>
|
||||
<a name="top"></a>
|
||||
<h2><%=intl._("Welcome to I2P")%></h2>
|
||||
|
File diff suppressed because it is too large
Load Diff
5915
apps/routerconsole/locale/messages_fi.po
Normal file
5915
apps/routerconsole/locale/messages_fi.po
Normal file
File diff suppressed because it is too large
Load Diff
5857
apps/routerconsole/locale/messages_it.po
Normal file
5857
apps/routerconsole/locale/messages_it.po
Normal file
File diff suppressed because it is too large
Load Diff
5870
apps/routerconsole/locale/messages_pl.po
Normal file
5870
apps/routerconsole/locale/messages_pl.po
Normal file
File diff suppressed because it is too large
Load Diff
5823
apps/routerconsole/locale/messages_vi.po
Normal file
5823
apps/routerconsole/locale/messages_vi.po
Normal file
File diff suppressed because it is too large
Load Diff
@ -45,7 +45,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -57,6 +57,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./build/sam.jar" basedir="./build/obj" includes="**/*.class">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="net.i2p.sam.SAMBridge" />
|
||||
@ -72,6 +77,14 @@
|
||||
<uptodate property="jar.uptodate" targetfile="build/sam.jar" >
|
||||
<srcfiles dir= "build/obj" includes="**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="jarTest" depends="jar, compileTest">
|
||||
|
@ -44,7 +44,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="builddep, compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -56,6 +56,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="builddep, compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./build/streaming.jar" basedir="./build/obj" includes="**/*.class" >
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
@ -69,6 +74,14 @@
|
||||
<uptodate property="jar.uptodate" targetfile="build/streaming.jar" >
|
||||
<srcfiles dir= "." includes="build/obj/**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="jarTest" depends="jar, compileTest">
|
||||
|
@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susidns\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"PO-Revision-Date: 2011-02-25 18:40-0000\n"
|
||||
"POT-Creation-Date: 2011-06-14 12:01+0000\n"
|
||||
"PO-Revision-Date: 2011-06-14 13:47-0000\n"
|
||||
"Last-Translator: hamada <hamada@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
"Language: \n"
|
||||
@ -18,123 +18,203 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:200
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197
|
||||
msgid "Search"
|
||||
msgstr "بحث"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:204
|
||||
msgid "Search within filtered list"
|
||||
msgstr "بحث ضمن القائمة"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||
msgid "Filtered list"
|
||||
msgstr "قائمة الترشيح"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:210
|
||||
msgid "no matches"
|
||||
msgstr "لا يوجد شبيه"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:213
|
||||
msgid "Addressbook"
|
||||
msgstr "دفتر العناوين"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:215
|
||||
msgid "contains no entries"
|
||||
msgstr "لايحتوي على بيانات"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:217
|
||||
msgid "contains 1 entry"
|
||||
msgstr "يحتوي على واحدة"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:219
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130
|
||||
#, java-format
|
||||
msgid "contains {0} entries"
|
||||
msgstr "يحتوي على {0} "
|
||||
msgid "Host name \"{0}\" contains illegal character {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:229
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:143
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:145
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:152
|
||||
#, java-format
|
||||
msgid "Host name cannot start with \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:147
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:149
|
||||
#, java-format
|
||||
msgid "Host name cannot end with \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:154
|
||||
#, java-format
|
||||
msgid "Host name cannot contain \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:157
|
||||
#, java-format
|
||||
msgid "Host name \"{0}\" requires conversion to ASCII but the conversion library is unavailable in this JVM"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:209
|
||||
msgid "None"
|
||||
msgstr "لاشيئ"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:217
|
||||
msgid "Hashcash"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:219
|
||||
msgid "Hidden"
|
||||
msgstr "مختفي"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:221
|
||||
msgid "Signed"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:223
|
||||
#, java-format
|
||||
msgid "Type {0}"
|
||||
msgstr "نوع {0}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232
|
||||
#, fuzzy, java-format
|
||||
msgid "One result for search within filtered list."
|
||||
msgid_plural "{0} results for search within filtered list."
|
||||
msgstr[0] "بحث ضمن القائمة"
|
||||
msgstr[1] "بحث ضمن القائمة"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#, fuzzy, java-format
|
||||
msgid "Filtered list contains 1 entry."
|
||||
msgid_plural "Fltered list contains {0} entries."
|
||||
msgstr[0] "يحتوي على واحدة"
|
||||
msgstr[1] "يحتوي على واحدة"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241
|
||||
#, java-format
|
||||
msgid "One result for search."
|
||||
msgid_plural "{0} results for search."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250
|
||||
#, fuzzy, java-format
|
||||
msgid "Address book contains 1 entry."
|
||||
msgid_plural "Address book contains {0} entries."
|
||||
msgstr[0] "يحتوي على واحدة"
|
||||
msgstr[1] "يحتوي على واحدة"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr "اظهار {0} من {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
|
||||
msgid "Add"
|
||||
msgstr "أضف"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:390
|
||||
msgid "Replace"
|
||||
msgstr "عوض"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in addressbook, unchanged."
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:242
|
||||
#, fuzzy, java-format
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
msgstr "اسم مضيف {0} موجود في دفتر العناوين."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name {0} is already in addressbook with a different destination. Click "
|
||||
"\"Replace\" to overwrite."
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
|
||||
#, fuzzy, java-format
|
||||
msgid "Host name {0} is already in address book with a different destination. Click \"Replace\" to overwrite."
|
||||
msgstr "اسم المضيف {0} موجود مسبقا في دفتر العناوين. أنقر \"عوض\" يتعويضه."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:278
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "تم اضافة الوجهة الى {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:280
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "تم تغيير الوجهة الى {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:315
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:261
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:320
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "باطلة Base 64 وجهة."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:289
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:275
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:329
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "قم بادخال اسم المضيف والوجهة"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:293
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
#. clear search when deleting
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:354
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:261
|
||||
msgid "Delete Entry"
|
||||
msgstr "حذف العنصر"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:334
|
||||
msgid "Delete Selected"
|
||||
msgstr "حذف"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:303
|
||||
#, java-format
|
||||
#. parameter is a host name
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:347
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:299
|
||||
#, fuzzy, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "وجهة {0} محذوفة."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
|
||||
#, java-format
|
||||
msgid "{0} destinations deleted."
|
||||
msgstr "{0} وجهة محذوفة."
|
||||
#. parameter will always be >= 2
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:350
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
|
||||
#, fuzzy, java-format
|
||||
msgid "1 destination deleted."
|
||||
msgid_plural "{0} destinations deleted."
|
||||
msgstr[0] "{0} وجهة محذوفة."
|
||||
msgstr[1] "{0} وجهة محذوفة."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
msgid "Addressbook saved."
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:352
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:304
|
||||
msgid "No entries selected to delete."
|
||||
msgstr "لم يتم اختيار عنصر للحذف"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:360
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
||||
msgid "Address book saved."
|
||||
msgstr "تم حفظ دفتر العناوين"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:363
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "خطأ: لم يتم حفظ دفتر العناوين"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:368
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:151
|
||||
msgid ""
|
||||
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
||||
"\" button on your browser. Please resubmit."
|
||||
msgstr ""
|
||||
"فشل في الارسال، ربما لاستعمال زر \"رجوع\" او \"أنعش\". قم بالارسال مرة أخرى."
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:315
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
||||
msgid "Invalid form submission, probably because you used the \"back\" or \"reload\" button on your browser. Please resubmit."
|
||||
msgstr "فشل في الارسال، ربما لاستعمال زر \"رجوع\" او \"أنعش\". قم بالارسال مرة أخرى."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "Save"
|
||||
msgstr "حفظ"
|
||||
|
||||
@ -143,9 +223,9 @@ msgid "Configuration saved."
|
||||
msgstr "حفظ الخيارات"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
msgid "Reload"
|
||||
msgstr "أعد تشغيل"
|
||||
|
||||
@ -153,235 +233,328 @@ msgstr "أعد تشغيل"
|
||||
msgid "Configuration reloaded."
|
||||
msgstr "اعادة تحميل الاعدادات"
|
||||
|
||||
#. Yes this is a hack.
|
||||
#. No it doesn't work on a text-mode browser.
|
||||
#. Fetching from the addressbook servlet
|
||||
#. with the correct parameters will kick off a
|
||||
#. config reload and fetch.
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:139
|
||||
msgid ""
|
||||
"Subscriptions saved, updating addressbook from subscription sources now."
|
||||
msgstr "تم حفظ الاشتراكات وتحديث دفتر العناوين من مصادر اشتراك الآن."
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:105
|
||||
#, java-format
|
||||
msgid "{0} address book in {1} database"
|
||||
msgstr "{0} دفتر عناوين في {1} قاعدة البيانات"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:252
|
||||
msgid "Manually added via SusiDNS"
|
||||
msgstr "محذوف يدويا عن طريق SusiDNS"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:266
|
||||
#, java-format
|
||||
msgid "Failed to add Destination for {0} to naming service {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:290
|
||||
#, java-format
|
||||
msgid "Failed to delete Destination for {0} from naming service {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||
msgid "Subscriptions saved, updating addressbook from subscription sources now."
|
||||
msgstr "تم حفظ الاشتراكات وتحديث دفتر العناوين من مصادر اشتراك الآن."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "تم حفظ الاشتراك."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:147
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "تم اعادة تحميل الاشتراك."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
msgid "addressbook"
|
||||
msgid "address book"
|
||||
msgstr "دفتر العناوين"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
||||
msgid "addressbooks"
|
||||
msgstr "دفتر العناوين"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:120
|
||||
msgid "Overview"
|
||||
msgstr "نظرة عامة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
||||
msgid "private"
|
||||
msgstr "خاص"
|
||||
msgid "Address books"
|
||||
msgstr "دفتر العناوين"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
||||
msgid "master"
|
||||
msgstr "رئيسي"
|
||||
msgid "private"
|
||||
msgstr "خاص"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
||||
msgid "router"
|
||||
msgstr "موجه"
|
||||
msgid "master"
|
||||
msgstr "رئيسي"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
||||
msgid "published"
|
||||
msgstr "منشور"
|
||||
msgid "router"
|
||||
msgstr "موجه"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
||||
msgid "subscriptions"
|
||||
msgstr "اشتراك"
|
||||
msgid "published"
|
||||
msgstr "منشور"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
||||
msgid "configuration"
|
||||
msgstr "خيارات"
|
||||
msgid "Subscriptions"
|
||||
msgstr "اشتراك"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||
msgid "overview"
|
||||
msgstr "نظرة عامة"
|
||||
msgid "Configuration"
|
||||
msgstr "خيارات"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:163
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
msgid "Address book"
|
||||
msgstr "دفتر العناوين"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:131
|
||||
msgid "Storage"
|
||||
msgstr "تخزين"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:169
|
||||
msgid "Filter"
|
||||
msgstr "ترشيح"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:166
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
|
||||
msgid "other"
|
||||
msgstr "أخر"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:174
|
||||
msgid "all"
|
||||
msgstr "جمبع"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:185
|
||||
msgid "Current filter"
|
||||
msgstr "الترشيح الحالي"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:182
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:190
|
||||
msgid "clear filter"
|
||||
msgstr "الغاء الترشيح"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:224
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:201
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:205
|
||||
msgid "Search"
|
||||
msgstr "بحث"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:238
|
||||
msgid "Name"
|
||||
msgstr "الإسم"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:362
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:240
|
||||
msgid "Links"
|
||||
msgstr "وصلة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:384
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:253
|
||||
msgid "Destination"
|
||||
msgstr "الوجهة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:257
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:273
|
||||
msgid "Mark for deletion"
|
||||
msgstr "اختر للحذف"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:279
|
||||
msgid "address helper link"
|
||||
msgstr "وصلة مساعدة"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:292
|
||||
msgid "Base 32 address"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:296
|
||||
msgid "More information on this entry"
|
||||
msgstr "المزيد من المعلومات حول هذا العنصر"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:299
|
||||
msgid "details"
|
||||
msgstr "تفاصيل"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:332
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:388
|
||||
msgid "Cancel"
|
||||
msgstr "الغاء"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345
|
||||
msgid "This addressbook is empty."
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:365
|
||||
msgid "This address book is empty."
|
||||
msgstr "هذا دفتر العناوين فارغ"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:356
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:378
|
||||
msgid "Add new destination"
|
||||
msgstr "أضف وجهة جديدة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:358
|
||||
msgid "Hostname"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:380
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:158
|
||||
msgid "Host Name"
|
||||
msgstr "اسم مضيف"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
msgid "configuration"
|
||||
msgstr "خيارات"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
msgid "Hints"
|
||||
msgstr "إشارة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
msgid ""
|
||||
"File and directory paths here are relative to the addressbook's working "
|
||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
|
||||
"\\addressbook\\ (Windows)."
|
||||
msgstr ""
|
||||
"عنوان الملف والمجلد نسبي الى مجلد دفتر العناوين، الذي عادة هو ~/.i2p/"
|
||||
"addressbook/ (Linux) or %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
msgid ""
|
||||
"If you want to manually add lines to an addressbook, add them to the private "
|
||||
"or master addressbooks."
|
||||
msgstr ""
|
||||
"اذا اردت اضافة العناوين الى دفتر العناوين، اضفها مباشرة الى دفتر العناوين "
|
||||
"الرئيسي."
|
||||
msgid "File and directory paths here are relative to the addressbook's working directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
msgstr "عنوان الملف والمجلد نسبي الى مجلد دفتر العناوين، الذي عادة هو ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
msgstr ""
|
||||
"يتم تحديث دفتر العناوين الخاص و دفتر العناوين العمومي من طرف تطبيق دفتر "
|
||||
"العناوين."
|
||||
msgid "If you want to manually add lines to an addressbook, add them to the private or master addressbooks."
|
||||
msgstr "اذا اردت اضافة العناوين الى دفتر العناوين، اضفها مباشرة الى دفتر العناوين الرئيسي."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
msgid ""
|
||||
"When you publish your addressbook, ALL destinations from the master and "
|
||||
"router addressbooks appear there."
|
||||
msgstr "عندما تنشر دفتر العناوين، ستظهر جميع المواقع هنا."
|
||||
msgid "The router addressbook and the published addressbook are updated by the addressbook application."
|
||||
msgstr "يتم تحديث دفتر العناوين الخاص و دفتر العناوين العمومي من طرف تطبيق دفتر العناوين."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
msgstr "استعمل دفتر العناوين الخاص من أجل العناوين الخاصة التي لن يتم نشرها."
|
||||
msgid "When you publish your addressbook, ALL destinations from the master and router addressbooks appear there."
|
||||
msgstr "عندما تنشر دفتر العناوين، ستظهر جميع المواقع هنا."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
msgid "Use the private addressbook for private destinations, these are not published."
|
||||
msgstr "استعمل دفتر العناوين الخاص من أجل العناوين الخاصة التي لن يتم نشرها."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
msgid "Options"
|
||||
msgstr "خيارات"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr "ملف يحتوي على قائمة الاشتراكات"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
msgid "Update interval in hours"
|
||||
msgstr "تحديث الفاصل الزمني في ساعات"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
msgid "Your public hosts.txt file (choose a path within your webserver document root)"
|
||||
msgstr "hosts.txt ملف"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "hosts.txt (ﻻتغير)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "سيتم نشر هذه العناوين"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "دفتر عناوينك الخاص، لن يتم نشره"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "رقم منفذ eepProxy (ﻻ حاجة للتغيير)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "عنوان لـ eepProxy"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "تعديل دفتر العناوين المنشور"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
msgid ""
|
||||
"File containing the etags header from the fetched subscription URLs (no need "
|
||||
"to change)"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
msgid "File containing the etags header from the fetched subscription URLs (no need to change)"
|
||||
msgstr "ملف يحتوي على قائمة عناوين الاشتراك"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
msgid ""
|
||||
"File containing the modification timestamp for each fetched subscription URL "
|
||||
"(no need to change)"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
msgid "File containing the modification timestamp for each fetched subscription URL (no need to change)"
|
||||
msgstr "ملف يحتوي على تاريخ التحديث"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:170
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr "ملف لحفظ الأخطاء"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:106
|
||||
msgid "addressbook"
|
||||
msgstr "دفتر العناوين"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:174
|
||||
msgid "Encoded Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:190
|
||||
msgid "Base 32 Address"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:200
|
||||
msgid "Address Helper"
|
||||
msgstr "وصلة مساعدة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
msgid "link"
|
||||
msgstr "وصلة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:211
|
||||
msgid "Public Key"
|
||||
msgstr "مفتاح علني"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:217
|
||||
msgid "Signing Key"
|
||||
msgstr "مفتاح التوقيع"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:223
|
||||
msgid "Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:229
|
||||
msgid "Added Date"
|
||||
msgstr "التاريخ"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:235
|
||||
msgid "Source"
|
||||
msgstr "المصدر"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:241
|
||||
msgid "Last Modified"
|
||||
msgstr "أخر تحديث"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:247
|
||||
msgid "Notes"
|
||||
msgstr " 1. مسودة"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91
|
||||
msgid "Introduction"
|
||||
msgstr "تقديم"
|
||||
@ -391,111 +564,92 @@ msgid "What is the addressbook?"
|
||||
msgstr "ماهو دفتر العناوين؟"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111
|
||||
msgid "The addressbook application is part of your i2p installation."
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr "تطبيق دفتر العناوين هو ضمن مجموعة برامج i2p"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
msgid "It regularly updates your hosts.txt file from distributed sources or \"subscriptions\"."
|
||||
msgstr "يقوم بتحديث ملف hosts.txt من عدة مصادر"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||
msgid ""
|
||||
"In the default configuration, the addressbook is only subscribed to www.i2p2."
|
||||
"i2p."
|
||||
msgid "In the default configuration, the address book is only subscribed to www.i2p2.i2p."
|
||||
msgstr "في الاعدادت العادية، دفتر العناوين مرتبط ب www.i2p2.i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||
msgid ""
|
||||
"Subscribing to additional sites is easy, just add them to your <a href="
|
||||
"\"subscriptions.jsp\">subscriptions</a> file."
|
||||
msgstr ""
|
||||
"من السهل الانخراط في باقي المواقع فقط أضفه الى <a href=\"subscriptions.jsp"
|
||||
"\">الانخراط</a>"
|
||||
msgid "Subscribing to additional sites is easy, just add them to your <a href=\"subscriptions.jsp\">subscriptions</a> file."
|
||||
msgstr "من السهل الانخراط في باقي المواقع فقط أضفه الى <a href=\"subscriptions.jsp\">الانخراط</a>"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||
msgid ""
|
||||
"For more information on naming in i2p, see <a href=\"http://www.i2p2.i2p/"
|
||||
"naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr ""
|
||||
"للمزيد من المعلومات حول التسمية<a href=\"http://www.i2p2.i2p/naming.html"
|
||||
"\">لمحة عامة www.i2p2.i2p</a>."
|
||||
msgid "For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr "للمزيد من المعلومات حول التسمية<a href=\"http://www.i2p2.i2p/naming.html\">لمحة عامة www.i2p2.i2p</a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
msgid "How does the addressbook work?"
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr "كيف يشتغل دفتر العناوين؟"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
msgid ""
|
||||
"The addressbook application regularly polls your subscriptions and merges "
|
||||
"their content into your \"router\" addressbook, stored in the hosts.txt file."
|
||||
msgstr ""
|
||||
"دفتر العناوين الخاص بك يقوم بستمرار من الحصول على الاشتراكات و حفظ العناولن "
|
||||
"الجديدة في ملف hosts.txt."
|
||||
msgid "The addressbook application regularly polls your subscriptions and merges their content into your \"router\" address book."
|
||||
msgstr "دفتر العناوين الخاص بك يقوم بستمرار من الحصول على الاشتراكات و حفظ العناولن الجديدة في ملف hosts.txt."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
msgid ""
|
||||
"Then it merges your \"master\" addressbook (userhosts.txt) into the router "
|
||||
"addressbook as well."
|
||||
msgstr "ثم اضافة العناوين الى دفتر العناوين أيضا."
|
||||
msgid "Then it merges your \"master\" address book into the router address book as well."
|
||||
msgstr "ثم اضافة العناوين الى دفتر العناوين الرئيسي أيضا."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||
msgid ""
|
||||
"If configured, the router addressbook is now written to the \"published\" "
|
||||
"addressbook, which will be publicly available if you are running an eepsite."
|
||||
msgstr "اذا قمت بالاختيار لن تتم نشر دفتر العناوين "
|
||||
msgid "If configured, the router address book is now written to the \"published\" address book, which will be publicly available if you are running an eepsite."
|
||||
msgstr "اذا قمت بالاختيار، سيتم نشر دفتر العناوين العام الذي يستطيع الأخرون الوصول اليه."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||
msgid ""
|
||||
"The router also uses a private addressbook (privatehosts.txt, not shown in "
|
||||
"the picture), which is not merged or published."
|
||||
msgstr "الموجه يستعمل ايضا دفتر عناوين خاص الذ لا يتم نشره"
|
||||
msgid "The router also uses a private address book (not shown in the picture), which is not merged or published."
|
||||
msgstr "الموجه يستعمل ايضا دفتر عناوين خاص الذي لا يتم نشره"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
msgid ""
|
||||
"Hosts in the private addressbook can be accessed by you but their addresses "
|
||||
"are never distributed to others."
|
||||
msgstr ""
|
||||
"يمكنك الإطلاع على المواقع في دفتر العناوينك الخاص توزيع أبدا لكم ولكن "
|
||||
"عناوينهم للآخرين."
|
||||
msgid "Hosts in the private address book can be accessed by you but their addresses are never distributed to others."
|
||||
msgstr "العناوين في دفتر العناوين الخاص لايمكن الوصول اليها من طرف الآخرين. "
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
msgid ""
|
||||
"The private addressbook can also be used for aliases of hosts in your other "
|
||||
"addressbooks."
|
||||
msgstr ""
|
||||
"ويمكن أيضا أن تستعمل دفتر العناوين الخاص لأجل الأسماء المستعارة لأخرى "
|
||||
"الخاصة بك."
|
||||
msgid "The private address book can also be used for aliases of hosts in your other address books."
|
||||
msgstr "ويمكن أيضا أن تستعمل دفتر العناوين الخاص لأجل الأسماء المستعارة لأخرى الخاصة بك."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
msgid "subscriptions"
|
||||
msgstr "اشتراك"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "ملف الاشتراك يحتوي على قائمة مواقع i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
msgid "The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr "دفتر العناوين تقوم يستمرار بالتحقق من قائمة eepsites."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "هذه العناوين لملف hosts.txt."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid ""
|
||||
"The default subscription is the hosts.txt from www.i2p2.i2p, which is "
|
||||
"updated infrequently."
|
||||
msgstr ""
|
||||
"الاشتراك العادي هو لملف hosts.txt from www.i2p2.i2p الذي يتم ترقيته باستمرار."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
msgid ""
|
||||
"So it is a good idea to add additional subscriptions to sites that have the "
|
||||
"latest addresses."
|
||||
msgstr ""
|
||||
"انها فكرة جيدة لإضافة اشتراكات إضافية إلى المواقع التي تحتوي على أحدث "
|
||||
"العناوين."
|
||||
msgid "The default subscription is the hosts.txt from www.i2p2.i2p, which is updated infrequently."
|
||||
msgstr "الاشتراك العادي هو لملف hosts.txt from www.i2p2.i2p الذي يتم ترقيته باستمرار."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
msgid "So it is a good idea to add additional subscriptions to sites that have the latest addresses."
|
||||
msgstr "انها فكرة جيدة لإضافة اشتراكات إضافية إلى المواقع التي تحتوي على أحدث العناوين."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr "أنظر الأسئلة الشائعة للخصول على قائمة بالعناوين"
|
||||
|
||||
#~ msgid "Filtered list"
|
||||
#~ msgstr "قائمة الترشيح"
|
||||
|
||||
#~ msgid "no matches"
|
||||
#~ msgstr "لا يوجد شبيه"
|
||||
|
||||
#~ msgid "contains no entries"
|
||||
#~ msgstr "لايحتوي على بيانات"
|
||||
|
||||
#~ msgid "contains {0} entries"
|
||||
#~ msgstr "يحتوي على {0} "
|
||||
|
||||
#~ msgid "addressbooks"
|
||||
#~ msgstr "دفتر العناوين"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P susidns\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-03-03 18:29+0000\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:23+0000\n"
|
||||
"PO-Revision-Date: 2010-06-15 14:09+0100\n"
|
||||
"Last-Translator: duck <duck@mail.i2p>\n"
|
||||
"Language-Team: duck <duck@mail.i2p>\n"
|
||||
@ -18,122 +18,209 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:200
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:193
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:197
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:204
|
||||
msgid "Search within filtered list"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:206
|
||||
msgid "Filtered list"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:210
|
||||
msgid "no matches"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:213
|
||||
msgid "Addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:215
|
||||
msgid "contains no entries"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:217
|
||||
msgid "contains 1 entry"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:219
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130
|
||||
#, java-format
|
||||
msgid "contains {0} entries"
|
||||
msgid "Host name \"{0}\" contains illegal character {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:229
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:143
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:145
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:152
|
||||
#, java-format
|
||||
msgid "Host name cannot start with \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:147
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:149
|
||||
#, java-format
|
||||
msgid "Host name cannot end with \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:154
|
||||
#, java-format
|
||||
msgid "Host name cannot contain \"{0}\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:157
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name \"{0}\" requires conversion to ASCII but the conversion library is "
|
||||
"unavailable in this JVM"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:209
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:217
|
||||
msgid "Hashcash"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:219
|
||||
msgid "Hidden"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:221
|
||||
msgid "Signed"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:223
|
||||
#, java-format
|
||||
msgid "Type {0}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232
|
||||
#, java-format
|
||||
msgid "One result for search within filtered list."
|
||||
msgid_plural "{0} results for search within filtered list."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#, java-format
|
||||
msgid "Filtered list contains 1 entry."
|
||||
msgid_plural "Fltered list contains {0} entries."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241
|
||||
#, java-format
|
||||
msgid "One result for search."
|
||||
msgid_plural "{0} results for search."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250
|
||||
#, java-format
|
||||
msgid "Address book contains 1 entry."
|
||||
msgid_plural "Address book contains {0} entries."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:368
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:260
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:265
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:366
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:390
|
||||
msgid "Replace"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:264
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:242
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in addressbook, unchanged."
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name {0} is already in addressbook with a different destination. Click "
|
||||
"Host name {0} is already in address book with a different destination. Click "
|
||||
"\"Replace\" to overwrite."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:278
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:280
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:285
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:315
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:261
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:320
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:289
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:275
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:329
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:293
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:314
|
||||
#. clear search when deleting
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:354
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:261
|
||||
msgid "Delete Entry"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:334
|
||||
msgid "Delete Selected"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:303
|
||||
#. parameter is a host name
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:347
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:299
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:305
|
||||
#. parameter will always be >= 2
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:350
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
|
||||
#, java-format
|
||||
msgid "{0} destinations deleted."
|
||||
msgid "1 destination deleted."
|
||||
msgid_plural "{0} destinations deleted."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:352
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:304
|
||||
msgid "No entries selected to delete."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
msgid "Addressbook saved."
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:360
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
||||
msgid "Address book saved."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:314
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:363
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:319
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:368
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:151
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:315
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
||||
msgid ""
|
||||
"Invalid form submission, probably because you used the \"back\" or \"reload"
|
||||
"\" button on your browser. Please resubmit."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
@ -142,9 +229,9 @@ msgid "Configuration saved."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:128
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:128
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
msgid "Reload"
|
||||
msgstr ""
|
||||
|
||||
@ -152,229 +239,346 @@ msgstr ""
|
||||
msgid "Configuration reloaded."
|
||||
msgstr ""
|
||||
|
||||
#. Yes this is a hack.
|
||||
#. No it doesn't work on a text-mode browser.
|
||||
#. Fetching from the addressbook servlet
|
||||
#. with the correct parameters will kick off a
|
||||
#. config reload and fetch.
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:139
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:105
|
||||
#, java-format
|
||||
msgid "{0} address book in {1} database"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:252
|
||||
msgid "Manually added via SusiDNS"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:266
|
||||
#, java-format
|
||||
msgid "Failed to add Destination for {0} to naming service {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:290
|
||||
#, java-format
|
||||
msgid "Failed to delete Destination for {0} from naming service {1}"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||
msgid ""
|
||||
"Subscriptions saved, updating addressbook from subscription sources now."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
|
||||
msgid "Subscriptions saved."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:147
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
msgid "addressbook"
|
||||
msgid "address book"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
||||
msgid "addressbooks"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:120
|
||||
msgid "Overview"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
||||
msgid "private"
|
||||
msgid "Address books"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
||||
msgid "master"
|
||||
msgid "private"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
||||
msgid "router"
|
||||
msgid "master"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
||||
msgid "published"
|
||||
msgid "router"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
||||
msgid "subscriptions"
|
||||
msgid "published"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
||||
msgid "configuration"
|
||||
msgid "Subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||
msgid "overview"
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:163
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
msgid "Address book"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:131
|
||||
msgid "Storage"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:169
|
||||
msgid "Filter"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:166
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
|
||||
msgid "other"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:174
|
||||
msgid "all"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:177
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:185
|
||||
msgid "Current filter"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:182
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:190
|
||||
msgid "clear filter"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:224
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:201
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:205
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:238
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:226
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:362
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:240
|
||||
msgid "Links"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:384
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:253
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:257
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:273
|
||||
msgid "Mark for deletion"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:279
|
||||
msgid "address helper link"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:292
|
||||
msgid "Base 32 address"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:312
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:296
|
||||
msgid "More information on this entry"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:299
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:332
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:388
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:345
|
||||
msgid "This addressbook is empty."
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:365
|
||||
msgid "This address book is empty."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:356
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:378
|
||||
msgid "Add new destination"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:358
|
||||
msgid "Hostname"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:380
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:158
|
||||
msgid "Host Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
msgid "Hints"
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
msgid "configuration"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
msgid "Hints"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
msgid ""
|
||||
"File and directory paths here are relative to the addressbook's working "
|
||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or %APPDATA%\\I2P"
|
||||
"\\addressbook\\ (Windows)."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
msgid ""
|
||||
"If you want to manually add lines to an addressbook, add them to the private "
|
||||
"or master addressbooks."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
msgid ""
|
||||
"When you publish your addressbook, ALL destinations from the master and "
|
||||
"router addressbooks appear there."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
msgid "Update interval in hours"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
msgid ""
|
||||
"File containing the etags header from the fetched subscription URLs (no need "
|
||||
"to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
msgid ""
|
||||
"File containing the modification timestamp for each fetched subscription URL "
|
||||
"(no need to change)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:170
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:106
|
||||
msgid "addressbook"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:174
|
||||
msgid "Encoded Name"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:190
|
||||
msgid "Base 32 Address"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:200
|
||||
msgid "Address Helper"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
msgid "link"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:211
|
||||
msgid "Public Key"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:217
|
||||
msgid "Signing Key"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:223
|
||||
msgid "Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:229
|
||||
msgid "Added Date"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:235
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:241
|
||||
msgid "Last Modified"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:247
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91
|
||||
msgid "Introduction"
|
||||
msgstr ""
|
||||
@ -384,7 +588,7 @@ msgid "What is the addressbook?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111
|
||||
msgid "The addressbook application is part of your i2p installation."
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113
|
||||
@ -395,8 +599,8 @@ msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||
msgid ""
|
||||
"In the default configuration, the addressbook is only subscribed to www.i2p2."
|
||||
"i2p."
|
||||
"In the default configuration, the address book is only subscribed to www."
|
||||
"i2p2.i2p."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||
@ -407,75 +611,79 @@ msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||
msgid ""
|
||||
"For more information on naming in i2p, see <a href=\"http://www.i2p2.i2p/"
|
||||
"For more information on naming in I2P, see <a href=\"http://www.i2p2.i2p/"
|
||||
"naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
msgid "How does the addressbook work?"
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
msgid ""
|
||||
"The addressbook application regularly polls your subscriptions and merges "
|
||||
"their content into your \"router\" addressbook, stored in the hosts.txt file."
|
||||
"their content into your \"router\" address book."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
msgid ""
|
||||
"Then it merges your \"master\" addressbook (userhosts.txt) into the router "
|
||||
"addressbook as well."
|
||||
"Then it merges your \"master\" address book into the router address book as "
|
||||
"well."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||
msgid ""
|
||||
"If configured, the router addressbook is now written to the \"published\" "
|
||||
"addressbook, which will be publicly available if you are running an eepsite."
|
||||
"If configured, the router address book is now written to the \"published\" "
|
||||
"address book, which will be publicly available if you are running an eepsite."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||
msgid ""
|
||||
"The router also uses a private addressbook (privatehosts.txt, not shown in "
|
||||
"the picture), which is not merged or published."
|
||||
"The router also uses a private address book (not shown in the picture), "
|
||||
"which is not merged or published."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
msgid ""
|
||||
"Hosts in the private addressbook can be accessed by you but their addresses "
|
||||
"Hosts in the private address book can be accessed by you but their addresses "
|
||||
"are never distributed to others."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
msgid ""
|
||||
"The private addressbook can also be used for aliases of hosts in your other "
|
||||
"addressbooks."
|
||||
"The private address book can also be used for aliases of hosts in your other "
|
||||
"address books."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
msgid "subscriptions"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
msgid ""
|
||||
"The default subscription is the hosts.txt from www.i2p2.i2p, which is "
|
||||
"updated infrequently."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
msgid ""
|
||||
"So it is a good idea to add additional subscriptions to sites that have the "
|
||||
"latest addresses."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr ""
|
||||
|
753
apps/susidns/locale/messages_pl.po
Normal file
753
apps/susidns/locale/messages_pl.po
Normal file
@ -0,0 +1,753 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susidns package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# <b790979@klzlk.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:23+0000\n"
|
||||
"PO-Revision-Date: 2011-06-05 16:26+0000\n"
|
||||
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pl\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:130
|
||||
#, java-format
|
||||
msgid "Host name \"{0}\" contains illegal character {1}"
|
||||
msgstr "Nazwa hosta \"{0}\" zawiera niedozwolony znak {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:143
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:145
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:152
|
||||
#, java-format
|
||||
msgid "Host name cannot start with \"{0}\""
|
||||
msgstr "Nazwa hosta nie może zaczynać się od \"{0}\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:147
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:149
|
||||
#, java-format
|
||||
msgid "Host name cannot end with \"{0}\""
|
||||
msgstr "Nazwa hosta nie może kończyć się na \"{0}\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:154
|
||||
#, java-format
|
||||
msgid "Host name cannot contain \"{0}\""
|
||||
msgstr "Nazwa hosta nie może zawierać \"{0}\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:157
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name \"{0}\" requires conversion to ASCII but the conversion library is"
|
||||
" unavailable in this JVM"
|
||||
msgstr ""
|
||||
"Nazwa hosta \"{0}\" wymaga konwersji na ASCII, ale ta biblioteka konwersji "
|
||||
"jest niedostępna w tym JVM"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:209
|
||||
msgid "None"
|
||||
msgstr "Brak"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:217
|
||||
msgid "Hashcash"
|
||||
msgstr "Hashcash"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:219
|
||||
msgid "Hidden"
|
||||
msgstr "Ukryty"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:221
|
||||
msgid "Signed"
|
||||
msgstr "Podpisano"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressBean.java:223
|
||||
#, java-format
|
||||
msgid "Type {0}"
|
||||
msgstr "Typ {0}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:232
|
||||
#, java-format
|
||||
msgid "One result for search within filtered list."
|
||||
msgid_plural "{0} results for search within filtered list."
|
||||
msgstr[0] "Jeden wynik wyszukiwania w filtrowanej liście."
|
||||
msgstr[1] "{0} wyniki wyszukiwania w filtrowanej listy."
|
||||
msgstr[2] "{0} wyników wyszukiwania w filtrowanej listy."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:236
|
||||
#, java-format
|
||||
msgid "Filtered list contains 1 entry."
|
||||
msgid_plural "Fltered list contains {0} entries."
|
||||
msgstr[0] "Filtrowana lista zawiera 1 wpis."
|
||||
msgstr[1] "Filtrowana lista zawiera {0} wpisy."
|
||||
msgstr[2] "Filtrowana lista zawiera {0} wpisów."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:241
|
||||
#, java-format
|
||||
msgid "One result for search."
|
||||
msgid_plural "{0} results for search."
|
||||
msgstr[0] "Jeden wynik wyszukiwania."
|
||||
msgstr[1] "{0} wyniki wyszukiwania."
|
||||
msgstr[2] "{0} wyników wyszukiwania."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:250
|
||||
#, java-format
|
||||
msgid "Address book contains 1 entry."
|
||||
msgid_plural "Address book contains {0} entries."
|
||||
msgstr[0] "Książka adresowa zawiera 1 wpis."
|
||||
msgstr[1] "Książka adresowa zawiera {0} wpisy."
|
||||
msgstr[2] "Książka adresowa zawiera {0} wpisów."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:266
|
||||
#, java-format
|
||||
msgid "Showing {0} of {1}"
|
||||
msgstr "Wyświetlono {0} z {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:392
|
||||
msgid "Add"
|
||||
msgstr "Dodaj"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:287
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:298
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:231
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:243
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:390
|
||||
msgid "Replace"
|
||||
msgstr "Zastąp"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:297
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:242
|
||||
#, java-format
|
||||
msgid "Host name {0} is already in address book, unchanged."
|
||||
msgstr "Nazwa hosta {0} jest już w książce adresowej, bez zmian."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:299
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:244
|
||||
#, java-format
|
||||
msgid ""
|
||||
"Host name {0} is already in address book with a different destination. Click"
|
||||
" \"Replace\" to overwrite."
|
||||
msgstr ""
|
||||
"Nazwa hosta {0} jest już w książce adresowej z innym miejscem przeznaczenia."
|
||||
" Kliknij przycisk \"Zmień\", aby nadpisać."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:311
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:257
|
||||
#, java-format
|
||||
msgid "Destination added for {0}."
|
||||
msgstr "Miejsce przeznaczenia dodane dla {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:313
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:259
|
||||
#, java-format
|
||||
msgid "Destination changed for {0}."
|
||||
msgstr "Miejsce przeznaczenia zmienione dla {0}."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:315
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:261
|
||||
msgid "Warning - host name does not end with \".i2p\""
|
||||
msgstr "Uwaga - nazwa hosta nie kończy się na \".i2p\""
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:320
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:269
|
||||
msgid "Invalid Base 64 destination."
|
||||
msgstr "Nieprawidłowy miejsca przeznaczenia formatu Base 64."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:326
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:275
|
||||
#, java-format
|
||||
msgid "Invalid host name \"{0}\"."
|
||||
msgstr "Nieprawidłowa nazwa hosta \"{0}\"."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:329
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:278
|
||||
msgid "Please enter a host name and destination"
|
||||
msgstr "Wpisz nazwę hosta i miejsca przeznaczenia"
|
||||
|
||||
#. clear search when deleting
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:354
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:307
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:261
|
||||
msgid "Delete Entry"
|
||||
msgstr "Usuń wpis"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:333
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:282
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:334
|
||||
msgid "Delete Selected"
|
||||
msgstr "Usuń zaznaczone"
|
||||
|
||||
#. parameter is a host name
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:347
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:299
|
||||
#, java-format
|
||||
msgid "Destination {0} deleted."
|
||||
msgstr "Miejsce przeznaczenia {0} usunięte."
|
||||
|
||||
#. parameter will always be >= 2
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:350
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:302
|
||||
#, java-format
|
||||
msgid "1 destination deleted."
|
||||
msgid_plural "{0} destinations deleted."
|
||||
msgstr[0] "1 miejsce przeznaczenia usunięte."
|
||||
msgstr[1] "{0} miejsca przeznaczenia usunięte."
|
||||
msgstr[2] "{0} miejsc przeznaczenia usunięte."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:352
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:304
|
||||
msgid "No entries selected to delete."
|
||||
msgstr "Brak wpisów wybranych do usunięcia."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:360
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:311
|
||||
msgid "Address book saved."
|
||||
msgstr "Książka adresowa zapisana."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:363
|
||||
msgid "ERROR: Could not write addressbook file."
|
||||
msgstr "BŁĄD: Nie można zapisać pliku książki adresowej."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/AddressbookBean.java:368
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:148
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:315
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:156
|
||||
msgid ""
|
||||
"Invalid form submission, probably because you used the \"back\" or "
|
||||
"\"reload\" button on your browser. Please resubmit."
|
||||
msgstr ""
|
||||
"Nieprawidłowy formularz, prawdopodobnie dlatego, że użyto przycisku "
|
||||
"\"wstecz\" lub \"przeładuj\" w przeglądarce. Proszę prześlij ponownie."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:139
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:132
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:132
|
||||
msgid "Save"
|
||||
msgstr "Zapisz"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:141
|
||||
msgid "Configuration saved."
|
||||
msgstr "Konfiguracja zapisana."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:142
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:130
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:130
|
||||
msgid "Reload"
|
||||
msgstr "Przeładuj"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/ConfigBean.java:144
|
||||
msgid "Configuration reloaded."
|
||||
msgstr "Konfiguracja przeładowana."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:105
|
||||
#, java-format
|
||||
msgid "{0} address book in {1} database"
|
||||
msgstr "{0} książka adresowa w bazie {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:252
|
||||
msgid "Manually added via SusiDNS"
|
||||
msgstr "Dodane ręcznie przez SusiDNS"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:266
|
||||
#, java-format
|
||||
msgid "Failed to add Destination for {0} to naming service {1}"
|
||||
msgstr ""
|
||||
"Nie udało się dodać Miejsca Przeznaczenia dla {0} do serwisu nazewnictwa {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/NamingServiceBean.java:290
|
||||
#, java-format
|
||||
msgid "Failed to delete Destination for {0} from naming service {1}"
|
||||
msgstr ""
|
||||
"Nie udało się usunąć Miejsca Przeznaczenia dla {0} z serwisu nazewnictwa {1}"
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:143
|
||||
msgid ""
|
||||
"Subscriptions saved, updating addressbook from subscription sources now."
|
||||
msgstr ""
|
||||
"Subskrypcje zapisane, trwa teraz aktualizowanie książki adresowej ze źródeł "
|
||||
"subskrypcji."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:148
|
||||
msgid "Subscriptions saved."
|
||||
msgstr "Subskrypcje zapisane."
|
||||
|
||||
#: ../src/java/src/i2p/susi/dns/SubscriptionsBean.java:152
|
||||
msgid "Subscriptions reloaded."
|
||||
msgstr "Subskrypcje przeładowane."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:125
|
||||
msgid "address book"
|
||||
msgstr "książka adresowa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:127
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:143
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:124
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:107
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:104
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:120
|
||||
msgid "Overview"
|
||||
msgstr "Przegląd"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:129
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:106
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:93
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:106
|
||||
msgid "Address books"
|
||||
msgstr "Książki adresowe"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:131
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:108
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:95
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:108
|
||||
msgid "private"
|
||||
msgstr "prywatne"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:133
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:110
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:97
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:110
|
||||
msgid "master"
|
||||
msgstr "głowne"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:135
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:112
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:99
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:112
|
||||
msgid "router"
|
||||
msgstr "router"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:137
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:114
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:101
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:114
|
||||
msgid "published"
|
||||
msgstr "opublikowane"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:139
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:116
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:120
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:103
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:116
|
||||
msgid "Subscriptions"
|
||||
msgstr "Subskrypcje"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:141
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:118
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:122
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:105
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:118
|
||||
msgid "Configuration"
|
||||
msgstr "Konfiguracja"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:145
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:126
|
||||
msgid "Address book"
|
||||
msgstr "Książka adresowa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:150
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:131
|
||||
msgid "Storage"
|
||||
msgstr "Pamięć"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:169
|
||||
msgid "Filter"
|
||||
msgstr "Filtr"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:172
|
||||
msgid "other"
|
||||
msgstr "inne"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:174
|
||||
msgid "all"
|
||||
msgstr "wszystkie"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:185
|
||||
msgid "Current filter"
|
||||
msgstr "Obecny filtr"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:190
|
||||
msgid "clear filter"
|
||||
msgstr "wyczyść filtr"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:201
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:205
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:238
|
||||
msgid "Name"
|
||||
msgstr "Nazwa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:240
|
||||
msgid "Links"
|
||||
msgstr "Linki"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:242
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:384
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:253
|
||||
msgid "Destination"
|
||||
msgstr "Miejsce przeznaczenia"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:273
|
||||
msgid "Mark for deletion"
|
||||
msgstr "Zaznacz do usunięcia"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:292
|
||||
msgid "Base 32 address"
|
||||
msgstr "Adres Base 32"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:296
|
||||
msgid "More information on this entry"
|
||||
msgstr "Więcej informacji na temat tego wpisu"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:299
|
||||
msgid "details"
|
||||
msgstr "szczegóły"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:332
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:388
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:365
|
||||
msgid "This address book is empty."
|
||||
msgstr "Ta książka adresowa jest pusta."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:378
|
||||
msgid "Add new destination"
|
||||
msgstr "Dodaj nowe miejsce przeznaczenia"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/addressbook_jsp.java:380
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:158
|
||||
msgid "Host Name"
|
||||
msgstr "Nazwa hosta"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:102
|
||||
msgid "configuration"
|
||||
msgstr "konfiguracja"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:134
|
||||
msgid "Hints"
|
||||
msgstr "Wskazówki"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:136
|
||||
msgid ""
|
||||
"File and directory paths here are relative to the addressbook's working "
|
||||
"directory, which is normally ~/.i2p/addressbook/ (Linux) or "
|
||||
"%APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
msgstr ""
|
||||
"Ścieżki do plików i katalogów są podane w stosunku do roboczego katalogu "
|
||||
"książki adresowej, którym jest zwykle ~/.i2p/addressbook/ (Linux) lub "
|
||||
"%APPDATA%\\I2P\\addressbook\\ (Windows)."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:138
|
||||
msgid ""
|
||||
"If you want to manually add lines to an addressbook, add them to the private"
|
||||
" or master addressbooks."
|
||||
msgstr ""
|
||||
"Jeśli chcesz ręcznie dodać wiersze do książki adresowej, dodaj je do "
|
||||
"prywatnych lub głownych książek adresowych."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:140
|
||||
msgid ""
|
||||
"The router addressbook and the published addressbook are updated by the "
|
||||
"addressbook application."
|
||||
msgstr ""
|
||||
"Książka adresowa routera i opublikowana książka adresowa są aktualizowane "
|
||||
"przez aplikacje książki adresowej."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:142
|
||||
msgid ""
|
||||
"When you publish your addressbook, ALL destinations from the master and "
|
||||
"router addressbooks appear there."
|
||||
msgstr ""
|
||||
"Kiedy publikujesz swoja książke adresowa, WSZYSTKIE miejsca przeznaczenia z "
|
||||
"głównej książki adresowej i książki adresowej routera zostaną ukazane."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:144
|
||||
msgid ""
|
||||
"Use the private addressbook for private destinations, these are not "
|
||||
"published."
|
||||
msgstr ""
|
||||
"Użyj prywatnej książki adresowej dla prywatnych miejsc przeznaczania, te nie"
|
||||
" są publikowane."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:146
|
||||
msgid "Options"
|
||||
msgstr "Opcje"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:148
|
||||
msgid "File containing the list of subscriptions URLs (no need to change)"
|
||||
msgstr ""
|
||||
"Plik zawierający listę adresów URL subskrypcji (nie ma potrzeby, aby "
|
||||
"zmieniać)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:150
|
||||
msgid "Update interval in hours"
|
||||
msgstr "Przerwa miedzy aktualizacjami w godzinach"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:152
|
||||
msgid ""
|
||||
"Your public hosts.txt file (choose a path within your webserver document "
|
||||
"root)"
|
||||
msgstr ""
|
||||
"Twoje publiczne pliki hosts.txt (wybierz ścieżkę w głównym katalogu "
|
||||
"webserwera)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:154
|
||||
msgid "Your hosts.txt (don't change)"
|
||||
msgstr "Twój hosts.txt (nie zmieniaj)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:156
|
||||
msgid "Your personal addressbook, these hosts will be published"
|
||||
msgstr "Twoja osobista książka adresowa, te hosty będą publikowane"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:158
|
||||
msgid "Your private addressbook, it is never published"
|
||||
msgstr "Twoja prywatna książka adresowa, ta nigdy nie jest publikowany"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:160
|
||||
msgid "Port for your eepProxy (no need to change)"
|
||||
msgstr "Port dla eepProxy (nie ma potrzeby, aby zmieniać)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:162
|
||||
msgid "Hostname for your eepProxy (no need to change)"
|
||||
msgstr "Nazwa hosta dla eepProxy (nie ma potrzeby, aby zmienić)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:164
|
||||
msgid "Whether to update the published addressbook"
|
||||
msgstr "Czy aktualizpwać opublikowaną książke adresową"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:166
|
||||
msgid ""
|
||||
"File containing the etags header from the fetched subscription URLs (no need"
|
||||
" to change)"
|
||||
msgstr ""
|
||||
"Plik zawierający nagłówek etagów z pobranych subskrypcji URL (nie trzeba "
|
||||
"zmieniać)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:168
|
||||
msgid ""
|
||||
"File containing the modification timestamp for each fetched subscription URL"
|
||||
" (no need to change)"
|
||||
msgstr ""
|
||||
"Plik zawierający modifikacje znaczów czasu dla każdej pobranej subscrypcji "
|
||||
"URL (nie trzeba zmieniać)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/config_jsp.java:170
|
||||
msgid "File to log activity to (change to /dev/null if you like)"
|
||||
msgstr "Plik do logowania działalności (zmień na /dev/null, jeśli chcesz)"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:106
|
||||
msgid "addressbook"
|
||||
msgstr "Ksiazka adresowa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:174
|
||||
msgid "Encoded Name"
|
||||
msgstr "Zakodowana Nazwa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:190
|
||||
msgid "Base 32 Address"
|
||||
msgstr "Adress Base 32"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:200
|
||||
msgid "Address Helper"
|
||||
msgstr "Pomoc Adresowa"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:207
|
||||
msgid "link"
|
||||
msgstr "link"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:211
|
||||
msgid "Public Key"
|
||||
msgstr "Klucz publiczny"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:213
|
||||
msgid "ElGamal 2048 bit"
|
||||
msgstr "ElGamal 2048 bitów"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:217
|
||||
msgid "Signing Key"
|
||||
msgstr "Klucz Podpisywania"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:219
|
||||
msgid "DSA 1024 bit"
|
||||
msgstr "DSA 1024 bity"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:223
|
||||
msgid "Certificate"
|
||||
msgstr "Certyfikat"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:229
|
||||
msgid "Added Date"
|
||||
msgstr "Data dodania"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:235
|
||||
msgid "Source"
|
||||
msgstr "Źródło"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:241
|
||||
msgid "Last Modified"
|
||||
msgstr "Ostatnio modyfikowano"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/details_jsp.java:247
|
||||
msgid "Notes"
|
||||
msgstr "Notatki"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:91
|
||||
msgid "Introduction"
|
||||
msgstr "Wprowadzenie"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:109
|
||||
msgid "What is the addressbook?"
|
||||
msgstr "Co to jest książka adresowa?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:111
|
||||
msgid "The addressbook application is part of your I2P installation."
|
||||
msgstr "Aplikacja książki adresowej jest częścią instalacji twojego I2P."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:113
|
||||
msgid ""
|
||||
"It regularly updates your hosts.txt file from distributed sources or "
|
||||
"\"subscriptions\"."
|
||||
msgstr ""
|
||||
"Regularnie aktualizuje twoj plik hosts.txt z rozproszonych źródeł lub "
|
||||
"\"subskrypcji\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:115
|
||||
msgid ""
|
||||
"In the default configuration, the address book is only subscribed to "
|
||||
"www.i2p2.i2p."
|
||||
msgstr ""
|
||||
"W domyślnej konfiguracji, książka adresowa jest zapisana tylko do "
|
||||
"www.i2p2.i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:117
|
||||
msgid ""
|
||||
"Subscribing to additional sites is easy, just add them to your <a "
|
||||
"href=\"subscriptions.jsp\">subscriptions</a> file."
|
||||
msgstr ""
|
||||
"Zapisywanie się do innych witryn jest proste, wystarczy dodać je do pliku <a"
|
||||
" href=\"subscriptions.jsp\">subskrypcje</a>."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:119
|
||||
msgid ""
|
||||
"For more information on naming in I2P, see <a "
|
||||
"href=\"http://www.i2p2.i2p/naming.html\">the overview on www.i2p2.i2p</a>."
|
||||
msgstr ""
|
||||
"Aby uzyskać więcej informacji na temat nazewnictwa w I2P, zobacz <a "
|
||||
"href=\"http://www.i2p2.i2p/naming.html\">przegląd www.i2p2.i2p</a> ."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:121
|
||||
msgid "How does the addressbook application work?"
|
||||
msgstr "Jak działa aplikacja książki adresowej?"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:123
|
||||
msgid ""
|
||||
"The addressbook application regularly polls your subscriptions and merges "
|
||||
"their content into your \"router\" address book."
|
||||
msgstr ""
|
||||
"Aplikacja książki adresowej regularnie pobiera twoje subskrypcje i łączy ich"
|
||||
" zawartość w twoja książkę adresowa \"routera\"."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:125
|
||||
msgid ""
|
||||
"Then it merges your \"master\" address book into the router address book as "
|
||||
"well."
|
||||
msgstr ""
|
||||
"Poźniej, łączy też twoją \"główną\" książke adresową do książki adresowej "
|
||||
"routera."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:127
|
||||
msgid ""
|
||||
"If configured, the router address book is now written to the \"published\" "
|
||||
"address book, which will be publicly available if you are running an "
|
||||
"eepsite."
|
||||
msgstr ""
|
||||
"Jeżeli skonfigurowana, ksiażka adresowa routera jest teraz zapisana do "
|
||||
"\"opublikowanej\" książki adresowej, która będzie publicznie dostępna jeżeli"
|
||||
" masz swoją stronę eepsite."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:129
|
||||
msgid ""
|
||||
"The router also uses a private address book (not shown in the picture), "
|
||||
"which is not merged or published."
|
||||
msgstr ""
|
||||
"Router używa też prywatnej książki adresowej (nie pokazanej na obrazku), "
|
||||
"która nie jest łączona lub publikowana"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:131
|
||||
msgid ""
|
||||
"Hosts in the private address book can be accessed by you but their addresses"
|
||||
" are never distributed to others."
|
||||
msgstr ""
|
||||
"Nazwy hostów w prywatnej książce adresowej mogą być dostępne dla ciebie ale "
|
||||
"ich adresy nie są nigdy rozpowszechniane dla innych."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/index_jsp.java:133
|
||||
msgid ""
|
||||
"The private address book can also be used for aliases of hosts in your other"
|
||||
" address books."
|
||||
msgstr ""
|
||||
"Prywatna książka adresowa może być też użyta dla aliasów nazw hostów w "
|
||||
"twoich innych książkach adresowych."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:102
|
||||
msgid "subscriptions"
|
||||
msgstr "subskrypcje"
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:134
|
||||
msgid "The subscription file contains a list of i2p URLs."
|
||||
msgstr "Plik subskrypcji zawiera listę URLów i2p."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:136
|
||||
msgid ""
|
||||
"The addressbook application regularly checks this list for new eepsites."
|
||||
msgstr ""
|
||||
"Aplikacja książki adresowej regularnie sprawdza te listę dla nowych "
|
||||
"eepsites."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:138
|
||||
msgid "Those URLs refer to published hosts.txt files."
|
||||
msgstr "Te URL odnoszą się do opublikowanych plików hosts.txt."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:140
|
||||
msgid ""
|
||||
"The default subscription is the hosts.txt from www.i2p2.i2p, which is "
|
||||
"updated infrequently."
|
||||
msgstr ""
|
||||
"Domyślna subskrypcja to hosts.txt z www.i2p2.i2p, która jest rzadko "
|
||||
"aktualizowana."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:142
|
||||
msgid ""
|
||||
"So it is a good idea to add additional subscriptions to sites that have the "
|
||||
"latest addresses."
|
||||
msgstr ""
|
||||
"Jest to więc dobry pomysł, aby dodać dodatkowe subskrypcje do stron, które "
|
||||
"mają najnowsze adresy."
|
||||
|
||||
#: ../src/tmp/i2p/susi/dns/jsp/subscriptions_jsp.java:144
|
||||
msgid "See the FAQ for a list of subscription URLs."
|
||||
msgstr "Więcej w FAQ dla listy subskrypcji adresów URL."
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
<pathelement location="../../../core/java/build/i2p.jar" />
|
||||
</path>
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="compile">
|
||||
<mkdir dir="${bin}" />
|
||||
@ -67,7 +68,7 @@
|
||||
|
||||
<target name="all" depends="war"/>
|
||||
|
||||
<target name="war" depends="compile, precompilejsp, bundle, warUpToDate" unless="war.uptodate" >
|
||||
<target name="listChangedFiles" depends="warUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -79,6 +80,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="war" depends="compile, precompilejsp, bundle, warUpToDate" unless="war.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<war destfile="${project}.war" webxml="WEB-INF/web-out.xml">
|
||||
<fileset dir=".">
|
||||
<include name="WEB-INF/**/*.class"/>
|
||||
@ -102,15 +108,23 @@
|
||||
<uptodate property="war.uptodate" targetfile="${project}.war">
|
||||
<srcfiles dir= "." includes="WEB-INF/web-out.xml WEB-INF/**/*.class images/*.png css.css index.html WEB-INF/classes/${project}.properties" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="war.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="bundle" depends="compile, precompilejsp">
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<!-- multi-lang is optional -->
|
||||
@ -121,15 +135,15 @@
|
||||
|
||||
<target name="poupdate" depends="compile, precompilejsp">
|
||||
<!-- Update the messages_*.po files. -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
|
@ -12,6 +12,7 @@
|
||||
CLASS=i2p.susi.dns.messages
|
||||
TMPFILE=tmp/javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
@ -69,15 +70,17 @@ do
|
||||
-o ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - xgettext failed, not updating translations'
|
||||
echo "ERROR - xgettext failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
msgmerge -U --backup=none $i ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgmerge failed, not updating translations'
|
||||
echo "ERROR - msgmerge failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
rm -f ${i}t
|
||||
@ -94,11 +97,13 @@ do
|
||||
msgfmt --java --statistics -r $CLASS -l $LG -d WEB-INF/classes $i
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgfmt failed, not updating translations'
|
||||
echo "ERROR - msgfmt failed on ${i}, not updating translations"
|
||||
# msgfmt leaves the class file there so the build would work the next time
|
||||
find WEB-INF/classes -name messages_${LG}.class -exec rm -f {} \;
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f $TMPFILE
|
||||
# todo: return failure
|
||||
exit 0
|
||||
exit $RC
|
||||
|
@ -5,7 +5,10 @@
|
||||
<target name="builddep">
|
||||
<!-- run from top level build.xml to get dependencies built -->
|
||||
</target>
|
||||
|
||||
<property name="javac.compilerargs" value="" />
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<target name="compile">
|
||||
<javac
|
||||
srcdir="./src/src"
|
||||
@ -22,7 +25,7 @@
|
||||
</target>
|
||||
<target name="jar" depends="compile, war" />
|
||||
|
||||
<target name="war" depends="compile, bundle, warUpToDate" unless="war.uptodate" >
|
||||
<target name="listChangedFiles" depends="warUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -34,6 +37,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="war" depends="compile, bundle, warUpToDate, listChangedFiles" unless="war.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<war destfile="susimail.war" webxml="src/WEB-INF/web.xml"
|
||||
basedir="src/" excludes="WEB-INF/web.xml LICENSE src/**/*">
|
||||
<manifest>
|
||||
@ -48,15 +56,23 @@
|
||||
<uptodate property="war.uptodate" targetfile="susimail.war">
|
||||
<srcfiles dir= "src" excludes="LICENSE src/**/*" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="war.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="bundle" depends="compile">
|
||||
<!-- Update the messages_*.po files.
|
||||
We need to supply the bat file for windows, and then change the fail property to true -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
</exec>
|
||||
<!-- multi-lang is optional -->
|
||||
@ -67,15 +83,15 @@
|
||||
|
||||
<target name="poupdate" depends="builddep, compile">
|
||||
<!-- Update the messages_*.po files. -->
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" >
|
||||
<exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
|
||||
<arg value="./bundle-messages.sh" />
|
||||
<arg value="-p" />
|
||||
</exec>
|
||||
|
@ -12,6 +12,7 @@
|
||||
CLASS=i2p.susi.webmail.messages
|
||||
TMPFILE=javafiles.txt
|
||||
export TZ=UTC
|
||||
RC=0
|
||||
|
||||
if [ "$1" = "-p" ]
|
||||
then
|
||||
@ -67,15 +68,17 @@ do
|
||||
-o ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - xgettext failed, not updating translations'
|
||||
echo "ERROR - xgettext failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
msgmerge -U --backup=none $i ${i}t
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgmerge failed, not updating translations'
|
||||
echo "ERROR - msgmerge failed on ${i}, not updating translations"
|
||||
rm -f ${i}t
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
rm -f ${i}t
|
||||
@ -92,11 +95,14 @@ do
|
||||
msgfmt --java --statistics -r $CLASS -l $LG -d src/WEB-INF/classes $i
|
||||
if [ $? -ne 0 ]
|
||||
then
|
||||
echo 'Warning - msgfmt failed, not updating translations'
|
||||
echo "ERROR - msgfmt failed on ${i}, not updating translations"
|
||||
# msgfmt leaves the class file there so the build would work the next time
|
||||
find src/WEB-INF/classes -name messages_${LG}.class -exec rm -f {} \;
|
||||
RC=1
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm -f $TMPFILE
|
||||
# todo: return failure
|
||||
exit 0
|
||||
exit $RC
|
||||
|
446
apps/susimail/locale/messages_pl.po
Normal file
446
apps/susimail/locale/messages_pl.po
Normal file
@ -0,0 +1,446 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susimail package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# <b790979@klzlk.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:24+0000\n"
|
||||
"PO-Revision-Date: 2011-06-01 14:13+0000\n"
|
||||
"Last-Translator: PolishAnon <b790979@klzlk.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.net/projects/p/I2P/team/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: pl\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
msgid "unknown"
|
||||
msgstr "nieznany"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "Uwaga: nie znaleziono kodowania transferu, powrót do 7 bitów"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "Nr kodeka dla kodowania \\''{0} \\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Uwaga: nie znaleziono zestawu znaków, powrót do US-ASCII."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "Zestaw znaków \\''{0} \\' 'nie obsługiwany."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "Część ({0}) nie pokazana ze względu na {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "Plik zapakowany w format ZIP ze względów bezpieczeństwa."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "załącznik ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Załącznik ({0})."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Potrzebna nazwę użytkownika do uwierzytelnienia."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Potrzebne hasło do uwierzytelniania."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Potrzebuna nazwa host do połączenia."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Potrzeba numer portu pop3 do połączenia."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "Numeru portu POP3 poza zakresem 0..65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "Numeru portu POP3 jest nieprawidłowy."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Potrzebny numer portu smtp do połączenia."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "Numeru portu SMTP poza zakresem 0..65535."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "Numer portu SMTP jest nieprawidłowy."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
||||
msgid "User logged out."
|
||||
msgstr "Użytkownik wylogowany."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Błąd wewnętrzny, połączenie utracone."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "Dnia {0} {1} napisał:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "Rozpocznij przekazywanie poczty"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
||||
msgid "end forwarded mail"
|
||||
msgstr "Zakończ przekazywanie poczty"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "Nie można pobrać głównej cześci maila"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
||||
msgid "Message id not valid."
|
||||
msgstr "ID wiadomości niepoprawne."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "Nie znaleziono kodowania dla {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "Nie można zakodować danych: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Błąd w odczycie wysłanego pliku: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Błąd pobrania parametru analizy."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr ""
|
||||
"Nieprawidłowy numer rozmiaru strony, resetowanie do wartości domyślnej."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "Brak wiadomości zaznaczonych do usunięcia."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Błąd podczas usuwania wiadomości: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "1 wiadomość usunięta."
|
||||
msgstr[1] "{0} wiadomości usuniętych."
|
||||
msgstr[2] "{0} wiadomości usunięte."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Login"
|
||||
msgstr "Zaloguj się"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "1 wiadomość"
|
||||
msgstr[1] "{0} wiadomości"
|
||||
msgstr[2] "{0} wiadomości"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
||||
msgid "Show Message"
|
||||
msgstr "Pokaż wiadomość"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Błąd dekodowania treści: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Błąd dekodowania treści: Nie znaleziono enkodera."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
||||
msgid "no subject"
|
||||
msgstr "bez tematu"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "Nie znaleziono poprawnego adresu nadawcy."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "Nie znaleziono prawidłowego adresu w \\''{0} \\''."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
||||
msgid "No recipients found."
|
||||
msgstr "Nie znaleziono odbiorców."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "Cytowany drukowalny enkoder nie dostepny."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "Enkoder linii nagłówka nie dostępny."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
||||
msgid "Mail sent."
|
||||
msgstr "Mail wysłany."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
msgid "Send"
|
||||
msgstr "Wyślij"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Usuń załącznik"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reload Config"
|
||||
msgstr "Przeładuj Konfiguracje"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Logout"
|
||||
msgstr "Wyloguj się"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "From:"
|
||||
msgstr "Od:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
msgid "To:"
|
||||
msgstr "To:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
||||
msgid "Bcc:"
|
||||
msgstr "Bcc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Subject:"
|
||||
msgstr "Temat:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Bcc to self"
|
||||
msgstr "Bcc do siebie"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "New Attachment:"
|
||||
msgstr "Nowy załącznik:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "Upload File"
|
||||
msgstr "Prześlij plik"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
msgid "Attachments:"
|
||||
msgstr "Załączniki:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
msgid "User"
|
||||
msgstr "Użytkownik"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
||||
msgid "Pass"
|
||||
msgstr "Pass"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
||||
msgid "Host"
|
||||
msgstr "Host"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
msgid "POP3-Port"
|
||||
msgstr "POP3-Port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "SMTP-Port"
|
||||
msgstr "SMTP-Port"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Create Account"
|
||||
msgstr "Załóż konto"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Reset"
|
||||
msgstr "Zresetuj"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "Czy na pewno usunąć zaznaczone wiadomości?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Tak, naprawdę je usuń!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
msgid "New"
|
||||
msgstr "Nowe"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
msgid "Reply"
|
||||
msgstr "Odpowiedz"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
msgid "Reply All"
|
||||
msgstr "Odpowiedz wszystkim"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
msgid "Forward"
|
||||
msgstr "Przekaż"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
msgid "Delete"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
msgid "Check Mail"
|
||||
msgstr "Sprawdź pocztę"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
msgid "Sender"
|
||||
msgstr "Nadawca"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
msgid "Subject"
|
||||
msgstr "Temat"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
msgid "Size"
|
||||
msgstr "Rozmiar"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "1 bajt"
|
||||
msgstr[1] "{0} bajtów"
|
||||
msgstr[2] "{0} bajty"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
msgid "Mark All"
|
||||
msgstr "Zaznacz wszystkie"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
msgid "Invert Selection"
|
||||
msgstr "Odwróć zaznaczenie"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
msgid "Clear"
|
||||
msgstr "Wyczyść"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "First"
|
||||
msgstr "Pierwsze"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
msgid "Previous"
|
||||
msgstr "Poprzedni"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Strona {0} z {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
msgid "Last"
|
||||
msgstr "Ostatnie"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "Next"
|
||||
msgstr "Następne"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
msgid "Pagesize:"
|
||||
msgstr "Rozmiar strony:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
msgid "Set"
|
||||
msgstr "Ustaw"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Really delete this message?"
|
||||
msgstr "Czy na pewno usunąć tę wiadomość?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Tak, naprawdę to usuń!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Back to Folder"
|
||||
msgstr "Powrót do folderu"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Date:"
|
||||
msgstr "Data:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "Nie można pobrać poczty."
|
||||
|
||||
|
439
apps/susimail/locale/messages_vi.po
Normal file
439
apps/susimail/locale/messages_vi.po
Normal file
@ -0,0 +1,439 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susimail package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# dich_tran <tran.nathan@gmail.com>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:24+0000\n"
|
||||
"PO-Revision-Date: 2011-04-14 07:47+0000\n"
|
||||
"Last-Translator: dich_tran <tran.nathan@gmail.com>\n"
|
||||
"Language-Team: Vietnamese (http://www.transifex.net/projects/p/I2P/team/vi/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: vi\n"
|
||||
"Plural-Forms: nplurals=1; plural=0\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
msgid "unknown"
|
||||
msgstr "không biết"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "Cảnh báo: không thấy bộ mã chuyển nào, trở lại dùng 7bit."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "Không tìm bộ mã hóa cho bộ \\\"{0}\\\""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "Cảnh báo: không thấy bộ chữ nào, trở lại dùng US-ASCII."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "Bộ mã \\\"{0}\\\" không dùng được."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "Phần ({0}) không hiển thị, vì {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "Download"
|
||||
msgstr "Tải xuống"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "Tập tin được nén lại dạng zip vì lý do an ninh."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "đính kèm ({0})"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "Đính kèm ({0})"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
||||
msgid "Need username for authentication."
|
||||
msgstr "Cần tên người dùng để xác thực."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
||||
msgid "Need password for authentication."
|
||||
msgstr "Cần mật khẩu để xác thực."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "Cần tên máy chủ để nối vào."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "Cần số cổng để nối qua pop3."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "Số cổng POP3 không trong khoảng 0..65535"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "Số cổng POP3 không đúng."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "Cần số cổng để nối smtp."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "Số cổng SMTP không trong khoảng 0..65535"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "Số cổng SMTP không đúng."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
||||
msgid "User logged out."
|
||||
msgstr "Người dùng đã đăng xuất."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "Lỗi nội tại, mất đường nối."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "Vào {0} {1} viết:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "Bắt đầu email chuyển tiếp "
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
||||
msgid "end forwarded mail"
|
||||
msgstr "Chấm dứt email chuyển tiếp"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "Không thể lấy thân bài email."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
||||
msgid "Message id not valid."
|
||||
msgstr "ID của thư không đúng"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "Không tìm thấy bộ mã cho {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "Không thể đổi dạng dữ kiện: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "Lỗi đọc tập tin tải lên: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "Lỗi không hiểu các thông số tải xuống."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "Khổ trang không đúng, trở lại giá trị mặc định."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "Không có thư nào chờ xóa."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "Lỗi xóa thư: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "{0} thư đã bị xóa."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Login"
|
||||
msgstr "Đăng nhập"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "{0} Thư"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
||||
msgid "Show Message"
|
||||
msgstr "Hiển Thị Thư"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "Lỗi giải mã nội dung: {0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "Lỗi giải mã nội dung: Không tìm thấy bộ mã hóa."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
||||
msgid "no subject"
|
||||
msgstr "không chủ đề"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "Không tìm thấy địa chỉ người gửi."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "Không tìm thấy địa chỉ người gửi trong \\\"{0}\\\""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
||||
msgid "No recipients found."
|
||||
msgstr "Không thấy người nhận."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr "Bộ mã hóa quoted-printable không có."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "Bộ mã hóa header không có."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
||||
msgid "Mail sent."
|
||||
msgstr "Thư đã gửi."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
msgid "Send"
|
||||
msgstr "Gửi."
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
msgid "Cancel"
|
||||
msgstr "Hủy"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
||||
msgid "Delete Attachment"
|
||||
msgstr "Xóa đính kèm"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reload Config"
|
||||
msgstr "Nạp lại cấu hình"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Logout"
|
||||
msgstr "Đăng xuất"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "From:"
|
||||
msgstr "Từ:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
msgid "To:"
|
||||
msgstr "Tới:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Cc:"
|
||||
msgstr "Cc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
||||
msgid "Bcc:"
|
||||
msgstr "Bcc:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Subject:"
|
||||
msgstr "Chủ đề:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Bcc to self"
|
||||
msgstr "Bcc cho mình"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "New Attachment:"
|
||||
msgstr "Đính kèm mới"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "Upload File"
|
||||
msgstr "Tải tập tin lên"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
msgid "Attachments:"
|
||||
msgstr "Đính kèm:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
msgid "User"
|
||||
msgstr "Người dùng"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
||||
msgid "Pass"
|
||||
msgstr "Qua"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
||||
msgid "Host"
|
||||
msgstr "Máy chủ"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
msgid "POP3-Port"
|
||||
msgstr "Cổng-POP3"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "SMTP-Port"
|
||||
msgstr "Cổng-SMTP"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Create Account"
|
||||
msgstr "Tạo tài khoản"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Reset"
|
||||
msgstr "Chỉnh lại"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "Thực sự xóa các thư đánh dấu?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "Vâng, hãy xóa chúng!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
msgid "New"
|
||||
msgstr "Mới"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
msgid "Reply"
|
||||
msgstr "Trả lời"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
msgid "Reply All"
|
||||
msgstr "Trả lời tất cả"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
msgid "Forward"
|
||||
msgstr "Chuyển tiếp"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
msgid "Delete"
|
||||
msgstr "Xóa"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
msgid "Check Mail"
|
||||
msgstr "Lấy thư"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
msgid "Sender"
|
||||
msgstr "Người gửi"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
msgid "Subject"
|
||||
msgstr "Chủ đề"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Date"
|
||||
msgstr "Ngày"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
msgid "Size"
|
||||
msgstr "Kích thước"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "{0} Byte(s)"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
msgid "Mark All"
|
||||
msgstr "Đánh dấu tất cả"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
msgid "Invert Selection"
|
||||
msgstr "Đảo ngược lựa chọn"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
msgid "Clear"
|
||||
msgstr "Làm sạch"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "First"
|
||||
msgstr "Đầu tiên"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
msgid "Previous"
|
||||
msgstr "Trước"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "Trang {0} của {1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
msgid "Last"
|
||||
msgstr "Chót"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "Next"
|
||||
msgstr "Kế"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
msgid "Pagesize:"
|
||||
msgstr "Khổ trang"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
msgid "Set"
|
||||
msgstr "Chọn"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Really delete this message?"
|
||||
msgstr "Thực sự muốn xoá thư này?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "Vâng, thực sự xóa nó!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Back to Folder"
|
||||
msgstr "Trở lại thư mục"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Date:"
|
||||
msgstr "Ngày:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "Không thể lấy thư."
|
||||
|
||||
|
439
apps/susimail/locale/messages_zh.po
Normal file
439
apps/susimail/locale/messages_zh.po
Normal file
@ -0,0 +1,439 @@
|
||||
# I2P
|
||||
# Copyright (C) 2009 The I2P Project
|
||||
# This file is distributed under the same license as the susimail package.
|
||||
# To contribute translations, see http://www.i2p2.de/newdevelopers
|
||||
#
|
||||
# walking <walking@i2pmail.org>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: I2P\n"
|
||||
"Report-Msgid-Bugs-To: https://trac.i2p2.de/\n"
|
||||
"POT-Creation-Date: 2011-06-11 08:24+0000\n"
|
||||
"PO-Revision-Date: 2011-03-24 09:37+0000\n"
|
||||
"Last-Translator: walking <walking@i2pmail.org>\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.net/projects/p/I2P/team/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0\n"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:454
|
||||
msgid "unknown"
|
||||
msgstr "未知"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:473
|
||||
msgid "Warning: no transfer encoding found, fallback to 7bit."
|
||||
msgstr "警告:传输编码检测失败,回退到7位。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:478
|
||||
#, java-format
|
||||
msgid "No encoder found for encoding \\''{0}\\''."
|
||||
msgstr "没有找到可用编码器处理编码\\ '' {0} \\ ''。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:484
|
||||
msgid "Warning: no charset found, fallback to US-ASCII."
|
||||
msgstr "警告:字符集检测失败,回退为US - ASCII。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:498
|
||||
#, java-format
|
||||
msgid "Charset \\''{0}\\'' not supported."
|
||||
msgstr "不支持字符集\\ '' {0} \\ ''。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:502
|
||||
#, java-format
|
||||
msgid "Part ({0}) not shown, because of {1}"
|
||||
msgstr "第({0})部分没有显示,因为{1}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "Download"
|
||||
msgstr "下载"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
msgid "File is packed into a zipfile for security reasons."
|
||||
msgstr "出于安全原因,文件被打包为zip文件。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:525
|
||||
#, java-format
|
||||
msgid "attachment ({0})."
|
||||
msgstr "附件({0})。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:529
|
||||
#, java-format
|
||||
msgid "Attachment ({0})."
|
||||
msgstr "附件({0})。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:579
|
||||
msgid "Need username for authentication."
|
||||
msgstr "需要认证用的用户名。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:583
|
||||
msgid "Need password for authentication."
|
||||
msgstr "需要认证用的密码。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:587
|
||||
msgid "Need hostname for connect."
|
||||
msgstr "需要连接用的主机名。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:592
|
||||
msgid "Need port number for pop3 connect."
|
||||
msgstr "需要POP3的连接端口号。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:599
|
||||
msgid "POP3 port number is not in range 0..65535."
|
||||
msgstr "POP3端口号超出范围0-65535。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:605
|
||||
msgid "POP3 port number is invalid."
|
||||
msgstr "POP3端口号是无效的。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:611
|
||||
msgid "Need port number for smtp connect."
|
||||
msgstr "需要的SMTP连接端口号。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:618
|
||||
msgid "SMTP port number is not in range 0..65535."
|
||||
msgstr "SMTP端口号是超出范围0-65535。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:624
|
||||
msgid "SMTP port number is invalid."
|
||||
msgstr "SMTP端口号无效。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:671
|
||||
msgid "User logged out."
|
||||
msgstr "用户已登出。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:675
|
||||
msgid "Internal error, lost connection."
|
||||
msgstr "内部错误,连接已断开。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:771
|
||||
#, java-format
|
||||
msgid "On {0} {1} wrote:"
|
||||
msgstr "在 {0} {1} 写到:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:818
|
||||
msgid "begin forwarded mail"
|
||||
msgstr "转信开始"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:840
|
||||
msgid "end forwarded mail"
|
||||
msgstr "转信结束"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:847
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1701
|
||||
msgid "Could not fetch mail body."
|
||||
msgstr "无法获取邮件正文。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:875
|
||||
msgid "Message id not valid."
|
||||
msgstr "消息ID无效。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:958
|
||||
#, java-format
|
||||
msgid "No Encoding found for {0}"
|
||||
msgstr "{0}的编码检测失败。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:962
|
||||
#, java-format
|
||||
msgid "Could not encode data: {0}"
|
||||
msgstr "无法对数据进行编码:{0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:967
|
||||
#, java-format
|
||||
msgid "Error reading uploaded file: {0}"
|
||||
msgstr "读取上传文件错误:{0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1045
|
||||
msgid "Error parsing download parameter."
|
||||
msgstr "下载参数解析错误。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1089
|
||||
msgid "Invalid pagesize number, resetting to default value."
|
||||
msgstr "无效的每页数,重置为默认值。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1113
|
||||
msgid "No messages marked for deletion."
|
||||
msgstr "没有邮件被标记来删除。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1133
|
||||
#, java-format
|
||||
msgid "Error deleting message: {0}"
|
||||
msgstr "邮件删除错误:{0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1144
|
||||
#, java-format
|
||||
msgid "1 message deleted."
|
||||
msgid_plural "{0} messages deleted."
|
||||
msgstr[0] "已删除{0}封邮件。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1264
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Login"
|
||||
msgstr "登录"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1266
|
||||
#, java-format
|
||||
msgid "1 Message"
|
||||
msgid_plural "{0} Messages"
|
||||
msgstr[0] "{0} 封邮件"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1268
|
||||
msgid "Show Message"
|
||||
msgstr "显示消息"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1325
|
||||
#, java-format
|
||||
msgid "Error decoding content: {0}"
|
||||
msgstr "解码错误:{0}"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1330
|
||||
msgid "Error decoding content: No encoder found."
|
||||
msgstr "内容解码错误:没有可用编码器。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1377
|
||||
msgid "no subject"
|
||||
msgstr "没有主题"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1394
|
||||
msgid "Found no valid sender address."
|
||||
msgstr "没有找到有效的发件人地址。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1400
|
||||
#, java-format
|
||||
msgid "Found no valid address in \\''{0}\\''."
|
||||
msgstr "\\ '' {0} \\ ''中没有找到有效的地址。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1419
|
||||
msgid "No recipients found."
|
||||
msgstr "没有找到收件人。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1426
|
||||
msgid "Quoted printable encoder not available."
|
||||
msgstr ""
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1431
|
||||
msgid "Header line encoder not available."
|
||||
msgstr "标题行编码器不可用。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1482
|
||||
msgid "Mail sent."
|
||||
msgstr "邮件已发送。"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1519
|
||||
msgid "Send"
|
||||
msgstr "发送"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1520
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1521
|
||||
msgid "Delete Attachment"
|
||||
msgstr "删除附件"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1522
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1607
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1688
|
||||
msgid "Reload Config"
|
||||
msgstr "重新载入配置"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1523
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1608
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1689
|
||||
msgid "Logout"
|
||||
msgstr "注销"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1546
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1693
|
||||
msgid "From:"
|
||||
msgstr "来自:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1547
|
||||
msgid "To:"
|
||||
msgstr "致:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1548
|
||||
msgid "Cc:"
|
||||
msgstr "抄送:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1549
|
||||
msgid "Bcc:"
|
||||
msgstr "密送:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1550
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1695
|
||||
msgid "Subject:"
|
||||
msgstr "主题:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1551
|
||||
msgid "Bcc to self"
|
||||
msgstr "密送给自己"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "New Attachment:"
|
||||
msgstr "新附件:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1554
|
||||
msgid "Upload File"
|
||||
msgstr "上传文件"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1560
|
||||
msgid "Attachments:"
|
||||
msgstr "附件:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1582
|
||||
msgid "User"
|
||||
msgstr "用户"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1583
|
||||
msgid "Pass"
|
||||
msgstr "通过"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1584
|
||||
msgid "Host"
|
||||
msgstr "主机"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1585
|
||||
msgid "POP3-Port"
|
||||
msgstr "POP3端口"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1586
|
||||
msgid "SMTP-Port"
|
||||
msgstr "SMTP端口"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Create Account"
|
||||
msgstr "创建帐户"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1587
|
||||
msgid "Reset"
|
||||
msgstr "复位"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Really delete the marked messages?"
|
||||
msgstr "真要删除标记的邮件?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1599
|
||||
msgid "Yes, really delete them!"
|
||||
msgstr "是的,立刻删除!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1601
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1680
|
||||
msgid "New"
|
||||
msgstr "新建"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1602
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1681
|
||||
msgid "Reply"
|
||||
msgstr "回复"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1603
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1682
|
||||
msgid "Reply All"
|
||||
msgstr "回复所有人"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1604
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1683
|
||||
msgid "Forward"
|
||||
msgstr "转寄"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1605
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1684
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1606
|
||||
msgid "Check Mail"
|
||||
msgstr "检查邮件"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1610
|
||||
msgid "Sender"
|
||||
msgstr "寄件人"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1611
|
||||
msgid "Subject"
|
||||
msgstr "主题"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1612
|
||||
msgid "Date"
|
||||
msgstr "日期"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1613
|
||||
msgid "Size"
|
||||
msgstr "大小"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1639
|
||||
#, java-format
|
||||
msgid "1 Byte"
|
||||
msgid_plural "{0} Bytes"
|
||||
msgstr[0] "{0} 字节"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1644
|
||||
msgid "Mark All"
|
||||
msgstr "全部标记"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1645
|
||||
msgid "Invert Selection"
|
||||
msgstr "反向选择"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1646
|
||||
msgid "Clear"
|
||||
msgstr "清除"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
msgid "First"
|
||||
msgstr "第一页"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1649
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1650
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1685
|
||||
msgid "Previous"
|
||||
msgstr "上一页"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1651
|
||||
#, java-format
|
||||
msgid "Page {0} of {1}"
|
||||
msgstr "第{0}页 共{1}页"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
msgid "Last"
|
||||
msgstr "最后一页"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1653
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1654
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1686
|
||||
msgid "Next"
|
||||
msgstr "下一页"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1657
|
||||
msgid "Pagesize:"
|
||||
msgstr "每页容量:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1658
|
||||
msgid "Set"
|
||||
msgstr "设置"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Really delete this message?"
|
||||
msgstr "真的要删除此邮件?"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1668
|
||||
msgid "Yes, really delete it!"
|
||||
msgstr "是的,立刻删除!"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1687
|
||||
msgid "Back to Folder"
|
||||
msgstr "返回到文件夹"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1694
|
||||
msgid "Date:"
|
||||
msgstr "日期:"
|
||||
|
||||
#: src/src/i2p/susi/webmail/WebMail.java:1705
|
||||
msgid "Could not fetch mail."
|
||||
msgstr "无法收取邮件。"
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate" unless="jar.uptodate">
|
||||
<target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -35,6 +35,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate">
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./build/systray.jar" basedir="./build/obj" includes="**/*.class">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="net.i2p.apps.systray.SysTray" />
|
||||
@ -50,6 +55,14 @@
|
||||
<uptodate property="jar.uptodate" targetfile="./build/systray.jar">
|
||||
<srcfiles dir= "build/obj" includes="**/*.class" />
|
||||
</uptodate>
|
||||
<condition property="shouldListChanges" >
|
||||
<and>
|
||||
<not>
|
||||
<isset property="jar.uptodate" />
|
||||
</not>
|
||||
<isset property="mtn.available" />
|
||||
</and>
|
||||
</condition>
|
||||
</target>
|
||||
|
||||
<target name="javadoc">
|
||||
|
107
build.xml
107
build.xml
@ -13,6 +13,9 @@
|
||||
<property name="javac.classpath" value="/PATH/TO/pack200.jar" />
|
||||
-->
|
||||
|
||||
<!-- change this to false if you don't have gettext -->
|
||||
<property name="require.gettext" value="true" />
|
||||
|
||||
<!-- You probably don't want to change anything from here down -->
|
||||
<target name="help" depends="all" />
|
||||
<target name="all" >
|
||||
@ -54,7 +57,7 @@
|
||||
<echo message=""quilt" and "build-essential"!" />
|
||||
<echo message="" />
|
||||
<echo message="The following command will install all dependencies for you:" />
|
||||
<echo message="apt-get install debhelper ant debconf default-jdk libgmp3-dev po-debconf fakeroot build-essential quilt" />
|
||||
<echo message="apt-get install debhelper ant debconf default-jdk gettext libgmp3-dev po-debconf fakeroot build-essential quilt" />
|
||||
<echo message=" " />
|
||||
<echo message="Once the dependencies are installed, run "ant debian""/>
|
||||
<echo message="to patch the source and build the packages." />
|
||||
@ -159,11 +162,20 @@
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="buildProperties" >
|
||||
<target name="checkForMtn" >
|
||||
<available property="mtn.available" file="_MTN" type="dir" />
|
||||
</target>
|
||||
|
||||
<target name="getMtnRev" depends="checkForMtn" if="mtn.available" >
|
||||
<exec executable="mtn" outputproperty="workspace.version" errorproperty="mtn.error1" failifexecutionfails="false" >
|
||||
<arg value="automate" />
|
||||
<arg value="get_base_revision_id" />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="buildProperties" depends="getMtnRev" >
|
||||
<!-- default if not set above -->
|
||||
<property name="workspace.version" value="unknown" />
|
||||
<tstamp>
|
||||
<format property="build.timestamp" pattern="yyyy-MM-dd HH:mm:ss z" timezone="UTC" locale="en" />
|
||||
</tstamp>
|
||||
@ -240,21 +252,56 @@
|
||||
<copy file="apps/addressbook/dist/addressbook.war" todir="build/" />
|
||||
</target>
|
||||
|
||||
<target name="jbigi">
|
||||
<target name="jbigi-list-changes" depends="checkForMtn" if="mtn.available" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes.jbigi" errorproperty="mtn.error.jbigi" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
<arg value="installer/lib/jbigi" />
|
||||
</exec>
|
||||
<!-- \n in an attribute value generates an invalid manifest -->
|
||||
<exec executable="tr" inputstring="${workspace.changes.jbigi}" outputproperty="workspace.changes.jbigi.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="-s" />
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jbigi" depends="buildProperties, jbigi-list-changes" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.jbigi.tr" value="" />
|
||||
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
|
||||
<fileset dir="installer/lib/jbigi" includes="*.so *.dll *.jnilib" />
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
||||
<attribute name="Workspace-Changes" value="${workspace.changes.jbigi.tr}" />
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="jbigi-windows-only" >
|
||||
<target name="jbigi-windows-only" depends="buildProperties, jbigi-list-changes" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.jbigi.tr" value="" />
|
||||
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
|
||||
<fileset dir="installer/lib/jbigi" includes="*windows*.dll" />
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
||||
<attribute name="Workspace-Changes" value="${workspace.changes.jbigi.tr}" />
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
<target name="jbigi-linux-only">
|
||||
<target name="jbigi-linux-only" depends="buildProperties, jbigi-list-changes" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.jbigi.tr" value="" />
|
||||
<jar destfile="build/jbigi.jar" whenmanifestonly="fail" >
|
||||
<fileset dir="installer/lib/jbigi" includes="*linux*.so" />
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
<attribute name="Base-Revision" value="${workspace.version}" />
|
||||
<attribute name="Workspace-Changes" value="${workspace.changes.jbigi.tr}" />
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
@ -305,15 +352,16 @@
|
||||
<group title="Streaming Library" packages="net.i2p.client.streaming" />
|
||||
<group title="Router" packages="net.i2p.router:net.i2p.router.*:net.i2p.data.i2np:org.cybergarage.*:org.freenetproject" />
|
||||
<group title="Router Console" packages="net.i2p.router.web" />
|
||||
<!-- apps and bridges starting here, alphabetical please -->
|
||||
<group title="Addressbook Application" packages="net.i2p.addressbook" />
|
||||
<group title="BOB Bridge" packages="net.i2p.BOB" />
|
||||
<group title="Desktopgui Application" packages="net.i2p.desktopgui.*" />
|
||||
<group title="I2PSnark Application" packages="org.klomp.snark:org.klomp.snark.*" />
|
||||
<group title="I2PTunnel Application" packages="net.i2p.i2ptunnel:net.i2p.i2ptunnel.*" />
|
||||
<group title="SAM Bridge" packages="net.i2p.sam:net.i2p.sam.client" />
|
||||
<group title="SusiDNS Application" packages="i2p.susi.dns" />
|
||||
<group title="SusiMail Application" packages="i2p.susi.webmail:i2p.susi.webmail.*:i2p.susi.debug:i2p.susi.util" />
|
||||
<group title="Systray Application" packages="net.i2p.apps.systray" />
|
||||
<group title="Desktopgui Application" packages="net.i2p.desktopgui.*" />
|
||||
<sourcepath>
|
||||
<pathelement location="core/java/src" />
|
||||
<!--<pathelement location="core/java/test" />-->
|
||||
@ -337,14 +385,16 @@
|
||||
<pathelement location="apps/jetty/jettylib/javax.servlet.jar" />
|
||||
<pathelement location="apps/systray/java/lib/systray4j.jar" />
|
||||
<pathelement location="apps/jrobin/jrobin-1.5.9.1.jar" />
|
||||
<pathelement location="installer/lib/wrapper/win32/wrapper.jar" />
|
||||
<pathelement location="installer/lib/wrapper/all/wrapper.jar" />
|
||||
<pathelement location="core/lib/junit.jar" />
|
||||
</classpath>
|
||||
<link offline="true" href="http://download.oracle.com/javase/6/docs/api/" packagelistLoc="installer/resources/package-lists/java/" />
|
||||
<link offline="true" href="http://docs.i2p2.de/jetty/javadoc/" packagelistLoc="installer/resources/package-lists/jetty/" />
|
||||
<link offline="true" href="http://docs.i2p2.de/jrobin/javadoc/" packagelistLoc="installer/resources/package-lists/jrobin/" />
|
||||
</javadoc>
|
||||
<echo message="Warning, javadoc embeds timestamps in the output, run with 'TZ=UTC ant javadoc' if you plan to distribute" />
|
||||
</target>
|
||||
|
||||
<target name="clean" depends="pkgclean" >
|
||||
<delete dir="./build" />
|
||||
<delete file="i2pinstall.exe" failonerror="false" quiet="true" />
|
||||
@ -352,6 +402,9 @@
|
||||
<delete file="syndie-standalone.zip" failonerror="false" quiet="true" />
|
||||
<delete file="i2psnark-standalone.zip" failonerror="false" quiet="true" />
|
||||
<delete file="BOB-one.jar" failonerror="false" quiet="true" />
|
||||
<delete dir="core/c/jbigi/bin" />
|
||||
<delete dir="core/c/jbigi/lib" />
|
||||
<delete dir="core/c/jcpuid/lib" />
|
||||
<delete dir="debian/tmp" />
|
||||
<delete dir="debian/db" />
|
||||
<delete file="debian/files" />
|
||||
@ -434,12 +487,18 @@
|
||||
<copy todir="pkg-temp/lib/wrapper/freebsd/">
|
||||
<fileset dir="installer/lib/wrapper/freebsd/" />
|
||||
</copy>
|
||||
<copy todir="pkg-temp/lib/wrapper/freebsd64/">
|
||||
<fileset dir="installer/lib/wrapper/freebsd64" />
|
||||
</copy>
|
||||
<copy todir="pkg-temp/lib/wrapper/macosx/">
|
||||
<fileset dir="installer/lib/wrapper/macosx/" />
|
||||
</copy>
|
||||
<copy todir="pkg-temp/lib/wrapper/solaris/">
|
||||
<fileset dir="installer/lib/wrapper/solaris/" />
|
||||
</copy>
|
||||
<copy todir="pkg-temp/lib/wrapper/linux-arm/">
|
||||
<fileset dir="installer/lib/wrapper/linux-arm/" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<target name="preppkg-windows" depends="preppkg-base, buildexe">
|
||||
@ -451,22 +510,27 @@
|
||||
<copy file="installer/resources/i2prouter.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/fixperms.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/install_i2p_service_winnt.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/postinstall.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/set_config_dir_for_nt_service.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/uninstall_i2p_service_winnt.bat" todir="pkg-temp/" />
|
||||
<copy file="installer/lib/wrapper/all/wrapper.jar" todir="pkg-temp/lib" />
|
||||
<copy todir="pkg-temp/lib/wrapper/win32/">
|
||||
<fileset dir="installer/lib/wrapper/win32/" />
|
||||
</copy>
|
||||
<copy todir="pkg-temp/lib/wrapper/win64/">
|
||||
<fileset dir="installer/lib/wrapper/win64/" />
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<!-- only what is needed for debian, etc. -->
|
||||
<target name="preppkg-linux-only" depends="preppkg-linux, jbigi-linux-only" >
|
||||
<copy file="build/jbigi.jar" todir="pkg-temp/lib" />
|
||||
<copy file="installer/lib/wrapper/all/wrapper.jar" todir="pkg-temp/lib" />
|
||||
</target>
|
||||
|
||||
<!-- x86 linux only -->
|
||||
<target name="preppkg-linux" depends="preppkg-base">
|
||||
<copy file="installer/resources/runplain.sh" todir="pkg-temp/" />
|
||||
<copy file="apps/i2psnark/launch-i2psnark" todir="pkg-temp/" />
|
||||
<!-- <copy file="apps/i2psnark/launch-i2psnark" todir="pkg-temp/" /> old feature that per zzz isn't used-->
|
||||
<copy file="installer/resources/eepget" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/i2prouter" todir="pkg-temp/" />
|
||||
<copy file="installer/resources/osid" todir="pkg-temp/" />
|
||||
@ -630,11 +694,13 @@
|
||||
|
||||
<target name="updater200" depends="prepupdate, preplicenses, pack200, zipit200" />
|
||||
<target name="updater200WithJettyFixes" depends="prepjupdatefixes, preplicenses, pack200, zipit200" />
|
||||
<target name="updater200WithJettyFixesAndJbigi" depends="prepjupdatefixes, prepjbigiupdate, preplicenses, pack200, zipit200" />
|
||||
<target name="updater" depends="prepupdate, preplicenses, zipit" />
|
||||
<target name="updaterWithJavadoc" depends="prepupdate, preplicenses, copyJavadoc, zipit" />
|
||||
<target name="updaterWithGeoIP" depends="prepupdate, prepgeoupdate, preplicenses, zipit" />
|
||||
<target name="updaterWithJetty" depends="prepjupdate, preplicenses, zipit" />
|
||||
<target name="updaterWithJettyFixes" depends="prepjupdatefixes, preplicenses, zipit" />
|
||||
<target name="updaterWithJettyFixesAndJbigi" depends="prepjupdatefixes, prepjbigiupdate, preplicenses, zipit" />
|
||||
<target name="updaterWithJettyFixesAndGeoIP" depends="prepjupdatefixes, prepgeoupdate, preplicenses, zipit" />
|
||||
<target name="updaterSmall" depends="prepupdateSmall, zipit" />
|
||||
<target name="updaterRouter" depends="prepupdateRouter, zipit" />
|
||||
@ -726,6 +792,11 @@
|
||||
<copy file="build/router.jar" todir="pkg-temp/lib/" />
|
||||
</target>
|
||||
|
||||
<!-- jbigi.jar -->
|
||||
<target name="prepjbigiupdate" depends="jbigi">
|
||||
<copy file="build/jbigi.jar" todir="pkg-temp/lib/" />
|
||||
</target>
|
||||
|
||||
<!-- GeoIP files and flag icons -->
|
||||
<target name="prepgeoupdate">
|
||||
<copy file="installer/resources/geoip.txt" todir="pkg-temp/geoip/" />
|
||||
@ -746,9 +817,8 @@
|
||||
<target name="prepjupdatefixes" depends="prepupdate, buildWEB">
|
||||
<copy file="build/org.mortbay.jetty.jar" todir="pkg-temp/lib/" />
|
||||
</target>
|
||||
<target name="installer" depends="preppkg, buildProperties">
|
||||
<taskdef name="izpack" classpath="${basedir}/installer/lib/izpack/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" />
|
||||
<mkdir dir="pkg-temp/installer" />
|
||||
|
||||
<target name="util-list-changes" depends="checkForMtn" if="mtn.available" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes.util" errorproperty="mtn.error.util" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -760,6 +830,13 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="installer" depends="preppkg, buildProperties, util-list-changes" >
|
||||
<taskdef name="izpack" classpath="${basedir}/installer/lib/izpack/standalone-compiler.jar" classname="com.izforge.izpack.ant.IzPackTask" />
|
||||
<mkdir dir="pkg-temp/installer" />
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.util.tr" value="" />
|
||||
<jar destfile="./pkg-temp/installer/copy.jar" basedir="./core/java/build/obj" includes="net/i2p/util/Copy.class net/i2p/util/FileUtil.class">
|
||||
<manifest>
|
||||
<attribute name="Main-Class" value="net.i2p.util.Copy" />
|
||||
@ -873,7 +950,7 @@
|
||||
<arg value="-output"/>
|
||||
<arg value="i2p.fba"/>
|
||||
<arg value="-auxclasspath"/>
|
||||
<arg value="build/commons-el.jar:build/commons-logging.jar:build/jasper-compiler.jar:build/jasper-runtime.jar:build/javax.servlet.jar:build/org.mortbay.jetty.jar:apps/jrobin/jrobin-1.5.9.1.jar:apps/systray/java/lib/systray4j.jar:installer/lib/wrapper/linux/wrapper.jar:apps/susidns/src/WEB-INF/lib/standard.jar:apps/susidns/src/WEB-INF/lib/jstl.jar:apps/jrobin/jrobin-1.5.9.1.jar"/>
|
||||
<arg value="build/commons-el.jar:build/commons-logging.jar:build/jasper-compiler.jar:build/jasper-runtime.jar:build/javax.servlet.jar:build/org.mortbay.jetty.jar:apps/jrobin/jrobin-1.5.9.1.jar:apps/systray/java/lib/systray4j.jar:installer/lib/wrapper/all/wrapper.jar:apps/susidns/src/WEB-INF/lib/standard.jar:apps/susidns/src/WEB-INF/lib/jstl.jar:apps/jrobin/jrobin-1.5.9.1.jar"/>
|
||||
<arg value="-sourcepath"/>
|
||||
<arg value="apps/BOB/src/:apps/addressbook/java/src/:apps/i2psnark/java/src/:apps/i2ptunnel/java/src/:apps/ministreaming/java/src/:apps/routerconsole/java/src/:apps/sam/java/src/:apps/streaming/java/src/:apps/susidns/src/java/src/:apps/susimail/src/src/:apps/systray/java/src/:core/java/src/:router/java/src/"/>
|
||||
<!-- start of the files to be analyzed -->
|
||||
@ -904,7 +981,7 @@
|
||||
<!--
|
||||
<target name="release" depends="distclean, updater, updater200, preppkg, installer" >
|
||||
-->
|
||||
<target name="release" depends="distclean, updaterWithJettyFixes, updater200WithJettyFixes, preppkg, installer" >
|
||||
<target name="release" depends="distclean, updaterWithJettyFixesAndJbigi , updater200WithJettyFixes, preppkg, installer" >
|
||||
<echo message="================================================================" />
|
||||
<echo message="Did you update these files?" />
|
||||
<exec executable="ls" failonerror="true">
|
||||
@ -1179,7 +1256,7 @@
|
||||
<copy file="apps/systray/java/lib/systray4j.jar" todir="pkg-temp/lib" />
|
||||
<!--wrapper - dont even think about it. i2p cosumes appreantly more mem without it on win32-->
|
||||
<copy file="installer/lib/wrapper/win32/wrapper.dll" todir="pkg-temp/lib" />
|
||||
<copy file="installer/lib/wrapper/win32/wrapper.jar" todir="pkg-temp/lib" />
|
||||
<copy file="installer/lib/wrapper/all/wrapper.jar" todir="pkg-temp/lib" />
|
||||
<copy file="installer/lib/wrapper/win32/I2Psvc.exe" tofile="pkg-temp/i2psvc.ex_" />
|
||||
<!-- copy the unpack/start batchfiles -->
|
||||
<copy todir="pkg-temp">
|
||||
|
@ -1,6 +1,7 @@
|
||||
#/bin/bash
|
||||
|
||||
# TO-DO: Darwin.
|
||||
#FIXME What platforms for MacOS?
|
||||
MISC_DARWIN_PLATFORMS=""
|
||||
|
||||
# Note: You will have to add the CPU ID for the platform in the CPU ID code
|
||||
# for a new CPU. Just adding them here won't let I2P use the code!
|
||||
@ -42,8 +43,10 @@ X86_PLATFORMS="pentium pentiummmx pentium2 pentium3 pentiumm k6 k62 k63 athlon g
|
||||
MINGW_PLATFORMS="${X86_PLATFORMS} ${MISC_MINGW_PLATFORMS}"
|
||||
LINUX_PLATFORMS="${X86_PLATFORMS} ${MISC_LINUX_PLATFORMS}"
|
||||
FREEBSD_PLATFORMS="${X86_PLATFORMS} ${MISC_FREEBSD_PLATFORMS}"
|
||||
DARWIN_PLATFORMS="${X86_PLATFORMS} ${MISC_DARWIN_PLATFORMS}"
|
||||
|
||||
VER=$(echo gmp-*.tar.bz2 | sed -re "s/(.*-)(.*)(.*.tar.bz2)$/\2/" | tail --lines=1)
|
||||
# OSX doesn't have the -r parameter as an option for sed.
|
||||
VER=$(echo gmp-*.tar.bz2 | sed -re "s/(.*-)(.*)(.*.tar.bz2)$/\2/" | tail -n 1)
|
||||
if [ "$VER" == "" ] ; then
|
||||
echo "ERROR! Can't find gmp source tarball."
|
||||
exit 1
|
||||
@ -57,6 +60,12 @@ MINGW*)
|
||||
TYPE="dll"
|
||||
TARGET="-windows-"
|
||||
echo "Building windows .dlls for all architectures";;
|
||||
Darwin*)
|
||||
PLATFORM_LIST=${DARWIN_PLATFORMS}"
|
||||
NAME="libjbigi"
|
||||
TYPE="jnilib"
|
||||
TARGET="-osx-"
|
||||
echo "Building ${TARGET} .jnilibs for all architectures";;
|
||||
Linux*)
|
||||
NAME="libjbigi"
|
||||
TYPE="so"
|
||||
|
@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# When executed in Mingw: Produces an jbigi.dll
|
||||
# When executed in Linux/FreeBSD: Produces an libjbigi.so
|
||||
# What does Darwin produce? libjbigi.jnilib?
|
||||
# When executed in Mingw: Produces a jbigi.dll
|
||||
# When executed in Linux/FreeBSD: Produces a libjbigi.so
|
||||
# When executed in OSX: Produces a libjbigi.jnilib
|
||||
CC="gcc"
|
||||
|
||||
case `uname -sr` in
|
||||
@ -18,8 +18,8 @@ CYGWIN*)
|
||||
LINKFLAGS="-shared -Wl,--kill-at"
|
||||
LIBFILE="jbigi.dll";;
|
||||
Darwin*)
|
||||
JAVA_HOME="/Library/Java/Home"
|
||||
COMPILEFLAGS="-Wall"
|
||||
JAVA_HOME=$(/usr/libexec/java_home)
|
||||
COMPILEFLAGS="-fPIC -Wall"
|
||||
INCLUDES="-I. -I../../jbigi/include -I$JAVA_HOME/include"
|
||||
LINKFLAGS="-dynamiclib -framework JavaVM"
|
||||
LIBFILE="libjbigi.jnilib";;
|
||||
|
@ -9,16 +9,18 @@ Linux*)
|
||||
echo "Building linux .so's";;
|
||||
FreeBSD*)
|
||||
echo "Building freebsd .so's";;
|
||||
Darwin*)
|
||||
echo "Building OSX jnilibs";;
|
||||
*)
|
||||
echo "Unsupported build environment"
|
||||
exit;;
|
||||
esac
|
||||
|
||||
rm -rf lib
|
||||
mkdir lib
|
||||
mkdir lib/freenet
|
||||
mkdir lib/freenet/support
|
||||
mkdir lib/freenet/support/CPUInformation
|
||||
#mkdir lib
|
||||
#mkdir lib/freenet
|
||||
#mkdir lib/freenet/support
|
||||
mkdir -p lib/freenet/support/CPUInformation
|
||||
|
||||
CC="gcc"
|
||||
|
||||
@ -29,11 +31,26 @@ MINGW*)
|
||||
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/ -I$JAVA_HOME/include/win32/"
|
||||
LINKFLAGS="-shared -static -static-libgcc -Wl,--kill-at"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/jcpuid-x86-windows.dll";;
|
||||
Darwin*)
|
||||
JAVA_HOME=$(/usr/libexec/java_home)
|
||||
COMPILEFLAGS="-fPIC -Wall -arch x86_64 -arch i386"
|
||||
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/"
|
||||
LINKFLAGS="-dynamiclib -framework JavaVM"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-darwin.jnilib";;
|
||||
FreeBSD*)
|
||||
COMPILEFLAGS="-Wall"
|
||||
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/ -I$JAVA_HOME/include/freebsd/"
|
||||
LINKFLAGS="-shared -static -Wl,-soname,libjcpuid-x86-freebsd.so"
|
||||
case `uname -m` in
|
||||
amd64)
|
||||
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86_64-freebsd.so"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86_64-freebsd.so";;
|
||||
i?86*)
|
||||
LINKFLAGS="-shared -Wl,-soname,libjcpuid-x86-freebsd.so"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/libjcpuid-x86-freebsd.so";;
|
||||
*)
|
||||
echo "Unknown build environment"
|
||||
exit;;
|
||||
esac
|
||||
COMPILEFLAGS="-fPIC -Wall"
|
||||
INCLUDES="-I. -Iinclude -I$JAVA_HOME/include/ -I$JAVA_HOME/include/freebsd/";;
|
||||
Linux*)
|
||||
case `uname -m` in
|
||||
x86_64*)
|
||||
|
@ -39,7 +39,7 @@
|
||||
</javac>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate" unless="jar.uptodate" >
|
||||
<target name="listChangedFiles" if="mtn.available" >
|
||||
<exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
|
||||
<arg value="list" />
|
||||
<arg value="changed" />
|
||||
@ -51,6 +51,11 @@
|
||||
<arg value="[:space:]" />
|
||||
<arg value="," />
|
||||
</exec>
|
||||
</target>
|
||||
|
||||
<target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
|
||||
<!-- set if unset -->
|
||||
<property name="workspace.changes.tr" value="" />
|
||||
<jar destfile="./build/i2p.jar" basedir="./build/obj" includes="**/*.class" >
|
||||
<manifest>
|
||||
<attribute name="Build-Date" value="${build.timestamp}" />
|
||||
|
@ -16,24 +16,31 @@ package freenet.support.CPUInformation;
|
||||
*/
|
||||
public interface AMDCPUInfo extends CPUInfo {
|
||||
/**
|
||||
* @return true iff the CPU present in the machine is at least an 'k6' CPU
|
||||
* @return true if the CPU present in the machine is at least an 'k6' CPU
|
||||
*/
|
||||
public boolean IsK6Compatible();
|
||||
/**
|
||||
* @return true iff the CPU present in the machine is at least an 'k6-2' CPU
|
||||
* @return true if the CPU present in the machine is at least an 'k6-2' CPU
|
||||
*/
|
||||
public boolean IsK6_2_Compatible();
|
||||
/**
|
||||
* @return true iff the CPU present in the machine is at least an 'k6-3' CPU
|
||||
* @return true if the CPU present in the machine is at least an 'k6-3' CPU
|
||||
*/
|
||||
public boolean IsK6_3_Compatible();
|
||||
|
||||
/**
|
||||
* @return true iff the CPU present in the machine is at least an 'k7' CPU (Atlhon, Duron etc. and better)
|
||||
* @return true if the CPU present in the machine is at least an 'geode' CPU
|
||||
*/
|
||||
boolean IsGeodeCompatible();
|
||||
/**
|
||||
* @return true if the CPU present in the machine is at least an 'k7' CPU (Atlhon, Duron etc. and better)
|
||||
*/
|
||||
public boolean IsAthlonCompatible();
|
||||
/**
|
||||
* @return true iff the CPU present in the machine is at least an 'k8' CPU (Atlhon 64, Opteron etc. and better)
|
||||
* @return true if the CPU present in the machine is at least an 'k8' CPU (Atlhon 64, Opteron etc. and better)
|
||||
*/
|
||||
public boolean IsAthlon64Compatible();
|
||||
/**
|
||||
* @return true if the CPU present in the machine is at least an 'k8' CPU (Atlhon 64, Opteron etc. and better)
|
||||
*/
|
||||
public boolean IsBobcatCompatible();
|
||||
}
|
||||
|
357
core/java/src/freenet/support/CPUInformation/AMDInfoImpl.java
Normal file
357
core/java/src/freenet/support/CPUInformation/AMDInfoImpl.java
Normal file
@ -0,0 +1,357 @@
|
||||
package freenet.support.CPUInformation;
|
||||
|
||||
class AMDInfoImpl extends CPUIDCPUInfo implements AMDCPUInfo
|
||||
{
|
||||
protected static boolean isK6Compatible = false;
|
||||
protected static boolean isK6_2_Compatible = false;
|
||||
protected static boolean isK6_3_Compatible = false;
|
||||
protected static boolean isGeodeCompatible = false;
|
||||
protected static boolean isAthlonCompatible = false;
|
||||
protected static boolean isAthlon64Compatible = false;
|
||||
protected static boolean isBobcatCompatible = false;
|
||||
|
||||
// If modelString != null, the cpu is considered correctly identified.
|
||||
protected static String modelString = null;
|
||||
|
||||
@Override
|
||||
public boolean IsK6Compatible(){ return isK6Compatible; }
|
||||
@Override
|
||||
public boolean IsK6_2_Compatible(){ return isK6_2_Compatible; }
|
||||
@Override
|
||||
public boolean IsK6_3_Compatible(){ return isK6_3_Compatible; }
|
||||
@Override
|
||||
public boolean IsGeodeCompatible(){ return isGeodeCompatible; }
|
||||
@Override
|
||||
public boolean IsAthlonCompatible(){ return isAthlonCompatible; }
|
||||
@Override
|
||||
public boolean IsAthlon64Compatible(){ return isAthlon64Compatible; }
|
||||
@Override
|
||||
public boolean IsBobcatCompatible(){ return isBobcatCompatible; }
|
||||
|
||||
static
|
||||
{
|
||||
identifyCPU();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCPUModelString() throws UnknownCPUException
|
||||
{
|
||||
if (modelString != null)
|
||||
return modelString;
|
||||
throw new UnknownCPUException("Unknown AMD CPU; Family="+(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily())+", Model="+(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()));
|
||||
}
|
||||
|
||||
|
||||
private synchronized static void identifyCPU()
|
||||
{
|
||||
//AMD-family = getCPUFamily()+getCPUExtendedFamily()
|
||||
//AMD-model = getCPUModel()+getCPUExtendedModel()
|
||||
//i486 class (Am486, 5x86)
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 4){
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 3:
|
||||
modelString = "486 DX/2";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "486 DX/2-WB";
|
||||
break;
|
||||
case 8:
|
||||
modelString = "486 DX/4";
|
||||
break;
|
||||
case 9:
|
||||
modelString = "486 DX/4-WB";
|
||||
break;
|
||||
case 14:
|
||||
modelString = "Am5x86-WT";
|
||||
break;
|
||||
case 15:
|
||||
modelString = "Am5x86-WB";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//i586 class (K5/K6/K6-2/K6-III)
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 5){
|
||||
isK6Compatible = true;
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 0:
|
||||
modelString = "K5/SSA5";
|
||||
break;
|
||||
case 1:
|
||||
modelString = "K5";
|
||||
break;
|
||||
case 2:
|
||||
modelString = "K5";
|
||||
break;
|
||||
case 3:
|
||||
modelString = "K5";
|
||||
break;
|
||||
case 4:
|
||||
isK6Compatible = false;
|
||||
isGeodeCompatible = true;
|
||||
modelString = "Geode GX1/GXLV/GXm";
|
||||
break;
|
||||
case 5:
|
||||
isK6Compatible = false;
|
||||
isGeodeCompatible = true;
|
||||
modelString = "Geode GX2/LX";
|
||||
break;
|
||||
case 6:
|
||||
modelString = "K6";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "K6";
|
||||
break;
|
||||
case 8:
|
||||
isK6_2_Compatible = true;
|
||||
modelString = "K6-2";
|
||||
break;
|
||||
case 9:
|
||||
isK6_2_Compatible = true;
|
||||
isK6_3_Compatible = true;
|
||||
modelString = "K6-3";
|
||||
break;
|
||||
case 13:
|
||||
isK6_2_Compatible = true;
|
||||
modelString = "K6-2+ or K6-III+";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//i686 class (Athlon/Athlon XP/Duron/K7 Sempron)
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 6){
|
||||
isK6Compatible = true;
|
||||
isK6_2_Compatible = true;
|
||||
isK6_3_Compatible = true;
|
||||
isAthlonCompatible = true;
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 0:
|
||||
modelString = "Athlon (250 nm)";
|
||||
break;
|
||||
case 1:
|
||||
modelString = "Athlon (250 nm)";
|
||||
break;
|
||||
case 2:
|
||||
modelString = "Athlon (180 nm)";
|
||||
break;
|
||||
case 3:
|
||||
modelString = "Duron";
|
||||
break;
|
||||
case 4:
|
||||
modelString = "Athlon (Thunderbird)";
|
||||
break;
|
||||
case 6:
|
||||
modelString = "Athlon (Palamino)";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "Duron (Morgan)";
|
||||
break;
|
||||
case 8:
|
||||
modelString = "Athlon (Thoroughbred)";
|
||||
break;
|
||||
case 10:
|
||||
modelString = "Athlon (Barton)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//AMD64 class (A64/Opteron/A64 X2/K8 Sempron/Turion/Second-Generation Opteron/Athlon Neo)
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 15){
|
||||
isK6Compatible = true;
|
||||
isK6_2_Compatible = true;
|
||||
isK6_3_Compatible = true;
|
||||
isAthlonCompatible = true;
|
||||
isAthlon64Compatible = true;
|
||||
isX64 = true;
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 4:
|
||||
modelString = "Athlon 64/Mobile XP-M";
|
||||
case 5:
|
||||
modelString = "Athlon 64 FX Opteron";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "Athlon 64 FX (Sledgehammer S939, 130 nm)";
|
||||
break;
|
||||
case 8:
|
||||
modelString = "Mobile A64/Sempron/XP-M";
|
||||
break;
|
||||
case 11:
|
||||
modelString = "Athlon 64 (Clawhammer S939, 130 nm)";
|
||||
break;
|
||||
case 12:
|
||||
modelString = "Athlon 64/Sempron (Newcastle S754, 130 nm)";
|
||||
break;
|
||||
case 14:
|
||||
modelString = "Athlon 64/Sempron (Newcastle S754, 130 nm)";
|
||||
break;
|
||||
case 15:
|
||||
modelString = "Athlon 64/Sempron (Clawhammer S939, 130 nm)";
|
||||
break;
|
||||
case 18:
|
||||
modelString = "Sempron (Palermo, 90 nm)";
|
||||
break;
|
||||
case 20:
|
||||
modelString = "Athlon 64 (Winchester S754, 90 nm)";
|
||||
break;
|
||||
case 23:
|
||||
modelString = "Athlon 64 (Winchester S939, 90 nm)";
|
||||
break;
|
||||
case 24:
|
||||
modelString = "Mobile A64/Sempron/XP-M (Winchester S754, 90 nm)";
|
||||
break;
|
||||
case 26:
|
||||
modelString = "Athlon 64 (Winchester S939, 90 nm)";
|
||||
break;
|
||||
case 27:
|
||||
modelString = "Athlon 64/Sempron (Winchester/Palermo 90 nm)";
|
||||
break;
|
||||
case 28:
|
||||
modelString = "Sempron (Palermo, 90 nm)";
|
||||
break;
|
||||
case 31:
|
||||
modelString = "Athlon 64/Sempron (Winchester/Palermo, 90 nm)";
|
||||
break;
|
||||
case 33:
|
||||
modelString = "Dual-Core Opteron (Italy-Egypt S940, 90 nm)";
|
||||
break;
|
||||
case 35:
|
||||
modelString = "Athlon 64 X2/A64 FX/Opteron (Toledo/Denmark S939, 90 nm)";
|
||||
break;
|
||||
case 36:
|
||||
modelString = "Mobile A64/Turion (Lancaster/Richmond/Newark, 90 nm)";
|
||||
break;
|
||||
case 37:
|
||||
modelString = "Opteron (Troy/Athens S940, 90 nm)";
|
||||
break;
|
||||
case 39:
|
||||
modelString = "Athlon 64 (San Diego, 90 nm)";
|
||||
break;
|
||||
case 43:
|
||||
modelString = "Athlon 64 X2 (Manchester, 90 nm)";
|
||||
break;
|
||||
case 44:
|
||||
modelString = "Sempron/mobile Sempron (Palermo/Albany/Roma S754, 90 nm)";
|
||||
break;
|
||||
case 47:
|
||||
modelString = "Athlon 64/Sempron (Venice/Palermo S939, 90 nm)";
|
||||
break;
|
||||
case 65:
|
||||
modelString = "Second-Generaton Opteron (Santa Rosa S1207, 90 nm)";
|
||||
break;
|
||||
case 67:
|
||||
modelString = "Athlon 64 X2/2nd-gen Opteron (Windsor/Santa Rosa, 90 nm)";
|
||||
break;
|
||||
case 72:
|
||||
modelString = "Athlon 64 X2/Turion 64 X2 (Windsor/Taylor/Trinidad, 90 nm)";
|
||||
break;
|
||||
case 75:
|
||||
modelString = "Athlon 64 X2 (Windsor, 90 nm)";
|
||||
break;
|
||||
case 76:
|
||||
modelString = "Mobile A64/mobile Sempron/Turion (Keene/Trinidad/Taylor, 90 nm)";
|
||||
break;
|
||||
case 79:
|
||||
modelString = "Athlon 64/Sempron (Orleans/Manila AM2, 90 nm)";
|
||||
break;
|
||||
case 93:
|
||||
modelString = "Opteron Gen 2 (Santa Rosa, 90 nm)";
|
||||
break;
|
||||
case 95:
|
||||
modelString = "A64/Sempron/mobile Sempron (Orleans/Manila/Keene, 90 nm)";
|
||||
break;
|
||||
case 104:
|
||||
modelString = "Turion 64 X2 (Tyler S1, 65 nm)";
|
||||
break;
|
||||
case 107:
|
||||
modelString = "Athlon 64 X2/Sempron X2/Athlon Neo X2 (Brisbane/Huron, 65 nm)";
|
||||
break;
|
||||
case 108:
|
||||
modelString = "A64/Athlon Neo/Sempron/Mobile Sempron (Lima/Huron/Sparta/Sherman, 65 nm)";
|
||||
break;
|
||||
case 111:
|
||||
modelString = "Neo/Sempron/mobile Sempron (Huron/Sparta/Sherman, 65 nm)";
|
||||
break;
|
||||
case 124:
|
||||
modelString = "Athlon/Sempron/mobile Sempron (Lima/Sparta/Sherman, 65 nm)";
|
||||
break;
|
||||
case 127:
|
||||
modelString = "A64/Athlon Neo/Sempron/mobile Sempron (Lima/Huron/Sparta/Sherman, 65 nm)";
|
||||
break;
|
||||
case 193:
|
||||
modelString = "Athlon 64 FX (Windsor S1207 90 nm)";
|
||||
break;
|
||||
default: // is this safe?
|
||||
modelString = "Athlon 64 (unknown)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Stars (Phenom II/Athlon II/Third-Generation Opteron/Opteron 4100 & 6100/Sempron 1xx)
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 16){
|
||||
isK6Compatible = true;
|
||||
isK6_2_Compatible = true;
|
||||
isK6_3_Compatible = true;
|
||||
isAthlonCompatible = true;
|
||||
isAthlon64Compatible = true;
|
||||
isX64 = true;
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 2:
|
||||
modelString = "Phenom / Athlon / Opteron Gen 3 (Barcelona/Agena/Toliman/Kuma, 65 nm)";
|
||||
break;
|
||||
case 4:
|
||||
modelString = "Phenom II / Opteron Gen 3 (Shanghai/Deneb/Heka/Callisto, 45 nm)";
|
||||
break;
|
||||
case 5:
|
||||
modelString = "Athlon II X2/X3/X4 (Regor/Rana/Propus AM3, 45 nm)";
|
||||
break;
|
||||
case 6:
|
||||
modelString = "Mobile Athlon II/Turion II/Phenom II/Sempron/V-series (Regor/Caspian/Champlain, 45 nm)";
|
||||
break;
|
||||
case 8:
|
||||
modelString = "Six-Core Opteron/Opteron 4100 series (Istanbul/Lisbon, 45 nm)";
|
||||
break;
|
||||
case 9:
|
||||
modelString = "Opteron 6100 series (Magny-Cours G34, 45 nm)";
|
||||
break;
|
||||
case 10:
|
||||
modelString = "Phenom II X4/X6 (Zosma/Thuban AM3, 45 nm)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//K8 mobile+HT3 (Turion X2/Athlon X2/Sempron)
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 17){
|
||||
isK6Compatible = true;
|
||||
isK6_2_Compatible = true;
|
||||
isK6_3_Compatible = true;
|
||||
isAthlonCompatible = true;
|
||||
isAthlon64Compatible = true;
|
||||
isX64 = true;
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 3:
|
||||
modelString = "AMD Turion X2/Athlon X2/Sempron (Lion/Sable, 65 nm)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Bobcat
|
||||
if(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily() == 20){
|
||||
isK6Compatible = true;
|
||||
isK6_2_Compatible = true;
|
||||
isK6_3_Compatible = true;
|
||||
isAthlonCompatible = true;
|
||||
isAthlon64Compatible = true;
|
||||
isBobcatCompatible = true;
|
||||
isX64 = true;
|
||||
switch(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()){
|
||||
case 1:
|
||||
modelString = "Bobcat APU";
|
||||
break;
|
||||
// Case 3 is uncertain but most likely a Bobcat APU
|
||||
case 3:
|
||||
modelString = "Bobcat APU";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean hasX64()
|
||||
{
|
||||
return isX64;
|
||||
}
|
||||
|
||||
}
|
@ -9,10 +9,12 @@ import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URL;
|
||||
import java.util.HashMap;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.util.FileUtil;
|
||||
|
||||
|
||||
/**
|
||||
* @author Iakin
|
||||
* A class for retrieveing details about the CPU using the CPUID assembly instruction.
|
||||
@ -53,6 +55,8 @@ public class CPUID {
|
||||
private static final boolean isLinux = System.getProperty("os.name").toLowerCase().contains("linux");
|
||||
private static final boolean isFreebsd = System.getProperty("os.name").toLowerCase().contains("freebsd");
|
||||
private static final boolean isSunos = System.getProperty("os.name").toLowerCase().contains("sunos");
|
||||
private static final boolean isMac = System.getProperty("os.name").startsWith("Mac");
|
||||
|
||||
|
||||
/**
|
||||
* This isn't always correct.
|
||||
@ -71,11 +75,8 @@ public class CPUID {
|
||||
{
|
||||
loadNative();
|
||||
}
|
||||
|
||||
/**
|
||||
* A class that can (amongst other things I assume) represent the state of the
|
||||
* different CPU registers after a call to the CPUID assembly method
|
||||
*/
|
||||
//A class that can (amongst other things I assume) represent the state of the
|
||||
//different CPU registers after a call to the CPUID assembly method
|
||||
protected static class CPUIDResult {
|
||||
final int EAX;
|
||||
final int EBX;
|
||||
@ -97,7 +98,8 @@ public class CPUID {
|
||||
*/
|
||||
private static native CPUIDResult doCPUID(int iFunction);
|
||||
|
||||
private static String getCPUVendorID()
|
||||
|
||||
public static String getCPUVendorID()
|
||||
{
|
||||
CPUIDResult c = doCPUID(0);
|
||||
StringBuilder sb= new StringBuilder(13);
|
||||
@ -118,71 +120,74 @@ public class CPUID {
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
private static int getCPUFamily()
|
||||
public static int getCPUFamily()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return (c.EAX >> 8) & 0xf;
|
||||
}
|
||||
private static int getCPUModel()
|
||||
public static int getCPUModel()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return (c.EAX >> 4) & 0xf;
|
||||
}
|
||||
private static int getCPUExtendedModel()
|
||||
public static int getCPUExtendedModel()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return (c.EAX >> 16) & 0xf;
|
||||
}
|
||||
private static int getCPUType()
|
||||
public static int getCPUType()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return (c.EAX >> 12) & 0xf;
|
||||
}
|
||||
private static int getCPUExtendedFamily()
|
||||
public static int getCPUExtendedFamily()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return (c.EAX >> 20) & 0xff;
|
||||
}
|
||||
private static int getCPUStepping()
|
||||
public static int getCPUStepping()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return c.EAX & 0xf;
|
||||
}
|
||||
private static int getEDXCPUFlags()
|
||||
public static int getEDXCPUFlags()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return c.EDX;
|
||||
}
|
||||
private static int getECXCPUFlags()
|
||||
public static int getECXCPUFlags()
|
||||
{
|
||||
CPUIDResult c = doCPUID(1);
|
||||
return c.ECX;
|
||||
}
|
||||
private static int getExtendedEDXCPUFlags()
|
||||
public static int getExtendedEBXCPUFlags()
|
||||
{
|
||||
CPUIDResult c = doCPUID(0x80000001);
|
||||
return c.EDX;
|
||||
return c.EBX;
|
||||
}
|
||||
private static int getExtendedECXCPUFlags()
|
||||
public static int getExtendedECXCPUFlags()
|
||||
{
|
||||
CPUIDResult c = doCPUID(0x80000001);
|
||||
return c.ECX;
|
||||
}
|
||||
public static int getExtendedEDXCPUFlags()
|
||||
{
|
||||
CPUIDResult c = doCPUID(0x80000001);
|
||||
return c.EDX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a CPUInfo item for the current type of CPU
|
||||
* If I could I would declare this method in a interface named
|
||||
* CPUInfoProvider and implement that interface in this class.
|
||||
* This would make it easier for other people to understand that there
|
||||
* is nothing preventing them from coding up new providers, probably using
|
||||
* other detection methods than the x86-only CPUID instruction
|
||||
*/
|
||||
//Returns a CPUInfo item for the current type of CPU
|
||||
//If I could I would declare this method in a interface named
|
||||
//CPUInfoProvider and implement that interface in this class.
|
||||
//This would make it easier for other people to understand that there
|
||||
//is nothing preventing them from coding up new providers, probably using
|
||||
//other detection methods than the x86-only CPUID instruction
|
||||
public static CPUInfo getInfo() throws UnknownCPUException
|
||||
{
|
||||
if(!_nativeOk)
|
||||
throw new UnknownCPUException("Failed to read CPU information from the system. Please verify the existence of the jcpuid dll/so.");
|
||||
if(getCPUVendorID().equals("CentaurHauls"))
|
||||
return new VIAC3Impl();
|
||||
return new VIAInfoImpl();
|
||||
if(!isX86)
|
||||
throw new UnknownCPUException("Failed to read CPU information from the system. The CPUID instruction exists on x86 CPU's only");
|
||||
if(getCPUVendorID().equals("AuthenticAMD"))
|
||||
@ -192,303 +197,6 @@ public class CPUID {
|
||||
throw new UnknownCPUException("Unknown CPU type: '"+getCPUVendorID()+"'");
|
||||
}
|
||||
|
||||
protected abstract static class CPUIDCPUInfo
|
||||
{
|
||||
public String getVendor()
|
||||
{
|
||||
return getCPUVendorID();
|
||||
}
|
||||
public boolean hasMMX(){
|
||||
return (getEDXCPUFlags() & 0x800000) >0; //EDX Bit 23
|
||||
}
|
||||
public boolean hasSSE(){
|
||||
return (getEDXCPUFlags() & 0x2000000) >0; //EDX Bit 25
|
||||
}
|
||||
public boolean hasSSE2(){
|
||||
return (getEDXCPUFlags() & 0x4000000) >0; //EDX Bit 26
|
||||
}
|
||||
public boolean hasSSE3(){
|
||||
return (getEDXCPUFlags() & 0x1) >0; //ECX Bit 0
|
||||
}
|
||||
public boolean hasSSE41(){
|
||||
return (getEDXCPUFlags() & 0x80000) >0; //ECX Bit 19
|
||||
}
|
||||
public boolean hasSSE42(){
|
||||
return (getEDXCPUFlags() & 0x100000) >0; //ECX Bit 20
|
||||
}
|
||||
public boolean hasSSE4A(){
|
||||
return (getExtendedECXCPUFlags() & 0x40) >0; //Extended ECX Bit 6
|
||||
}
|
||||
public boolean IsC3Compatible() { return false; }
|
||||
}
|
||||
protected static class VIAC3Impl extends CPUIDCPUInfo implements CPUInfo {
|
||||
@Override
|
||||
public boolean IsC3Compatible() { return true; }
|
||||
public String getCPUModelString() { return "VIA C3"; }
|
||||
}
|
||||
protected static class AMDInfoImpl extends CPUIDCPUInfo implements AMDCPUInfo
|
||||
{
|
||||
public boolean IsK6Compatible()
|
||||
{
|
||||
return getCPUFamily() >= 5 && getCPUModel() >= 6;
|
||||
}
|
||||
public boolean IsK6_2_Compatible()
|
||||
{
|
||||
return getCPUFamily() >= 5 && getCPUModel() >= 8;
|
||||
}
|
||||
public boolean IsK6_3_Compatible()
|
||||
{
|
||||
return getCPUFamily() >= 5 && getCPUModel() >= 9;
|
||||
}
|
||||
public boolean IsAthlonCompatible()
|
||||
{
|
||||
return getCPUFamily() >= 6;
|
||||
}
|
||||
public boolean IsAthlon64Compatible()
|
||||
{
|
||||
return getCPUFamily() == 15 && getCPUExtendedFamily() == 0;
|
||||
}
|
||||
|
||||
public String getCPUModelString() throws UnknownCPUException
|
||||
{
|
||||
if(getCPUFamily() == 4){
|
||||
switch(getCPUModel()){
|
||||
case 3:
|
||||
return "486 DX/2";
|
||||
case 7:
|
||||
return "486 DX/2-WB";
|
||||
case 8:
|
||||
return "486 DX/4";
|
||||
case 9:
|
||||
return "486 DX/4-WB";
|
||||
case 14:
|
||||
return "Am5x86-WT";
|
||||
case 15:
|
||||
return "Am5x86-WB";
|
||||
}
|
||||
}
|
||||
if(getCPUFamily() == 5){
|
||||
switch(getCPUModel()){
|
||||
case 0:
|
||||
return "K5/SSA5";
|
||||
case 1:
|
||||
return "K5";
|
||||
case 2:
|
||||
return "K5";
|
||||
case 3:
|
||||
return "K5";
|
||||
case 6:
|
||||
return "K6";
|
||||
case 7:
|
||||
return "K6";
|
||||
case 8:
|
||||
return "K6-2";
|
||||
case 9:
|
||||
return "K6-3";
|
||||
case 13:
|
||||
return "K6-2+ or K6-III+";
|
||||
}
|
||||
}
|
||||
if(getCPUFamily() == 6){
|
||||
switch(getCPUModel()){
|
||||
case 0:
|
||||
return "Athlon (250 nm)";
|
||||
case 1:
|
||||
return "Athlon (250 nm)";
|
||||
case 2:
|
||||
return "Athlon (180 nm)";
|
||||
case 3:
|
||||
return "Duron";
|
||||
case 4:
|
||||
return "Athlon (Thunderbird)";
|
||||
case 6:
|
||||
return "Athlon (Palamino)";
|
||||
case 7:
|
||||
return "Duron (Morgan)";
|
||||
case 8:
|
||||
return "Athlon (Thoroughbred)";
|
||||
case 10:
|
||||
return "Athlon (Barton)";
|
||||
}
|
||||
}
|
||||
if(getCPUFamily() == 15){
|
||||
if(getCPUExtendedFamily() == 0){
|
||||
switch(getCPUModel()){
|
||||
case 4:
|
||||
return "Athlon 64";
|
||||
case 5:
|
||||
return "Athlon 64 FX Opteron";
|
||||
case 12:
|
||||
return "Athlon 64";
|
||||
default: // is this safe?
|
||||
return "Athlon 64 (unknown)";
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new UnknownCPUException("Unknown AMD CPU; Family="+getCPUFamily()+", Model="+getCPUModel());
|
||||
}
|
||||
}
|
||||
|
||||
protected static class IntelInfoImpl extends CPUIDCPUInfo implements IntelCPUInfo
|
||||
{
|
||||
public boolean IsPentiumCompatible()
|
||||
{
|
||||
return getCPUFamily() >= 5;
|
||||
}
|
||||
public boolean IsPentiumMMXCompatible()
|
||||
{
|
||||
return IsPentium2Compatible() || (getCPUFamily() == 5 && (getCPUModel() ==4 || getCPUModel() == 8));
|
||||
}
|
||||
public boolean IsPentium2Compatible()
|
||||
{
|
||||
return getCPUFamily() > 6 || (getCPUFamily() == 6 && getCPUModel() >=3);
|
||||
}
|
||||
public boolean IsPentium3Compatible()
|
||||
{
|
||||
// Atom
|
||||
if (getCPUExtendedModel() == 1 && (getCPUFamily() == 6 && (getCPUModel() == 12))){
|
||||
return true;
|
||||
// ??
|
||||
} else if (getCPUExtendedModel() == 0 && (getCPUFamily() > 6 || (getCPUFamily() == 6 && getCPUModel() >=7))){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public boolean IsPentium4Compatible()
|
||||
{
|
||||
// P4
|
||||
if (getCPUFamily() >= 15){
|
||||
return true;
|
||||
// Xeon MP (45nm) or Core i7
|
||||
} else if (getCPUExtendedModel() == 1 && (getCPUFamily() == 6 && (getCPUModel() == 10 || getCPUModel() == 13))){
|
||||
return true;
|
||||
// Core 2 Duo
|
||||
} else if (getCPUExtendedModel() == 0 && getCPUFamily() == 6 && getCPUModel() == 15){
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public String getCPUModelString() throws UnknownCPUException {
|
||||
if (getCPUExtendedModel() == 0){
|
||||
if(getCPUFamily() == 4){
|
||||
switch(getCPUModel()){
|
||||
case 0:
|
||||
return "486 DX-25/33";
|
||||
case 1:
|
||||
return "486 DX-50";
|
||||
case 2:
|
||||
return "486 SX";
|
||||
case 3:
|
||||
return "486 DX/2";
|
||||
case 4:
|
||||
return "486 SL";
|
||||
case 5:
|
||||
return "486 SX/2";
|
||||
case 7:
|
||||
return "486 DX/2-WB";
|
||||
case 8:
|
||||
return "486 DX/4";
|
||||
case 9:
|
||||
return "486 DX/4-WB";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getCPUExtendedModel() == 0){
|
||||
if(getCPUFamily() == 5){
|
||||
switch(getCPUModel()){
|
||||
case 0:
|
||||
return "Pentium 60/66 A-step";
|
||||
case 1:
|
||||
return "Pentium 60/66";
|
||||
case 2:
|
||||
return "Pentium 75 - 200";
|
||||
case 3:
|
||||
return "OverDrive PODP5V83";
|
||||
case 4:
|
||||
return "Pentium MMX";
|
||||
case 7:
|
||||
return "Mobile Pentium 75 - 200";
|
||||
case 8:
|
||||
return "Mobile Pentium MMX";
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getCPUFamily() == 6){
|
||||
if (getCPUExtendedModel() == 0){
|
||||
switch(getCPUModel()){
|
||||
case 0:
|
||||
return "Pentium Pro A-step";
|
||||
case 1:
|
||||
return "Pentium Pro";
|
||||
case 3:
|
||||
return "Pentium II (Klamath)";
|
||||
case 5:
|
||||
return "Pentium II (Deschutes), Celeron (Covington), Mobile Pentium II (Dixon)";
|
||||
case 6:
|
||||
return "Mobile Pentium II, Celeron (Mendocino)";
|
||||
case 7:
|
||||
return "Pentium III (Katmai)";
|
||||
case 8:
|
||||
return "Pentium III (Coppermine), Celeron w/SSE";
|
||||
case 9:
|
||||
return "Mobile Pentium III (Banias)";
|
||||
case 10:
|
||||
return "Pentium III Xeon (Cascades)";
|
||||
case 11:
|
||||
return "Pentium III (130 nm)";
|
||||
case 13:
|
||||
return "Mobile Pentium III (Dothan)";
|
||||
case 14:
|
||||
return "Mobile Core (Yonah)";
|
||||
case 15:
|
||||
return "Core 2 (Conroe)";
|
||||
}
|
||||
} else {
|
||||
if (getCPUExtendedModel() == 1){
|
||||
switch(getCPUModel()){
|
||||
case 10:
|
||||
return "Core i7";
|
||||
case 12:
|
||||
return "Atom";
|
||||
case 13:
|
||||
return "Xeon MP";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(getCPUFamily() == 7){
|
||||
switch(getCPUModel()){
|
||||
//Itanium.. TODO
|
||||
}
|
||||
}
|
||||
if(getCPUFamily() == 15){
|
||||
if(getCPUExtendedFamily() == 0){
|
||||
switch(getCPUModel()){
|
||||
case 0:
|
||||
return "Pentium IV (180 nm)";
|
||||
case 1:
|
||||
return "Pentium IV (180 nm)";
|
||||
case 2:
|
||||
return "Pentium IV (130 nm)";
|
||||
case 3:
|
||||
return "Pentium IV (90 nm)";
|
||||
case 4:
|
||||
return "Pentium IV (90 nm)";
|
||||
case 6:
|
||||
return "Pentium IV (65 nm)";
|
||||
}
|
||||
}
|
||||
if(getCPUExtendedFamily() == 1){
|
||||
switch(getCPUModel()){
|
||||
// Itanium 2.. TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
throw new UnknownCPUException("Unknown Intel CPU; Family="+getCPUFamily()+", Model="+getCPUModel());
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String args[])
|
||||
{
|
||||
@ -518,6 +226,9 @@ public class CPUID {
|
||||
System.out.println(" Is pII-compatible: "+((IntelCPUInfo)c).IsPentium2Compatible());
|
||||
System.out.println(" Is pIII-compatible: "+((IntelCPUInfo)c).IsPentium3Compatible());
|
||||
System.out.println(" Is pIV-compatible: "+((IntelCPUInfo)c).IsPentium4Compatible());
|
||||
System.out.println(" Is atom-compatible: "+((IntelCPUInfo)c).IsAtomCompatible());
|
||||
System.out.println(" Is core2-compatible: "+((IntelCPUInfo)c).IsCore2Compatible());
|
||||
System.out.println(" Is corei-compatible: "+((IntelCPUInfo)c).IsCoreiCompatible());
|
||||
}
|
||||
if(c instanceof AMDCPUInfo){
|
||||
System.out.println(" **AMD-info**");
|
||||
@ -665,9 +376,9 @@ public class CPUID {
|
||||
System.load(outFile.getAbsolutePath());//System.load requires an absolute path to the lib
|
||||
} catch (UnsatisfiedLinkError ule) {
|
||||
if (_doLog) {
|
||||
System.err.println("ERROR: The resource " + resourceName
|
||||
+ " was not a valid library for this platform");
|
||||
ule.printStackTrace();
|
||||
System.err.println("WARNING: The resource " + resourceName
|
||||
+ " was not a valid library for this platform " + ule);
|
||||
//ule.printStackTrace();
|
||||
}
|
||||
if (outFile != null)
|
||||
outFile.delete();
|
||||
@ -718,6 +429,11 @@ public class CPUID {
|
||||
private static final String getLibraryMiddlePart(){
|
||||
if(isWindows)
|
||||
return "jcpuid-x86-windows"; // The convention on Windows
|
||||
if(isMac) {
|
||||
if(isX86) {
|
||||
return "jcpuid-x86-osx"; // The convention on Intel Macs
|
||||
}
|
||||
}
|
||||
if(isFreebsd)
|
||||
return "jcpuid-x86-freebsd"; // The convention on freebsd...
|
||||
if(isSunos)
|
||||
@ -733,6 +449,11 @@ public class CPUID {
|
||||
return "jcpuid-x86_64-windows";
|
||||
if(isFreebsd)
|
||||
return "jcpuid-x86_64-freebsd";
|
||||
if(isMac){
|
||||
if(isX86){
|
||||
return "jcpuid-x86_64-osx";
|
||||
}
|
||||
}
|
||||
if(isSunos)
|
||||
return "jcpuid-x86_64-solaris";
|
||||
// use linux as the default, don't throw exception
|
||||
@ -743,6 +464,8 @@ public class CPUID {
|
||||
{
|
||||
if(isWindows)
|
||||
return "dll";
|
||||
if(isMac)
|
||||
return "jnilib";
|
||||
else
|
||||
return "so";
|
||||
}
|
||||
|
@ -0,0 +1,40 @@
|
||||
package freenet.support.CPUInformation;
|
||||
|
||||
abstract class CPUIDCPUInfo
|
||||
{
|
||||
protected static boolean isX64 = false;
|
||||
|
||||
public String getVendor()
|
||||
{
|
||||
return CPUID.getCPUVendorID();
|
||||
}
|
||||
public boolean hasMMX()
|
||||
{
|
||||
return (CPUID.getEDXCPUFlags() & 0x800000) >0; //EDX Bit 23
|
||||
}
|
||||
public boolean hasSSE(){
|
||||
return (CPUID.getEDXCPUFlags() & 0x2000000) >0; //EDX Bit 25
|
||||
}
|
||||
public boolean hasSSE2()
|
||||
{
|
||||
return (CPUID.getEDXCPUFlags() & 0x4000000) >0; //EDX Bit 26
|
||||
}
|
||||
public boolean hasSSE3()
|
||||
{
|
||||
return (CPUID.getEDXCPUFlags() & 0x1) >0; //ECX Bit 0
|
||||
}
|
||||
public boolean hasSSE41()
|
||||
{
|
||||
return (CPUID.getEDXCPUFlags() & 0x80000) >0; //ECX Bit 19
|
||||
}
|
||||
public boolean hasSSE42()
|
||||
{
|
||||
return (CPUID.getEDXCPUFlags() & 0x100000) >0; //ECX Bit 20
|
||||
}
|
||||
public boolean hasSSE4A()
|
||||
{
|
||||
return (CPUID.getExtendedECXCPUFlags() & 0x40) >0; //Extended ECX Bit 6
|
||||
}
|
||||
|
||||
public abstract boolean hasX64();
|
||||
}
|
@ -61,6 +61,4 @@ public interface CPUInfo
|
||||
* @return true iff the CPU support the SSE4A instruction set.
|
||||
*/
|
||||
public boolean hasSSE4A();
|
||||
|
||||
public boolean IsC3Compatible();
|
||||
}
|
||||
|
@ -16,25 +16,41 @@ package freenet.support.CPUInformation;
|
||||
*/
|
||||
public interface IntelCPUInfo extends CPUInfo {
|
||||
/**
|
||||
* @return true iff the CPU is at least a Pentium CPU.
|
||||
* @return true if the CPU is at least a Pentium CPU.
|
||||
*/
|
||||
public boolean IsPentiumCompatible();
|
||||
/**
|
||||
* @return true iff the CPU is at least a Pentium which implements the MMX instruction/feature set.
|
||||
* @return true if the CPU is at least a Pentium which implements the MMX instruction/feature set.
|
||||
*/
|
||||
public boolean IsPentiumMMXCompatible();
|
||||
/**
|
||||
* @return true iff the CPU implements at least the p6 instruction set (Pentium II or better).
|
||||
* @return true if the CPU implements at least the p6 instruction set (Pentium II or better).
|
||||
* Please note that an PentimPro CPU causes/should cause this method to return false (due to that CPU using a
|
||||
* very early implementation of the p6 instruction set. No MMX etc.)
|
||||
*/
|
||||
public boolean IsPentium2Compatible();
|
||||
/**
|
||||
* @return true iff the CPU implements at least a Pentium III level of the p6 instruction/feature set.
|
||||
* @return true if the CPU implements at least a Pentium III level of the p6 instruction/feature set.
|
||||
*/
|
||||
public boolean IsPentium3Compatible();
|
||||
/**
|
||||
* @return true iff the CPU implements at least a Pentium IV level instruction/feature set.
|
||||
* @return true if the CPU implements at least a Pentium IV level instruction/feature set.
|
||||
*/
|
||||
public boolean IsPentium4Compatible();
|
||||
/**
|
||||
* @return true if the CPU implements at least a Pentium M level instruction/feature set.
|
||||
*/
|
||||
public boolean IsPentiumMCompatible();
|
||||
/**
|
||||
* @return true if the CPU implements at least a Atom level instruction/feature set.
|
||||
*/
|
||||
public boolean IsAtomCompatible();
|
||||
/**
|
||||
* @return true if the CPU implements at least a Core2 level instruction/feature set.
|
||||
*/
|
||||
public boolean IsCore2Compatible();
|
||||
/**
|
||||
* @return true if the CPU implements at least a Corei level instruction/feature set.
|
||||
*/
|
||||
public boolean IsCoreiCompatible();
|
||||
}
|
||||
|
297
core/java/src/freenet/support/CPUInformation/IntelInfoImpl.java
Normal file
297
core/java/src/freenet/support/CPUInformation/IntelInfoImpl.java
Normal file
@ -0,0 +1,297 @@
|
||||
package freenet.support.CPUInformation;
|
||||
|
||||
class IntelInfoImpl extends CPUIDCPUInfo implements IntelCPUInfo
|
||||
{
|
||||
protected static boolean isPentiumCompatible = false;
|
||||
protected static boolean isPentiumMMXCompatible = false;
|
||||
protected static boolean isPentium2Compatible = false;
|
||||
protected static boolean isPentium3Compatible = false;
|
||||
protected static boolean isPentium4Compatible = false;
|
||||
protected static boolean isPentiumMCompatible = false;
|
||||
protected static boolean isAtomCompatible = false;
|
||||
protected static boolean isCore2Compatible = false;
|
||||
protected static boolean isCoreiCompatible = false;
|
||||
|
||||
// If modelString != null, the cpu is considered correctly identified.
|
||||
protected static String modelString = null;
|
||||
|
||||
@Override
|
||||
public boolean IsPentiumCompatible(){ return isPentiumCompatible; }
|
||||
@Override
|
||||
public boolean IsPentiumMMXCompatible(){ return isPentiumMMXCompatible; }
|
||||
@Override
|
||||
public boolean IsPentium2Compatible(){ return isPentium2Compatible; }
|
||||
@Override
|
||||
public boolean IsPentium3Compatible(){ return isPentium3Compatible; }
|
||||
@Override
|
||||
public boolean IsPentium4Compatible(){ return isPentium4Compatible; }
|
||||
@Override
|
||||
public boolean IsPentiumMCompatible(){ return isPentiumMCompatible; }
|
||||
@Override
|
||||
public boolean IsAtomCompatible(){ return isAtomCompatible; }
|
||||
@Override
|
||||
public boolean IsCore2Compatible(){ return isCore2Compatible; }
|
||||
@Override
|
||||
public boolean IsCoreiCompatible(){ return isCoreiCompatible; }
|
||||
|
||||
static
|
||||
{
|
||||
identifyCPU();
|
||||
}
|
||||
|
||||
public String getCPUModelString() throws UnknownCPUException
|
||||
{
|
||||
if (modelString != null)
|
||||
return modelString;
|
||||
throw new UnknownCPUException("Unknown Intel CPU; Family="+CPUID.getCPUFamily()+", Model="+CPUID.getCPUModel());
|
||||
}
|
||||
|
||||
private synchronized static void identifyCPU()
|
||||
{
|
||||
if (CPUID.getCPUExtendedModel() == 0){
|
||||
if(CPUID.getCPUFamily() == 4){
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 0:
|
||||
modelString = "486 DX-25/33";
|
||||
break;
|
||||
case 1:
|
||||
modelString = "486 DX-50";
|
||||
break;
|
||||
case 2:
|
||||
modelString = "486 SX";
|
||||
break;
|
||||
case 3:
|
||||
modelString = "486 DX/2";
|
||||
break;
|
||||
case 4:
|
||||
modelString = "486 SL";
|
||||
break;
|
||||
case 5:
|
||||
modelString = "486 SX/2";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "486 DX/2-WB";
|
||||
break;
|
||||
case 8:
|
||||
modelString = "486 DX/4";
|
||||
break;
|
||||
case 9:
|
||||
modelString = "486 DX/4-WB";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (CPUID.getCPUExtendedModel() == 0){
|
||||
if(CPUID.getCPUFamily() == 5){
|
||||
isPentiumCompatible = true;
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 0:
|
||||
modelString = "Pentium 60/66 A-step";
|
||||
break;
|
||||
case 1:
|
||||
modelString = "Pentium 60/66";
|
||||
break;
|
||||
case 2:
|
||||
modelString = "Pentium 75 - 200";
|
||||
break;
|
||||
case 3:
|
||||
modelString = "OverDrive PODP5V83";
|
||||
break;
|
||||
case 4:
|
||||
isPentiumMMXCompatible = true;
|
||||
modelString = "Pentium MMX";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "Mobile Pentium 75 - 200";
|
||||
break;
|
||||
case 8:
|
||||
isPentiumMMXCompatible = true;
|
||||
modelString = "Mobile Pentium MMX";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(CPUID.getCPUFamily() == 6){
|
||||
if (CPUID.getCPUExtendedModel() == 0){
|
||||
isPentiumCompatible = true;
|
||||
isPentiumMMXCompatible = true;
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 0:
|
||||
modelString = "Pentium Pro A-step";
|
||||
break;
|
||||
case 1:
|
||||
modelString = "Pentium Pro";
|
||||
break;
|
||||
case 3:
|
||||
isPentium2Compatible = true;
|
||||
modelString = "Pentium II (Klamath)";
|
||||
break;
|
||||
case 5:
|
||||
isPentium2Compatible = true;
|
||||
modelString = "Pentium II (Deschutes), Celeron (Covington), Mobile Pentium II (Dixon)";
|
||||
break;
|
||||
case 6:
|
||||
isPentium2Compatible = true;
|
||||
modelString = "Mobile Pentium II, Celeron (Mendocino)";
|
||||
break;
|
||||
case 7:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
modelString = "Pentium III (Katmai)";
|
||||
break;
|
||||
case 8:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
modelString = "Pentium III (Coppermine), Celeron w/SSE";
|
||||
break;
|
||||
case 9:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
isX64 = true;
|
||||
modelString = "Pentium M (Banias)";
|
||||
break;
|
||||
case 10:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
modelString = "Pentium III Xeon (Cascades)";
|
||||
break;
|
||||
case 11:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
modelString = "Pentium III (130 nm)";
|
||||
break;
|
||||
case 13:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
isX64 = true;
|
||||
modelString = "Core (Yonah)";
|
||||
break;
|
||||
case 14:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
isCore2Compatible = true;
|
||||
isX64 = true;
|
||||
modelString = "Core 2 (Conroe)";
|
||||
break;
|
||||
case 15:
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
isCore2Compatible = true;
|
||||
isX64 = true;
|
||||
modelString = "Core 2 (Conroe)";
|
||||
break;
|
||||
}
|
||||
} else if (CPUID.getCPUExtendedModel() == 1){
|
||||
isPentiumCompatible = true;
|
||||
isPentiumMMXCompatible = true;
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentium4Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
isCore2Compatible = true;
|
||||
isX64 = true;
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 6:
|
||||
modelString = "Celeron";
|
||||
break;
|
||||
case 10:
|
||||
isCoreiCompatible = true;
|
||||
modelString = "Core i7 (45nm)";
|
||||
break;
|
||||
case 12:
|
||||
isAtomCompatible = true;
|
||||
isCore2Compatible = false;
|
||||
isPentium4Compatible = false;
|
||||
isX64 = true;
|
||||
modelString = "Atom";
|
||||
break;
|
||||
case 13:
|
||||
isCoreiCompatible = true;
|
||||
modelString = "Xeon MP (45nm)";
|
||||
break;
|
||||
case 14:
|
||||
isCoreiCompatible = true;
|
||||
modelString = "Core i5/i7 (45nm)";
|
||||
break;
|
||||
}
|
||||
} else if (CPUID.getCPUExtendedModel() == 2){
|
||||
isPentiumCompatible = true;
|
||||
isPentiumMMXCompatible = true;
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentium4Compatible = true;
|
||||
isPentiumMCompatible = true;
|
||||
isCore2Compatible = true;
|
||||
isCoreiCompatible = true;
|
||||
isX64 = true;
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 5:
|
||||
modelString = "Core i3 or i5/i7 mobile (32nm)";
|
||||
break;
|
||||
case 10:
|
||||
modelString = "Core i7/i5 (32nm)";
|
||||
break;
|
||||
case 12:
|
||||
modelString = "Core i7 (32nm)";
|
||||
break;
|
||||
case 14:
|
||||
modelString = "Xeon MP (45nm)";
|
||||
break;
|
||||
case 15:
|
||||
modelString = "Xeon MP (32nm)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(CPUID.getCPUFamily() == 7){
|
||||
switch(CPUID.getCPUModel()){
|
||||
//Itanium.. TODO
|
||||
}
|
||||
}
|
||||
if(CPUID.getCPUFamily() == 15){
|
||||
if(CPUID.getCPUExtendedFamily() == 0){
|
||||
isPentiumCompatible = true;
|
||||
isPentiumMMXCompatible = true;
|
||||
isPentium2Compatible = true;
|
||||
isPentium3Compatible = true;
|
||||
isPentium4Compatible = true;
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 0:
|
||||
modelString = "Pentium IV (180 nm)";
|
||||
break;
|
||||
case 1:
|
||||
modelString = "Pentium IV (180 nm)";
|
||||
break;
|
||||
case 2:
|
||||
modelString = "Pentium IV (130 nm)";
|
||||
break;
|
||||
case 3:
|
||||
modelString = "Pentium IV (90 nm)";
|
||||
break;
|
||||
case 4:
|
||||
isX64 = true;
|
||||
modelString = "Pentium IV (90 nm)";
|
||||
break;
|
||||
case 6:
|
||||
isX64 = true;
|
||||
modelString = "Pentium IV (65 nm)";
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(CPUID.getCPUExtendedFamily() == 1){
|
||||
switch(CPUID.getCPUModel()){
|
||||
// Itanium 2.. TODO
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean hasX64() {
|
||||
return isX64;
|
||||
}
|
||||
}
|
@ -8,6 +8,11 @@ package freenet.support.CPUInformation;
|
||||
*
|
||||
*/
|
||||
public class UnknownCPUException extends RuntimeException {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5166144274582583742L;
|
||||
|
||||
public UnknownCPUException() {
|
||||
super();
|
||||
}
|
||||
|
16
core/java/src/freenet/support/CPUInformation/VIACPUInfo.java
Normal file
16
core/java/src/freenet/support/CPUInformation/VIACPUInfo.java
Normal file
@ -0,0 +1,16 @@
|
||||
package freenet.support.CPUInformation;
|
||||
|
||||
public interface VIACPUInfo extends CPUInfo{
|
||||
|
||||
/**
|
||||
* @return true if the CPU present in the machine is at least an 'c3' CPU
|
||||
*/
|
||||
public boolean IsC3Compatible();
|
||||
/**
|
||||
* @return true if the CPU present in the machine is at least an 'nano' CPU
|
||||
*/
|
||||
public boolean IsNanoCompatible();
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package freenet.support.CPUInformation;
|
||||
|
||||
class VIAInfoImpl extends CPUIDCPUInfo implements VIACPUInfo {
|
||||
|
||||
protected static boolean isC3Compatible = false;
|
||||
protected static boolean isNanoCompatible = false;
|
||||
|
||||
// If modelString != null, the cpu is considered correctly identified.
|
||||
protected static String modelString = null;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean IsC3Compatible(){ return isC3Compatible; }
|
||||
@Override
|
||||
public boolean IsNanoCompatible(){ return isNanoCompatible; }
|
||||
|
||||
static
|
||||
{
|
||||
identifyCPU();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCPUModelString()
|
||||
{
|
||||
if (modelString != null)
|
||||
return modelString;
|
||||
throw new UnknownCPUException("Unknown VIA CPU; Family="+(CPUID.getCPUFamily() + CPUID.getCPUExtendedFamily())+", Model="+(CPUID.getCPUModel() + CPUID.getCPUExtendedModel()));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasX64()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
private synchronized static void identifyCPU()
|
||||
{
|
||||
if(CPUID.getCPUFamily() == 6){
|
||||
isC3Compatible = true; // Possibly not optimal
|
||||
switch(CPUID.getCPUModel()){
|
||||
case 5:
|
||||
modelString = "Cyrix M2";
|
||||
break;
|
||||
case 6:
|
||||
modelString = "C5 A/B";
|
||||
break;
|
||||
case 7:
|
||||
modelString = "C5 C";
|
||||
break;
|
||||
case 8:
|
||||
modelString = "C5 N";
|
||||
break;
|
||||
case 9:
|
||||
modelString = "C5 XL/P";
|
||||
break;
|
||||
case 10:
|
||||
modelString = "C5 J";
|
||||
break;
|
||||
case 15:
|
||||
isNanoCompatible = true;
|
||||
modelString = "Nano";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -17,13 +17,13 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl
|
||||
* The router must override this via the prng.buffers property in the router context.
|
||||
*/
|
||||
private static final int DEFAULT_BUFFERS = 2;
|
||||
private static final int BUFSIZE = 256*1024;
|
||||
private int _bufferCount;
|
||||
private static final int DEFAULT_BUFSIZE = 256*1024;
|
||||
private final int _bufferCount;
|
||||
private final byte asyncBuffers[][];
|
||||
private final int status[];
|
||||
private int nextBuf = 0;
|
||||
private I2PAppContext _context;
|
||||
private Log _log;
|
||||
private final I2PAppContext _context;
|
||||
private final Log _log;
|
||||
|
||||
private static final int STATUS_NEED_FILL = 0;
|
||||
private static final int STATUS_FILLING = 1;
|
||||
@ -33,7 +33,8 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl
|
||||
public AsyncFortunaStandalone(I2PAppContext context) {
|
||||
super();
|
||||
_bufferCount = Math.max(context.getProperty("prng.buffers", DEFAULT_BUFFERS), 2);
|
||||
asyncBuffers = new byte[_bufferCount][BUFSIZE];
|
||||
int bufferSize = Math.max(context.getProperty("prng.bufferSize", DEFAULT_BUFSIZE), 16*1024);
|
||||
asyncBuffers = new byte[_bufferCount][bufferSize];
|
||||
status = new int[_bufferCount];
|
||||
for (int i = 0; i < _bufferCount; i++)
|
||||
status[i] = STATUS_NEED_FILL;
|
||||
|
@ -13,7 +13,7 @@ import org.bouncycastle.crypto.macs.I2PHMac;
|
||||
/**
|
||||
* Calculate the HMAC-SHA256 of a key+message. All the good stuff occurs
|
||||
* in {@link org.bouncycastle.crypto.macs.I2PHMac} and
|
||||
* {@link net.i2p.crypto.Sha256Standalone}.
|
||||
* {@link gnu.crypto.hash.Sha256Standalone}.
|
||||
*
|
||||
* This should be compatible with javax.crypto.Mac.getInstance("HmacSHA256")
|
||||
* but that is untested.
|
||||
|
@ -12,13 +12,13 @@ import net.i2p.util.Log;
|
||||
public class RateStat {
|
||||
private final static Log _log = new Log(RateStat.class);
|
||||
/** unique name of the statistic */
|
||||
private String _statName;
|
||||
private final String _statName;
|
||||
/** grouping under which the stat is kept */
|
||||
private String _groupName;
|
||||
private final String _groupName;
|
||||
/** describe the stat */
|
||||
private String _description;
|
||||
private final String _description;
|
||||
/** actual rate objects for this statistic */
|
||||
private Rate _rates[];
|
||||
private final Rate _rates[];
|
||||
/** component we tell about events as they occur */
|
||||
private StatLog _statLog;
|
||||
|
||||
|
@ -17,20 +17,18 @@ import java.text.DateFormat;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Queue;
|
||||
import java.util.Set;
|
||||
import java.util.TimeZone;
|
||||
import java.util.TreeMap;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.data.DataHelper;
|
||||
|
||||
/**
|
||||
* Manages the logging system, loading (and reloading) the configuration file,
|
||||
@ -286,18 +284,11 @@ public class LogManager {
|
||||
}
|
||||
|
||||
Properties p = new Properties();
|
||||
FileInputStream fis = null;
|
||||
try {
|
||||
fis = new FileInputStream(cfgFile);
|
||||
p.load(fis);
|
||||
DataHelper.loadProps(p, cfgFile);
|
||||
_configLastRead = _context.clock().now();
|
||||
} catch (IOException ioe) {
|
||||
System.err.println("Error loading logger config from " + cfgFile.getAbsolutePath());
|
||||
} finally {
|
||||
if (fis != null) try {
|
||||
fis.close();
|
||||
} catch (IOException ioe) { // nop
|
||||
}
|
||||
}
|
||||
parseConfig(p);
|
||||
updateLimits();
|
||||
@ -363,6 +354,7 @@ public class LogManager {
|
||||
private void parseLimits(Properties config) {
|
||||
parseLimits(config, PROP_RECORD_PREFIX);
|
||||
}
|
||||
|
||||
private void parseLimits(Properties config, String recordPrefix) {
|
||||
_limits.clear();
|
||||
if (config != null) {
|
||||
@ -559,60 +551,47 @@ public class LogManager {
|
||||
return _rotationLimit;
|
||||
}
|
||||
|
||||
/** @return success */
|
||||
public boolean saveConfig() {
|
||||
String config = createConfig();
|
||||
FileOutputStream fos = null;
|
||||
Properties props = createConfig();
|
||||
try {
|
||||
fos = new FileOutputStream(_locationFile);
|
||||
fos.write(config.getBytes());
|
||||
DataHelper.storeProps(props, _locationFile);
|
||||
return true;
|
||||
} catch (IOException ioe) {
|
||||
getLog(LogManager.class).error("Error saving the config", ioe);
|
||||
return false;
|
||||
} finally {
|
||||
if (fos != null) try { fos.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
}
|
||||
|
||||
private String createConfig() {
|
||||
StringBuilder buf = new StringBuilder(8*1024);
|
||||
buf.append(PROP_FORMAT).append('=').append(new String(_format)).append('\n');
|
||||
buf.append(PROP_DATEFORMAT).append('=').append(_dateFormatPattern).append('\n');
|
||||
buf.append(PROP_DISPLAYONSCREEN).append('=').append((_displayOnScreen ? "TRUE" : "FALSE")).append('\n');
|
||||
private Properties createConfig() {
|
||||
Properties rv = new OrderedProperties();
|
||||
rv.setProperty(PROP_FORMAT, new String(_format));
|
||||
rv.setProperty(PROP_DATEFORMAT, _dateFormatPattern);
|
||||
rv.setProperty(PROP_DISPLAYONSCREEN, Boolean.toString(_displayOnScreen));
|
||||
String filenameOverride = _context.getProperty(FILENAME_OVERRIDE_PROP);
|
||||
if (filenameOverride == null)
|
||||
buf.append(PROP_FILENAME).append('=').append(_baseLogfilename).append('\n');
|
||||
rv.setProperty(PROP_FILENAME, _baseLogfilename);
|
||||
else // this isn't technically correct - this could mess with some funky scenarios
|
||||
buf.append(PROP_FILENAME).append('=').append(DEFAULT_FILENAME).append('\n');
|
||||
rv.setProperty(PROP_FILENAME, DEFAULT_FILENAME);
|
||||
|
||||
if (_fileSize >= 1024*1024)
|
||||
buf.append(PROP_FILESIZE).append('=').append( (_fileSize / (1024*1024))).append("m\n");
|
||||
rv.setProperty(PROP_FILESIZE, (_fileSize / (1024*1024)) + "m");
|
||||
else if (_fileSize >= 1024)
|
||||
buf.append(PROP_FILESIZE).append('=').append( (_fileSize / (1024))).append("k\n");
|
||||
rv.setProperty(PROP_FILESIZE, (_fileSize / (1024))+ "k");
|
||||
else if (_fileSize > 0)
|
||||
buf.append(PROP_FILESIZE).append('=').append(_fileSize).append('\n');
|
||||
rv.setProperty(PROP_FILESIZE, Integer.toString(_fileSize));
|
||||
// if <= 0, dont specify
|
||||
|
||||
buf.append(PROP_ROTATIONLIMIT).append('=').append(_rotationLimit).append('\n');
|
||||
buf.append(PROP_DEFAULTLEVEL).append('=').append(Log.toLevelString(_defaultLimit)).append('\n');
|
||||
buf.append(PROP_DISPLAYONSCREENLEVEL).append('=').append(Log.toLevelString(_onScreenLimit)).append('\n');
|
||||
buf.append(PROP_CONSOLEBUFFERSIZE).append('=').append(_consoleBufferSize).append('\n');
|
||||
rv.setProperty(PROP_ROTATIONLIMIT, Integer.toString(_rotationLimit));
|
||||
rv.setProperty(PROP_DEFAULTLEVEL, Log.toLevelString(_defaultLimit));
|
||||
rv.setProperty(PROP_DISPLAYONSCREENLEVEL, Log.toLevelString(_onScreenLimit));
|
||||
rv.setProperty(PROP_CONSOLEBUFFERSIZE, Integer.toString(_consoleBufferSize));
|
||||
|
||||
buf.append("# log limit overrides:\n");
|
||||
|
||||
TreeMap limits = new TreeMap();
|
||||
for (LogLimit lim : _limits) {
|
||||
limits.put(lim.getRootName(), Log.toLevelString(lim.getLimit()));
|
||||
}
|
||||
for (Iterator iter = limits.entrySet().iterator(); iter.hasNext(); ) {
|
||||
Map.Entry entry = (Map.Entry)iter.next();
|
||||
String path = (String)entry.getKey();
|
||||
String lim = (String)entry.getValue();
|
||||
buf.append(PROP_RECORD_PREFIX).append(path);
|
||||
buf.append('=').append(lim).append('\n');
|
||||
rv.setProperty(PROP_RECORD_PREFIX + lim.getRootName(), Log.toLevelString(lim.getLimit()));
|
||||
}
|
||||
|
||||
return buf.toString();
|
||||
return rv;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -24,6 +24,7 @@ import freenet.support.CPUInformation.AMDCPUInfo;
|
||||
import freenet.support.CPUInformation.CPUID;
|
||||
import freenet.support.CPUInformation.CPUInfo;
|
||||
import freenet.support.CPUInformation.IntelCPUInfo;
|
||||
import freenet.support.CPUInformation.VIACPUInfo;
|
||||
import freenet.support.CPUInformation.UnknownCPUException;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
@ -124,15 +125,30 @@ public class NativeBigInteger extends BigInteger {
|
||||
private final static String JBIGI_OPTIMIZATION_PENTIUM3 = "pentium3";
|
||||
private final static String JBIGI_OPTIMIZATION_PENTIUM4 = "pentium4";
|
||||
private final static String JBIGI_OPTIMIZATION_VIAC3 = "viac3";
|
||||
/** below here @since 0.8.7 */
|
||||
/**
|
||||
* The 7 optimizations below here are since 0.8.7. Each of the 32-bit processors below
|
||||
* needs an explicit fallback in getResourceList() or getMiddleName2().
|
||||
* 64-bit processors will fallback to athlon64 and athlon in getResourceList().
|
||||
* @since 0.8.7
|
||||
*/
|
||||
private final static String JBIGI_OPTIMIZATION_ATOM = "atom";
|
||||
private final static String JBIGI_OPTIMIZATION_CORE2 = "core2";
|
||||
private final static String JBIGI_OPTIMIZATION_COREI = "corei";
|
||||
private final static String JBIGI_OPTIMIZATION_GEODE = "geode";
|
||||
private final static String JBIGI_OPTIMIZATION_NANO = "nano";
|
||||
private final static String JBIGI_OPTIMIZATION_PENTIUMM = "pentiumm";
|
||||
/** all libjbibi builds are identical to pentium3, case handled in getMiddleName2() */
|
||||
private final static String JBIGI_OPTIMIZATION_VIAC32 = "viac32";
|
||||
|
||||
/**
|
||||
* Non-x86, no fallbacks to older libs or to "none"
|
||||
* @since 0.8.7
|
||||
*/
|
||||
private final static String JBIGI_OPTIMIZATION_ARM = "arm";
|
||||
|
||||
/**
|
||||
* Operating systems
|
||||
*/
|
||||
private static final boolean _isWin = System.getProperty("os.name").startsWith("Win");
|
||||
private static final boolean _isOS2 = System.getProperty("os.name").startsWith("OS/2");
|
||||
private static final boolean _isMac = System.getProperty("os.name").startsWith("Mac");
|
||||
@ -154,6 +170,11 @@ public class NativeBigInteger extends BigInteger {
|
||||
private static final boolean _is64 = "64".equals(System.getProperty("sun.arch.data.model")) ||
|
||||
System.getProperty("os.arch").contains("64");
|
||||
|
||||
private static final boolean _isX86 = System.getProperty("os.arch").contains("86") ||
|
||||
System.getProperty("os.arch").equals("amd64");
|
||||
|
||||
private static final boolean _isArm = System.getProperty("os.arch").startsWith("arm");
|
||||
|
||||
/* libjbigi.so vs jbigi.dll */
|
||||
private static final String _libPrefix = (_isWin || _isOS2 ? "" : "lib");
|
||||
private static final String _libSuffix = (_isWin || _isOS2 ? ".dll" : _isMac ? ".jnilib" : ".so");
|
||||
@ -161,41 +182,43 @@ public class NativeBigInteger extends BigInteger {
|
||||
private final static String sCPUType; //The CPU Type to optimize for (one of the above strings)
|
||||
|
||||
static {
|
||||
if (_isMac) // replace with osx/mac friendly jni cpu type detection when we have one
|
||||
sCPUType = null;
|
||||
else
|
||||
if (_isX86) // Don't try to resolve CPU type on PPC and other non x86 hardware
|
||||
sCPUType = resolveCPUType();
|
||||
else if (_isArm)
|
||||
sCPUType = JBIGI_OPTIMIZATION_ARM;
|
||||
else
|
||||
sCPUType = null;
|
||||
loadNative();
|
||||
}
|
||||
|
||||
/** Tries to resolve the best type of CPU that we have an optimized jbigi-dll/so for.
|
||||
/**
|
||||
* Tries to resolve the best type of CPU that we have an optimized jbigi-dll/so for.
|
||||
* This is for x86 only.
|
||||
* @return A string containing the CPU-type or null if CPU type is unknown
|
||||
*/
|
||||
private static String resolveCPUType() {
|
||||
if (_is64) {
|
||||
// Test the 64 bit libjcpuid, even though we don't use it yet
|
||||
try {
|
||||
CPUInfo c = CPUID.getInfo();
|
||||
_cpuModel = c.getCPUModelString();
|
||||
} catch (UnknownCPUException e) {
|
||||
// log?
|
||||
}
|
||||
return JBIGI_OPTIMIZATION_ATHLON64;
|
||||
}
|
||||
|
||||
try {
|
||||
CPUInfo c = CPUID.getInfo();
|
||||
try {
|
||||
_cpuModel = c.getCPUModelString();
|
||||
} catch (UnknownCPUException e) {}
|
||||
if (c.IsC3Compatible())
|
||||
if (c instanceof VIACPUInfo){
|
||||
VIACPUInfo viacpu = (VIACPUInfo) c;
|
||||
if (viacpu.IsNanoCompatible())
|
||||
return JBIGI_OPTIMIZATION_NANO;
|
||||
return JBIGI_OPTIMIZATION_VIAC3;
|
||||
if (c instanceof AMDCPUInfo) {
|
||||
} else if(c instanceof AMDCPUInfo) {
|
||||
AMDCPUInfo amdcpu = (AMDCPUInfo) c;
|
||||
// Supported in CPUID, no GMP support
|
||||
//if (amdcpu.IsBobcatCompatible())
|
||||
// return JBIGI_OPTIMIZATION_BOBCAT;
|
||||
if (amdcpu.IsAthlon64Compatible())
|
||||
return JBIGI_OPTIMIZATION_ATHLON64;
|
||||
if (amdcpu.IsAthlonCompatible())
|
||||
return JBIGI_OPTIMIZATION_ATHLON;
|
||||
// FIXME lots of geodes, but GMP configures like a K6-3
|
||||
if (amdcpu.IsGeodeCompatible())
|
||||
return JBIGI_OPTIMIZATION_GEODE;
|
||||
if (amdcpu.IsK6_3_Compatible())
|
||||
return JBIGI_OPTIMIZATION_K6_3;
|
||||
if (amdcpu.IsK6_2_Compatible())
|
||||
@ -204,8 +227,16 @@ public class NativeBigInteger extends BigInteger {
|
||||
return JBIGI_OPTIMIZATION_K6;
|
||||
} else if (c instanceof IntelCPUInfo) {
|
||||
IntelCPUInfo intelcpu = (IntelCPUInfo) c;
|
||||
if (intelcpu.IsCoreiCompatible())
|
||||
return JBIGI_OPTIMIZATION_COREI;
|
||||
if (intelcpu.IsCore2Compatible())
|
||||
return JBIGI_OPTIMIZATION_CORE2;
|
||||
if (intelcpu.IsPentium4Compatible())
|
||||
return JBIGI_OPTIMIZATION_PENTIUM4;
|
||||
if (intelcpu.IsAtomCompatible())
|
||||
return JBIGI_OPTIMIZATION_ATOM;
|
||||
if (intelcpu.IsPentiumMCompatible())
|
||||
return JBIGI_OPTIMIZATION_PENTIUMM;
|
||||
if (intelcpu.IsPentium3Compatible())
|
||||
return JBIGI_OPTIMIZATION_PENTIUM3;
|
||||
if (intelcpu.IsPentium2Compatible())
|
||||
@ -600,12 +631,18 @@ public class NativeBigInteger extends BigInteger {
|
||||
}
|
||||
// the preferred selection
|
||||
rv.add(_libPrefix + getMiddleName1() + primary + _libSuffix);
|
||||
|
||||
// athlon64 is always a fallback for 64 bit
|
||||
if (_is64 && !primary.equals(JBIGI_OPTIMIZATION_ATHLON64))
|
||||
rv.add(_libPrefix + getMiddleName1() + JBIGI_OPTIMIZATION_ATHLON64 + _libSuffix);
|
||||
|
||||
// Add fallbacks for any 32-bit that were added 0.8.7 or later here
|
||||
if (primary.equals(JBIGI_OPTIMIZATION_ATOM))
|
||||
// FIXME lots of geodes, but GMP configures like a K6-3, so pentium3 is probably a good backup
|
||||
if (primary.equals(JBIGI_OPTIMIZATION_ATOM) ||
|
||||
primary.equals(JBIGI_OPTIMIZATION_PENTIUMM) ||
|
||||
primary.equals(JBIGI_OPTIMIZATION_GEODE))
|
||||
rv.add(_libPrefix + getMiddleName1() + JBIGI_OPTIMIZATION_PENTIUM3 + _libSuffix);
|
||||
|
||||
// athlon is always a fallback for 64 bit, we have it for all architectures
|
||||
// and it should be much better than "none"
|
||||
if (_is64)
|
||||
@ -617,9 +654,12 @@ public class NativeBigInteger extends BigInteger {
|
||||
rv.add(_libPrefix + getMiddleName1() + JBIGI_OPTIMIZATION_ATHLON64 + _libSuffix);
|
||||
}
|
||||
}
|
||||
// add libjbigi-xxx-none.so
|
||||
// Add libjbigi-xxx-none_64.so
|
||||
if (_is64)
|
||||
rv.add(_libPrefix + getMiddleName1() + "none_64" + _libSuffix);
|
||||
// Add libjbigi-xxx-none.so
|
||||
// Note that libjbigi-osx-none.jnilib is a 'fat binary' with both PPC and x86-32
|
||||
if (!_isArm)
|
||||
rv.add(getResourceName(false));
|
||||
return rv;
|
||||
}
|
||||
|
@ -15,7 +15,9 @@ import net.i2p.data.DataHelper;
|
||||
*/
|
||||
public class ReusableGZIPInputStream extends ResettableGZIPInputStream {
|
||||
// Apache Harmony 5.0M13 Deflater doesn't work after reset()
|
||||
private static final boolean ENABLE_CACHING = !System.getProperty("java.vendor").startsWith("Apache");
|
||||
// Neither does Android
|
||||
private static final boolean ENABLE_CACHING = !(System.getProperty("java.vendor").startsWith("Apache") ||
|
||||
System.getProperty("java.vendor").contains("Android"));
|
||||
private static final LinkedBlockingQueue<ReusableGZIPInputStream> _available;
|
||||
static {
|
||||
if (ENABLE_CACHING)
|
||||
|
1
debian/control
vendored
1
debian/control
vendored
@ -9,6 +9,7 @@ Build-Depends: debhelper (>= 7.0.50~),
|
||||
ant,
|
||||
debconf,
|
||||
default-jdk,
|
||||
gettext,
|
||||
libgmp3-dev,
|
||||
po-debconf
|
||||
Build-Depends-Indep: tor-geoipdb
|
||||
|
86
history.txt
86
history.txt
@ -1,3 +1,87 @@
|
||||
2011-06-14 zzz
|
||||
* Jbigi / NBI / wrapper / installer:
|
||||
jbigi and wrapper files for arm.
|
||||
Compiled on trimslice with gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
|
||||
Log postinstall errors to postinstall.log.
|
||||
* RateStat: final
|
||||
|
||||
2011-06-13 duck
|
||||
* Finnish, Italian, Polish and Vietnamese translations, thanks Transifex teams.
|
||||
|
||||
2011-06-13 zzz
|
||||
* To ensure we don't release bad packages, fail the build
|
||||
if gettext fails. Change property at top of build.xml if
|
||||
you don't have gettext and want the build to continue.
|
||||
|
||||
2011-06-12 kytv
|
||||
* Add jcpuid files (32 & 64bit) for Intel Macs
|
||||
* Compile jbigi-osx-none for Intel Macs. libjbigi-osx-none.jnilib
|
||||
is now a fat binary combining the already existing PPC
|
||||
compile and my new x86 build.
|
||||
|
||||
2011-06-11 zzz
|
||||
* i2psnark Polish translation, thanks polacco
|
||||
|
||||
2011-06-10 zzz
|
||||
* CPUID, NativeBigI: Add support for atom, core2, corei, nano, pentiumm, geode
|
||||
* Random: Add config setting prng.bufferSize to override the default 256 KB
|
||||
* JBigI:
|
||||
- Add new libjbigi-linux-xxx.so files built by sponge, now that we have
|
||||
CPUID.java support for them (thanks hottuna).
|
||||
See http://zzz.i2p/topics/306 for discussion and test results.
|
||||
|
||||
64-bit processors (atom, core2, corei, nano):
|
||||
Built with GMP 5.0.2. License is LGPLv3.
|
||||
Built by sponge with GCC 4.4.4, downloaded from
|
||||
http://sponge.i2p/files/jbigi/gmp-5.0.2/
|
||||
For 64-bit processors, both performance testing and
|
||||
the GMP changelog http://gmplib.org/gmp5.0.html led us to use 5.0.2
|
||||
for both the 32- and 64-bit versions, even though the files are twice as big.
|
||||
5.0.x contains specific optimizations for atom and nano.
|
||||
All 64-bit libs have _64 appended.
|
||||
|
||||
32-bit processors (pentiumm, geode):
|
||||
Built with GMP 4.3.2. License is LGPLv3.
|
||||
Built by sponge with GCC 4.4.4, downloaded from
|
||||
http://sponge.i2p/files/jbigi/gmp-4.3.2/
|
||||
The 4.3.2 files are half the size of those built with GMP 5.0.2, and there was
|
||||
little or no performance difference between the two versions for 32 bit processors.
|
||||
* NBI: Enable 64-bit processor detection
|
||||
* Profiles: Skip and delete a corrupt profile read from disk
|
||||
|
||||
2011-06-10 kytv
|
||||
* jcpuid & jbigi added for 64bit Windows (only used with a 64bit jvm).
|
||||
|
||||
2011-06-09 kytv
|
||||
* Added an x64 wrapper for Windows. This is needed because a 32bit wrapper
|
||||
cannot start a 64bit JVM.
|
||||
|
||||
2011-06-08 zzz
|
||||
* Build:
|
||||
- Add standard manifest to jbigi.jar
|
||||
- Don't do 'mtn list changed' if not in a workspace or not needed
|
||||
* LogManager: Use DataHelper methods for loading and storing config
|
||||
|
||||
2011-06-08 kytv
|
||||
* Update jbigi/jcpuid Windows dlls. As was done for FreeBSD and Linux, the
|
||||
libraries for 32bit CPUs were linked against gmp-4.3.2 and those for the
|
||||
64bit CPUs were linked against gmp-5.0.2.
|
||||
|
||||
2011-06-07 kytv
|
||||
* Upgrade the wrapper to 3.5.9. Noticable changes include:
|
||||
- FreeBSD amd64 is now a supported arch along with i386. To use the wrapper
|
||||
with the most recent version of FreeBSD the port 'misc/compat6x' will need
|
||||
to be installed.
|
||||
- OSX: Both Intel and PPC Macs are supported. 32-bit support. If you'd like 64-bit
|
||||
support, please file a bug in trac with the output of "uname -m".
|
||||
* Upgrade jbigi/jcpuid for FreeBSD i386 and add support for amd64. As was done with
|
||||
the Linux compiles, 32bit compiles were linked with gmp 4.3.2 and 64 bit builds
|
||||
(as well as 32bit builds for 64bit cpus) were linked against gmp 5.0.2.
|
||||
|
||||
2011-06-06 zzz
|
||||
* Drop andorid/ directory; further development will happen in
|
||||
an android-only branch.
|
||||
|
||||
2011-06-05 zzz
|
||||
* Console: Tag stat descriptions at declaration rather than in Strings.java
|
||||
* Data: Remove duplicate signature verification code
|
||||
@ -13,7 +97,7 @@
|
||||
The 4.3.2 files are half the size of those built with GMP 5.0.2, and there was
|
||||
little or no performance difference between the two versions for 32 bit processors.
|
||||
See http://zzz.i2p/topics/306 for discussion and test results.
|
||||
- Replace old non-PIC 62-bit linux libs (GMP 4.1.4 built in 2005)
|
||||
- Replace old non-PIC 64-bit linux libs (GMP 4.1.4 built in 2005)
|
||||
with PIC libs built with GMP 5.0.2. License is LGPLv3.
|
||||
Built by sponge with GCC 4.4.4, downloaded from
|
||||
http://sponge.i2p/files/jbigi/gmp-5.0.2/
|
||||
|
@ -130,13 +130,34 @@
|
||||
<parsable targetfile="$INSTALL_PATH/eepget" type="shell" os="unix|mac" />
|
||||
<parsable targetfile="$INSTALL_PATH/runplain.sh" type="shell" os="unix|mac" />
|
||||
|
||||
<conditions>
|
||||
<condition type="variable" id="is64bit">
|
||||
<name>SYSTEM_sun_arch_data_model</name>
|
||||
<value>64</value>
|
||||
</condition>
|
||||
</conditions>
|
||||
<!-- postinstall stuff for windows -->
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<!-- Wrapper for 32bit Windows JVM -->
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
||||
condition="!is64bit"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\I2Psvc.exe" /><arg value="$INSTALL_PATH" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
||||
condition="!is64bit"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" /><arg value="$INSTALL_PATH\lib" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.jar" /><arg value="$INSTALL_PATH\lib" /></args></executable>
|
||||
<!-- wrapper for 64bit Windows JVM -->
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
||||
condition="is64bit" > <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win64\I2Psvc.exe" /><arg value="$INSTALL_PATH" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
||||
condition="is64bit" > <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win64\wrapper.dll" /><arg value="$INSTALL_PATH\lib" /></args></executable>
|
||||
<!-- We still copy the 32 bit version of wrapper.dll (even with a
|
||||
64bit jvm) so that if a 32 bit jvm is installed in the
|
||||
future, nothing breaks.
|
||||
-->
|
||||
<executable targetfile="$INSTALL_PATH/installer/copy.jar" type="jar" stage="postinstall" keep="true" failure="warn"
|
||||
condition="is64bit" > <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\lib\wrapper\win32\wrapper.dll" /><arg value="$INSTALL_PATH\lib\wrapper-windows-x86-32.dll" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\i2prouter" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
@ -147,8 +168,6 @@
|
||||
<args><arg value="$INSTALL_PATH\osid" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\postinstall.sh" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\postinstall.bat" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
<args><arg value="$INSTALL_PATH\uninstall_i2p_service_unix" /></args></executable>
|
||||
<executable targetfile="$INSTALL_PATH/installer/delete.jar" type="jar" stage="postinstall" keep="true" failure="warn"> <os family="windows" />
|
||||
@ -180,7 +199,7 @@
|
||||
|
||||
</pack>
|
||||
|
||||
<pack name="Windows Service" required="no">
|
||||
<pack name="Windows Service" required="no" preselected="no">
|
||||
<description>Automatically start I2P in the background</description>
|
||||
<os family="windows" />
|
||||
<executable targetfile="$INSTALL_PATH/set_config_dir_for_nt_service.bat" stage="postinstall" failure="warn" keep="false" />
|
||||
|
@ -39,6 +39,11 @@ Updates May/June 2011:
|
||||
- jcpuid.c updated to be compatible with -fPIC
|
||||
- 32 bit libjcpuid-linux-x86.so updated, compiled with -fPIC.
|
||||
- 64 bit libjcpuid-linux-x86_64.so added, compiled with -fPIC.
|
||||
- 32 bit libjcpuid-freebsd-x86.so updated, compiled with -fPIC.
|
||||
- 64 bit libjcpid-freebsd-x86_64.so added, compiled with -fPIC.
|
||||
- 32 bit libjcpuid-x86-solaris.so added, compiled with -fPIC.
|
||||
- 32 bit jcpuid-x86-windows.dll updated (no PIC for Windows).
|
||||
- 64 bit jcpuid-x86_64-windows.dll was added.
|
||||
- See also javadoc and code in CPUID.java
|
||||
jbigi:
|
||||
- k62 and k63 are identical for all except windows; exception added to
|
||||
@ -46,9 +51,15 @@ Updates May/June 2011:
|
||||
- All 32 bit linux files updated with GMP 4.3.2, compiled with -fPIC,
|
||||
except for athlon64 and pentium4, which use GMP 5.0.2.
|
||||
- All 64 bit linux files updated with GMP 5.0.2.
|
||||
- libjbigi-windows-athlon64.dll deleted, it was a duplicate of
|
||||
libjbigi-windows-athlon.dll. NativeBigInteger now uses athlon as
|
||||
a fallback for all 64-bit processors.
|
||||
- All 32 bit freebsd files updated with GMP 4.3.2, compiled with -fPIC.
|
||||
- All 64 bit freebsd files are new and were linked with GMP 5.0.2.
|
||||
- All previously existing windows files were updated with GMP 4.3.2. Just as was
|
||||
done for the non-windows architectures, files for 64 bit CPUs were
|
||||
linked with GMP 5.0.2.
|
||||
- jbigi-windows-athlon64.dll was updated, it used to be duplicate of
|
||||
jbigi-windows-athlon.dll.
|
||||
- jbigi-windows-*_64.dll are new and were compiled with the x86_64-w64-mingw32-gcc
|
||||
cross compiler 4.5.3 in Linux and linked with GMP 5.0.2.
|
||||
- Note that all new 64 bit files will use the _64 suffix. For example,
|
||||
the old libjbigi-linux-athlon64.so file was 64 bit; now it is 32 bit
|
||||
and the 64 bit file is libjbigi-linux-athlon64_64.so.
|
||||
|
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-athlon64.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-athlon64.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-athlon64_64.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-athlon64_64.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-atom.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-atom.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-atom_64.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-atom_64.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-core2.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-core2.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-core2_64.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-core2_64.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-corei.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-corei.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-corei_64.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-corei_64.dll
Normal file
Binary file not shown.
BIN
installer/lib/jbigi/jbigi-windows-geode.dll
Normal file
BIN
installer/lib/jbigi/jbigi-windows-geode.dll
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user