mirror of
https://github.com/i2p/i2p.i2p.git
synced 2024-12-06 19:27:00 +01:00
propagate from branch 'i2p.i2p' (head ea4e5cdef1ba51f6eb24828f05dd7ef66d5188ae)
to branch 'i2p.i2p.zzz.android' (head 03199a42adae7400f4627e7391fe3768493fd65f)
This commit is contained in:
+16
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -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?"
|
||||
|
||||
|
||||
@@ -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?"
|
||||
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
+14
-1
@@ -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
|
||||
@@ -43,7 +50,8 @@ 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);
|
||||
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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+14
-1
@@ -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">
|
||||
|
||||
+405
-251
@@ -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 "دفتر العناوين"
|
||||
|
||||
+355
-147
@@ -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 ""
|
||||
|
||||
@@ -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
|
||||
|
||||
+22
-6
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
|
||||
@@ -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ư."
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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";;
|
||||
|
||||
+25
-8
@@ -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"
|
||||
LIBFILE="lib/freenet/support/CPUInformation/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*)
|
||||
|
||||
+6
-1
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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,7 +55,9 @@ 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.
|
||||
* http://stackoverflow.com/questions/807263/how-do-i-detect-which-kind-of-jre-is-installed-32bit-vs-64bit
|
||||
@@ -70,12 +74,9 @@ public class CPUID {
|
||||
static
|
||||
{
|
||||
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,10 +429,15 @@ 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)
|
||||
return "jcpuid-x86-solaris"; // The convention on SunOS
|
||||
if(isSunos)
|
||||
return "jcpuid-x86-solaris"; // The convention on SunOS
|
||||
//throw new RuntimeException("Dont know jcpuid library name for os type '"+System.getProperty("os.name")+"'");
|
||||
// use linux as the default, don't throw exception
|
||||
return "jcpuid-x86-linux";
|
||||
@@ -733,8 +449,13 @@ public class CPUID {
|
||||
return "jcpuid-x86_64-windows";
|
||||
if(isFreebsd)
|
||||
return "jcpuid-x86_64-freebsd";
|
||||
if(isSunos)
|
||||
return "jcpuid-x86_64-solaris";
|
||||
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
|
||||
return "jcpuid-x86_64-linux";
|
||||
}
|
||||
@@ -743,7 +464,9 @@ public class CPUID {
|
||||
{
|
||||
if(isWindows)
|
||||
return "dll";
|
||||
else
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -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,7 +8,12 @@ package freenet.support.CPUInformation;
|
||||
*
|
||||
*/
|
||||
public class UnknownCPUException extends RuntimeException {
|
||||
public UnknownCPUException() {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5166144274582583742L;
|
||||
|
||||
public UnknownCPUException() {
|
||||
super();
|
||||
}
|
||||
|
||||
|
||||
@@ -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())
|
||||
return JBIGI_OPTIMIZATION_VIAC3;
|
||||
if (c instanceof AMDCPUInfo) {
|
||||
if (c instanceof VIACPUInfo){
|
||||
VIACPUInfo viacpu = (VIACPUInfo) c;
|
||||
if (viacpu.IsNanoCompatible())
|
||||
return JBIGI_OPTIMIZATION_NANO;
|
||||
return JBIGI_OPTIMIZATION_VIAC3;
|
||||
} 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,10 +654,13 @@ 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);
|
||||
rv.add(getResourceName(false));
|
||||
// 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)
|
||||
|
||||
Vendored
+1
@@ -9,6 +9,7 @@ Build-Depends: debhelper (>= 7.0.50~),
|
||||
ant,
|
||||
debconf,
|
||||
default-jdk,
|
||||
gettext,
|
||||
libgmp3-dev,
|
||||
po-debconf
|
||||
Build-Depends-Indep: tor-geoipdb
|
||||
|
||||
+85
-1
@@ -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/
|
||||
|
||||
+26
-7
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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