Compare commits
81 Commits
android-0.
...
android-0.
Author | SHA1 | Date | |
---|---|---|---|
dd579d4f5b | |||
5703d8cc6d | |||
b8768ae9fe | |||
54dc2c88bf | |||
dba01b8c18 | |||
b7b3eb7019 | |||
430e2ab826 | |||
87383a2ec8 | |||
f63bfe1dea | |||
ff2021c0aa | |||
51f7e07080 | |||
7797e067a5 | |||
cf09a21f1e | |||
914294927d | |||
bd0455c413 | |||
97f3d937ee | |||
ff102bfe73 | |||
e31a350398 | |||
43a8f29794 | |||
bbca783b20 | |||
6d4fe52f8e | |||
ecb08a54fb | |||
7bd4524fd8 | |||
40f08d56f6 | |||
fe61e35146 | |||
be3f74d71f | |||
8dcfa816e3 | |||
ae05e22670 | |||
79a4fa0407 | |||
bb958b969a | |||
02030454d1 | |||
e396b0b614 | |||
91cac6b743 | |||
2a6015d890 | |||
049b094627 | |||
077d062e19 | |||
4ad483db71 | |||
3edb8ad0c2 | |||
769f41afe6 | |||
5a9d943a6c | |||
44fb246288 | |||
3cc7498e66 | |||
84ce883285 | |||
f8dd9df285 | |||
860cf6a658 | |||
a24a50ce44 | |||
fc9187297b | |||
eb26df874d | |||
27cbb1e57b | |||
66aa79f90f | |||
8b9a70b386 | |||
872a2d15e2 | |||
7085567a08 | |||
19b07a8a8c | |||
0ed78a4806 | |||
ca8fb4663f | |||
ec34ce481e | |||
b0c4089e26 | |||
b23148c71d | |||
c9a336a0a5 | |||
0744426c15 | |||
e6f4bd5531 | |||
ab6f4799c9 | |||
f4beecead3 | |||
17e6d56bb7 | |||
29881b73f9 | |||
8c30582b9a | |||
06de8abb44 | |||
a65ee65606 | |||
a6f49168b7 | |||
1d1e6121fa | |||
30b86499cd | |||
bb8daa81d2 | |||
763ce08902 | |||
a4e1055d86 | |||
ed89afd1bd | |||
13e26b4a1c | |||
3be56767a1 | |||
d184019a8e | |||
6df542a162 | |||
96ca1d1a37 |
@ -24,6 +24,7 @@ _jsp\.java$
|
||||
/classes/
|
||||
|
||||
# Android-specific ignores
|
||||
^lib/client/libs
|
||||
^routerjars/libs
|
||||
local.properties
|
||||
signing.properties
|
||||
@ -35,7 +36,6 @@ signing.properties
|
||||
.*.iws
|
||||
|
||||
#Gradle
|
||||
^.gradle
|
||||
build
|
||||
|
||||
# I2P-specific ignores
|
||||
|
@ -1,6 +1,6 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
lang_map = he: iw, id: in, pt_BR: pt-rBR, ru_RU: ru, sv_SE: sv, tr_TR: tr, uk_UA: uk, yi: ji, zh_CN: zh
|
||||
lang_map = he: iw, id: in, pt_BR: pt-rBR, ru_RU: ru, sv_SE: sv, tr_TR: tr, uk_UA: uk, yi: ji, zh_CN: zh, zh_TW: zh-rTW
|
||||
|
||||
[I2P.android]
|
||||
file_filter = app/src/main/res/values-<lang>/strings.xml
|
||||
@ -9,9 +9,9 @@ source_lang = en
|
||||
type = ANDROID
|
||||
minimum_perc = 50
|
||||
|
||||
[I2P.android_lib_client]
|
||||
file_filter = client/src/main/res/values-<lang>/strings.xml
|
||||
source_file = client/src/main/res/values/strings.xml
|
||||
[I2P.android_lib_helper]
|
||||
file_filter = lib/helper/src/main/res/values-<lang>/strings.xml
|
||||
source_file = lib/helper/src/main/res/values/strings.xml
|
||||
source_lang = en
|
||||
type = ANDROID
|
||||
minimum_perc = 50
|
||||
|
20
CHANGELOG
20
CHANGELOG
@ -1,4 +1,22 @@
|
||||
0.9.20
|
||||
0.9.27 / 2016-11-20
|
||||
* Removed kytv's IRC server from default tunnel list
|
||||
* Translation updates
|
||||
|
||||
0.9.26 / 2016-06-13 / b003272c8b504bb0d904edca2e95359a57c9a52c
|
||||
* Fixed "I2CP already listening" bug
|
||||
* Fixed crash when adding tunnel to empty list
|
||||
* Translation updates
|
||||
|
||||
0.9.25 / 2016-04-17 / 46d45a878a2b73394b26ca27dbe6c696dedcf1c3
|
||||
* Fixed a bug on Samsung Android 4.2 devices
|
||||
* Dependency improvements
|
||||
* Translation updates
|
||||
|
||||
0.9.22 / 2015-10-10 / 0f73ef90b81e2cf3d55f0ea2b0a16e1f10da40ad
|
||||
* Updated browser config guide
|
||||
* Bug fixes and translation updates
|
||||
|
||||
0.9.20 / 2015-06-18 / 5fdaabeb5fa955caac90f1390adbdeaeae42fdf1
|
||||
* Simplified the main interface
|
||||
* Language can be configured
|
||||
* Tunnels can now be edited
|
||||
|
10
README.md
10
README.md
@ -48,6 +48,12 @@ systemProp.socksProxyPort=9150
|
||||
|
||||
2. Check out the [`i2p.i2p`](https://github.com/i2p/i2p.i2p) repository.
|
||||
|
||||
3. Create a `local.properties` file in `i2p.android.base/lib/client` containing:
|
||||
|
||||
```
|
||||
ndk.dir=/path/to/ndk
|
||||
```
|
||||
|
||||
3. Create a `local.properties` file in `i2p.android.base/routerjars` containing:
|
||||
|
||||
```
|
||||
@ -107,8 +113,8 @@ systemProp.socksProxyPort=9150
|
||||
signing.keyId=
|
||||
signing.password=
|
||||
signing.secretKeyRingFile=/path/to/secring.gpg
|
||||
ossrhUsername=
|
||||
ossrhPassword=
|
||||
NEXUS_USERNAME=
|
||||
NEXUS_PASSWORD=
|
||||
```
|
||||
|
||||
2. `gradle :client:uploadArchives`
|
||||
|
@ -5,8 +5,8 @@ android {
|
||||
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
|
||||
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION as String
|
||||
defaultConfig {
|
||||
versionCode 4745230
|
||||
versionName '0.9.20'
|
||||
versionCode 4745234
|
||||
versionName '0.9.27'
|
||||
minSdkVersion 9
|
||||
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
|
||||
|
||||
@ -19,8 +19,8 @@ android {
|
||||
buildTypes {
|
||||
release {
|
||||
signingConfig signingConfigs.release
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
debug {
|
||||
applicationIdSuffix '.debug'
|
||||
@ -52,41 +52,46 @@ android {
|
||||
|
||||
dependencies {
|
||||
// Local dependencies
|
||||
compile project(':lib:client')
|
||||
compile project(':lib:helper')
|
||||
compile project(':routerjars')
|
||||
compile project(':client')
|
||||
|
||||
// Android Support Repository dependencies
|
||||
compile 'com.android.support:support-v4:22.2.0'
|
||||
compile 'com.android.support:appcompat-v7:22.2.0'
|
||||
compile 'com.android.support:recyclerview-v7:22.2.0'
|
||||
def supportVersion = '25.0.0'
|
||||
compile "com.android.support:support-v4:$supportVersion"
|
||||
compile "com.android.support:appcompat-v7:$supportVersion"
|
||||
compile "com.android.support:preference-v7:$supportVersion"
|
||||
compile "com.android.support:preference-v14:$supportVersion"
|
||||
compile "com.android.support:recyclerview-v7:$supportVersion"
|
||||
|
||||
// Remote dependencies
|
||||
compile 'net.i2p.android.ext:floatingactionbutton:1.9.0'
|
||||
compile files('libs/androidplot-core-0.6.1.jar')
|
||||
compile ('com.android.support:support-v4-preferencefragment:1.0.0@aar'){
|
||||
exclude module: 'support-v4'
|
||||
}
|
||||
compile 'com.pnikosis:materialish-progress:1.5'
|
||||
compile 'com.androidplot:androidplot-core:0.9.8'
|
||||
compile 'com.eowise:recyclerview-stickyheaders:0.5.2@aar'
|
||||
compile ('com.mcxiaoke.viewpagerindicator:library:2.4.1') {
|
||||
exclude group: 'com.android.support', module: 'support-v4'
|
||||
}
|
||||
compile 'com.pnikosis:materialish-progress:1.7'
|
||||
compile 'net.i2p:router:0.9.27'
|
||||
compile 'net.i2p.android.ext:floatingactionbutton:1.10.1'
|
||||
compile 'org.sufficientlysecure:html-textview:1.6'
|
||||
|
||||
// Testing-only dependencies
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
|
||||
androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
|
||||
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
|
||||
}
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:support-v4:7bb6e40a18774aa2595e4d8f9fe0ae14e61670f71a1279272fb0b79b8be71180',
|
||||
'com.android.support:appcompat-v7:2d5867698410b41f75140c91d6c1e58da74ae0f97baf6e0bdd1f7cc1017ceb2c',
|
||||
'com.android.support:recyclerview-v7:3a8da14585fa1c81f06e7cef4d93a7641f0323d8f984ff9a7bd7a6e416b46888',
|
||||
'net.i2p.android.ext:floatingactionbutton:b41eae5fe6be599e3fade00273521b0914f2e199d5f04c50fa34cfe935347f76',
|
||||
'com.android.support:support-v4-preferencefragment:5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad',
|
||||
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
|
||||
'com.android.support:support-v4:c25c657954152c4315584572f5008a6780b086169519f67acd20c2617b9da325',
|
||||
'com.android.support:appcompat-v7:bc0b13b1ba63ed226ae509044c880fdfe225cb86d21924ef19f2fb97a71c877e',
|
||||
'com.android.support:preference-v7:a3ebe066ad04787dd377562abb391255b89d056f8dc450365a504f14d74c825c',
|
||||
'com.android.support:preference-v14:6a374214736eff84637b847ba0015d43c52edef6d320b9f6920ead580c8dbe05',
|
||||
'com.android.support:recyclerview-v7:fc6d6a9b802ed3a26789812f29167135cac7b4d956f4deda54fc1f317721da64',
|
||||
'com.androidplot:androidplot-core:e44d9e59e06f025330831f7d3c987d2778a3302025184cf0cef05714b5171212',
|
||||
'com.eowise:recyclerview-stickyheaders:7b236da49b33b840e9ba6e7e4182218d1a2d9047236fdbc3ca947352f9b0883b',
|
||||
'com.mcxiaoke.viewpagerindicator:library:1e8aad664137f68abdfee94889f6da3dc98be652a235176a403965a07a25de62',
|
||||
'com.pnikosis:materialish-progress:da089a90d1dab61e9b50038c09081019398f81190d12b0b567ce94b83ef8cf93',
|
||||
'net.i2p.android.ext:floatingactionbutton:09d43e2d4ac04a91bf7a37e1ec48a8d220204e3a55dca72cd36cd9fa27461ade',
|
||||
'org.sufficientlysecure:html-textview:c409b471618b675e3d2a8588f883c5fe8f3369d00df61ec84b29f29c648370ae',
|
||||
]
|
||||
}
|
||||
|
||||
|
Binary file not shown.
28
app/proguard-rules.pro
vendored
Normal file
28
app/proguard-rules.pro
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can edit the include path and order by changing the proguardFiles
|
||||
# directive in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
|
||||
# Workaround for Samsung Android 4.2 bug
|
||||
# https://code.google.com/p/android/issues/detail?id=78377
|
||||
# https://code.google.com/p/android/issues/detail?id=78377#c188
|
||||
# https://code.google.com/p/android/issues/detail?id=78377#c302
|
||||
-keepattributes **
|
||||
-keep class !android.support.v7.view.menu.**,** {*;}
|
||||
-dontpreverify
|
||||
-dontoptimize
|
||||
-dontshrink
|
||||
-dontwarn **
|
||||
-dontnote **
|
@ -16,6 +16,7 @@ import static android.support.test.espresso.matcher.ViewMatchers.hasSibling;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.isDescendantOfA;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withParent;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withText;
|
||||
import static org.hamcrest.Matchers.allOf;
|
||||
import static org.hamcrest.Matchers.not;
|
||||
@ -57,13 +58,13 @@ public class I2PActivityTest extends ActivityInstrumentationTestCase2<I2PActivit
|
||||
public void testMainSwipe() {
|
||||
onView(withId(R.id.router_onoff_button)).check(matches(isDisplayed()));
|
||||
|
||||
onView(allOf(withId(R.id.pager), hasSibling(withId(R.id.main_toolbar)))).perform(swipeLeft());
|
||||
onView(allOf(withId(R.id.pager), withParent(hasSibling(withId(R.id.main_toolbar))))).perform(swipeLeft());
|
||||
onView(withId(R.id.router_onoff_button)).check(matches(not(isDisplayed())));
|
||||
onView(withText(R.string.label_i2ptunnel_client)).check(matches(isDisplayed()));
|
||||
|
||||
onView(allOf(withId(R.id.pager), hasSibling(withId(R.id.main_toolbar)))).perform(swipeLeft());
|
||||
onView(allOf(withId(R.id.pager), withParent(hasSibling(withId(R.id.main_toolbar))))).perform(swipeLeft());
|
||||
// TODO: test tunnels ViewPager
|
||||
onView(allOf(withId(R.id.pager), hasSibling(withId(R.id.main_toolbar)))).perform(swipeLeft());
|
||||
onView(allOf(withId(R.id.pager), withParent(hasSibling(withId(R.id.main_toolbar))))).perform(swipeLeft());
|
||||
onView(withText(R.string.label_i2ptunnel_client)).check(matches(not(isDisplayed())));
|
||||
onView(withText(R.string.label_router)).check(matches(isDisplayed()));
|
||||
// TODO: test addressbook ViewPager
|
||||
|
@ -3,6 +3,9 @@
|
||||
package="net.i2p.android.router"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-sdk xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:overrideLibrary="android.support.v14.preference" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
@ -51,6 +54,7 @@
|
||||
<action android:name="android.intent.action.PICK" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.app.searchable"
|
||||
android:resource="@xml/searchable_addressbook" />
|
||||
|
140
app/src/main/java/android/support/v4/view/CustomViewPager.java
Normal file
140
app/src/main/java/android/support/v4/view/CustomViewPager.java
Normal file
@ -0,0 +1,140 @@
|
||||
package android.support.v4.view;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.support.v4.os.ParcelableCompat;
|
||||
import android.support.v4.os.ParcelableCompatCreatorCallbacks;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.util.Util;
|
||||
|
||||
public class CustomViewPager extends ViewPager {
|
||||
private boolean mEnabled;
|
||||
private int mFixedPage;
|
||||
private int mFixedPageString;
|
||||
|
||||
public CustomViewPager(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mEnabled = false;
|
||||
mFixedPage = -1;
|
||||
mFixedPageString = 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
return mEnabled && mFixedPage < 0 && super.onTouchEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(MotionEvent event) {
|
||||
return mEnabled && mFixedPage < 0 && super.onInterceptTouchEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentItem(int item) {
|
||||
if ((mEnabled && (mFixedPage < 0 || item == mFixedPage))
|
||||
|| (!mEnabled && item == 0))
|
||||
super.setCurrentItem(item);
|
||||
else if (!mEnabled)
|
||||
Toast.makeText(getContext(), Util.getRouterContext() == null ?
|
||||
R.string.router_not_running : R.string.router_shutting_down,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
else if (mFixedPageString > 0)
|
||||
Toast.makeText(getContext(), getContext().getString(mFixedPageString),
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
public void setPagingEnabled(boolean enabled) {
|
||||
mEnabled = enabled;
|
||||
updatePagingState();
|
||||
}
|
||||
|
||||
public void setFixedPage(int page, int res) {
|
||||
mFixedPage = page;
|
||||
mFixedPageString = res;
|
||||
updatePagingState();
|
||||
}
|
||||
|
||||
public void updatePagingState() {
|
||||
if (mEnabled) {
|
||||
if (mFixedPage >= 0 && getCurrentItem() != mFixedPage)
|
||||
setCurrentItem(mFixedPage);
|
||||
|
||||
} else if (getCurrentItem() != 0)
|
||||
setCurrentItem(0);
|
||||
}
|
||||
|
||||
public static class SavedState extends ViewPager.SavedState {
|
||||
boolean enabled;
|
||||
int fixedPage;
|
||||
int fixedPageString;
|
||||
|
||||
public SavedState(Parcelable superState) {
|
||||
super(superState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
super.writeToParcel(out, flags);
|
||||
out.writeInt(enabled ? 1 : 0);
|
||||
out.writeInt(fixedPage);
|
||||
out.writeInt(fixedPageString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "CustomViewPager.SavedState{"
|
||||
+ Integer.toHexString(System.identityHashCode(this))
|
||||
+ " enabled=" + enabled + " fixedPage=" + fixedPage + "}";
|
||||
}
|
||||
|
||||
public static final Parcelable.Creator<SavedState> CREATOR
|
||||
= ParcelableCompat.newCreator(new ParcelableCompatCreatorCallbacks<SavedState>() {
|
||||
@Override
|
||||
public SavedState createFromParcel(Parcel in, ClassLoader loader) {
|
||||
return new SavedState(in, loader);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SavedState[] newArray(int size) {
|
||||
return new SavedState[size];
|
||||
}
|
||||
});
|
||||
|
||||
SavedState(Parcel in, ClassLoader loader) {
|
||||
super(in, loader);
|
||||
enabled = in.readInt() != 0;
|
||||
fixedPage = in.readInt();
|
||||
fixedPageString = in.readInt();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Parcelable onSaveInstanceState() {
|
||||
Parcelable superState = super.onSaveInstanceState();
|
||||
SavedState ss = new SavedState(superState);
|
||||
ss.enabled = mEnabled;
|
||||
ss.fixedPage = mFixedPage;
|
||||
ss.fixedPageString = mFixedPageString;
|
||||
return ss;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRestoreInstanceState(Parcelable state) {
|
||||
if (!(state instanceof SavedState)) {
|
||||
super.onRestoreInstanceState(state);
|
||||
return;
|
||||
}
|
||||
|
||||
SavedState ss = (SavedState)state;
|
||||
super.onRestoreInstanceState(ss.getSuperState());
|
||||
|
||||
mEnabled = ss.enabled;
|
||||
mFixedPage = ss.fixedPage;
|
||||
mFixedPageString = ss.fixedPageString;
|
||||
}
|
||||
}
|
@ -1,162 +0,0 @@
|
||||
/*
|
||||
* The following code was written by Matthew Wiggins
|
||||
* and is released under the APACHE 2.0 license
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Slight modifications and bugfixes by Sponge <sponge@mail.i2p>
|
||||
* These modifications are released under the WTFPL (any version)
|
||||
*
|
||||
* We don't need negative numbers yet, and may never need to.
|
||||
*
|
||||
* XML Usage example:
|
||||
*
|
||||
* <com.hlidskialf.android.preference.SeekBarPreference android:key="duration"
|
||||
* android:title="Duration of something"
|
||||
* android:summary="How long something will last"
|
||||
* android:dialogMessage="Something duration"
|
||||
* android:defaultValue="5"
|
||||
* android:text=" minutes"
|
||||
* android:max="60"
|
||||
* />
|
||||
*
|
||||
*/
|
||||
package com.hlidskialf.android.preference;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.DialogPreference;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class SeekBarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener {
|
||||
|
||||
private static final String androidns = "http://schemas.android.com/apk/res/android";
|
||||
private SeekBar mSeekBar;
|
||||
private TextView mSplashText;
|
||||
private TextView mValueText;
|
||||
private Context mContext;
|
||||
private String mDialogMessage, mSuffix;
|
||||
private String mDefault = "0";
|
||||
private int mMax = 0;
|
||||
private int mValue = 0;
|
||||
private int mDirection = LinearLayout.HORIZONTAL;
|
||||
|
||||
|
||||
public SeekBarPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mContext = context;
|
||||
int dialogMessageR = attrs.getAttributeResourceValue(androidns, "dialogMessage", 0);
|
||||
mDialogMessage = (dialogMessageR == 0)
|
||||
? attrs.getAttributeValue(androidns, "dialogMessage")
|
||||
: context.getResources().getString(dialogMessageR);
|
||||
int textR = attrs.getAttributeResourceValue(androidns, "text", 0);
|
||||
mSuffix = (textR == 0)
|
||||
? attrs.getAttributeValue(androidns, "text")
|
||||
: context.getResources().getString(textR);
|
||||
mDefault = attrs.getAttributeValue(androidns, "defaultValue");
|
||||
mMax = Integer.parseInt(attrs.getAttributeValue(androidns, "max"));
|
||||
if (attrs.getAttributeValue(androidns, "direction") != null) {
|
||||
mDirection = Integer.parseInt(attrs.getAttributeValue(androidns, "direction"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected View onCreateDialogView() {
|
||||
LinearLayout.LayoutParams params;
|
||||
LinearLayout layout = new LinearLayout(mContext);
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(6, 6, 6, 10);
|
||||
|
||||
// Set the width so that it is as usable as possible.
|
||||
// We multiplymMax so that the smaller ranges will get a bigger area.
|
||||
|
||||
if (mDirection == LinearLayout.HORIZONTAL) {
|
||||
layout.setMinimumWidth(mMax*5);
|
||||
} else {
|
||||
layout.setMinimumHeight(mMax*5);
|
||||
}
|
||||
|
||||
mSplashText = new TextView(mContext);
|
||||
if (mDialogMessage != null) {
|
||||
mSplashText.setText(mDialogMessage);
|
||||
}
|
||||
layout.addView(mSplashText);
|
||||
|
||||
mValueText = new TextView(mContext);
|
||||
mValueText.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
mValueText.setTextSize(32);
|
||||
params = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
layout.addView(mValueText, params);
|
||||
|
||||
mSeekBar = new SeekBar(mContext);
|
||||
mSeekBar.setOnSeekBarChangeListener(this);
|
||||
// Move the bar away from the changing text, so you can see it, and
|
||||
// move it away from the edges to improve usability for the end-ranges.
|
||||
mSeekBar.setPadding(6, 30, 6, 6);
|
||||
layout.addView(mSeekBar, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
|
||||
|
||||
if (shouldPersist()) {
|
||||
mValue = Integer.parseInt(getPersistedString(mDefault));
|
||||
}
|
||||
mSeekBar.setMax(mMax);
|
||||
mSeekBar.setProgress(mValue);
|
||||
return layout;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindDialogView(View v) {
|
||||
super.onBindDialogView(v);
|
||||
mSeekBar.setMax(mMax);
|
||||
mSeekBar.setProgress(mValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSetInitialValue(boolean restore, Object defaultValue) {
|
||||
super.onSetInitialValue(restore, defaultValue);
|
||||
if (restore) {
|
||||
mValue = shouldPersist() ? Integer.parseInt(getPersistedString(mDefault)) : 0;
|
||||
} else {
|
||||
mValue = (Integer) defaultValue;
|
||||
}
|
||||
}
|
||||
|
||||
public void onProgressChanged(SeekBar seek, int value, boolean fromTouch) {
|
||||
String t = String.valueOf(value);
|
||||
mValueText.setText(mSuffix == null ? t : t.concat(mSuffix));
|
||||
if (shouldPersist()) {
|
||||
persistString(t);
|
||||
}
|
||||
callChangeListener(value);
|
||||
}
|
||||
|
||||
public void onStartTrackingTouch(SeekBar seek) {
|
||||
}
|
||||
|
||||
public void onStopTrackingTouch(SeekBar seek) {
|
||||
}
|
||||
|
||||
public void setMax(int max) {
|
||||
mMax = max;
|
||||
}
|
||||
|
||||
public int getMax() {
|
||||
return mMax;
|
||||
}
|
||||
|
||||
public void setProgress(int progress) {
|
||||
mValue = progress;
|
||||
if (mSeekBar != null) {
|
||||
mSeekBar.setProgress(progress);
|
||||
}
|
||||
}
|
||||
|
||||
public int getProgress() {
|
||||
return mValue;
|
||||
}
|
||||
}
|
@ -0,0 +1,161 @@
|
||||
package com.pavelsikun.seekbarpreference;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
|
||||
/**
|
||||
* Based on MaterialSeekBarController created by mrbimc on 30.09.15.
|
||||
*/
|
||||
public class MaterialSeekBarController implements SeekBar.OnSeekBarChangeListener {
|
||||
|
||||
private final String TAG = getClass().getName();
|
||||
|
||||
public static final int DEFAULT_CURRENT_VALUE = 50;
|
||||
private static final int DEFAULT_MAX_VALUE = 100;
|
||||
private static final String DEFAULT_MEASUREMENT_UNIT = "";
|
||||
|
||||
private int mMaxValue;
|
||||
private int mMaxDigits;
|
||||
private int mCurrentValue;
|
||||
private String mMeasurementUnit;
|
||||
|
||||
private SeekBar mSeekBar;
|
||||
private TextView mSeekBarValue;
|
||||
private TextView mMeasurementUnitView;
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private Persistable mPersistable;
|
||||
|
||||
public MaterialSeekBarController(Context context, AttributeSet attrs, Persistable persistable) {
|
||||
mContext = context;
|
||||
mPersistable = persistable;
|
||||
init(attrs, null);
|
||||
}
|
||||
|
||||
private void init(AttributeSet attrs, View view) {
|
||||
setValuesFromXml(attrs);
|
||||
if(view != null) onBindView(view);
|
||||
}
|
||||
private void setValuesFromXml(@Nullable AttributeSet attrs) {
|
||||
if (attrs == null) {
|
||||
mCurrentValue = DEFAULT_CURRENT_VALUE;
|
||||
mMaxValue = DEFAULT_MAX_VALUE;
|
||||
mMeasurementUnit = DEFAULT_MEASUREMENT_UNIT;
|
||||
} else {
|
||||
TypedArray a = mContext.obtainStyledAttributes(attrs, R.styleable.SeekBarPreference);
|
||||
try {
|
||||
mMaxValue = a.getInt(R.styleable.SeekBarPreference_msbp_maxValue, DEFAULT_MAX_VALUE);
|
||||
mCurrentValue = a.getInt(R.styleable.SeekBarPreference_msbp_defaultValue, DEFAULT_CURRENT_VALUE);
|
||||
|
||||
if(mCurrentValue > mMaxValue) mCurrentValue = mMaxValue / 2;
|
||||
mMeasurementUnit = a.getString(R.styleable.SeekBarPreference_msbp_measurementUnit);
|
||||
if (mMeasurementUnit == null)
|
||||
mMeasurementUnit = DEFAULT_MEASUREMENT_UNIT;
|
||||
} finally {
|
||||
a.recycle();
|
||||
}
|
||||
}
|
||||
mMaxDigits = (int) Math.log10(mMaxValue) + 1;
|
||||
}
|
||||
|
||||
public void onBindView(@NonNull View view) {
|
||||
|
||||
mSeekBar = (SeekBar) view.findViewById(R.id.seekbar);
|
||||
mSeekBar.setMax(mMaxValue);
|
||||
mSeekBar.setOnSeekBarChangeListener(this);
|
||||
|
||||
mSeekBarValue = (TextView) view.findViewById(R.id.seekbar_value);
|
||||
setPaddedValue(mCurrentValue);
|
||||
|
||||
mMeasurementUnitView = (TextView) view.findViewById(R.id.measurement_unit);
|
||||
mMeasurementUnitView.setText(mMeasurementUnit);
|
||||
|
||||
mSeekBar.setProgress(mCurrentValue);
|
||||
|
||||
if (!view.isEnabled()) {
|
||||
mSeekBar.setEnabled(false);
|
||||
mSeekBarValue.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
protected void onSetInitialValue(boolean restoreValue, @NonNull Object defaultValue) {
|
||||
mCurrentValue = mMaxValue / 2;
|
||||
try {
|
||||
mCurrentValue = (Integer) defaultValue;
|
||||
} catch (Exception ex) {
|
||||
Log.e(TAG, "Invalid default value: " + defaultValue.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
if (mSeekBar != null) mSeekBar.setEnabled(enabled);
|
||||
if (mSeekBarValue != null) mSeekBarValue.setEnabled(enabled);
|
||||
}
|
||||
|
||||
public void onDependencyChanged(Preference dependency, boolean disableDependent) {
|
||||
if (mSeekBar != null) mSeekBar.setEnabled(!disableDependent);
|
||||
if (mSeekBarValue != null) mSeekBarValue.setEnabled(!disableDependent);
|
||||
}
|
||||
|
||||
//SeekBarListener:
|
||||
@Override
|
||||
public void onProgressChanged(@NonNull SeekBar seekBar, int progress, boolean fromUser) {
|
||||
mCurrentValue = progress;
|
||||
setPaddedValue(progress);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopTrackingTouch(@NonNull SeekBar seekBar) {
|
||||
setCurrentValue(mCurrentValue);
|
||||
}
|
||||
|
||||
private void setPaddedValue(int value) {
|
||||
mSeekBarValue.setText(String.format("%0" + mMaxDigits +"d", value));
|
||||
}
|
||||
|
||||
|
||||
//public methods for manipulating this widget from java:
|
||||
public void setCurrentValue(int value) {
|
||||
mCurrentValue = value;
|
||||
if (mPersistable != null) mPersistable.onPersist(value);
|
||||
}
|
||||
|
||||
public int getCurrentValue() {
|
||||
return mCurrentValue;
|
||||
}
|
||||
|
||||
|
||||
public void setMaxValue(int maxValue) {
|
||||
mMaxValue = maxValue;
|
||||
if (mSeekBar != null) mSeekBar.setMax(mMaxValue);
|
||||
}
|
||||
|
||||
public int getMaxValue() {
|
||||
return mMaxValue;
|
||||
}
|
||||
|
||||
|
||||
public void setMeasurementUnit(String measurementUnit) {
|
||||
mMeasurementUnit = measurementUnit;
|
||||
if (mMeasurementUnitView != null) mMeasurementUnitView.setText(mMeasurementUnit);
|
||||
}
|
||||
|
||||
public String getMeasurementUnit() {
|
||||
return mMeasurementUnit;
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.pavelsikun.seekbarpreference;
|
||||
|
||||
/**
|
||||
* Created by mrbimc on 04.10.15.
|
||||
*/
|
||||
public interface Persistable {
|
||||
void onPersist(int value);
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
package com.pavelsikun.seekbarpreference;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceViewHolder;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
|
||||
public class SeekBarPreference extends Preference implements Persistable {
|
||||
|
||||
private MaterialSeekBarController mController;
|
||||
|
||||
public SeekBarPreference(Context context) {
|
||||
super(context);
|
||||
init(null);
|
||||
}
|
||||
|
||||
public SeekBarPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
public SeekBarPreference(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public SeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
init(attrs);
|
||||
}
|
||||
|
||||
private void init(AttributeSet attrs) {
|
||||
setLayoutResource(R.layout.seekbar_preference);
|
||||
mController = new MaterialSeekBarController(getContext(), attrs, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull PreferenceViewHolder viewHolder) {
|
||||
super.onBindViewHolder(viewHolder);
|
||||
mController.onBindView(viewHolder.itemView);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Object onGetDefaultValue(@NonNull TypedArray ta, int index) {
|
||||
if(mController != null) return ta.getInt(index, mController.getCurrentValue());
|
||||
else return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSetInitialValue(boolean restoreValue, @NonNull Object defaultValue) {
|
||||
int average = mController.getMaxValue() / 2;
|
||||
if(restoreValue) mController.setCurrentValue(getPersistedInt(average));
|
||||
else mController.onSetInitialValue(restoreValue, defaultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnabled(boolean enabled) {
|
||||
super.setEnabled(enabled);
|
||||
mController.setEnabled(enabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDependencyChanged(Preference dependency, boolean disableDependent) {
|
||||
super.onDependencyChanged(dependency, disableDependent);
|
||||
mController.onDependencyChanged(dependency, disableDependent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPersist(int value) {
|
||||
persistInt(value);
|
||||
notifyChanged();
|
||||
}
|
||||
|
||||
public String getMeasurementUnit() {
|
||||
return mController.getMeasurementUnit();
|
||||
}
|
||||
|
||||
public void setMeasurementUnit(String measurementUnit) {
|
||||
mController.setMeasurementUnit(measurementUnit);
|
||||
}
|
||||
|
||||
public int getMaxValue() {
|
||||
return mController.getMaxValue();
|
||||
}
|
||||
|
||||
public void setMaxValue(int maxValue) {
|
||||
mController.setMaxValue(maxValue);
|
||||
}
|
||||
|
||||
public int getCurrentValue() {
|
||||
return mController.getCurrentValue();
|
||||
}
|
||||
|
||||
public void setCurrentValue(int value) {
|
||||
mController.setCurrentValue(value);
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ import net.i2p.android.router.service.State;
|
||||
import net.i2p.android.router.util.Connectivity;
|
||||
import net.i2p.android.router.util.Util;
|
||||
import net.i2p.android.util.MemoryFragmentPagerAdapter;
|
||||
import net.i2p.android.widget.CustomViewPager;
|
||||
import android.support.v4.view.CustomViewPager;
|
||||
import net.i2p.android.widget.SlidingTabLayout;
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
@ -147,10 +147,16 @@ public class I2PActivity extends I2PActivityBase implements
|
||||
if (action == null)
|
||||
return;
|
||||
|
||||
if (action.equals("net.i2p.android.router.START_I2P")) {
|
||||
if (mViewPager.getCurrentItem() != 0)
|
||||
mViewPager.setCurrentItem(0, false);
|
||||
autoStart();
|
||||
switch (action) {
|
||||
case "net.i2p.android.router.START_I2P":
|
||||
if (mViewPager.getCurrentItem() != 0)
|
||||
mViewPager.setCurrentItem(0, false);
|
||||
autoStart();
|
||||
break;
|
||||
|
||||
case Intent.ACTION_PICK:
|
||||
mViewPager.setFixedPage(2, R.string.select_an_address);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,19 @@
|
||||
package net.i2p.android.i2ptunnel;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.LayoutInflater;
|
||||
@ -105,15 +109,37 @@ public class TunnelDetailFragment extends Fragment {
|
||||
if (mTunnel != null) {
|
||||
TextView name = (TextView) v.findViewById(R.id.tunnel_name);
|
||||
name.setText(mTunnel.getName());
|
||||
ViewCompat.setTransitionName(name,
|
||||
getActivity().getString(R.string.TUNNEL_NAME) + mTunnel.getId());
|
||||
|
||||
TextView type = (TextView) v.findViewById(R.id.tunnel_type);
|
||||
type.setText(mTunnel.getType());
|
||||
|
||||
TextView description = (TextView) v.findViewById(R.id.tunnel_description);
|
||||
description.setText(mTunnel.getDescription());
|
||||
ViewCompat.setTransitionName(description,
|
||||
getActivity().getString(R.string.TUNNEL_DESCRIPTION) + mTunnel.getId());
|
||||
|
||||
TextView details = (TextView) v.findViewById(R.id.tunnel_details);
|
||||
details.setText(mTunnel.getDetails());
|
||||
if (!mTunnel.getDetails().isEmpty()) {
|
||||
v.findViewById(R.id.tunnel_details_container).setVisibility(View.VISIBLE);
|
||||
TextView details = (TextView) v.findViewById(R.id.tunnel_details);
|
||||
View copyDetails = v.findViewById(R.id.tunnel_details_copy);
|
||||
details.setText(mTunnel.getDetails());
|
||||
if (!mTunnel.isClient()) {
|
||||
copyDetails.setVisibility(View.VISIBLE);
|
||||
copyDetails.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
|
||||
copyToClipbardLegacy();
|
||||
else
|
||||
copyToClipboardHoneycomb();
|
||||
|
||||
Toast.makeText(getActivity(), R.string.address_copied_to_clipboard, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
View accessIfacePortItem = v.findViewById(R.id.tunnel_access_interface_port_item);
|
||||
TextView accessIfacePort = (TextView) v.findViewById(R.id.tunnel_access_interface_port);
|
||||
@ -182,7 +208,7 @@ public class TunnelDetailFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
})
|
||||
.setNegativeButton(net.i2p.android.lib.client.R.string.no, new DialogInterface.OnClickListener() {
|
||||
.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialogInterface, int i) {
|
||||
}
|
||||
});
|
||||
@ -274,4 +300,17 @@ public class TunnelDetailFragment extends Fragment {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void copyToClipbardLegacy() {
|
||||
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
clipboard.setText(mTunnel.getDetails());
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||
private void copyToClipboardHoneycomb() {
|
||||
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
android.content.ClipData clip = android.content.ClipData.newPlainText(
|
||||
mTunnel.getName(), mTunnel.getDetails());
|
||||
clipboard.setPrimaryClip(clip);
|
||||
}
|
||||
}
|
||||
|
@ -252,7 +252,7 @@ public class TunnelEntry {
|
||||
if (isClient())
|
||||
details = getClientDestination();
|
||||
else
|
||||
details = "";
|
||||
details = getDestHashBase32();
|
||||
return details;
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package net.i2p.android.i2ptunnel;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.support.v4.util.Pair;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@ -64,8 +65,13 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
}
|
||||
|
||||
public void addTunnel(TunnelEntry tunnel) {
|
||||
boolean wasEmpty = mTunnels.isEmpty();
|
||||
mTunnels.add(tunnel);
|
||||
notifyItemInserted(mTunnels.size()-1);
|
||||
if (wasEmpty) {
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
notifyItemInserted(mTunnels.size() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
public TunnelEntry getTunnel(int position) {
|
||||
@ -143,6 +149,11 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
tvh.description.setText(tunnel.getDescription());
|
||||
tvh.interfacePort.setText(tunnel.getTunnelLink(false));
|
||||
|
||||
ViewCompat.setTransitionName(tvh.name,
|
||||
mCtx.getString(R.string.TUNNEL_NAME) + tunnel.getId());
|
||||
ViewCompat.setTransitionName(tvh.description,
|
||||
mCtx.getString(R.string.TUNNEL_DESCRIPTION) + tunnel.getId());
|
||||
|
||||
tvh.itemView.setSelected(mTwoPane.isTwoPane() && position == mActivatedPosition);
|
||||
tvh.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
@ -151,9 +162,14 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
|
||||
mActivatedPosition = position;
|
||||
notifyItemChanged(oldPosition);
|
||||
notifyItemChanged(position);
|
||||
mListener.onTunnelSelected(tunnel.getId(),
|
||||
Pair.create((View)tvh.name, mCtx.getString(R.string.TUNNEL_NAME)),
|
||||
Pair.create((View)tvh.description, mCtx.getString(R.string.TUNNEL_DESCRIPTION)));
|
||||
Pair<View, String> namePair = Pair.create(
|
||||
(View)tvh.name,
|
||||
ViewCompat.getTransitionName(tvh.name));
|
||||
Pair<View, String> descPair = Pair.create(
|
||||
(View)tvh.description,
|
||||
ViewCompat.getTransitionName(tvh.description));
|
||||
Pair<View, String>[] pairs = new Pair[]{ namePair, descPair};
|
||||
mListener.onTunnelSelected(tunnel.getId(), pairs);
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
@ -53,8 +53,7 @@ public class TunnelListFragment extends Fragment implements
|
||||
|
||||
// Container Activity must implement this interface
|
||||
public interface OnTunnelSelectedListener {
|
||||
void onTunnelSelected(int tunnelId, Pair<View, String> tunnelName,
|
||||
Pair<View, String> tunnelDescription);
|
||||
void onTunnelSelected(int tunnelId, Pair<View, String>[] pairs);
|
||||
}
|
||||
|
||||
public static TunnelListFragment newInstance(boolean showClientTunnels) {
|
||||
|
@ -239,8 +239,7 @@ public class TunnelsContainer extends Fragment implements
|
||||
|
||||
// TunnelListFragment.OnTunnelSelectedListener
|
||||
|
||||
public final void onTunnelSelected(int tunnelId, Pair<View, String> tunnelName,
|
||||
Pair<View, String> tunnelDescription) {
|
||||
public final void onTunnelSelected(int tunnelId, Pair<View, String>[] pairs) {
|
||||
if (mTwoPane) {
|
||||
// In two-pane mode, show the detail view in this activity by
|
||||
// adding or replacing the detail fragment using a
|
||||
@ -255,7 +254,7 @@ public class TunnelsContainer extends Fragment implements
|
||||
detailIntent.putExtra(TunnelDetailFragment.TUNNEL_ID, tunnelId);
|
||||
|
||||
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
|
||||
getActivity(), tunnelName, tunnelDescription);
|
||||
getActivity(), pairs);
|
||||
ActivityCompat.startActivity(getActivity(), detailIntent, options.toBundle());
|
||||
}
|
||||
}
|
||||
|
@ -3,11 +3,11 @@ package net.i2p.android.i2ptunnel.preferences;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import net.i2p.android.i2ptunnel.util.TunnelLogic;
|
||||
import net.i2p.android.i2ptunnel.util.TunnelUtil;
|
||||
|
@ -2,27 +2,25 @@ package net.i2p.android.i2ptunnel.preferences;
|
||||
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v4.preference.PreferenceFragment;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceGroup;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.android.i2ptunnel.util.TunnelUtil;
|
||||
import net.i2p.android.preferences.util.CustomPreferenceFragment;
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.i2ptunnel.TunnelControllerGroup;
|
||||
import net.i2p.i2ptunnel.ui.TunnelConfig;
|
||||
|
||||
public abstract class BaseTunnelPreferenceFragment extends PreferenceFragment {
|
||||
public abstract class BaseTunnelPreferenceFragment extends CustomPreferenceFragment {
|
||||
protected static final String ARG_TUNNEL_ID = "tunnelId";
|
||||
|
||||
protected TunnelControllerGroup mGroup;
|
||||
protected int mTunnelId;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
String error;
|
||||
try {
|
||||
mGroup = TunnelControllerGroup.getInstance();
|
||||
|
@ -4,13 +4,13 @@ import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
import android.support.v7.preference.ListPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import net.i2p.android.i2ptunnel.util.TunnelLogic;
|
||||
import net.i2p.android.i2ptunnel.util.TunnelUtil;
|
||||
@ -134,10 +134,15 @@ public class GeneralTunnelPreferenceFragment extends BaseTunnelPreferenceFragmen
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
Set<String> interfaceSet = Addresses.getAllAddresses();
|
||||
String[] interfaces = interfaceSet.toArray(new String[interfaceSet.size()]);
|
||||
reachableBy.setEntries(interfaces);
|
||||
reachableBy.setEntryValues(interfaces);
|
||||
reachableBy.setEnabled(true);
|
||||
final String[] interfaces = interfaceSet.toArray(new String[interfaceSet.size()]);
|
||||
getActivity().runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
reachableBy.setEntries(interfaces);
|
||||
reachableBy.setEntryValues(interfaces);
|
||||
reachableBy.setEnabled(true);
|
||||
}
|
||||
});
|
||||
return null;
|
||||
}
|
||||
}.execute();
|
||||
|
@ -1,20 +1,19 @@
|
||||
package net.i2p.android.preferences;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.preference.PreferenceFragment;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.SettingsActivity;
|
||||
|
||||
public class AdvancedPreferenceFragment extends PreferenceFragment {
|
||||
public class AdvancedPreferenceFragment extends PreferenceFragmentCompat {
|
||||
private static final String PREFERENCE_CATEGORY_TRANSPORTS = "preference_category_transports";
|
||||
private static final String PREFERENCE_CATEGORY_EXPL_TUNNELS = "preference_category_expl_tunnels";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
addPreferencesFromResource(R.xml.settings_advanced);
|
||||
|
||||
findPreference(PREFERENCE_CATEGORY_TRANSPORTS)
|
||||
|
@ -7,8 +7,7 @@ import net.i2p.android.router.SettingsActivity;
|
||||
|
||||
public class AppearancePreferenceFragment extends I2PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
addPreferencesFromResource(R.xml.settings_appearance);
|
||||
}
|
||||
|
||||
|
@ -7,8 +7,7 @@ import net.i2p.android.router.SettingsActivity;
|
||||
|
||||
public class ExploratoryPoolPreferenceFragment extends I2PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
addPreferencesFromResource(R.xml.settings_expl_tunnels);
|
||||
}
|
||||
|
||||
|
@ -2,10 +2,10 @@ package net.i2p.android.preferences;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
import android.support.v7.preference.PreferenceCategory;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.SettingsActivity;
|
||||
@ -24,8 +24,7 @@ public class GraphsPreferenceFragment extends I2PreferenceFragment {
|
||||
public static final String GRAPH_PREFERENCES_SEEN = "graphPreferencesSeen";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
addPreferencesFromResource(R.xml.settings_graphs);
|
||||
setupGraphSettings();
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
package net.i2p.android.preferences;
|
||||
|
||||
import android.support.v4.preference.PreferenceFragment;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.i2p.I2PAppContext;
|
||||
import net.i2p.android.preferences.util.CustomPreferenceFragment;
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.util.Util;
|
||||
import net.i2p.router.RouterContext;
|
||||
@ -15,7 +15,7 @@ import java.util.Set;
|
||||
/**
|
||||
* A PreferenceFragment that handles saving router settings.
|
||||
*/
|
||||
public class I2PreferenceFragment extends PreferenceFragment {
|
||||
public abstract class I2PreferenceFragment extends CustomPreferenceFragment {
|
||||
@Override
|
||||
public void onPause() {
|
||||
List<Properties> lProps = Util.getPropertiesFromPreferences(getActivity());
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.i2p.android.preferences;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.SettingsActivity;
|
||||
@ -11,8 +11,7 @@ import net.i2p.util.LogManager;
|
||||
|
||||
public class LoggingPreferenceFragment extends I2PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
addPreferencesFromResource(R.xml.settings_logging);
|
||||
setupLoggingSettings();
|
||||
}
|
||||
|
@ -7,8 +7,7 @@ import net.i2p.android.router.SettingsActivity;
|
||||
|
||||
public class NetworkPreferenceFragment extends I2PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
addPreferencesFromResource(R.xml.settings_net);
|
||||
}
|
||||
|
||||
|
@ -3,22 +3,21 @@ package net.i2p.android.preferences;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.SettingsActivity;
|
||||
import net.i2p.android.router.util.PortPreference;
|
||||
import net.i2p.android.preferences.util.PortPreference;
|
||||
import net.i2p.android.router.util.Util;
|
||||
import net.i2p.router.RouterContext;
|
||||
|
||||
public class TransportsPreferenceFragment extends I2PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
// Load any properties that the router might have changed on us.
|
||||
loadProperties();
|
||||
addPreferencesFromResource(R.xml.settings_transports);
|
||||
|
@ -1,9 +1,8 @@
|
||||
package net.i2p.android.router.util;
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.text.InputType;
|
||||
import android.support.v7.preference.EditTextPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
@ -26,7 +25,6 @@ public class ConnectionLimitPreference extends EditTextPreference {
|
||||
}
|
||||
|
||||
void init(Context context, AttributeSet attrs) {
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
TypedArray attr = context.obtainStyledAttributes(attrs, R.styleable.ConnectionLimitPreference, 0, 0);
|
||||
mValueInTitle = attr.getBoolean(R.styleable.ConnectionLimitPreference_clp_valueInTitle, false);
|
||||
attr.recycle();
|
@ -0,0 +1,24 @@
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
|
||||
import android.text.InputType;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
public class ConnectionLimitPreferenceDialog extends EditTextPreferenceDialogFragmentCompat {
|
||||
public static ConnectionLimitPreferenceDialog newInstance(String key) {
|
||||
final ConnectionLimitPreferenceDialog fragment = new ConnectionLimitPreferenceDialog();
|
||||
final Bundle b = new Bundle(1);
|
||||
b.putString(ARG_KEY, key);
|
||||
fragment.setArguments(b);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindDialogView(View view) {
|
||||
super.onBindDialogView(view);
|
||||
((EditText)view.findViewById(android.R.id.edit)).setInputType(
|
||||
InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||
|
||||
/**
|
||||
* Handles custom Preferences.
|
||||
*/
|
||||
public abstract class CustomPreferenceFragment extends PreferenceFragmentCompat {
|
||||
private static final String DIALOG_FRAGMENT_TAG =
|
||||
"android.support.v7.preference.PreferenceFragment.DIALOG";
|
||||
|
||||
@Override
|
||||
public void onDisplayPreferenceDialog(Preference preference) {
|
||||
// check if dialog is already showing
|
||||
if (getFragmentManager().findFragmentByTag(DIALOG_FRAGMENT_TAG) != null) {
|
||||
return;
|
||||
}
|
||||
|
||||
DialogFragment f = null;
|
||||
if (preference instanceof ConnectionLimitPreference) {
|
||||
f = ConnectionLimitPreferenceDialog.newInstance(preference.getKey());
|
||||
} else if (preference instanceof IntEditTextPreference) {
|
||||
f = IntEditTextPreferenceDialog.newInstance(preference.getKey());
|
||||
} else if (preference instanceof PortPreference) {
|
||||
f = PortPreferenceDialog.newInstance(preference.getKey());
|
||||
} else {
|
||||
super.onDisplayPreferenceDialog(preference);
|
||||
}
|
||||
if (f != null) {
|
||||
f.setTargetFragment(this, 0);
|
||||
f.show(getFragmentManager(), DIALOG_FRAGMENT_TAG);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,25 +1,21 @@
|
||||
package net.i2p.android.router.util;
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.text.InputType;
|
||||
import android.support.v7.preference.EditTextPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
public class IntEditTextPreference extends EditTextPreference {
|
||||
|
||||
public IntEditTextPreference(Context context) {
|
||||
super(context);
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
}
|
||||
|
||||
public IntEditTextPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
}
|
||||
|
||||
public IntEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
}
|
||||
|
||||
@Override
|
@ -0,0 +1,24 @@
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
|
||||
import android.text.InputType;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
public class IntEditTextPreferenceDialog extends EditTextPreferenceDialogFragmentCompat {
|
||||
public static IntEditTextPreferenceDialog newInstance(String key) {
|
||||
final IntEditTextPreferenceDialog fragment = new IntEditTextPreferenceDialog();
|
||||
final Bundle b = new Bundle(1);
|
||||
b.putString(ARG_KEY, key);
|
||||
fragment.setArguments(b);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindDialogView(View view) {
|
||||
super.onBindDialogView(view);
|
||||
((EditText)view.findViewById(android.R.id.edit)).setInputType(
|
||||
InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED);
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.i2p.android.router.util;
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.ListPreference;
|
||||
import android.support.v7.preference.ListPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
public class IntListPreference extends ListPreference {
|
@ -1,8 +1,7 @@
|
||||
package net.i2p.android.router.util;
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.text.InputType;
|
||||
import android.support.v7.preference.EditTextPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
@ -10,17 +9,14 @@ import net.i2p.android.router.R;
|
||||
public class PortPreference extends EditTextPreference {
|
||||
public PortPreference(Context context) {
|
||||
super(context);
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
}
|
||||
|
||||
public PortPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
}
|
||||
|
||||
public PortPreference(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
}
|
||||
|
||||
@Override
|
@ -0,0 +1,23 @@
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.preference.EditTextPreferenceDialogFragmentCompat;
|
||||
import android.text.InputType;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
public class PortPreferenceDialog extends EditTextPreferenceDialogFragmentCompat {
|
||||
public static PortPreferenceDialog newInstance(String key) {
|
||||
final PortPreferenceDialog fragment = new PortPreferenceDialog();
|
||||
final Bundle b = new Bundle(1);
|
||||
b.putString(ARG_KEY, key);
|
||||
fragment.setArguments(b);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onBindDialogView(View view) {
|
||||
super.onBindDialogView(view);
|
||||
((EditText)view.findViewById(android.R.id.edit)).setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.i2p.android.router.util;
|
||||
package net.i2p.android.preferences.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.preference.EditTextPreference;
|
||||
import android.support.v7.preference.EditTextPreference;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
public class SummaryEditTextPreference extends EditTextPreference {
|
@ -93,14 +93,18 @@ public class ConsoleContainer extends Fragment {
|
||||
}
|
||||
|
||||
private void setMenuVisibility() {
|
||||
boolean advanced = PreferenceManager.getDefaultSharedPreferences(getActivity()).getBoolean(
|
||||
"i2pandroid.main.showStats", false);
|
||||
boolean routerRunning = Util.getRouterContext() != null;
|
||||
|
||||
mConsoleMenu.findViewById(R.id.action_logs).setVisibility(routerRunning ? View.VISIBLE : View.GONE);
|
||||
mConsoleMenu.findViewById(R.id.action_graphs).setVisibility(routerRunning ? View.VISIBLE : View.GONE);
|
||||
mConsoleMenu.findViewById(R.id.action_peers).setVisibility(advanced && routerRunning ? View.VISIBLE : View.GONE);
|
||||
mConsoleMenu.findViewById(R.id.action_netdb).setVisibility(advanced && routerRunning ? View.VISIBLE : View.GONE);
|
||||
|
||||
if (getActivity() != null) {
|
||||
boolean advanced = PreferenceManager.getDefaultSharedPreferences(getActivity())
|
||||
.getBoolean("i2pandroid.main.showStats", false);
|
||||
mConsoleMenu.findViewById(R.id.action_peers).setVisibility(
|
||||
advanced && routerRunning ? View.VISIBLE : View.GONE);
|
||||
mConsoleMenu.findViewById(R.id.action_netdb).setVisibility(
|
||||
advanced && routerRunning ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -428,9 +428,9 @@ public class MainFragment extends I2PFragmentBase {
|
||||
double outData = ctx.bandwidthLimiter().getTotalAllocatedOutboundBytes();
|
||||
|
||||
((TextView) getActivity().findViewById(R.id.console_download_stats)).setText(
|
||||
Util.formatSize(inBw) + "Bps / " + Util.formatSize(inData) + "B");
|
||||
Util.formatSpeed(inBw) + "Bps / " + Util.formatSize(inData) + "B");
|
||||
((TextView) getActivity().findViewById(R.id.console_upload_stats)).setText(
|
||||
Util.formatSize(outBw) + "Bps / " + Util.formatSize(outData) + "B");
|
||||
Util.formatSpeed(outBw) + "Bps / " + Util.formatSize(outData) + "B");
|
||||
|
||||
getActivity().findViewById(R.id.console_usage_stats).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
|
@ -3,12 +3,12 @@ package net.i2p.android.router;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.Preference;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.content.LocalBroadcastManager;
|
||||
import android.support.v4.preference.PreferenceFragment;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
|
||||
import net.i2p.android.I2PActivity;
|
||||
@ -84,10 +84,11 @@ public class SettingsActivity extends AppCompatActivity implements
|
||||
}
|
||||
}
|
||||
|
||||
public static class SettingsFragment extends PreferenceFragment {
|
||||
public static class SettingsFragment extends PreferenceFragmentCompat {
|
||||
@Override
|
||||
public void onCreate(Bundle paramBundle) {
|
||||
super.onCreate(paramBundle);
|
||||
public void onCreatePreferences(Bundle paramBundle, String s) {
|
||||
migrateOldSettings();
|
||||
|
||||
addPreferencesFromResource(R.xml.settings);
|
||||
|
||||
this.findPreference(PREFERENCE_CATEGORY_NETWORK)
|
||||
@ -104,6 +105,29 @@ public class SettingsActivity extends AppCompatActivity implements
|
||||
.setOnPreferenceClickListener(new CategoryClickListener(PREFERENCE_CATEGORY_ADVANCED));
|
||||
}
|
||||
|
||||
private void migrateOldSettings() {
|
||||
SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
|
||||
try {
|
||||
prefs.getInt("i2np.bandwidth.inboundKBytesPerSecond", 0);
|
||||
} catch (ClassCastException e) {
|
||||
// Migrate pre-0.9.25 settings
|
||||
SharedPreferences.Editor editor = prefs.edit();
|
||||
editor.remove("i2np.bandwidth.inboundKBytesPerSecond");
|
||||
editor.putInt("i2np.bandwidth.inboundKBytesPerSecond", Integer.parseInt(
|
||||
prefs.getString("i2np.bandwidth.inboundKBytesPerSecond", "100")));
|
||||
editor.remove("i2np.bandwidth.outboundKBytesPerSecond");
|
||||
editor.putInt("i2np.bandwidth.outboundKBytesPerSecond", Integer.parseInt(
|
||||
prefs.getString("i2np.bandwidth.outboundKBytesPerSecond", "100")));
|
||||
editor.remove("i2np.ntcp.maxConnections");
|
||||
editor.putInt("i2np.ntcp.maxConnections", Integer.parseInt(
|
||||
prefs.getString("i2np.ntcp.maxConnections", "32")));
|
||||
editor.remove("i2np.udp.maxConnections");
|
||||
editor.putInt("i2np.udp.maxConnections", Integer.parseInt(
|
||||
prefs.getString("i2np.udp.maxConnections", "32")));
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
@ -144,11 +144,14 @@ public class AddressbookContainer extends Fragment
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||
inflater.inflate(R.menu.container_addressbook_actions, menu);
|
||||
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search_addressbook);
|
||||
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
|
||||
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
|
||||
searchView.setOnQueryTextListener(this);
|
||||
Activity activity = getActivity();
|
||||
if (activity != null) {
|
||||
SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE);
|
||||
MenuItem searchItem = menu.findItem(R.id.action_search_addressbook);
|
||||
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
|
||||
searchView.setSearchableInfo(searchManager.getSearchableInfo(activity.getComponentName()));
|
||||
searchView.setOnQueryTextListener(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -2,6 +2,10 @@ package net.i2p.android.router.dialog;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
@ -14,6 +18,8 @@ import android.widget.TextView;
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.util.I2Patterns;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FirstStartDialog extends DialogFragment {
|
||||
@NonNull
|
||||
@Override
|
||||
@ -23,8 +29,20 @@ public class FirstStartDialog extends DialogFragment {
|
||||
|
||||
TextView tv = (TextView)view.findViewById(R.id.url_faq);
|
||||
Linkify.addLinks(tv, I2Patterns.I2P_WEB_URL, "http://");
|
||||
tv = (TextView)view.findViewById(R.id.url_irc_i2p);
|
||||
Linkify.addLinks(tv, I2Patterns.IRC_URL, "irc://");
|
||||
|
||||
// Find all installed browsers that listen for "irc://"
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse("irc://127.0.0.1:6668/i2p"));
|
||||
final PackageManager pm = getActivity().getPackageManager();
|
||||
List<ResolveInfo> installedIrcClients = pm.queryIntentActivities(intent, 0);
|
||||
|
||||
// Only linkify "irc://" if we have an app that can handle them.
|
||||
// Otherwise, the app crashes with an un-catchable ActivityNotFoundException
|
||||
// if the user clicks one of them.
|
||||
if (installedIrcClients.size() > 0) {
|
||||
tv = (TextView) view.findViewById(R.id.url_irc_i2p);
|
||||
Linkify.addLinks(tv, I2Patterns.IRC_URL, "irc://");
|
||||
}
|
||||
|
||||
AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
|
||||
b.setTitle(R.string.first_start_title)
|
||||
|
@ -26,7 +26,6 @@ import net.i2p.router.RouterContext;
|
||||
import net.i2p.router.RouterLaunch;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
/**
|
||||
* Runs the router
|
||||
@ -260,26 +259,16 @@ public class RouterService extends Service {
|
||||
int inCl = ctx.tunnelManager().getInboundClientTunnelCount();
|
||||
int outCl = ctx.tunnelManager().getOutboundClientTunnelCount();
|
||||
String uptime = DataHelper.formatDuration(ctx.router().getUptime());
|
||||
double inBW = ctx.bandwidthLimiter().getReceiveBps() / 1024;
|
||||
double outBW = ctx.bandwidthLimiter().getSendBps() / 1024;
|
||||
// control total width
|
||||
DecimalFormat fmt;
|
||||
if(inBW >= 1000 || outBW >= 1000) {
|
||||
fmt = new DecimalFormat("#0");
|
||||
} else if(inBW >= 100 || outBW >= 100) {
|
||||
fmt = new DecimalFormat("#0.0");
|
||||
} else {
|
||||
fmt = new DecimalFormat("#0.00");
|
||||
}
|
||||
double inBW = ctx.bandwidthLimiter().getReceiveBps();
|
||||
double outBW = ctx.bandwidthLimiter().getSendBps();
|
||||
|
||||
String text =
|
||||
getResources().getString(R.string.notification_status_text,
|
||||
Util.formatSize(inBW), Util.formatSize(outBW));
|
||||
Util.formatSpeed(inBW), Util.formatSpeed(outBW));
|
||||
|
||||
// TODO change string resource after 0.9.20 to use Util.formatSize()
|
||||
String bigText =
|
||||
getResources().getString(R.string.notification_status_bw,
|
||||
fmt.format(inBW), fmt.format(outBW)) + '\n'
|
||||
Util.formatSpeed(inBW), Util.formatSpeed(outBW)) + '\n'
|
||||
+ getResources().getString(R.string.notification_status_peers,
|
||||
active, known) + '\n'
|
||||
+ getResources().getString(R.string.notification_status_expl,
|
||||
|
@ -40,6 +40,7 @@ class StatusBar {
|
||||
mNotifyBuilder = new NotificationCompat.Builder(ctx)
|
||||
.setContentText(text)
|
||||
.setSmallIcon(icon)
|
||||
.setColor(mCtx.getResources().getColor(R.color.primary_light))
|
||||
.setOngoing(true)
|
||||
.setOnlyAlertOnce(true);
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.i2p.android.router.util;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
@ -18,7 +19,7 @@ public class Notifications {
|
||||
mNotificationManager = (NotificationManager) ctx.getSystemService(
|
||||
Context.NOTIFICATION_SERVICE);
|
||||
}
|
||||
|
||||
|
||||
public void notify(String title, String text) {
|
||||
notify(title, text, null);
|
||||
}
|
||||
@ -26,10 +27,11 @@ public class Notifications {
|
||||
public void notify(String title, String text, Class<?> c) {
|
||||
NotificationCompat.Builder b =
|
||||
new NotificationCompat.Builder(mCtx)
|
||||
.setContentTitle(title)
|
||||
.setContentText(text)
|
||||
.setSmallIcon(ICON)
|
||||
.setAutoCancel(true);
|
||||
.setContentTitle(title)
|
||||
.setContentText(text)
|
||||
.setSmallIcon(ICON)
|
||||
.setColor(mCtx.getResources().getColor(R.color.primary_light))
|
||||
.setAutoCancel(true);
|
||||
|
||||
if (c != null) {
|
||||
Intent intent = new Intent(mCtx, c);
|
||||
|
@ -553,8 +553,19 @@ public abstract class Util implements I2PConstants {
|
||||
}
|
||||
|
||||
public static String formatSize(double size) {
|
||||
return formatSize(size, 0);
|
||||
}
|
||||
|
||||
public static String formatSpeed(double size) {
|
||||
return formatSize(size, 1);
|
||||
}
|
||||
|
||||
public static String formatSize(double size, int baseScale) {
|
||||
int scale;
|
||||
for (scale = 0; size >= 1024.0D; size /= 1024.0D) {
|
||||
for (int i = 0; i < baseScale; i++) {
|
||||
size /= 1024.0D;
|
||||
}
|
||||
for (scale = baseScale; size >= 1024.0D; size /= 1024.0D) {
|
||||
++scale;
|
||||
}
|
||||
|
||||
|
@ -1,49 +0,0 @@
|
||||
package net.i2p.android.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v4.view.ViewPager;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.widget.Toast;
|
||||
|
||||
import net.i2p.android.router.R;
|
||||
import net.i2p.android.router.util.Util;
|
||||
|
||||
public class CustomViewPager extends ViewPager {
|
||||
private boolean mEnabled;
|
||||
|
||||
public CustomViewPager(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mEnabled = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
return mEnabled && super.onTouchEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(MotionEvent event) {
|
||||
return mEnabled && super.onInterceptTouchEvent(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentItem(int item) {
|
||||
if (mEnabled || item == 0)
|
||||
super.setCurrentItem(item);
|
||||
else
|
||||
Toast.makeText(getContext(), Util.getRouterContext() == null ?
|
||||
R.string.router_not_running : R.string.router_shutting_down,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
|
||||
public void setPagingEnabled(boolean enabled) {
|
||||
mEnabled = enabled;
|
||||
updatePagingState();
|
||||
}
|
||||
|
||||
public void updatePagingState() {
|
||||
if (!mEnabled && getCurrentItem() != 0)
|
||||
setCurrentItem(0);
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package net.i2p.router.client;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
|
||||
import net.i2p.client.DomainSocketFactory;
|
||||
import net.i2p.router.RouterContext;
|
||||
import net.i2p.util.Log;
|
||||
|
||||
/**
|
||||
* Unix domain socket version of ClientListenerRunner.
|
||||
*
|
||||
* @author str4d
|
||||
* @since 0.9.14
|
||||
*/
|
||||
public class DomainClientListenerRunner extends ClientListenerRunner {
|
||||
private final DomainSocketFactory factory;
|
||||
private final Log _log;
|
||||
|
||||
public DomainClientListenerRunner(RouterContext context, ClientManager manager) {
|
||||
super(context, manager, -1);
|
||||
factory = new DomainSocketFactory(_context);
|
||||
_log = context.logManager().getLog(getClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
protected ServerSocket getServerSocket() throws IOException {
|
||||
return factory.createServerSocket(DomainSocketFactory.I2CP_SOCKET_ADDRESS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopListening() {
|
||||
_running = false;
|
||||
// LocalServerSocket.close() fails silently if the socket is blocking in accept(), so we
|
||||
// trick the socket by opening a new connection and then immediately closing it.
|
||||
// http://stackoverflow.com/questions/8007982/java-serversocket-and-android-localserversocket
|
||||
try {
|
||||
_log.debug("Connecting to domain socket to trigger close");
|
||||
Socket s = factory.createSocket(DomainSocketFactory.I2CP_SOCKET_ADDRESS);
|
||||
s.close();
|
||||
} catch (IOException e) {
|
||||
_log.error("Failed to connect to domain socket to trigger close", e);
|
||||
}
|
||||
// runServer() will close the LocalServerSocket.
|
||||
}
|
||||
}
|
@ -1,162 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2014 Dominik Schürmann <dominik@dominikschuermann.de>
|
||||
* Copyright (C) 2013 Mohammed Lakkadshaw
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.sufficientlysecure.htmltextview;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
import org.xml.sax.XMLReader;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.text.Html;
|
||||
import android.text.Layout;
|
||||
import android.text.Spannable;
|
||||
import android.text.style.AlignmentSpan;
|
||||
import android.text.style.BulletSpan;
|
||||
import android.text.style.LeadingMarginSpan;
|
||||
import android.text.style.TypefaceSpan;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Some parts of this code are based on android.text.Html
|
||||
*/
|
||||
public class HtmlTagHandler implements Html.TagHandler {
|
||||
private int mListItemCount = 0;
|
||||
private Vector<String> mListParents = new Vector<String>();
|
||||
|
||||
private static class Code {
|
||||
}
|
||||
|
||||
private static class Center {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleTag(final boolean opening, final String tag, Editable output, final XMLReader xmlReader) {
|
||||
if (opening) {
|
||||
// opening tag
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "opening, output: " + output.toString());
|
||||
}
|
||||
|
||||
if (tag.equalsIgnoreCase("ul") || tag.equalsIgnoreCase("ol") || tag.equalsIgnoreCase("dd")) {
|
||||
mListParents.add(tag);
|
||||
mListItemCount = 0;
|
||||
} else if (tag.equalsIgnoreCase("code")) {
|
||||
start(output, new Code());
|
||||
} else if (tag.equalsIgnoreCase("center")) {
|
||||
start(output, new Center());
|
||||
}
|
||||
} else {
|
||||
// closing tag
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "closing, output: " + output.toString());
|
||||
}
|
||||
|
||||
if (tag.equalsIgnoreCase("ul") || tag.equalsIgnoreCase("ol") || tag.equalsIgnoreCase("dd")) {
|
||||
mListParents.remove(tag);
|
||||
mListItemCount = 0;
|
||||
} else if (tag.equalsIgnoreCase("li")) {
|
||||
handleListTag(output);
|
||||
} else if (tag.equalsIgnoreCase("code")) {
|
||||
end(output, Code.class, new TypefaceSpan("monospace"), false);
|
||||
} else if (tag.equalsIgnoreCase("center")) {
|
||||
end(output, Center.class, new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark the opening tag by using private classes
|
||||
*
|
||||
* @param output
|
||||
* @param mark
|
||||
*/
|
||||
private void start(Editable output, Object mark) {
|
||||
int len = output.length();
|
||||
output.setSpan(mark, len, len, Spannable.SPAN_MARK_MARK);
|
||||
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "len: " + len);
|
||||
}
|
||||
}
|
||||
|
||||
private void end(Editable output, Class kind, Object repl, boolean paragraphStyle) {
|
||||
Object obj = getLast(output, kind);
|
||||
// start of the tag
|
||||
int where = output.getSpanStart(obj);
|
||||
// end of the tag
|
||||
int len = output.length();
|
||||
|
||||
output.removeSpan(obj);
|
||||
|
||||
if (where != len) {
|
||||
// paragraph styles like AlignmentSpan need to end with a new line!
|
||||
if (paragraphStyle) {
|
||||
output.append("\n");
|
||||
len++;
|
||||
}
|
||||
output.setSpan(repl, where, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "where: " + where);
|
||||
Log.d(HtmlTextView.TAG, "len: " + len);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get last marked position of a specific tag kind (private class)
|
||||
*
|
||||
* @param text
|
||||
* @param kind
|
||||
* @return
|
||||
*/
|
||||
private Object getLast(Editable text, Class kind) {
|
||||
Object[] objs = text.getSpans(0, text.length(), kind);
|
||||
if (objs.length == 0) {
|
||||
return null;
|
||||
} else {
|
||||
for (int i = objs.length; i > 0; i--) {
|
||||
if (text.getSpanFlags(objs[i - 1]) == Spannable.SPAN_MARK_MARK) {
|
||||
return objs[i - 1];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void handleListTag(Editable output) {
|
||||
if (mListParents.lastElement().equals("ul")) {
|
||||
output.append("\n");
|
||||
String[] split = output.toString().split("\n");
|
||||
|
||||
int lastIndex = split.length - 1;
|
||||
int start = output.length() - split[lastIndex].length() - 1;
|
||||
output.setSpan(new BulletSpan(15 * mListParents.size()), start, output.length(), 0);
|
||||
} else if (mListParents.lastElement().equals("ol")) {
|
||||
mListItemCount++;
|
||||
|
||||
output.append("\n");
|
||||
String[] split = output.toString().split("\n");
|
||||
|
||||
int lastIndex = split.length - 1;
|
||||
int start = output.length() - split[lastIndex].length() - 1;
|
||||
output.insert(start, mListItemCount + ". ");
|
||||
output.setSpan(new LeadingMarginSpan.Standard(15 * mListParents.size()), start, output.length(), 0);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,90 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013-2014 Dominik Schürmann <dominik@dominikschuermann.de>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.sufficientlysecure.htmltextview;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Html;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
public class HtmlTextView extends JellyBeanSpanFixTextView {
|
||||
|
||||
public static final String TAG = "HtmlTextView";
|
||||
public static final boolean DEBUG = false;
|
||||
|
||||
public HtmlTextView(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
public HtmlTextView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public HtmlTextView(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* http://stackoverflow.com/questions/309424/read-convert-an-inputstream-to-a-string
|
||||
*
|
||||
* @param is
|
||||
* @return
|
||||
*/
|
||||
static private String convertStreamToString(java.io.InputStream is) {
|
||||
java.util.Scanner s = new java.util.Scanner(is).useDelimiter("\\A");
|
||||
return s.hasNext() ? s.next() : "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads HTML from a raw resource, i.e., a HTML file in res/raw/.
|
||||
* This allows translatable resource (e.g., res/raw-de/ for german).
|
||||
* The containing HTML is parsed to Android's Spannable format and then displayed.
|
||||
*
|
||||
* @param context
|
||||
* @param id for example: R.raw.help
|
||||
*/
|
||||
public void setHtmlFromRawResource(Context context, int id, boolean useLocalDrawables) {
|
||||
// load html from html file from /res/raw
|
||||
InputStream inputStreamText = context.getResources().openRawResource(id);
|
||||
|
||||
setHtmlFromString(convertStreamToString(inputStreamText), useLocalDrawables);
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses String containing HTML to Android's Spannable format and displays it in this TextView.
|
||||
*
|
||||
* @param html String containing HTML, for example: "<b>Hello world!</b>"
|
||||
*/
|
||||
public void setHtmlFromString(String html, boolean useLocalDrawables) {
|
||||
Html.ImageGetter imgGetter;
|
||||
if (useLocalDrawables) {
|
||||
imgGetter = new LocalImageGetter(getContext());
|
||||
} else {
|
||||
imgGetter = new UrlImageGetter(this, getContext());
|
||||
}
|
||||
// this uses Android's Html class for basic parsing, and HtmlTagHandler
|
||||
setText(Html.fromHtml(html, imgGetter, new HtmlTagHandler()));
|
||||
|
||||
// make links work
|
||||
setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
// no flickering when clicking textview for Android < 4, but overriders color...
|
||||
// text.setTextColor(getResources().getColor(android.R.color.secondary_text_dark_nodisable));
|
||||
}
|
||||
}
|
@ -1,209 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
|
||||
* Copyright (C) 2012 Pierre-Yves Ricau <py.ricau@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.sufficientlysecure.htmltextview;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p/>
|
||||
* A {@link android.widget.TextView} that insert spaces around its text spans where needed to prevent
|
||||
* {@link IndexOutOfBoundsException} in {@link #onMeasure(int, int)} on Jelly Bean.
|
||||
* <p/>
|
||||
* When {@link #onMeasure(int, int)} throws an exception, we try to fix the text by adding spaces
|
||||
* around spans, until it works again. We then try removing some of the added spans, to minimize the
|
||||
* insertions.
|
||||
* <p/>
|
||||
* The fix is time consuming (a few ms, it depends on the size of your text), but it should only
|
||||
* happen once per text change.
|
||||
* <p/>
|
||||
* See http://code.google.com/p/android/issues/detail?id=35466
|
||||
*/
|
||||
public class JellyBeanSpanFixTextView extends TextView {
|
||||
|
||||
private static class FixingResult {
|
||||
public final boolean fixed;
|
||||
public final List<Object> spansWithSpacesBefore;
|
||||
public final List<Object> spansWithSpacesAfter;
|
||||
|
||||
public static FixingResult fixed(List<Object> spansWithSpacesBefore,
|
||||
List<Object> spansWithSpacesAfter) {
|
||||
return new FixingResult(true, spansWithSpacesBefore, spansWithSpacesAfter);
|
||||
}
|
||||
|
||||
public static FixingResult notFixed() {
|
||||
return new FixingResult(false, null, null);
|
||||
}
|
||||
|
||||
private FixingResult(boolean fixed, List<Object> spansWithSpacesBefore,
|
||||
List<Object> spansWithSpacesAfter) {
|
||||
this.fixed = fixed;
|
||||
this.spansWithSpacesBefore = spansWithSpacesBefore;
|
||||
this.spansWithSpacesAfter = spansWithSpacesAfter;
|
||||
}
|
||||
}
|
||||
|
||||
public JellyBeanSpanFixTextView(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
public JellyBeanSpanFixTextView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public JellyBeanSpanFixTextView(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
try {
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
} catch (IndexOutOfBoundsException e) {
|
||||
fixOnMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* If possible, fixes the Spanned text by adding spaces around spans when needed.
|
||||
*/
|
||||
private void fixOnMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
CharSequence text = getText();
|
||||
if (text instanceof Spanned) {
|
||||
SpannableStringBuilder builder = new SpannableStringBuilder(text);
|
||||
fixSpannedWithSpaces(builder, widthMeasureSpec, heightMeasureSpec);
|
||||
} else {
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "The text isn't a Spanned");
|
||||
}
|
||||
fallbackToString(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add spaces around spans until the text is fixed, and then removes the unneeded spaces
|
||||
*/
|
||||
private void fixSpannedWithSpaces(SpannableStringBuilder builder, int widthMeasureSpec,
|
||||
int heightMeasureSpec) {
|
||||
long startFix = System.currentTimeMillis();
|
||||
|
||||
FixingResult result = addSpacesAroundSpansUntilFixed(builder, widthMeasureSpec,
|
||||
heightMeasureSpec);
|
||||
|
||||
if (result.fixed) {
|
||||
removeUnneededSpaces(widthMeasureSpec, heightMeasureSpec, builder, result);
|
||||
} else {
|
||||
fallbackToString(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
|
||||
if (HtmlTextView.DEBUG) {
|
||||
long fixDuration = System.currentTimeMillis() - startFix;
|
||||
Log.d(HtmlTextView.TAG, "fixSpannedWithSpaces() duration in ms: " + fixDuration);
|
||||
}
|
||||
}
|
||||
|
||||
private FixingResult addSpacesAroundSpansUntilFixed(SpannableStringBuilder builder,
|
||||
int widthMeasureSpec, int heightMeasureSpec) {
|
||||
|
||||
Object[] spans = builder.getSpans(0, builder.length(), Object.class);
|
||||
List<Object> spansWithSpacesBefore = new ArrayList<Object>(spans.length);
|
||||
List<Object> spansWithSpacesAfter = new ArrayList<Object>(spans.length);
|
||||
|
||||
for (Object span : spans) {
|
||||
int spanStart = builder.getSpanStart(span);
|
||||
if (isNotSpace(builder, spanStart - 1)) {
|
||||
builder.insert(spanStart, " ");
|
||||
spansWithSpacesBefore.add(span);
|
||||
}
|
||||
|
||||
int spanEnd = builder.getSpanEnd(span);
|
||||
if (isNotSpace(builder, spanEnd)) {
|
||||
builder.insert(spanEnd, " ");
|
||||
spansWithSpacesAfter.add(span);
|
||||
}
|
||||
|
||||
try {
|
||||
setTextAndMeasure(builder, widthMeasureSpec, heightMeasureSpec);
|
||||
return FixingResult.fixed(spansWithSpacesBefore, spansWithSpacesAfter);
|
||||
} catch (IndexOutOfBoundsException notFixed) {
|
||||
}
|
||||
}
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "Could not fix the Spanned by adding spaces around spans");
|
||||
}
|
||||
return FixingResult.notFixed();
|
||||
}
|
||||
|
||||
private boolean isNotSpace(CharSequence text, int where) {
|
||||
return where < 0 || text.charAt(where) != ' ';
|
||||
}
|
||||
|
||||
private void setTextAndMeasure(CharSequence text, int widthMeasureSpec, int heightMeasureSpec) {
|
||||
setText(text);
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
|
||||
private void removeUnneededSpaces(int widthMeasureSpec, int heightMeasureSpec,
|
||||
SpannableStringBuilder builder, FixingResult result) {
|
||||
|
||||
for (Object span : result.spansWithSpacesAfter) {
|
||||
int spanEnd = builder.getSpanEnd(span);
|
||||
builder.delete(spanEnd, spanEnd + 1);
|
||||
try {
|
||||
setTextAndMeasure(builder, widthMeasureSpec, heightMeasureSpec);
|
||||
} catch (IndexOutOfBoundsException ignored) {
|
||||
builder.insert(spanEnd, " ");
|
||||
}
|
||||
}
|
||||
|
||||
boolean needReset = true;
|
||||
for (Object span : result.spansWithSpacesBefore) {
|
||||
int spanStart = builder.getSpanStart(span);
|
||||
builder.delete(spanStart - 1, spanStart);
|
||||
try {
|
||||
setTextAndMeasure(builder, widthMeasureSpec, heightMeasureSpec);
|
||||
needReset = false;
|
||||
} catch (IndexOutOfBoundsException ignored) {
|
||||
needReset = true;
|
||||
int newSpanStart = spanStart - 1;
|
||||
builder.insert(newSpanStart, " ");
|
||||
}
|
||||
}
|
||||
|
||||
if (needReset) {
|
||||
setText(builder);
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
}
|
||||
|
||||
private void fallbackToString(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
if (HtmlTextView.DEBUG) {
|
||||
Log.d(HtmlTextView.TAG, "Fallback to unspanned text");
|
||||
}
|
||||
String fallbackText = getText().toString();
|
||||
setTextAndMeasure(fallbackText, widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2014 Dominik Schürmann <dominik@dominikschuermann.de>
|
||||
* Copyright (C) 2014 drawk
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.sufficientlysecure.htmltextview;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.Html;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Copied from http://stackoverflow.com/a/22298833
|
||||
*/
|
||||
public class LocalImageGetter implements Html.ImageGetter {
|
||||
Context c;
|
||||
|
||||
public LocalImageGetter(Context c) {
|
||||
this.c = c;
|
||||
}
|
||||
|
||||
public Drawable getDrawable(String source) {
|
||||
int id = c.getResources().getIdentifier(source, "drawable", c.getPackageName());
|
||||
|
||||
if (id == 0) {
|
||||
// the drawable resource wasn't found in our package, maybe it is a stock android drawable?
|
||||
id = c.getResources().getIdentifier(source, "drawable", "android");
|
||||
}
|
||||
|
||||
if (id == 0) {
|
||||
// prevent a crash if the resource still can't be found
|
||||
Log.e(HtmlTextView.TAG, "source could not be found: " + source);
|
||||
return null;
|
||||
} else {
|
||||
Drawable d = c.getResources().getDrawable(id);
|
||||
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,124 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2013 Antarix Tandon
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.sufficientlysecure.htmltextview;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.AsyncTask;
|
||||
import android.text.Html.ImageGetter;
|
||||
import android.view.View;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.MalformedURLException;
|
||||
|
||||
public class UrlImageGetter implements ImageGetter {
|
||||
Context c;
|
||||
View container;
|
||||
|
||||
/**
|
||||
* Construct the URLImageParser which will execute AsyncTask and refresh the container
|
||||
*
|
||||
* @param t
|
||||
* @param c
|
||||
*/
|
||||
public UrlImageGetter(View t, Context c) {
|
||||
this.c = c;
|
||||
this.container = t;
|
||||
}
|
||||
|
||||
public Drawable getDrawable(String source) {
|
||||
UrlDrawable urlDrawable = new UrlDrawable();
|
||||
|
||||
// get the actual source
|
||||
ImageGetterAsyncTask asyncTask = new ImageGetterAsyncTask(urlDrawable);
|
||||
|
||||
asyncTask.execute(source);
|
||||
|
||||
// return reference to URLDrawable which will asynchronously load the image specified in the src tag
|
||||
return urlDrawable;
|
||||
}
|
||||
|
||||
public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable> {
|
||||
UrlDrawable urlDrawable;
|
||||
|
||||
public ImageGetterAsyncTask(UrlDrawable d) {
|
||||
this.urlDrawable = d;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Drawable doInBackground(String... params) {
|
||||
String source = params[0];
|
||||
return fetchDrawable(source);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Drawable result) {
|
||||
// set the correct bound according to the result from HTTP call
|
||||
urlDrawable.setBounds(0, 0, result.getIntrinsicWidth(), result.getIntrinsicHeight());
|
||||
|
||||
// change the reference of the current drawable to the result from the HTTP call
|
||||
urlDrawable.drawable = result;
|
||||
|
||||
// redraw the image by invalidating the container
|
||||
UrlImageGetter.this.container.invalidate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the Drawable from URL
|
||||
*
|
||||
* @param urlString
|
||||
* @return
|
||||
*/
|
||||
public Drawable fetchDrawable(String urlString) {
|
||||
try {
|
||||
InputStream is = fetch(urlString);
|
||||
Drawable drawable = Drawable.createFromStream(is, "src");
|
||||
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
|
||||
return drawable;
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private InputStream fetch(String urlString) throws MalformedURLException, IOException {
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpGet request = new HttpGet(urlString);
|
||||
HttpResponse response = httpClient.execute(request);
|
||||
return response.getEntity().getContent();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class UrlDrawable extends BitmapDrawable {
|
||||
protected Drawable drawable;
|
||||
|
||||
@Override
|
||||
public void draw(Canvas canvas) {
|
||||
// override the draw to facilitate refresh function later
|
||||
if (drawable != null) {
|
||||
drawable.draw(canvas);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -27,7 +27,7 @@
|
||||
android:clipChildren="false"
|
||||
app:shadowDrawable="@drawable/header_shadow">
|
||||
|
||||
<net.i2p.android.widget.CustomViewPager
|
||||
<android.support.v4.view.CustomViewPager
|
||||
android:id="@+id/pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
39
app/src/main/res/layout-v11/seekbar_preference.xml
Normal file
39
app/src/main/res/layout-v11/seekbar_preference.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingRight="?android:attr/scrollbarSize"
|
||||
android:orientation="vertical"
|
||||
android:background="?android:attr/selectableItemBackground" >
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_marginBottom="6dip">
|
||||
|
||||
<TextView android:id="@android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:ellipsize="marquee"
|
||||
android:fadingEdge="horizontal" />
|
||||
|
||||
<TextView android:id="@android:id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@android:id/title"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:maxLines="4" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<include layout="@layout/seekbar_inner"/>
|
||||
|
||||
</LinearLayout>
|
39
app/src/main/res/layout-v14/seekbar_preference.xml
Normal file
39
app/src/main/res/layout-v14/seekbar_preference.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="?android:attr/listPreferredItemPaddingLeft"
|
||||
android:paddingRight="?android:attr/listPreferredItemPaddingRight">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<TextView android:id="@android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/Preference_TextAppearanceMaterialSubhead"
|
||||
android:ellipsize="marquee" />
|
||||
|
||||
<TextView android:id="@android:id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@android:id/title"
|
||||
android:layout_alignLeft="@android:id/title"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:maxLines="10" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<include layout="@layout/seekbar_inner"/>
|
||||
|
||||
</LinearLayout>
|
39
app/src/main/res/layout-v17/seekbar_preference.xml
Normal file
39
app/src/main/res/layout-v17/seekbar_preference.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<TextView android:id="@android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="@style/Preference_TextAppearanceMaterialSubhead"
|
||||
android:ellipsize="marquee" />
|
||||
|
||||
<TextView android:id="@android:id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@android:id/title"
|
||||
android:layout_alignStart="@android:id/title"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:maxLines="10" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<include layout="@layout/seekbar_inner"/>
|
||||
|
||||
</LinearLayout>
|
39
app/src/main/res/layout-v21/seekbar_preference.xml
Normal file
39
app/src/main/res/layout-v21/seekbar_preference.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
android:gravity="center_vertical"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:orientation="vertical"
|
||||
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||
android:paddingStart="?android:attr/listPreferredItemPaddingStart">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp">
|
||||
|
||||
<TextView android:id="@android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="?android:attr/textAppearanceListItem"
|
||||
android:ellipsize="marquee" />
|
||||
|
||||
<TextView android:id="@android:id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@android:id/title"
|
||||
android:layout_alignStart="@android:id/title"
|
||||
android:textAppearance="?android:attr/textAppearanceListItemSecondary"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:maxLines="10" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<include layout="@layout/seekbar_inner"/>
|
||||
|
||||
</LinearLayout>
|
@ -19,6 +19,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:elevation="2dp"
|
||||
android:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
|
||||
|
||||
<net.i2p.android.widget.DrawShadowFrameLayout
|
||||
@ -28,7 +29,7 @@
|
||||
android:clipChildren="false"
|
||||
app:shadowDrawable="@drawable/header_shadow">
|
||||
|
||||
<net.i2p.android.widget.CustomViewPager
|
||||
<android.support.v4.view.CustomViewPager
|
||||
android:id="@+id/pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
@ -52,10 +53,31 @@
|
||||
style="@style/ListItem.TextOnly"
|
||||
android:text="Tunnel type" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tunnel_details"
|
||||
style="@style/ListItem.TextOnly"
|
||||
android:text="Tunnel details" />
|
||||
<RelativeLayout
|
||||
android:id="@+id/tunnel_details_container"
|
||||
style="@style/ListItem.OneLine"
|
||||
android:visibility="gone">
|
||||
|
||||
<!-- Open link -->
|
||||
<ImageView
|
||||
android:id="@+id/tunnel_details_copy"
|
||||
style="@style/ListItemContent.Action"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:contentDescription="Copy"
|
||||
android:src="@drawable/ic_content_copy_white_24dp"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tunnel_details"
|
||||
style="@style/ListItemContent.Text.Main"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_toLeftOf="@id/tunnel_details_copy"
|
||||
android:layout_toStartOf="@id/tunnel_details_copy"
|
||||
tools:text="Tunnel details" />
|
||||
</RelativeLayout>
|
||||
|
||||
<View
|
||||
style="@style/Divider.Horizontal"
|
||||
|
@ -23,8 +23,7 @@
|
||||
style="@style/ListItemContent.Text.Main.TwoLines"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:text="Tunnel name"
|
||||
android:transitionName="@string/TUNNEL_NAME" />
|
||||
android:text="Tunnel name" />
|
||||
|
||||
<!-- Interface:port the tunnel listens on or points to -->
|
||||
<TextView
|
||||
@ -49,8 +48,7 @@
|
||||
android:layout_alignParentBottom="true"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:text="Tunnel description"
|
||||
android:transitionName="@string/TUNNEL_DESCRIPTION" />
|
||||
android:text="Tunnel description" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
45
app/src/main/res/layout/seekbar_inner.xml
Normal file
45
app/src/main/res/layout/seekbar_inner.xml
Normal file
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
tools:showIn="@layout/seekbar_preference">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/value_holder"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="right"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/seekbar_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="numberDecimal"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:singleLine="true"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/measurement_unit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?android:attr/textColorSecondary"/>
|
||||
</LinearLayout>
|
||||
|
||||
<SeekBar
|
||||
android:id="@+id/seekbar"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_toLeftOf="@id/value_holder"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
</RelativeLayout>
|
39
app/src/main/res/layout/seekbar_preference.xml
Normal file
39
app/src/main/res/layout/seekbar_preference.xml
Normal file
@ -0,0 +1,39 @@
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?android:attr/listPreferredItemHeight"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingRight="?android:attr/scrollbarSize"
|
||||
android:orientation="vertical"
|
||||
android:background="@android:drawable/list_selector_background" >
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dip"
|
||||
android:layout_marginBottom="6dip">
|
||||
|
||||
<TextView android:id="@android:id/title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||
android:textColor="?android:attr/textColorPrimary"
|
||||
android:ellipsize="marquee"
|
||||
android:fadingEdge="horizontal" />
|
||||
|
||||
<TextView android:id="@android:id/summary"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@android:id/title"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:textColor="?android:attr/textColorSecondary"
|
||||
android:maxLines="4" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<include layout="@layout/seekbar_inner"/>
|
||||
|
||||
</LinearLayout>
|
16
app/src/main/res/raw/help_acr_browser_lightning.html
Normal file
16
app/src/main/res/raw/help_acr_browser_lightning.html
Normal file
@ -0,0 +1,16 @@
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<h2>Lightning has native I2P support!</h2>
|
||||
<p>If you install Lightning after installing I2P, simply open the app. It will detect that you have I2P installed, and show a pop-up window allowing you to enable it.</p>
|
||||
<p>If you installed Lightning before installing I2P, follow the steps in the next section.</p>
|
||||
<p>Lightning supports both I2P and Orbot (Tor), but not at the same time. If you already use Lightning with Orbot, you will need to change it to I2P when you want to browse I2P sites.</p>
|
||||
<h2>How to configure Lightning:</h2>
|
||||
<ol>
|
||||
<li>Open Lightning's settings menu.</li>
|
||||
<li>Click on "General Settings".</li>
|
||||
<li>Change the "HTTP Proxy" to I2P.</li>
|
||||
<li>Exit the settings menu.</li>
|
||||
</ol>
|
||||
</body>
|
||||
</html>
|
@ -10,6 +10,7 @@
|
||||
<li>In the main Firefox menu, click "Tools", then "Add-ons".</li>
|
||||
<li>Click on "Proxy Mobile".</li>
|
||||
<li>Change the value of "HTTP Proxy Port" to <code>4444</code>.</li>
|
||||
<li>Change the value of "HTTPS Proxy Port" to <code>4444</code>.</li>
|
||||
<li>You can now browse I2P eepsites!</li>
|
||||
</ol>
|
||||
</body>
|
||||
|
@ -10,6 +10,7 @@
|
||||
<li>In the main Firefox menu, click "Tools", then "Add-ons".</li>
|
||||
<li>Click on "Proxy Mobile".</li>
|
||||
<li>Change the value of "HTTP Proxy Port" to <code>4444</code>.</li>
|
||||
<li>Change the value of "HTTPS Proxy Port" to <code>4444</code>.</li>
|
||||
<li>You can now browse I2P eepsites!</li>
|
||||
</ol>
|
||||
</body>
|
||||
|
@ -4,6 +4,6 @@
|
||||
<h2>This browser is unknown</h2>
|
||||
<p>We have not tested this browser with I2P, so we don't know anything about it.</p>
|
||||
<p>But if this browser supports proxies, it will work with I2P.</p>
|
||||
<p>Configure this browser's HTTP proxy setting to use <code>localhost:4444</code>.</p>
|
||||
<p>Configure this browser's HTTP and HTTPS proxy settings to use <code>localhost:4444</code>.</p>
|
||||
</body>
|
||||
</html>
|
@ -2,8 +2,8 @@
|
||||
#
|
||||
|
||||
# eepproxy
|
||||
tunnel.0.name=I2P HTTP Proxy
|
||||
tunnel.0.description=HTTP proxy for browsing eepsites and the web
|
||||
tunnel.0.name=I2P HTTP/HTTPS Proxy
|
||||
tunnel.0.description=HTTP/HTTPS proxy for browsing eepsites and the web
|
||||
tunnel.0.type=httpclient
|
||||
tunnel.0.sharedClient=false
|
||||
tunnel.0.interface=127.0.0.1
|
||||
@ -18,6 +18,7 @@ tunnel.0.option.i2cp.reduceIdleTime=600000
|
||||
tunnel.0.option.i2cp.reduceOnIdle=true
|
||||
tunnel.0.option.i2cp.reduceQuantity=1
|
||||
tunnel.0.option.i2p.streaming.connectDelay=1000
|
||||
tunnel.0.option.i2ptunnel.httpclient.SSLOutproxies=false.i2p
|
||||
tunnel.0.option.inbound.length=2
|
||||
tunnel.0.option.inbound.lengthVariance=0
|
||||
tunnel.0.option.outbound.length=2
|
||||
@ -123,29 +124,4 @@ tunnel.4.option.inbound.lengthVariance=0
|
||||
tunnel.4.option.outbound.length=2
|
||||
tunnel.4.option.outbound.lengthVariance=0
|
||||
tunnel.4.option.outbound.priority=15
|
||||
tunnel.4.startOnLoad=true
|
||||
|
||||
# irc irc.killyourtv.i2p
|
||||
tunnel.5.name=KYTV IRC
|
||||
tunnel.5.description=IRC tunnel to KillYourTV's network
|
||||
tunnel.5.type=ircclient
|
||||
tunnel.5.sharedClient=true
|
||||
tunnel.5.interface=127.0.0.1
|
||||
tunnel.5.listenPort=6670
|
||||
tunnel.5.targetDestination=irc.killyourtv.i2p
|
||||
tunnel.5.i2cpHost=127.0.0.1
|
||||
tunnel.5.i2cpPort=7654
|
||||
tunnel.5.option.inbound.nickname=shared clients
|
||||
tunnel.5.option.outbound.nickname=shared clients
|
||||
tunnel.5.option.i2cp.delayOpen=true
|
||||
tunnel.5.option.i2cp.reduceIdleTime=600000
|
||||
tunnel.5.option.i2cp.reduceOnIdle=true
|
||||
tunnel.5.option.i2cp.reduceQuantity=1
|
||||
tunnel.5.option.i2p.streaming.connectDelay=1000
|
||||
tunnel.5.option.i2p.streaming.maxWindowSize=16
|
||||
tunnel.5.option.inbound.length=2
|
||||
tunnel.5.option.inbound.lengthVariance=0
|
||||
tunnel.5.option.outbound.length=2
|
||||
tunnel.5.option.outbound.lengthVariance=0
|
||||
tunnel.5.option.outbound.priority=15
|
||||
tunnel.5.startOnLoad=true
|
||||
tunnel.4.startOnLoad=true
|
@ -1,34 +1,129 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="label_home">Inici I2P</string>
|
||||
<string name="desc_i2p_logo">Logotip de I2P</string>
|
||||
<string name="choose_language">Triar idioma</string>
|
||||
<string name="welcome_new_install">Benvinguts a I2P! Aquesta aplicació és una versió alfa i no proporciona una anonimització forta. Llegiu les notes de versió i la informació de llicència.</string>
|
||||
<string name="welcome_new_version">Nova versió instal·lada. Si us plau, llegeixi les notes de les versions. Versió:</string>
|
||||
<string name="label_tunnels">Túnels</string>
|
||||
<string name="label_status">Estat</string>
|
||||
<string name="label_console">Consola</string>
|
||||
<string name="label_addresses">Adreces</string>
|
||||
<string name="label_addressbook">Agenda d\'adreces</string>
|
||||
<string name="label_i2ptunnel_client">Túnels de client</string>
|
||||
<string name="label_i2ptunnel_server">Servidor de túnels</string>
|
||||
<string name="label_logs">Registres</string>
|
||||
<string name="label_error_logs">Registres d\'errors</string>
|
||||
<string name="label_info_and_pages">Informació i pàgines</string>
|
||||
<string name="label_welcome_page">Pàgina de benvinguda</string>
|
||||
<string name="label_news">Notícies</string>
|
||||
<string name="label_peers_status">Nodes</string>
|
||||
<string name="label_release_notes">Notes de la versió</string>
|
||||
<string name="label_licenses">Llicències</string>
|
||||
<string name="label_nonanon_info">Informació no anònima</string>
|
||||
<string name="label_browse">Navegar</string>
|
||||
<string name="label_graphs">Gràfics</string>
|
||||
<string name="button_router_off">Prem i no deixis per iniciar I2P</string>
|
||||
<string name="button_router_on">I2P s\'està executant (prem per aturar)</string>
|
||||
<string name="button_router_graceful">I2P s\'apagarà en %s</string>
|
||||
<string name="button_shutdown_now">Prem per aturar ara</string>
|
||||
<string name="button_cancel_graceful">Prem per cancel·lar l\'apagada</string>
|
||||
<string name="no_internet">No hi ha cap connexió a Internet disponible</string>
|
||||
<string name="hidden">Amagat</string>
|
||||
<string name="testing">Provant</string>
|
||||
<string name="firewalled">Sota tallafocs</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_unresolved_tcp">Adreça TCP no resolta</string>
|
||||
<string name="net_status_error_private_tcp">Adreça TCP privada</string>
|
||||
<string name="net_status_info_disconnected">Desconnectat - comprova connexió de xarxa</string>
|
||||
<string name="shared_clients">Clients compartits</string>
|
||||
<string name="uptime">Temps funcionant</string>
|
||||
<string name="active_peers">Nodes actius</string>
|
||||
<string name="known_peers">Nodes coneguts</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">No hi han túnels executant-se actualment</string>
|
||||
<string name="download">Baixar</string>
|
||||
<string name="upload">Pujar</string>
|
||||
<string name="configure_browser_title">Configurar navegador?</string>
|
||||
<string name="configure_browser_for_i2p">Vols configurar un navegador per veure els llocs web de I2P? (També podràs fer-ho posteriorment des del menú d\'ajuda)</string>
|
||||
<string name="first_start_title">Felicitats I2P ja s\'ha instal·lat!</string>
|
||||
<string name="first_start_welcome"><b>Benvingut a I2P!</b> Tingues paciència</b> I2P s\'està arrencant i buscant iguals.</string>
|
||||
<string name="first_start_read">Durant la espera, llegeix les notes de versió i la pàgina d\'inici.</string>
|
||||
<string name="first_start_faq">Un cop tingui túnels de client, <b>consulta</b> les preguntes més freqüents:</string>
|
||||
<string name="first_start_faq_nonanon">O utilitza aquest enllaç sense ser anònim si no vols esperar als túnels.</string>
|
||||
<string name="first_start_irc">Apunta el client IRC a <b>localhost:6668</b> i saluda\'ns personalment: </string>
|
||||
<string name="action_search">Cercar</string>
|
||||
<string name="action_add">Afegir</string>
|
||||
<string name="action_router_start">Iniciar rúter</string>
|
||||
<string name="action_router_stop">Aturar rúter</string>
|
||||
<string name="action_edit">Editar</string>
|
||||
<string name="action_delete">Suprimir</string>
|
||||
<string name="action_i2ptunnel_start">Començar el túnel</string>
|
||||
<string name="action_i2ptunnel_stop">Aturar el túnel</string>
|
||||
<string name="action_i2ptunnel_start_all">Iniciar tots els túnels</string>
|
||||
<string name="action_i2ptunnel_stop_all">Aturar tots els túnels</string>
|
||||
<string name="action_i2ptunnel_restart_all">Reiniciar tots els túnels</string>
|
||||
<string name="action_reload">Recarregar</string>
|
||||
<string name="action_refresh">Actualitzar</string>
|
||||
<string name="hint_search_addressbook">Cercar a la llibreta d\'adreces</string>
|
||||
<string name="action_reload_subscriptions">Recarregar subscripcions</string>
|
||||
<string name="news_last_updated">Darrera actualització de novetats fa %s</string>
|
||||
<string name="news_last_checked">Darrera comprovació de novetats fa %s</string>
|
||||
<string name="news_updated">S\'han actualitzat les novetats</string>
|
||||
<string name="view_news">Prem per veure les últimes notícies d\'I2P</string>
|
||||
<string name="router_not_running">No s\'està executant l\'encaminador.</string>
|
||||
<string name="router_shutting_down">S\'està apagant l\'encaminador.</string>
|
||||
<string name="stats_not_ready">L\'administrador d\'estadístiques no està preparat. Prova-ho més tard.</string>
|
||||
<string name="no_graphs_configured">No s\'ha configurat cap gràfic. Pots seleccionar els gràfics d\'estadística en el menú de configuració. Qualsevol canvi s\'establirà al cap de 60 segons.</string>
|
||||
<string name="configure_graphs">Configuració de gràfics</string>
|
||||
<string name="graphs_not_ready">Els gràfics no estan disponibles. Provi-ho més tard.</string>
|
||||
<string name="statistics">Estadístiques</string>
|
||||
<string name="routers">Encaminadors</string>
|
||||
<string name="leasesets">LeaseSets</string>
|
||||
<string name="countries">Països</string>
|
||||
<string name="country">País</string>
|
||||
<string name="transport">Transport</string>
|
||||
<string name="versions">Versions</string>
|
||||
<string name="version">Versió</string>
|
||||
<string name="count">Comptador</string>
|
||||
<string name="tname_0">Ocultar o inici</string>
|
||||
<string name="netdb_routers_empty">No hi han encaminadors al NetDB</string>
|
||||
<string name="netdb_leases_empty">Cap LeaseSets en el seu NetDB.</string>
|
||||
<string name="notification_status_starting">S\'està iniciant I2P</string>
|
||||
<string name="notification_status_restarting">S\'està reiniciant I2P</string>
|
||||
<string name="notification_status_waiting">I2P està esperant una connexió de xarxa</string>
|
||||
<string name="notification_status_starting_after_waiting">Connexió correcta, s\'està iniciant l\'I2P</string>
|
||||
<string name="notification_status_running">S\'està executant l\'I2P</string>
|
||||
<string name="notification_status_client_ready">Els túnels de client estan preparats</string>
|
||||
<string name="notification_status_client_down">Els túnels de client han caigut</string>
|
||||
<string name="notification_status_graceful">Aturant I2P en %s</string>
|
||||
<string name="notification_status_stopping">Aturant I2P</string>
|
||||
<string name="notification_status_stopping_after_net">Xarxa desconnectada, aturant I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Aturada cancel·lada</string>
|
||||
<string name="notification_status_shutting_down">S\'està aturant I2P</string>
|
||||
<string name="notification_status_bw">Ample de banda: %1$sBps baixada / %2$sBps pujada</string>
|
||||
<string name="notification_status_peers">Iguals: %1$d actius, %2$d coneguts</string>
|
||||
<string name="notification_status_expl">Túnels d\'exploració: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túnels de clients: %1$d/%2$d</string>
|
||||
<string name="menu_settings">Configuració</string>
|
||||
<string name="settings_enable">Habilitar</string>
|
||||
<string name="settings_desc_subscriptions">URL subscripció</string>
|
||||
<string name="settings_label_bandwidth">Ample de banda i xarxa</string>
|
||||
<string name="settings_desc_subscriptions">URLs de subscripció</string>
|
||||
<string name="settings_label_bandwidth_net">Ampla de banda i xarxa</string>
|
||||
<string name="settings_label_startOnBoot">Iniciar I2P en arrencada</string>
|
||||
<string name="settings_label_bandwidth">Ample de banda</string>
|
||||
<string name="settings_label_bw_inbound">Velocitat d\'entrada</string>
|
||||
<string name="settings_desc_bw_inbound">Velocitat màxima d\'entrada</string>
|
||||
<string name="settings_label_bw_outbound">Velocitat de sortida</string>
|
||||
<string name="settings_desc_bw_outbound">Màxima velocitat de sortida</string>
|
||||
<string name="settings_label_network">Xarxa</string>
|
||||
<string name="settings_label_hiddenMode">Participació</string>
|
||||
<string name="settings_desc_hiddenMode">Desactivar el mode ocult</string>
|
||||
<string name="settings_label_maxPartTunnels">Màx. túnels participats</string>
|
||||
<string name="settings_label_sharePercent">Percentatge de participació</string>
|
||||
<string name="settings_label_logging">Entrant</string>
|
||||
<string name="settings_label_appearance">Aparença</string>
|
||||
<string name="settings_label_language">Idioma</string>
|
||||
<string name="settings_default">Per defecte</string>
|
||||
<string name="settings_label_advanced">Avançat</string>
|
||||
<string name="settings_label_showStats">Estadístiques del router</string>
|
||||
<string name="settings_label_transports">Transports</string>
|
||||
<string name="settings_label_maxConns">Màx. connexions</string>
|
||||
<string name="settings_label_i2cp">Interfície I2CP</string>
|
||||
@ -38,8 +133,79 @@
|
||||
<string name="settings_label_expl_inbound">Túnels d\'entrada</string>
|
||||
<string name="settings_label_expl_outbound">Túnels de sortida</string>
|
||||
<string name="settings_label_expl_length">Longitud</string>
|
||||
<string name="settings_summ_expl_length">%s salts</string>
|
||||
<string name="settings_summ_expl_lengthVariance">%s</string>
|
||||
<string name="settings_label_expl_quantity">Quantitat</string>
|
||||
<string name="settings_summ_expl_quantity">%s túnels</string>
|
||||
<string name="settings_desc_expl_quantity">Quantitat dels túnels</string>
|
||||
<string name="settings_label_expl_backupQuantity">Quantitat de còpies de seguretat</string>
|
||||
<string name="settings_summ_expl_backupQuantity">%s túnels</string>
|
||||
<string name="settings_desc_expl_backupQuantity">Quantitat de còpies de seguretat del túnel</string>
|
||||
<string name="about_version">Versió:</string>
|
||||
<string name="about_helpwanted">Es necessita ajuda!</string>
|
||||
<string name="about_volunteer">Voleu ajudar a millorar l\'aplicació? Oferiu-vos voluntaris al fòrum Android:</string>
|
||||
<string name="menu_help">Ajuda</string>
|
||||
<string name="label_router">Adreces públiques</string>
|
||||
<string name="label_private">Adreces privades</string>
|
||||
<string name="addressbook_add_wizard_k_name">Nom</string>
|
||||
<string name="addressbook_add_wizard_k_destination">Destinació</string>
|
||||
<string name="addressbook_add_wizard_desc_name">El nom</string>
|
||||
<string name="i2ptunnel_type_client">Client estàndard</string>
|
||||
<string name="i2ptunnel_type_httpclient">Client HTTP</string>
|
||||
<string name="i2ptunnel_type_ircclient">Client IRC</string>
|
||||
<string name="i2ptunnel_type_server">Servidor estàndard</string>
|
||||
<string name="i2ptunnel_type_httpserver">Servidor HTTP</string>
|
||||
<string name="i2ptunnel_type_ircserver">Servidor IRC</string>
|
||||
<string name="i2ptunnel_new_tunnel">Nou túnel</string>
|
||||
<string name="i2ptunnel_wizard_k_name">Nom</string>
|
||||
<string name="i2ptunnel_wizard_k_desc">Descripció</string>
|
||||
<string name="i2ptunnel_wizard_k_dest">Destinació</string>
|
||||
<string name="next">Següent</string>
|
||||
<string name="prev">Anterior</string>
|
||||
<string name="finish">Envia</string>
|
||||
<string name="review">Revisa</string>
|
||||
<string name="enabled">Activat</string>
|
||||
<string name="i2ptunnel_wizard_desc_desc">Una descripció del túnel. És opcional i purament informativa.</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Voleu crear el túnel?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Crea el túnel</string>
|
||||
<string name="i2ptunnel_view_access_point">Punt d\'accés</string>
|
||||
<string name="edit_tunnel">Edita el túnel</string>
|
||||
<string name="name">Nom</string>
|
||||
<string name="description">Descripció</string>
|
||||
<string name="tunnel_cat_ports">Ports locals</string>
|
||||
<string name="shared_client">Client compartit</string>
|
||||
<string name="client_ssl">Client SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">Els clients han d\'usar SSL per a connectar-se</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="use_ssl">Usa SSL</string>
|
||||
<string name="profile">Perfil</string>
|
||||
<string name="profile_interactive">Connexió interactiva</string>
|
||||
<string name="access_control">Control d\'accés</string>
|
||||
<string name="access_list">Llista d\'accés</string>
|
||||
<string name="client_connection_limits">Límit de connexions del client</string>
|
||||
<string name="connections_per_minute">Connexions per minut</string>
|
||||
<string name="connections_per_hour">Connexions per hora</string>
|
||||
<string name="connections_per_day">Connexions per dia</string>
|
||||
<string name="total_connection_limits">Límits totals de connexió</string>
|
||||
<string name="total_connections_per_minute">Connexions totals per minut</string>
|
||||
<string name="total_connections_per_hour">Connexions totals per hora</string>
|
||||
<string name="total_connections_per_day">Connexions totals per dia</string>
|
||||
<string name="max_active_connections">Connexions actives màximes</string>
|
||||
<string name="num_per_minute">%s per minut</string>
|
||||
<string name="num_per_hour">%s per hora</string>
|
||||
<string name="num_per_day">%s per dia</string>
|
||||
<string name="unlimited">Il·limitat</string>
|
||||
<string name="set_zero_for_unlimited">Definiu 0 per a il·limitades</string>
|
||||
<string name="post_limits">Límits POST</string>
|
||||
<string name="num_minutes">%s hores</string>
|
||||
<string name="username">Nom d\'usuari</string>
|
||||
<string name="password">Contrasenya</string>
|
||||
<string name="signature_type">Tipus de signatura</string>
|
||||
<string name="custom_options">Opcions personalitzades</string>
|
||||
<string name="no_messages">Sense missatges</string>
|
||||
<string name="copy_logs">Copia registres</string>
|
||||
<string name="i2p_android_error_logs">Registres d\'error d\'I2P Android</string>
|
||||
<string name="i2p_android_logs">Registres I2P Android</string>
|
||||
<string name="error_logs_copied_to_clipboard">S\'han copiat els registres d\'error al porta-retalls</string>
|
||||
<string name="label_browser_configuration">Configuració del navegador</string>
|
||||
</resources>
|
||||
|
@ -30,6 +30,7 @@
|
||||
<string name="testing">Erprobung</string>
|
||||
<string name="firewalled">Mit Firewall</string>
|
||||
<string name="symmetric_nat">Symmetrisches NAT</string>
|
||||
<string name="net_status_error_i2cp">Klientenmanager I2CP Fehler - bitte Fehlerberichte überprüfen</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Zeitabweichung von %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Nicht aufgelöste TCP-Adresse</string>
|
||||
@ -80,11 +81,13 @@
|
||||
<string name="router_not_running">Der Router läuft nicht.</string>
|
||||
<string name="router_shutting_down">Der Router fährt herunter.</string>
|
||||
<string name="stats_not_ready">Der Statistikmanager ist noch nicht bereit. Versuchen Sie es später noch einmal.</string>
|
||||
<string name="select_an_address">Eine Adresse auswählen</string>
|
||||
<string name="no_graphs_configured">Es wurden keine Graphen konfiguriert. Sie können die Statistiken zum Erstellen der Graphen im Einstellungsmenü auswählen. Jede Änderung wird nach 60 Sekunden aktiv werden.</string>
|
||||
<string name="configure_graphs">Graphen konfigurieren</string>
|
||||
<string name="graphs_not_ready">Graphen sind noch nicht bereit. Versuchen Sie es später erneut.</string>
|
||||
<string name="statistics">Statistiken</string>
|
||||
<string name="routers">Router</string>
|
||||
<string name="leasesets">LeaseSet</string>
|
||||
<string name="countries">Länder</string>
|
||||
<string name="country">Land</string>
|
||||
<string name="transport">Übertragungen</string>
|
||||
@ -106,7 +109,7 @@
|
||||
<string name="notification_status_stopping_after_net">Netzwerk getrennt, I2P wird gestoppt</string>
|
||||
<string name="notification_status_shutdown_cancelled">Herunterfahren abgebrochen</string>
|
||||
<string name="notification_status_shutting_down">I2P fährt herunter</string>
|
||||
<string name="notification_status_bw">Bandbreite: %1$s KB/s eingehend / %2$s KB/s ausgehend</string>
|
||||
<string name="notification_status_bw">Bandbreite: %1$sB/s eingehend / %2$sB/s ausgehend</string>
|
||||
<string name="notification_status_peers">Teilnehmer: %1$d aktiv, %2$d bekannt</string>
|
||||
<string name="notification_status_expl">Erkundungstunnel: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Kliententunnel: %1$d/%2$d</string>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<string name="label_i2ptunnel_server">Túneles de servidor</string>
|
||||
<string name="label_logs">Registros (logs)</string>
|
||||
<string name="label_error_logs">Registros (logs) de errores</string>
|
||||
<string name="label_news">Novedades de la consola</string>
|
||||
<string name="label_news">Noticias de la consola</string>
|
||||
<string name="label_peers_status">Pares (peers)</string>
|
||||
<string name="label_release_notes">Notas de versiones</string>
|
||||
<string name="label_licenses">Licencias</string>
|
||||
@ -74,13 +74,14 @@
|
||||
<string name="action_refresh">Refrescar</string>
|
||||
<string name="hint_search_addressbook">Buscar en la libreta de direcciones</string>
|
||||
<string name="action_reload_subscriptions">Volver a cargar suscripciones</string>
|
||||
<string name="news_last_updated">Última actualización de las novedades de consola hace %s</string>
|
||||
<string name="news_last_checked">Última comprobación de las novedades de consola hace %s</string>
|
||||
<string name="news_updated">Novedades de consola actualizadas</string>
|
||||
<string name="view_news">Pulse para ver las últimas novedades de consola de I2P</string>
|
||||
<string name="news_last_updated">Última actualización de las noticias hace %s</string>
|
||||
<string name="news_last_checked">Última comprobación de las noticias hace %s</string>
|
||||
<string name="news_updated">Se han actualizado las noticias</string>
|
||||
<string name="view_news">Pulse para ver las últimas noticias de I2P</string>
|
||||
<string name="router_not_running">El router I2P no está en marcha.</string>
|
||||
<string name="router_shutting_down">El router I2P se está cerrando.</string>
|
||||
<string name="stats_not_ready">El administrador de estadísticas aún no está listo. Inténtelo de nuevo más tarde.</string>
|
||||
<string name="select_an_address">Seleccione una dirección.</string>
|
||||
<string name="no_graphs_configured">No se ha configurado ninguna gráfica. Puede escoger las estadísticas a graficar en el menú de configuración. Cualquier cambio tendrá efecto después de 60 segundos.</string>
|
||||
<string name="configure_graphs">Configurar gráficas</string>
|
||||
<string name="graphs_not_ready">Las gráficas aún no están listas. Inténtelo de nuevo más tarde.</string>
|
||||
@ -108,7 +109,7 @@
|
||||
<string name="notification_status_stopping_after_net">Red desconectada, deteniendo I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Cierre cancelado</string>
|
||||
<string name="notification_status_shutting_down">I2P se está cerrando</string>
|
||||
<string name="notification_status_bw">Ancho de banda: %1$s KBps bajada / %2$s KBps subida</string>
|
||||
<string name="notification_status_bw">Ancho de banda: %1$sBps bajada / %2$sBps subida</string>
|
||||
<string name="notification_status_peers">Pares: %1$d activos, %2$d conocidos</string>
|
||||
<string name="notification_status_expl">Túneles exploratorios: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túneles de cliente: %1$d/%2$d</string>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">I2P-logo</string>
|
||||
<string name="choose_language">Valitse kieli</string>
|
||||
<string name="welcome_new_install">Tervetuloa I2P-sovellukseen! Täsmä sovellus on ALFA-ohjelmisto ja se ei tarjoa vahvaa nimettömyyttä. Lue julkaisutiedot ja linsessitiedot.</string>
|
||||
<string name="welcome_new_install">Tervetuloa I2P-sovellukseen! Tämä sovellus on ALFA-ohjelmisto ja se ei tarjoa vahvaa nimettömyyttä. Lue julkaisutiedot ja lisenssitiedot.</string>
|
||||
<string name="welcome_new_version">Uusi versio asennettu. Lue julkaisutiedot. Versio:</string>
|
||||
<string name="label_tunnels">Tunnelit</string>
|
||||
<string name="label_status">Tila</string>
|
||||
@ -24,15 +24,20 @@
|
||||
<string name="button_router_graceful">I2P sulkeutuu %s</string>
|
||||
<string name="button_shutdown_now">Pitkä painallus nyt pysäyttämiseksi</string>
|
||||
<string name="button_cancel_graceful">Pitkä painallus sulkemisen perumiseksi</string>
|
||||
<string name="no_internet">Internet-yhteys ei ole käytettävissä</string>
|
||||
<string name="hidden">Piilotettu</string>
|
||||
<string name="testing">Testataan</string>
|
||||
<string name="firewalled">Palomuuritettu</string>
|
||||
<string name="symmetric_nat">Symmetrinen NAT</string>
|
||||
<string name="net_status_error_i2cp">Asiakasohjelmahallinnan I2CP-virhe - tarkista lokitiedostot</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_unresolved_tcp">Ratkaisematon TCP-osoite</string>
|
||||
<string name="net_status_error_private_tcp">Ykstyinen TCP-osoite</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Palomuuritettu tuleva TCP otettu käyttöön</string>
|
||||
<string name="net_status_info_disconnected">Yhteys poikki - tarkista verkkoyhteys</string>
|
||||
<string name="net_status_error_udp_port">UDP-portti käytössä - vaihda asetukset ja käynnistä uudelleen</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP poissa käytöstä ja tuleva TCP-verkkotietokone/-portti ei ole asetettu</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Palomuuritettu UDP-poiskytkettynä</string>
|
||||
<string name="shared_clients">Jaetut asiakkaat</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">A</string>
|
||||
@ -64,6 +69,7 @@
|
||||
<string name="news_updated">Uutiset päivitetty</string>
|
||||
<string name="router_not_running">Reititin ei ole käynnissä.</string>
|
||||
<string name="router_shutting_down">Reititin sulkeutuu.</string>
|
||||
<string name="select_an_address">Valitse osoite.</string>
|
||||
<string name="statistics">Tilastot</string>
|
||||
<string name="routers">Reitittimet</string>
|
||||
<string name="countries">Maat</string>
|
||||
@ -82,7 +88,6 @@
|
||||
<string name="notification_status_stopping_after_net">Verkkoyhteys katkesi, pysäytetään I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Sulkeminen peruttu</string>
|
||||
<string name="notification_status_shutting_down">I2P on sulkeutumassa</string>
|
||||
<string name="notification_status_bw">Kaistanleveys: %1$s kilotavua/s alaspäin / %2$s kilotavua/s ylöspäin</string>
|
||||
<string name="notification_status_peers">Vertaisverkkovastaanottajaa: %1$d aktiivista, %2$d tunnettua</string>
|
||||
<string name="notification_status_client">Asiakastunnelit: %1$d/%2$d</string>
|
||||
<string name="menu_settings">Asetukset</string>
|
||||
|
@ -51,7 +51,7 @@
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Aucun tunnel n\'est encore actif.</string>
|
||||
<string name="download">Récéption</string>
|
||||
<string name="download">Réception</string>
|
||||
<string name="upload">Envoi</string>
|
||||
<string name="configure_browser_title">Configurer le navigateur ?</string>
|
||||
<string name="configure_browser_for_i2p">Voudriez-vous configurer un navigateur pour voir les sites d\'I2P ? (vous pouvez aussi faire cela plus tard depuis le menu d\'aide).</string>
|
||||
@ -81,6 +81,7 @@
|
||||
<string name="router_not_running">Le routeur ne fonctionne pas.</string>
|
||||
<string name="router_shutting_down">Le routeur s\'arrête.</string>
|
||||
<string name="stats_not_ready">Le gestionnaire de statistiques n\'est pas encore prêt. Réessayez plus tard.</string>
|
||||
<string name="select_an_address">Sélectionnez une adresse.</string>
|
||||
<string name="no_graphs_configured">Aucun graphique n\'a été configuré. Vous pouvez choisir les statistiques à afficher dans les paramètres. Tout changement prendra effet après 60 secondes.</string>
|
||||
<string name="configure_graphs">Configurer les graphiques</string>
|
||||
<string name="graphs_not_ready">Les graphiques ne sont pas encore prêts. Veuillez réessayer plus tard.</string>
|
||||
@ -108,13 +109,13 @@
|
||||
<string name="notification_status_stopping_after_net">Réseau déconnecté, arrêt d\'I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Arrêt annulé</string>
|
||||
<string name="notification_status_shutting_down">I2P est en cours d\'arrêt</string>
|
||||
<string name="notification_status_bw">Bande passante : %1$s KBps down / %2$s KBps up</string>
|
||||
<string name="notification_status_bw">Bande passante : %1$sBps down / %2$sBps up</string>
|
||||
<string name="notification_status_peers">Pairs : %1$d actifs, %2$d connus</string>
|
||||
<string name="notification_status_expl">Tunnels exploratoires : %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Tunnels client : %1$d/%2$d</string>
|
||||
<string name="menu_settings">Paramètres</string>
|
||||
<string name="settings_enable">Activer</string>
|
||||
<string name="settings_desc_subscriptions">URLs d\'abonnement</string>
|
||||
<string name="settings_desc_subscriptions">URL d\'abonnement</string>
|
||||
<string name="settings_label_bandwidth_net">Bande passante et réseau</string>
|
||||
<string name="settings_label_startOnBoot">Démarrer I2P lors du boot</string>
|
||||
<string name="settings_desc_startOnBoot">Se connecter automatiquement à I2P lorsque Android démarre</string>
|
||||
@ -283,7 +284,7 @@
|
||||
<string name="reject_inproxies">Rejeter les inproxies</string>
|
||||
<string name="tunnel_summ_reject_inproxies">Permettre seulement aux utilisateurs I2P de se connecter</string>
|
||||
<string name="unique_local">Local unique</string>
|
||||
<string name="tunnel_summ_unique_local">Utiliser des IPs localhost uniques pour chaque client</string>
|
||||
<string name="tunnel_summ_unique_local">Utiliser des IP localhost uniques pour chaque client</string>
|
||||
<string name="multihome">Multi domicile</string>
|
||||
<string name="tunnel_summ_multihome">Permettre les optimisations multi domiciles</string>
|
||||
<string name="client_connection_limits">Limites de clients connectés</string>
|
||||
|
@ -2,10 +2,13 @@
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">Logo I2P</string>
|
||||
<string name="choose_language">Scegli lingua</string>
|
||||
<string name="welcome_new_install">Benvenuto su I2P! Questa app è ancora in versione preliminare e non fornisce un anonimato robusto. Leggi le note di rilascio e le informazioni sulla licenza.</string>
|
||||
<string name="welcome_new_version">Nuova versione installata. Leggi le note di rilascio. Versione:</string>
|
||||
<string name="label_tunnels">Tunnel</string>
|
||||
<string name="label_status">Stato</string>
|
||||
<string name="label_console">Console</string>
|
||||
<string name="label_addresses">Indirizzi</string>
|
||||
<string name="label_addressbook">Rubrica</string>
|
||||
<string name="label_i2ptunnel_client">I tunnel del client</string>
|
||||
<string name="label_i2ptunnel_server">I tunnel del server</string>
|
||||
@ -19,10 +22,37 @@
|
||||
<string name="label_graphs">Grafici</string>
|
||||
<string name="button_router_off">Tieni premuto per avviare I2P</string>
|
||||
<string name="button_router_on">I2P è in funzione (tieni premuto per fermare)</string>
|
||||
<string name="button_router_graceful">I2P si chiuderà tra %s</string>
|
||||
<string name="button_shutdown_now">Tieni premuto per avviare I2P</string>
|
||||
<string name="button_cancel_graceful">Tieni premuto per annullare lo spegnimento</string>
|
||||
<string name="no_internet">Nessuna connessione Internet disponibile</string>
|
||||
<string name="hidden">Nascosto</string>
|
||||
<string name="testing">Test</string>
|
||||
<string name="firewalled">Bloccato dal Firewall</string>
|
||||
<string name="symmetric_nat">NAT simmetrico</string>
|
||||
<string name="net_status_error_i2cp">Errore del Gestore di Client I2CP - controllare i log </string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Disallineamento del Clock di %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Indirizzo TCP non risolto</string>
|
||||
<string name="net_status_error_private_tcp">Indirizzo TCP Privato</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Bloccato da firewall con TCP in entrata abilitato</string>
|
||||
<string name="net_status_warn_firewalled_floodfill">Bloccato dal Firewall e Riempimento</string>
|
||||
<string name="net_status_info_disconnected">Disconesso - controlla la connessione a internet</string>
|
||||
<string name="net_status_error_udp_port">Porta UDP già utilizzata - cambia le impostazioni e riavvia</string>
|
||||
<string name="net_status_error_no_active_peers">Nessun peer attivo - controlla connessione a internet e firewall</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP disabilitato e porta/host TCP in entrata non configurato</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Bloccato dal firewall con UDP disabilitato</string>
|
||||
<string name="shared_clients">Client condivisi</string>
|
||||
<string name="uptime">Intervallo di attività</string>
|
||||
<string name="active_peers">Peer attivi</string>
|
||||
<string name="known_peers">Peer conosciuti</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Ancora nessun tunnel in funzione.</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="upload">Upload</string>
|
||||
<string name="configure_browser_title">Configurare il browser?</string>
|
||||
<string name="configure_browser_for_i2p">Vuoi configurare il tuo browser per visualizzare siti I2P? (Puoi anche farlo in seguito dal menù di aiuto)</string>
|
||||
<string name="first_start_title">Congratulazioni per aver installato I2P!</string>
|
||||
@ -44,13 +74,42 @@
|
||||
<string name="action_refresh">Aggiorna </string>
|
||||
<string name="hint_search_addressbook">Cerca nella rubrica</string>
|
||||
<string name="action_reload_subscriptions">Ricarica sottoscrizioni</string>
|
||||
<string name="news_last_updated">News aggiornate %s fa.</string>
|
||||
<string name="news_last_checked">News controllate %s fa.</string>
|
||||
<string name="news_updated">News aggiornate</string>
|
||||
<string name="view_news">Tocca per vedere le ultime news di I2P</string>
|
||||
<string name="router_not_running">Il router non sta funzionando.</string>
|
||||
<string name="router_shutting_down">Il router si sta spegnendo.</string>
|
||||
<string name="stats_not_ready">Il gestore delle statistiche non è ancora pronto. Riprova più tardi.</string>
|
||||
<string name="select_an_address">Seleziona un indirizzo.</string>
|
||||
<string name="no_graphs_configured">Nessun grafico configurato. Puoi scegliere le statistiche da graficare nel menu impostazioni. Ogni cambiamento entrerà in azione dopo 60 secondi.</string>
|
||||
<string name="configure_graphs">Configura grafici</string>
|
||||
<string name="graphs_not_ready">I grafici non sono ancora pronti. Riprova più tardi.</string>
|
||||
<string name="statistics">Statistiche</string>
|
||||
<string name="routers">Router</string>
|
||||
<string name="leasesets">LeaseSets</string>
|
||||
<string name="countries">Paesi</string>
|
||||
<string name="country">Paese</string>
|
||||
<string name="transport">Trasporto</string>
|
||||
<string name="versions">Versioni</string>
|
||||
<string name="version">Versione</string>
|
||||
<string name="count">Conteggio</string>
|
||||
<string name="tname_0">Nascosto o in avvio</string>
|
||||
<string name="netdb_routers_empty">Nessun router nel tuo NetDB.</string>
|
||||
<string name="netdb_leases_empty">Nessun LeaseSet nel tuo NetDB.</string>
|
||||
<string name="notification_status_bw">Banda: %1$s KBps ricezione / %2$s KBps invio</string>
|
||||
<string name="notification_status_starting">I2P si sta avviando</string>
|
||||
<string name="notification_status_restarting">I2P si sta riavviando</string>
|
||||
<string name="notification_status_waiting">I2P è in attesa di una connessione a internet</string>
|
||||
<string name="notification_status_starting_after_waiting">Connesso a internet, I2P si sta avviando</string>
|
||||
<string name="notification_status_running">I2P è in funzione</string>
|
||||
<string name="notification_status_client_ready">I tunnel di client sono pronti</string>
|
||||
<string name="notification_status_client_down">I tunnel di client sono spenti</string>
|
||||
<string name="notification_status_graceful">Chiusura I2P in %s</string>
|
||||
<string name="notification_status_stopping">I2P in chiusura</string>
|
||||
<string name="notification_status_stopping_after_net">Disconnesso da internet, I2P in spegnimento</string>
|
||||
<string name="notification_status_shutdown_cancelled">Spegnimento cancellato</string>
|
||||
<string name="notification_status_shutting_down">I2P si sta spegnendo</string>
|
||||
<string name="notification_status_bw">Banda: %1$sBps ricezione / %2$sBps invio</string>
|
||||
<string name="notification_status_peers">Peer: %1$d attivo, %2$d conosciuto</string>
|
||||
<string name="notification_status_expl">Tunnel d\'esplorazione: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Tunnel del client : %1$d/%2$d</string>
|
||||
@ -77,6 +136,9 @@
|
||||
<string name="settings_desc_upnp">Apri automaticamente le porte sul firewall</string>
|
||||
<string name="settings_label_logging">Registrazione eventi</string>
|
||||
<string name="settings_label_default_log_level">Livello di registrazione eventi predefinito</string>
|
||||
<string name="settings_label_appearance">Aspetto</string>
|
||||
<string name="settings_label_language">Lingua</string>
|
||||
<string name="settings_default">Predefinito</string>
|
||||
<string name="settings_label_advanced">Avanzato</string>
|
||||
<string name="settings_label_showStats">Statistiche del router</string>
|
||||
<string name="settings_summ_showStats">Mostra le statistiche avanzate nel pannello principale</string>
|
||||
@ -100,6 +162,7 @@
|
||||
<string name="settings_label_expl_backupQuantity">Quantità di backup</string>
|
||||
<string name="settings_summ_expl_backupQuantity">%s tunnel</string>
|
||||
<string name="settings_desc_expl_backupQuantity">Quantità di backup di tunnel</string>
|
||||
<string name="settings_need_transport_enabled">Devi avere almento un trasporto attivato</string>
|
||||
<string name="settings_router_restart_required">Per favore, riavvia I2P per applicare le modifiche</string>
|
||||
<string name="menu_about">Informazioni su</string>
|
||||
<string name="about_version">Versione:</string>
|
||||
@ -109,6 +172,10 @@
|
||||
<string name="about_volunteer">Vuoi aiutarci a creare un\'app migliore? Offriti volontario sul forum di Android:</string>
|
||||
<string name="about_donate">Vuoi donare al progetto denaro o bitcoin per comprare dispositivi Android, su cui effettuare sviluppo e test dell\'app? Vai qui:</string>
|
||||
<string name="menu_help">Aiuto</string>
|
||||
<string name="general">Generale</string>
|
||||
<string name="label_router">Indirizzi pubblici</string>
|
||||
<string name="label_private">Indirizzi privati</string>
|
||||
<string name="addressbook_is_empty">La rubrica è vuota</string>
|
||||
<string name="addressbook_search_header">%s trovato</string>
|
||||
<string name="addressbook_add_wizard_k_name">Nome</string>
|
||||
<string name="addressbook_add_wizard_k_destination">Destinazione</string>
|
||||
@ -134,6 +201,8 @@
|
||||
<string name="install_recommended_app">Vuoi installare l\'applicazione raccomandata?</string>
|
||||
<string name="app_needed_for_this_tunnel_type">Hai bisogno di installare una applicazione per utilizzare questo tunnel. Vuoi installare l\'applicazione raccomandata?</string>
|
||||
<string name="i2ptunnel_not_initialized">I tunnel non sono ancora stati inizializzati, prova a ricaricare tra un paio di minuti.</string>
|
||||
<string name="no_configured_client_tunnels">Nessun tunnel di client configurato</string>
|
||||
<string name="no_configured_server_tunnels">Nessun tunnel di server configurato</string>
|
||||
<string name="i2ptunnel_new_tunnel">Nuovo tunnel</string>
|
||||
<string name="i2ptunnel_msg_config_saved">Modifiche alla configurazione salvate.</string>
|
||||
<string name="i2ptunnel_msg_config_save_failed">Errore nel salvataggio della configurazione</string>
|
||||
@ -161,6 +230,7 @@
|
||||
<string name="enabled">Abilita</string>
|
||||
<string name="i2ptunnel_wizard_desc_name">Il nome del tunnel, per identificarlo nell\'elenco dei tunnel.</string>
|
||||
<string name="i2ptunnel_wizard_desc_desc">Una descrizione del tunnel. È un attributo opzionale a puro titolo informativo.</string>
|
||||
<string name="i2ptunnel_wizard_desc_dest">Scrivi la destinazione I2P del servizio a cui questo client tunnel dovrebbe connettersi. Questa potrebbe essere la chiave base 64 di destinazione, o un hostname I2P della tua rubrica.</string>
|
||||
<string name="i2ptunnel_wizard_desc_outproxies">Se conosci qualche proxy di uscita per questo tipo di tunnel (HTTP oppure SOCKS), inseriscilo. Per inserire più proxy, separa i valori usando le virgole.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_host">Questo è l\'indirizzo IP sul quale è in funzione il servizio, che generalmente risiede sulla stessa macchina: pertanto si assume il valore 127.0.0.1.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_port">Questa è la porta per la quale il servizio accetta connessioni.</string>
|
||||
@ -169,6 +239,118 @@
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">Vuoi che il tunnel si avvii automaticamente insieme al router?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Creare il tunnel?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Crea tunnel</string>
|
||||
<string name="i2ptunnel_view_target">Destinazione</string>
|
||||
<string name="i2ptunnel_view_access_point">Punto di Accesso</string>
|
||||
<string name="i2ptunnel_view_autostart">Avvio automatico</string>
|
||||
<string name="edit_tunnel">Modifica tunnel</string>
|
||||
<string name="name">Nome</string>
|
||||
<string name="description">Descrizione</string>
|
||||
<string name="auto_start">Avvio automatico</string>
|
||||
<string name="tunnel_summ_auto_start">Avvia il tunnel insieme al router</string>
|
||||
<string name="tunnel_cat_ports">Porte locali</string>
|
||||
<string name="shared_client">Client Condiviso</string>
|
||||
<string name="tunnel_summ_shared_client">Usa la stessa Destinazione e tunnel degli altri client condivisi</string>
|
||||
<string name="target_destination">Destinazione target</string>
|
||||
<string name="persistent_key">Chiave persistente</string>
|
||||
<string name="persistent_key_conflict_title">Disabilita nuova chiavi alla riapertura?</string>
|
||||
<string name="persistent_key_conflict_msg">Non puoi attivare chiavi persistenti quando il tunnel è settato per generare nuovi chiavi alla riapertura. Vuoi disabilitare le chiavi nuove alla riapertura?</string>
|
||||
<string name="tunnel_summ_persistent_key">Conserva questa destinazione di tunnel quando si riavvia</string>
|
||||
<string name="reachable_on">Raggiungibile su</string>
|
||||
<string name="listen_port">Porta di ascolto</string>
|
||||
<string name="client_ssl">Client SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">I client devono usare SSL per connettersi</string>
|
||||
<string name="outproxies">Proxy in uscita</string>
|
||||
<string name="ssl_outproxies">Proxy di uscita SSL</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="enable_dcc">Abilita DCC</string>
|
||||
<string name="tunnel_summ_enable_dcc">Permetti ai client IRC di usare DCC</string>
|
||||
<string name="website_domain_name">Nome a dominio del sito</string>
|
||||
<string name="target_host">Host di destinazione</string>
|
||||
<string name="target_port">Porta di destinazione</string>
|
||||
<string name="use_ssl">Usa SSL</string>
|
||||
<string name="tunnel_summ_use_ssl">Usa SSL per connetterti alla destinazione</string>
|
||||
<string name="tunnel_parameters">Parametri tunnel</string>
|
||||
<string name="profile">Profilo</string>
|
||||
<string name="profile_bulk">Connessione di massa (download/siti web/BT)</string>
|
||||
<string name="profile_interactive">Connessione interattiva</string>
|
||||
<string name="delay_connect">Ritarda connessione</string>
|
||||
<string name="tunnel_summ_delay_connect">Attiva per connessioni request/response</string>
|
||||
<string name="access_control">Controllo di accesso</string>
|
||||
<string name="restricted_access">Accesso ristretto</string>
|
||||
<string name="disabled">Disabilitato</string>
|
||||
<string name="whitelist">Eccezioni</string>
|
||||
<string name="blacklist">Lista nera</string>
|
||||
<string name="access_list">Lista di accesso</string>
|
||||
<string name="reject_inproxies">Rifiuta proxy in entrata</string>
|
||||
<string name="tunnel_summ_reject_inproxies">Permetti la connessione solo a utenti I2P</string>
|
||||
<string name="unique_local">Unique locale</string>
|
||||
<string name="tunnel_summ_unique_local">Usa IP localhost unici per ogni client</string>
|
||||
<string name="multihome">Multihome</string>
|
||||
<string name="tunnel_summ_multihome">Attiva ottimizzazioni multihoming</string>
|
||||
<string name="client_connection_limits">Limiti di connessioni del client</string>
|
||||
<string name="connections_per_minute">Connessioni al minuto</string>
|
||||
<string name="connections_per_hour">Connessioni all\'ora</string>
|
||||
<string name="connections_per_day">Connessioni al giorn</string>
|
||||
<string name="total_connection_limits">Limiti di connessione totali</string>
|
||||
<string name="total_connections_per_minute">Connessioni totali al minuto</string>
|
||||
<string name="total_connections_per_hour">Connessioni totali all\'ora</string>
|
||||
<string name="total_connections_per_day">Connessioni totali al giorno</string>
|
||||
<string name="max_active_connections">Massime connessioni attive</string>
|
||||
<string name="num_per_minute">%s al minuto</string>
|
||||
<string name="num_per_hour">%s all\'ora</string>
|
||||
<string name="num_per_day">%s al giorno</string>
|
||||
<string name="unlimited">Illimitato</string>
|
||||
<string name="set_zero_for_unlimited">Imposta 0 per illimitato</string>
|
||||
<string name="post_limits">Limiti POST</string>
|
||||
<string name="limit_period">Periodo del limite</string>
|
||||
<string name="client_posts_per_period">POST del client nel periodo</string>
|
||||
<string name="client_ban_length">Lunghezza di esclusione del client</string>
|
||||
<string name="total_posts_per_period">POST totali nel periodo</string>
|
||||
<string name="total_ban_length">Lunghezza totale di esclusione</string>
|
||||
<string name="power_saving">Risparmio di energia</string>
|
||||
<string name="delay_open">Ritarda apertura</string>
|
||||
<string name="tunnel_summ_delay_open">Ritarda apertura del tunnel finchè non è richiesto</string>
|
||||
<string name="reduce_quantity">Riduci quantità</string>
|
||||
<string name="tunnel_summ_reduce_quantity">Riduci la quantità di tunnel quando inattivo</string>
|
||||
<string name="idle_time">Tempo di inattività</string>
|
||||
<string name="num_minutes">%s minuti</string>
|
||||
<string name="reduced_tunnel_quantity">Riduci la quantità di tunnel</string>
|
||||
<string name="close_tunnels">Chiudi i tunnel quando inattivo</string>
|
||||
<string name="new_keys_on_reopen">Nuove chiavi alla riapertura</string>
|
||||
<string name="new_keys_on_reopen_conflict_title">Disabilita chiavi persistenti?</string>
|
||||
<string name="new_keys_on_reopen_conflict_msg">Non puoi attivare nuove chiavi alla riapertura quando il tunnel è settato per usare chiavi permanenti. Vuoi disabilitare le chiavi persistenti?</string>
|
||||
<string name="http_client">Client HTTP</string>
|
||||
<string name="tunnel_summ_user_agent">Trasmetti header \'User-Agent\'</string>
|
||||
<string name="tunnel_summ_referer">Trasmetti header \'Referer\'</string>
|
||||
<string name="tunnel_summ_accept">Trasmetti header \'Accept-*\'</string>
|
||||
<string name="tunnel_summ_allow_ssl">Permetti SSL per gli indirizzi I2P</string>
|
||||
<string name="jump_url_list">Salta lista URL</string>
|
||||
<string name="proxy_auth">Autorizzazione proxy</string>
|
||||
<string name="tunnel_summ_proxy_auth">Richiedi login per utilizzare questo proxy</string>
|
||||
<string name="username">Nome utente</string>
|
||||
<string name="password">Password</string>
|
||||
<string name="outproxy_auth">Autorizzazione proxy in uscita</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Il login richiesto per il proxy in uscita</string>
|
||||
<string name="other">Altro</string>
|
||||
<string name="signature_type">Tipo firma</string>
|
||||
<string name="custom_options">Opzioni personalizzate</string>
|
||||
<string name="all">Tutto</string>
|
||||
<string name="no_messages">Nessun messaggio</string>
|
||||
<string name="no_error_messages">Nessun messaggio di errore</string>
|
||||
<plurals name="log_error_messages">
|
||||
<item quantity="one">Un messaggio di errore</item>
|
||||
<item quantity="other">%d messaggi di errore, più recenti per primi</item>
|
||||
</plurals>
|
||||
<plurals name="log_messages">
|
||||
<item quantity="one">Un messaggio</item>
|
||||
<item quantity="other">%d messaggi, più recenti per primi</item>
|
||||
</plurals>
|
||||
<string name="log_entry">Record di log</string>
|
||||
<string name="copy_logs">Copia log</string>
|
||||
<string name="i2p_android_error_logs">Log di errori di I2P Android</string>
|
||||
<string name="i2p_android_logs">Log di I2P Android</string>
|
||||
<string name="error_logs_copied_to_clipboard">Log degli errori copiati negli appunti</string>
|
||||
<string name="logs_copied_to_clipboard">Log copiati negli appunti</string>
|
||||
<string name="label_browser_configuration">Configurazione del browser</string>
|
||||
<string name="unset">Annulla configurazione</string>
|
||||
</resources>
|
||||
|
@ -19,6 +19,7 @@
|
||||
<string name="label_graphs">グラフ</string>
|
||||
<string name="button_router_off">長押しして I2P を起動</string>
|
||||
<string name="button_router_on">I2P を起動中 (長押しで中止)</string>
|
||||
<string name="testing">テスト中</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">C</string>
|
||||
@ -51,7 +52,7 @@
|
||||
<string name="configure_graphs">グラフ設定</string>
|
||||
<string name="netdb_routers_empty">NetDB にルーターがありません。</string>
|
||||
<string name="netdb_leases_empty">NetDB にリースセットがありません。</string>
|
||||
<string name="notification_status_bw">帯域幅: %1$s KBps 下方向 / %2$s KBps 上方向</string>
|
||||
<string name="notification_status_bw">帯域幅: %1$sBps 下方向 / %2$sBps 上方向</string>
|
||||
<string name="notification_status_peers">ピア: %1$d アクティブ、 %2$d 既知</string>
|
||||
<string name="notification_status_expl">予備トンネル: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">クライアントトンネル: %1$d/%2$d</string>
|
||||
@ -222,8 +223,12 @@
|
||||
<string name="set_zero_for_unlimited">0=無制限</string>
|
||||
<string name="post_limits">投稿制限</string>
|
||||
<string name="power_saving">パワーセーブ</string>
|
||||
<string name="tunnel_summ_delay_open">要求されるまでトンネルのオープンを遅らせる</string>
|
||||
<string name="tunnel_summ_reduce_quantity">アイドル時トンネルの数を減らす</string>
|
||||
<string name="num_minutes">%s /分</string>
|
||||
<string name="close_tunnels">アイドル時トンネルを閉じる</string>
|
||||
<string name="http_client">HTTPクライアント</string>
|
||||
<string name="tunnel_summ_allow_ssl">I2PアドレスにSSLを使用可能にする</string>
|
||||
<string name="jump_url_list">ジャンプURLリスト</string>
|
||||
<string name="proxy_auth">プロキシ認証</string>
|
||||
<string name="tunnel_summ_proxy_auth">このプロキシを使用するにはログインが必要です</string>
|
||||
|
@ -81,6 +81,7 @@
|
||||
<string name="router_not_running">라우터가 실행중이지 않습니다.</string>
|
||||
<string name="router_shutting_down">라우터가 종료 중입니다.</string>
|
||||
<string name="stats_not_ready">통계 관리자가 아직 준비되지 않았습니다. 나중에 다시 시도하세요.</string>
|
||||
<string name="select_an_address">주소를 선택하세요.</string>
|
||||
<string name="no_graphs_configured">설정된 그래프가 없습니다. 설정 메뉴에서 그래프로 표시할 통계를 고를 수 있습니다. 모든 변경은 60초 후에 적용됩니다.</string>
|
||||
<string name="configure_graphs">그래프 설정</string>
|
||||
<string name="graphs_not_ready">그래프가 아직 준비되지 않았습니다. 나중에 다시 시도하세요.</string>
|
||||
@ -108,7 +109,7 @@
|
||||
<string name="notification_status_stopping_after_net">네트워크 끊김, I2P 멈추는 중</string>
|
||||
<string name="notification_status_shutdown_cancelled">종료 취소됨</string>
|
||||
<string name="notification_status_shutting_down">I2P 종료 중</string>
|
||||
<string name="notification_status_bw">대역폭: %1$s KBps 다운 / %2$s KBps 업로드</string>
|
||||
<string name="notification_status_bw">대역폭: %1$sBps 다운 / %2$sBps 업로드</string>
|
||||
<string name="notification_status_peers">피어들: %1$d 활성, %2$d 알려짐</string>
|
||||
<string name="notification_status_expl">예비 터널들: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">클라이언트 터널들: %1$d/%2$d</string>
|
||||
|
@ -19,7 +19,11 @@
|
||||
<string name="label_graphs">Grafer</string>
|
||||
<string name="button_router_off">Hold inne kappen for å starte I2P</string>
|
||||
<string name="button_router_on">I2P kjører (hold inne knappen for å stoppe)</string>
|
||||
<string name="testing">Tester</string>
|
||||
<string name="firewalled">Bak brannmur</string>
|
||||
<string name="symmetric_nat">Symmetrisk NAT</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="uptime">Oppetid</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">K</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
@ -51,7 +55,7 @@
|
||||
<string name="configure_graphs">Konfigurer grafer</string>
|
||||
<string name="netdb_routers_empty">Ingen rutere i din NetDB</string>
|
||||
<string name="netdb_leases_empty">Ingen LeaseSets i din NetDB.</string>
|
||||
<string name="notification_status_bw">Båndbredde: %1$s KBps ned / %2$s KBps opp</string>
|
||||
<string name="notification_status_bw">Båndbredde: %1$sBps ned / %2$sBps opp</string>
|
||||
<string name="notification_status_peers">Likemenn: %1$d aktive, %2$d kjente</string>
|
||||
<string name="notification_status_expl">Utforsknings-tunneler: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Klient-tunneler: %1$d/%2$d</string>
|
||||
|
@ -32,6 +32,7 @@
|
||||
<string name="symmetric_nat">Symmetrische NAT</string>
|
||||
<string name="net_status_error_i2cp">Cliëntbeheerder I2CP-fout - controleer logs</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Klok afwijking van %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Onopgelost TCP-adres</string>
|
||||
<string name="net_status_error_private_tcp">Privaat TCP-adres</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Gefirewalld met inkomende TCP aangezet</string>
|
||||
@ -49,6 +50,7 @@
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Er draaien nog geen tunnels</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="upload">Upload</string>
|
||||
<string name="configure_browser_title">Browser instellen?</string>
|
||||
@ -79,6 +81,7 @@
|
||||
<string name="router_not_running">De router is uit.</string>
|
||||
<string name="router_shutting_down">De router is aan het afsluiten.</string>
|
||||
<string name="stats_not_ready">De statistiekenbeheerder is nog niet klaar. Probeer het later opnieuw.</string>
|
||||
<string name="select_an_address">Selecteer een adres</string>
|
||||
<string name="no_graphs_configured">Geen grafieken ingesteld. Je kan de statistieken om in grafieken weer te geven instellen in het instellingenmenu. Alle wijzigingen vinden plaats na 60 seconden.</string>
|
||||
<string name="configure_graphs">Grafieken instellen</string>
|
||||
<string name="graphs_not_ready">Grafieken zijn nog niet klaar, probeer later opnieuw.</string>
|
||||
@ -106,7 +109,7 @@
|
||||
<string name="notification_status_stopping_after_net">Netwerk verbroken, I2P wordt gestopt</string>
|
||||
<string name="notification_status_shutdown_cancelled">Afsluiten geannuleerd</string>
|
||||
<string name="notification_status_shutting_down">I2P is aan het afsluiten</string>
|
||||
<string name="notification_status_bw">Bandbreedte: %1$s KBps down / %2$s KBps up</string>
|
||||
<string name="notification_status_bw">Bandbreedte: %1$sBps down / %2$sBps up</string>
|
||||
<string name="notification_status_peers">Peers: %1$d actief, %2$d bekend</string>
|
||||
<string name="notification_status_expl">Verkennende tunnels: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Cliënttunnels: %1$d/%2$d</string>
|
||||
@ -250,6 +253,8 @@
|
||||
<string name="target_destination">Doelbestemming</string>
|
||||
<string name="persistent_key">Blijvende sleutel</string>
|
||||
<string name="persistent_key_conflict_title">Nieuwe sleutels uitzetten bij herstarten?</string>
|
||||
<string name="persistent_key_conflict_msg">Je kunt vaste sleutels niet gebruiken wanneer de tunnel ingesteld is om bij herstart nieuwe sleutels aan te maken. Wil je deze functie uitzetten?</string>
|
||||
<string name="tunnel_summ_persistent_key">Bewaar deze tunnel\'s bestemming als hij opnieuw start</string>
|
||||
<string name="reachable_on">Bereikbaar op</string>
|
||||
<string name="listen_port">Luisterpoort</string>
|
||||
<string name="client_ssl">Cliënt-SSL</string>
|
||||
@ -266,13 +271,22 @@
|
||||
<string name="tunnel_summ_use_ssl">Gebruik SSL om met doel te verbinden</string>
|
||||
<string name="tunnel_parameters">Tunnelparameters</string>
|
||||
<string name="profile">Profiel</string>
|
||||
<string name="profile_bulk">Grote verbinding (downloads/websites/BT)</string>
|
||||
<string name="profile_interactive">Interactieve verbinding</string>
|
||||
<string name="delay_connect">Verbinden uitstellen</string>
|
||||
<string name="tunnel_summ_delay_connect">Zet dit aan voor request/response verbindigen</string>
|
||||
<string name="access_control">Toegangscontrole</string>
|
||||
<string name="restricted_access">Beperkte toegang</string>
|
||||
<string name="disabled">Uitgeschakeld</string>
|
||||
<string name="whitelist">Whitelist</string>
|
||||
<string name="blacklist">Blacklist</string>
|
||||
<string name="access_list">Toegangslijst</string>
|
||||
<string name="reject_inproxies">Inproxies weigeren</string>
|
||||
<string name="tunnel_summ_reject_inproxies">Enkel I2P-gebruikers toelaten te verbinden</string>
|
||||
<string name="unique_local">Unieke landinstelling</string>
|
||||
<string name="tunnel_summ_unique_local">Gebruik unieke localhost IP-adressen voor alle clients</string>
|
||||
<string name="multihome">Multihome</string>
|
||||
<string name="tunnel_summ_multihome">Zet multihoming optimalizaties aan</string>
|
||||
<string name="client_connection_limits">Cliënt-verbindingslimieten</string>
|
||||
<string name="connections_per_minute">Verbindingen per minuut</string>
|
||||
<string name="connections_per_hour">Verbindingen per uur</string>
|
||||
@ -295,6 +309,7 @@
|
||||
<string name="total_ban_length">Totale ban lengte</string>
|
||||
<string name="power_saving">Energiebesparing</string>
|
||||
<string name="delay_open">Openen uitstellen</string>
|
||||
<string name="tunnel_summ_delay_open">Vertraag het openen van een tunnel totdat dit nodig is</string>
|
||||
<string name="reduce_quantity">Hoeveelheid verminderen</string>
|
||||
<string name="tunnel_summ_reduce_quantity">Tunnel hoeveelheid verminderen bij inactiviteit</string>
|
||||
<string name="idle_time">Inactieve tijd</string>
|
||||
@ -302,15 +317,20 @@
|
||||
<string name="reduced_tunnel_quantity">Verlaagde tunnel hoeveelheid</string>
|
||||
<string name="close_tunnels">Tunnels sluiten bij inactiviteit</string>
|
||||
<string name="new_keys_on_reopen">Nieuwe sleutels bij herstarten</string>
|
||||
<string name="new_keys_on_reopen_conflict_title">Wil je vaste sleutesl uitzetten?</string>
|
||||
<string name="new_keys_on_reopen_conflict_msg">Wanneer de tunnel geconfigureerd is om vaste sleutels te gebruiken, kun je de functie van nieuwe sleutels bij herstart niet aanzetten. Wil je vaste sleutels uitzetten?</string>
|
||||
<string name="http_client">HTTP-cliënt</string>
|
||||
<string name="tunnel_summ_user_agent">Laar \'User-Agent\' header door</string>
|
||||
<string name="tunnel_summ_referer">Laat \'Referer\' header door</string>
|
||||
<string name="tunnel_summ_accept">laat \'Accept-*\' headers door</string>
|
||||
<string name="tunnel_summ_allow_ssl">SSL toestaan naar I2P adressen</string>
|
||||
<string name="jump_url_list">Lijst van Jump URLs</string>
|
||||
<string name="proxy_auth">Proxy toestemming</string>
|
||||
<string name="tunnel_summ_proxy_auth">Zorg ervoor dat inloggen nodig is voor deze proxy</string>
|
||||
<string name="username">Gebruikersnaam</string>
|
||||
<string name="password">Wachtwoord</string>
|
||||
<string name="outproxy_auth">Outproxy-authorisatie</string>
|
||||
<string name="tunnel_summ_outproxy_auth">De login die nodig is voor de proxy naar buiten</string>
|
||||
<string name="other">Overige</string>
|
||||
<string name="signature_type">Handtekeningstype</string>
|
||||
<string name="custom_options">Aangepaste opties</string>
|
||||
@ -325,6 +345,7 @@
|
||||
<item quantity="one">Een bericht</item>
|
||||
<item quantity="other">%d berichten, nieuwste eerst</item>
|
||||
</plurals>
|
||||
<string name="log_entry">Logboek Item</string>
|
||||
<string name="copy_logs">Kopieer logs</string>
|
||||
<string name="i2p_android_error_logs">I2P Android foutlogs</string>
|
||||
<string name="i2p_android_logs">I2P Android logs</string>
|
||||
|
@ -2,10 +2,13 @@
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">Logo I2P</string>
|
||||
<string name="choose_language">Wybierz język</string>
|
||||
<string name="welcome_new_install">Witamy w I2P! Aplikacja jest w fazie ALPHA i nie zapewnia mocnej anonimowości. Zalecamy zapoznanie się z listą zmian i licencją. </string>
|
||||
<string name="welcome_new_version">Nowa wersja zainstalowana. Przeczytaj listę zmian. Wersja:</string>
|
||||
<string name="label_tunnels">Tunele</string>
|
||||
<string name="label_status">Status</string>
|
||||
<string name="label_console">Konsola</string>
|
||||
<string name="label_addresses">Adresy</string>
|
||||
<string name="label_addressbook">Książka adresowa</string>
|
||||
<string name="label_i2ptunnel_client">Tunele klienta</string>
|
||||
<string name="label_i2ptunnel_server">Tunele serwerów</string>
|
||||
@ -19,11 +22,37 @@
|
||||
<string name="label_graphs">Wykresy</string>
|
||||
<string name="button_router_off">Przytrzymaj dłużej, aby uruchomić I2P</string>
|
||||
<string name="button_router_on">I2P jest włączone (dotknij na dłużej aby zatrzymać)</string>
|
||||
<string name="button_router_graceful">I2P zostanie wyłączone za %s</string>
|
||||
<string name="button_shutdown_now">Przytrzymaj dłużej, aby zatrzymać natychmiast</string>
|
||||
<string name="button_cancel_graceful">Przytrzymaj dłużej, aby anulować zamknięcie</string>
|
||||
<string name="no_internet">Brak połączenia z internetem</string>
|
||||
<string name="hidden">Ukryty</string>
|
||||
<string name="testing">Testuję</string>
|
||||
<string name="firewalled">Za zaporą sieciową</string>
|
||||
<string name="symmetric_nat">Symetryczny NAT</string>
|
||||
<string name="net_status_error_i2cp">Błąd Menedżera Klienta I2CP - sprawdź logi</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Odchylenie zegara o %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Nierozwiązany adres TCP</string>
|
||||
<string name="net_status_error_private_tcp">Prywatny adres TCP</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Włączona zapora akceptująca przychodzące pakiety TCP</string>
|
||||
<string name="net_status_warn_firewalled_floodfill">Za zaporą i floodfill</string>
|
||||
<string name="net_status_info_disconnected">Rozłączony - sprawdź połączenie z internetem.</string>
|
||||
<string name="net_status_error_udp_port">Port UDP w użyciu. Zmień ustawienia i zrestartuj.</string>
|
||||
<string name="net_status_error_no_active_peers">Brak aktywnych uczestników, sprawdź połączenie sieciowe i firewall</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP wyłączone i nazwa/port przychodzącego portu TCP nie ustawiona</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Włączona zapora z zablokowanym UDP</string>
|
||||
<string name="shared_clients">Współdzielone klienty</string>
|
||||
<string name="uptime">Czas działania</string>
|
||||
<string name="active_peers">Aktywni uczestnicy</string>
|
||||
<string name="known_peers">Znani uczestnicy</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<string name="char_client_tunnel">K</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Brak aktywnych tuneli</string>
|
||||
<string name="download">Pobieranie</string>
|
||||
<string name="upload">Wysyłanie</string>
|
||||
<string name="configure_browser_title">Konfigurować przeglądarkę?</string>
|
||||
<string name="configure_browser_for_i2p">Czy chciałbyś skonfigurować przeglądarkę, aby przeglądać strony I2P? (Możesz to zrobić później w wybierająć pomoc z menu.)</string>
|
||||
<string name="first_start_title">Gratulacje, zainstalowałeś I2P!</string>
|
||||
@ -45,13 +74,42 @@
|
||||
<string name="action_refresh">Odśwież</string>
|
||||
<string name="hint_search_addressbook">Szukaj w książce adresowej</string>
|
||||
<string name="action_reload_subscriptions">Odśwież subskrypcje</string>
|
||||
<string name="news_last_updated">Wiadomości uaktualnione %s temu.</string>
|
||||
<string name="news_last_checked">Wiadomości ostatnio sprawdzono %s temu.</string>
|
||||
<string name="news_updated">Wiadomości uaktualnione</string>
|
||||
<string name="view_news">Dotknij by zobaczyć najnowsze wiadomości z I2P</string>
|
||||
<string name="router_not_running">Router nie jest włączony.</string>
|
||||
<string name="router_shutting_down">Trwa wyłączanie routera</string>
|
||||
<string name="stats_not_ready">Menadżer statystyk nie jest jeszcze gotowy. Spróbuj później.</string>
|
||||
<string name="select_an_address">Wybierz adres.</string>
|
||||
<string name="no_graphs_configured">Żadne wykresy nie zostały skonfigurowane. Możesz wybrać statystyki graficzne w menu ustawień. Wszelkie zmiany wejdą w życie po upływie 60 sekund.</string>
|
||||
<string name="configure_graphs">Konfiguruj wykresy</string>
|
||||
<string name="graphs_not_ready">Wykresy nie są jeszcze gotowe. Spróbuj później.</string>
|
||||
<string name="statistics">Statystyki</string>
|
||||
<string name="routers">Rutery</string>
|
||||
<string name="leasesets">LeaseSety</string>
|
||||
<string name="countries">Kraje</string>
|
||||
<string name="country">Kraj</string>
|
||||
<string name="transport">Transport</string>
|
||||
<string name="versions">Wersje</string>
|
||||
<string name="version">Wersja</string>
|
||||
<string name="count">Licznik</string>
|
||||
<string name="tname_0">Ukryty lub uruchamia się</string>
|
||||
<string name="netdb_routers_empty">Brak routerów w Twoim NetDB.</string>
|
||||
<string name="netdb_leases_empty">Brak LeaseSets w Twoim NetDB.</string>
|
||||
<string name="notification_status_bw">Przepustowość: %1$s KBps pobieranie / %2$s KBps wysyłanie</string>
|
||||
<string name="notification_status_starting">Uruchamianie I2P!</string>
|
||||
<string name="notification_status_restarting">Ponowne uruchamianie I2P</string>
|
||||
<string name="notification_status_waiting">I2P oczekuje na połączenie z siecią</string>
|
||||
<string name="notification_status_starting_after_waiting">Sieć połączona, uruchamianie I2P</string>
|
||||
<string name="notification_status_running">I2P jest aktywne</string>
|
||||
<string name="notification_status_client_ready">Tunele klienta są gotowe</string>
|
||||
<string name="notification_status_client_down">Tunele klienta są nieaktywne</string>
|
||||
<string name="notification_status_graceful">Zatrzymanie I2P za %s</string>
|
||||
<string name="notification_status_stopping">Trwa zatrzymywanie I2P</string>
|
||||
<string name="notification_status_stopping_after_net">Sieć rozłączona, zatrzymywanie I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Anulowano zamknięcie</string>
|
||||
<string name="notification_status_shutting_down">Trwa wyłączanie I2P</string>
|
||||
<string name="notification_status_bw">Przepustowość: %1$sBps pobieranie / %2$sBps wysyłanie</string>
|
||||
<string name="notification_status_peers">Peery: %1$d aktywnych, %2$d znanych</string>
|
||||
<string name="notification_status_expl">Tunelów rozpoznawczych: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Tunele klienta: %1$d/%2$d</string>
|
||||
@ -78,6 +136,9 @@
|
||||
<string name="settings_desc_upnp">Otwórz porty firewall\'a automatycznie</string>
|
||||
<string name="settings_label_logging">Logowanie</string>
|
||||
<string name="settings_label_default_log_level">Domyślny level logowania</string>
|
||||
<string name="settings_label_appearance">Wygląd</string>
|
||||
<string name="settings_label_language">Język</string>
|
||||
<string name="settings_default">Domyślny</string>
|
||||
<string name="settings_label_advanced">Zaawansowane</string>
|
||||
<string name="settings_label_showStats">Statystyki Routera</string>
|
||||
<string name="settings_summ_showStats">Wyświetl zaawanowane statystyki w głównej konsoli</string>
|
||||
@ -112,6 +173,9 @@
|
||||
<string name="about_donate">Chcesz przesłać pieniądze lub bitcoiny, aby zakupić więcej Androidów dla rozwoju i testowania? Idź do:</string>
|
||||
<string name="menu_help">Pomoc</string>
|
||||
<string name="general">Ogólne</string>
|
||||
<string name="label_router">Adres publiczny</string>
|
||||
<string name="label_private">Adres prywatny</string>
|
||||
<string name="addressbook_is_empty">Książka adresowa jest pusta</string>
|
||||
<string name="addressbook_search_header">%s znaleziono</string>
|
||||
<string name="addressbook_add_wizard_k_name">Nazwa</string>
|
||||
<string name="addressbook_add_wizard_k_destination">Przeznaczenie</string>
|
||||
@ -137,6 +201,8 @@
|
||||
<string name="install_recommended_app">Zainstalować polecone aplikacje?</string>
|
||||
<string name="app_needed_for_this_tunnel_type">Musisz zainstalować aplikację, aby użyć tego tunelu. Czy chcesz zainstalować tą aplikację?</string>
|
||||
<string name="i2ptunnel_not_initialized">Tunele nie są jeszcze zainicjowane, proszę odświeżyć za dwie minuty.</string>
|
||||
<string name="no_configured_client_tunnels">Brak skonfigurowanych tuneli klientów</string>
|
||||
<string name="no_configured_server_tunnels">Brak skonfigurowanych tuneli serwerów</string>
|
||||
<string name="i2ptunnel_new_tunnel">Nowy tunel</string>
|
||||
<string name="i2ptunnel_msg_config_saved">Zmiany konfiguracji zostały zapisane</string>
|
||||
<string name="i2ptunnel_msg_config_save_failed">Nie udało zapisać się konfiguracji</string>
|
||||
@ -164,6 +230,7 @@
|
||||
<string name="enabled">Włączony</string>
|
||||
<string name="i2ptunnel_wizard_desc_name">Nazwa tunelu dla identyfikacji w liście tuneli.</string>
|
||||
<string name="i2ptunnel_wizard_desc_desc">Opis tunelu. Ta opcja jest nieobowiązkowa i służąca wyłącznie do celów informacyjnych.</string>
|
||||
<string name="i2ptunnel_wizard_desc_dest">Wpisz adres Przeznaczenia I2P usługi z którą klient powinien się połączyć. To powinien być pełny adres Przeznaczenia w formacie Base64, lub adres z Twojej książki adresowej.</string>
|
||||
<string name="i2ptunnel_wizard_desc_outproxies">Jeśli znasz jakieś wychodzące proxy dla tego typu tunelów (HTTP lub SOCKS), to je wpisz. Serwery proxy oddziel przecinkami.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_host">To jest IP na którym Twój serwis jest uruchomiony, zazwyczaj jest to te same urządzenie więc 127.0.0.1 jest wpisane automatycznie.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_port">To jest port na którym Twój serwis akceptuje połączenia.</string>
|
||||
@ -172,7 +239,110 @@
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">Czy chcesz, aby tunel włączył się automatycznie kiedy uruchomi się router?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Utworzyć tunel?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Utwórz tunel</string>
|
||||
<string name="i2ptunnel_view_target">Cel</string>
|
||||
<string name="i2ptunnel_view_access_point">Punkt Dostępu</string>
|
||||
<string name="i2ptunnel_view_autostart">Auto-start</string>
|
||||
<string name="edit_tunnel">Edytuj tunel</string>
|
||||
<string name="name">Nazwa</string>
|
||||
<string name="description">Opis</string>
|
||||
<string name="auto_start">Auto-start</string>
|
||||
<string name="tunnel_summ_auto_start">Uruchom tunel podczas startu węzła.</string>
|
||||
<string name="tunnel_cat_ports">Porty lokalne</string>
|
||||
<string name="shared_client">Klient współdzielony</string>
|
||||
<string name="tunnel_summ_shared_client">Użyj tego samego adresu Przeznaczenia i tuneli co inne współdzielone klienty.</string>
|
||||
<string name="target_destination">Adres docelowy</string>
|
||||
<string name="persistent_key">Trwały klucz</string>
|
||||
<string name="persistent_key_conflict_title">Zablokować nowe klucze przy ponownym otwarciu?</string>
|
||||
<string name="persistent_key_conflict_msg">Nie możesz aktywować trwałych kluczy gdy tunel jest skonfigurowany by generować klucze przy ponownym otwarciu. Czy chcesz zablokować generowanie nowych kluczy przy ponownym otwarciu?</string>
|
||||
<string name="tunnel_summ_persistent_key">Zachowaj adresy Przeznaczenia tuneli podczas restartu.</string>
|
||||
<string name="reachable_on">Dostępny na</string>
|
||||
<string name="listen_port">Port nasłuchu</string>
|
||||
<string name="client_ssl">Klient SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">Aby połączyć się klient musi użyć SSL</string>
|
||||
<string name="outproxies">Proxy wychodzące</string>
|
||||
<string name="ssl_outproxies">Proxy wyjściowe SSL</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="enable_dcc">Włącz DCC</string>
|
||||
<string name="tunnel_summ_enable_dcc">Pozwól klientom IRC na używanie DCC</string>
|
||||
<string name="website_domain_name">Domena strony</string>
|
||||
<string name="target_host">Host docelowy</string>
|
||||
<string name="target_port">Port docelowy</string>
|
||||
<string name="use_ssl">Użyj SSL</string>
|
||||
<string name="tunnel_summ_use_ssl">Wykorzystaj SSL, aby połączyć się ze wskazanym celem</string>
|
||||
<string name="tunnel_parameters">Parametry tuneli</string>
|
||||
<string name="profile">Profil</string>
|
||||
<string name="profile_bulk">Połączenia masowe (pobierania/strony/BT)</string>
|
||||
<string name="profile_interactive">Połączenie interaktywne</string>
|
||||
<string name="delay_connect">Opóźnij połączenie</string>
|
||||
<string name="tunnel_summ_delay_connect">Włącz dla połączeń żądań/odpowiedzi</string>
|
||||
<string name="access_control">Kontrola dostępu</string>
|
||||
<string name="restricted_access">Zastrzeżony dostęp</string>
|
||||
<string name="disabled">Wyłączony</string>
|
||||
<string name="whitelist">Biała Lista</string>
|
||||
<string name="blacklist">Czarna Lista</string>
|
||||
<string name="access_list">Lista Dostępu</string>
|
||||
<string name="reject_inproxies">Odrzucaj wejściowe proxy</string>
|
||||
<string name="tunnel_summ_reject_inproxies">Pozwól na połączenia wyłącznie od użytkowników I2P</string>
|
||||
<string name="unique_local">Unikalny lokalny</string>
|
||||
<string name="tunnel_summ_unique_local">Użyj unikalnego lokalnego adresu IP dla każdego klienta</string>
|
||||
<string name="multihome">Wieloadresowość</string>
|
||||
<string name="tunnel_summ_multihome">Włącz optymalizacje wieloadresowe</string>
|
||||
<string name="client_connection_limits">Limit połączeń klienta</string>
|
||||
<string name="connections_per_minute">Połączenia na minutę</string>
|
||||
<string name="connections_per_hour">Połączenia na godzinę</string>
|
||||
<string name="connections_per_day">Połączenia na dzień</string>
|
||||
<string name="total_connection_limits">Całkowity limit połączeń</string>
|
||||
<string name="total_connections_per_minute">Całkowita ilość połączeń na minutę</string>
|
||||
<string name="total_connections_per_hour">Całkowita ilość połączeń na godzinę</string>
|
||||
<string name="total_connections_per_day">Całkowita ilość połączeń na dzień</string>
|
||||
<string name="max_active_connections">Maksymalna liczba aktywnych połączeń</string>
|
||||
<string name="num_per_minute">%s na minutę</string>
|
||||
<string name="num_per_hour">%s na godzinę</string>
|
||||
<string name="num_per_day">%s dziennie</string>
|
||||
<string name="unlimited">Nielimitowane</string>
|
||||
<string name="set_zero_for_unlimited">Wpisz 0 dla nielimitowanych</string>
|
||||
<string name="post_limits">Limity zapytań POST</string>
|
||||
<string name="limit_period">Czas ograniczenia</string>
|
||||
<string name="client_posts_per_period">Zapytania POST klienta na okres</string>
|
||||
<string name="client_ban_length">Długość bana klienta</string>
|
||||
<string name="total_posts_per_period">Wszystkie zapytania POST na okres</string>
|
||||
<string name="total_ban_length">Całkowita długość bana</string>
|
||||
<string name="power_saving">Oszczędzanie energii</string>
|
||||
<string name="delay_open">Opóźnij otwarcie</string>
|
||||
<string name="tunnel_summ_delay_open">Otwórz tunel dopiero wtedy, gdy jest potrzebny</string>
|
||||
<string name="reduce_quantity">Zredukuj ilość</string>
|
||||
<string name="tunnel_summ_reduce_quantity">Zredukuj ilość tuneli podczas bezczynności</string>
|
||||
<string name="idle_time">Czas bezczynności</string>
|
||||
<string name="num_minutes">%s minut</string>
|
||||
<string name="reduced_tunnel_quantity">Zmniejszona ilość tuneli</string>
|
||||
<string name="close_tunnels">Zamknij tunele podczas bezczynności</string>
|
||||
<string name="new_keys_on_reopen">Nowe klucze przy ponownym otwarciu</string>
|
||||
<string name="new_keys_on_reopen_conflict_title">Zablokować trwałe klucze?</string>
|
||||
<string name="new_keys_on_reopen_conflict_msg">Nie możesz aktywować tworzenia nowych kluczy przy otwarciu jeżeli tunel jest skonfigurowany do używania trwałych kluczy. Czy chcesz wyłączyć trwałe klucze?</string>
|
||||
<string name="http_client">Klient HTTP</string>
|
||||
<string name="tunnel_summ_user_agent">Przepuszczaj nagłówek \'User-Agent\'</string>
|
||||
<string name="tunnel_summ_referer">Przepuszczaj nagłówek \'Referer\'</string>
|
||||
<string name="tunnel_summ_accept">Przekazuj nagłówek Accept</string>
|
||||
<string name="tunnel_summ_allow_ssl">Zezwalaj na SSL do adresów I2P</string>
|
||||
<string name="jump_url_list">Lista adresów usług Jump</string>
|
||||
<string name="proxy_auth">Autoryzacja proxy</string>
|
||||
<string name="tunnel_summ_proxy_auth">Wymagaj zalogowania by użyć tego proxy</string>
|
||||
<string name="username">Użytkownik</string>
|
||||
<string name="password">Hasło</string>
|
||||
<string name="outproxy_auth">Autoryzacja Proxy Wyjściowego</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Login wymagany przez Proxy Wyjściowe</string>
|
||||
<string name="other">Inne</string>
|
||||
<string name="signature_type">Rodzaj podpisu</string>
|
||||
<string name="custom_options">Dodatkowe opcje</string>
|
||||
<string name="all">Wszystkie</string>
|
||||
<string name="no_messages">Brak wiadomości</string>
|
||||
<string name="no_error_messages">Brak wiadomości o błędach</string>
|
||||
<plurals name="log_error_messages">
|
||||
<item quantity="one">Jeden komunikat o błędzie</item>
|
||||
<item quantity="few">%d komunikaty o błędach, od najnowszych</item>
|
||||
<item quantity="other">%d komunikatów o błędach, od najnowszych</item>
|
||||
</plurals>
|
||||
<string name="log_entry">Wpis w logu</string>
|
||||
<string name="copy_logs">Kopiuj logi</string>
|
||||
<string name="i2p_android_error_logs">Logi Błędów I2P Android</string>
|
||||
<string name="i2p_android_logs">Logi Błędów I2P Android</string>
|
||||
|
@ -20,15 +20,25 @@
|
||||
<string name="label_licenses">Licenças</string>
|
||||
<string name="label_browse">Navegador</string>
|
||||
<string name="label_graphs">Gráficos</string>
|
||||
<string name="button_router_off">Mantenha pressionado para iniciar o I2P</string>
|
||||
<string name="button_router_on">I2P está funcionando (mantenha pressionado para parar)</string>
|
||||
<string name="button_router_graceful">O software I2P será encerrado em %s</string>
|
||||
<string name="no_internet">Sem conexões de internet disponíveis</string>
|
||||
<string name="button_shutdown_now">Mantenha pressionado para parar agora</string>
|
||||
<string name="button_cancel_graceful">Mantenha pressionado para cancelar o desligamento</string>
|
||||
<string name="no_internet">Não há conexões de internet disponíveis</string>
|
||||
<string name="hidden">Oculto</string>
|
||||
<string name="testing">Testando</string>
|
||||
<string name="firewalled">Sob firewall</string>
|
||||
<string name="symmetric_nat">NAT simétrico</string>
|
||||
<string name="net_status_error_i2cp">Erro no gerenciador de clientes I2CP - verificar logs</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_unresolved_tcp">Endereço TCP não resolvido</string>
|
||||
<string name="net_status_error_private_tcp">Endereço TCP privado</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Sob firewall com entrada via TCP ativada</string>
|
||||
<string name="net_status_info_disconnected">Desconectado - verifique a conexão de rede</string>
|
||||
<string name="net_status_error_udp_port">Porta UDP em uso - altere as configurações e reinicie</string>
|
||||
<string name="net_status_error_no_active_peers">Sem pares ativos - verifique a conexão de rede e o firewall</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Sob firewall com UDP desativado</string>
|
||||
<string name="shared_clients">Clientes compartilhados</string>
|
||||
<string name="active_peers">Pares ativos</string>
|
||||
<string name="known_peers">Pares conhecidos</string>
|
||||
@ -36,6 +46,9 @@
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Nenhum túnel em funcionamento ainda.</string>
|
||||
<string name="download">Baixar</string>
|
||||
<string name="upload">Carregar</string>
|
||||
<string name="configure_browser_title">Configurar o navegador?</string>
|
||||
<string name="configure_browser_for_i2p">Gostaria de configurar um navegador para visualizar sites da I2P? (Você pode também fazer isso depois a partir do menu ajuda.)</string>
|
||||
<string name="first_start_title">Parabéns em instalar o I2P!</string>
|
||||
@ -57,8 +70,17 @@
|
||||
<string name="action_refresh">Atualizar</string>
|
||||
<string name="hint_search_addressbook">Procurar por livro de endereços</string>
|
||||
<string name="action_reload_subscriptions">Recarregar inscriçoes</string>
|
||||
<string name="news_last_updated">Última atualização das noticias a %s atrás</string>
|
||||
<string name="news_last_checked">Última verificação das noticias a %s atrás</string>
|
||||
<string name="news_updated">Novidades atualizadas</string>
|
||||
<string name="view_news">Toque para ver as últimas notícias do I2P</string>
|
||||
<string name="router_not_running">O roteador não está funcionando</string>
|
||||
<string name="router_shutting_down">O roteador está sendo desligado.</string>
|
||||
<string name="stats_not_ready">O configurador de estatística não está pronto. Tente de novo mais tarde.</string>
|
||||
<string name="select_an_address">Selecionar um endereço.</string>
|
||||
<string name="no_graphs_configured">Nenhum gráfico foi configurado. Você pode escolher estatísticas para gráficos no menu de configurações. Qualquer mudança ira ter efeito em 60 segundos.</string>
|
||||
<string name="configure_graphs">Configurar gráficos</string>
|
||||
<string name="graphs_not_ready">Gráficos não estão prontos ainda. Tente novamente.</string>
|
||||
<string name="statistics">Estatísticas</string>
|
||||
<string name="routers">Roteadores</string>
|
||||
<string name="countries">Países</string>
|
||||
@ -66,6 +88,8 @@
|
||||
<string name="transport">Transporte</string>
|
||||
<string name="versions">Versões</string>
|
||||
<string name="version">Versão</string>
|
||||
<string name="count">Contagem</string>
|
||||
<string name="tname_0">Oculto ou inicializando</string>
|
||||
<string name="netdb_routers_empty">Sem roteadores em seu NetDB.</string>
|
||||
<string name="notification_status_starting">O roteador I2P está inicializando</string>
|
||||
<string name="notification_status_restarting">O roteador I2P está reiniciando</string>
|
||||
@ -73,9 +97,13 @@
|
||||
<string name="notification_status_starting_after_waiting">Conectado a rede, inicializando o roteador I2P</string>
|
||||
<string name="notification_status_running">Software I2P em execução</string>
|
||||
<string name="notification_status_client_ready">Os túneis de cliente estão prontos</string>
|
||||
<string name="notification_status_client_down">Os túneis de cliente estão fora de serviço</string>
|
||||
<string name="notification_status_graceful">Interrompendo o roteador I2P em %s</string>
|
||||
<string name="notification_status_stopping">Interrompendo o roteador I2P</string>
|
||||
<string name="notification_status_bw">Largura de banda: %1$s KBps Down/ %2$s KBps up</string>
|
||||
<string name="notification_status_stopping_after_net">Rede desconectada, interrompendo I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Desligamento cancelado</string>
|
||||
<string name="notification_status_shutting_down">O roteador I2P está sendo desligado</string>
|
||||
<string name="notification_status_bw">Largura de banda: %1$sBps Down/ %2$sBps up</string>
|
||||
<string name="notification_status_peers">Pares: %1$d ativos, %2$d conhecidos</string>
|
||||
<string name="notification_status_expl">Túneis exploratórios: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túneis cliente: %1$d/%2$d</string>
|
||||
@ -83,6 +111,8 @@
|
||||
<string name="settings_enable">Ativar</string>
|
||||
<string name="settings_desc_subscriptions">URLs para inscrição</string>
|
||||
<string name="settings_label_bandwidth_net">Largura de banda e rede</string>
|
||||
<string name="settings_label_startOnBoot">Iniciar I2P na inicialização</string>
|
||||
<string name="settings_desc_startOnBoot">Conectar-se automaticamente a I2P quando o seu dispositivo Android for inicializado.</string>
|
||||
<string name="settings_label_bandwidth">Largura de banda</string>
|
||||
<string name="settings_label_bw_inbound">Velocidade de entrada</string>
|
||||
<string name="settings_desc_bw_inbound">Velocidade máxima de entrada</string>
|
||||
@ -99,6 +129,9 @@
|
||||
<string name="settings_dialog_sharePercent">Porcentagem de banda para comprtilhar</string>
|
||||
<string name="settings_desc_upnp">Abrir portas do firewall automaticamente</string>
|
||||
<string name="settings_label_default_log_level">Nível padrão do log</string>
|
||||
<string name="settings_label_appearance">Aparência</string>
|
||||
<string name="settings_label_language">Idioma</string>
|
||||
<string name="settings_default">Padrão</string>
|
||||
<string name="settings_label_advanced">Avançado</string>
|
||||
<string name="settings_label_showStats">Estatisticas do roteador</string>
|
||||
<string name="settings_summ_showStats">Mostrar estatísticas avançadas no console principal</string>
|
||||
@ -113,11 +146,14 @@
|
||||
<string name="settings_summ_expl_length">%s saltos</string>
|
||||
<string name="settings_desc_expl_length">Quantos saltos usar</string>
|
||||
<string name="settings_summ_expl_lengthVariance">%s</string>
|
||||
<string name="settings_desc_expl_lengthVariance">Quantos saltos aleatórios a adicionar</string>
|
||||
<string name="settings_label_expl_quantity">Quantidade</string>
|
||||
<string name="settings_summ_expl_quantity">%s tunéis</string>
|
||||
<string name="settings_desc_expl_quantity">Quantos túneis</string>
|
||||
<string name="settings_summ_expl_backupQuantity">%s tuneis</string>
|
||||
<string name="settings_label_expl_backupQuantity">Quantidade de backup</string>
|
||||
<string name="settings_summ_expl_backupQuantity">%s túneis</string>
|
||||
<string name="settings_desc_expl_backupQuantity">Quantos backups de túneis</string>
|
||||
<string name="settings_need_transport_enabled">Você deve ter pelo menos um transporte ativado</string>
|
||||
<string name="settings_router_restart_required">Por favor, reinicialize o software I2P para aplicar as alterações</string>
|
||||
<string name="menu_about">Sobre</string>
|
||||
<string name="about_version">Versão:</string>
|
||||
@ -130,11 +166,17 @@
|
||||
<string name="general">Geral</string>
|
||||
<string name="label_router">Endereços públicos</string>
|
||||
<string name="label_private">Endereços privados</string>
|
||||
<string name="addressbook_is_empty">O livro de endereços está vazio</string>
|
||||
<string name="addressbook_search_header">%s achado</string>
|
||||
<string name="addressbook_add_wizard_k_name">Nome</string>
|
||||
<string name="addressbook_add_wizard_k_destination">Destino</string>
|
||||
<string name="addressbook_add_wizard_desc_name">O nome</string>
|
||||
<string name="addressbook_add_wizard_desc_destination">Cole o B64 do Destino aqui. Se você tem um Gerenciador de Arquivos instalado, você pode navegar para um arquivo de texto contendo o B64.</string>
|
||||
<string name="nsu_iae_illegal_char">O nome do host \"%1$s\" contém o caractere ilegal %2$s</string>
|
||||
<string name="nsu_iae_cannot_start_with">O nome do host não pode começar com \"%s\"</string>
|
||||
<string name="nsu_iae_cannot_end_with">O nome do host não pode terminar com \"%s\"</string>
|
||||
<string name="nsu_iae_cannot_contain">O nome do host não pode conter \"%s\"</string>
|
||||
<string name="nsu_iae_requires_conversion">O nome de host \"%s\" requer conversão para ASCII mas a biblioteca de conversão não está disponível nessa versão do Android</string>
|
||||
<string name="i2ptunnel_type_client">Cliente padrão</string>
|
||||
<string name="i2ptunnel_type_httpclient">Cliente HTTP</string>
|
||||
<string name="i2ptunnel_type_ircclient">Cliente IRC</string>
|
||||
@ -144,7 +186,11 @@
|
||||
<string name="i2ptunnel_type_ircserver">Servidor IRC</string>
|
||||
<string name="i2ptunnel_type_streamrclient">Cliente Streamr</string>
|
||||
<string name="i2ptunnel_type_streamrserver">Servidor Streamr</string>
|
||||
<string name="install_recommended_app">Instalar aplicativo recomendado?</string>
|
||||
<string name="app_needed_for_this_tunnel_type">Você deve instalar um aplicativo para usar este túnel. Gostaria de instalar o aplicativo recomendado?</string>
|
||||
<string name="i2ptunnel_not_initialized">Os túneis não foram iniciados ainda, por favor recarregue em dois minutos.</string>
|
||||
<string name="no_configured_client_tunnels">Nenhum cliente de tuneis configurado.</string>
|
||||
<string name="no_configured_server_tunnels">Nenhum servidor de tuneis configurado.</string>
|
||||
<string name="i2ptunnel_new_tunnel">Novo túnel</string>
|
||||
<string name="i2ptunnel_msg_config_saved">Mudanças nas configurações salvas</string>
|
||||
<string name="i2ptunnel_msg_config_save_failed">Falha ao salvar as configurações</string>
|
||||
@ -162,6 +208,7 @@
|
||||
<string name="i2ptunnel_wizard_k_outproxies">Proxys de saída</string>
|
||||
<string name="i2ptunnel_wizard_k_target_host">Host alvo</string>
|
||||
<string name="i2ptunnel_wizard_k_target_port">Porta alvo</string>
|
||||
<string name="i2ptunnel_wizard_k_reachable_on">Ao alcance em</string>
|
||||
<string name="i2ptunnel_wizard_k_auto_start">Auto-início</string>
|
||||
<string name="next">Próximo</string>
|
||||
<string name="prev">Anterior</string>
|
||||
@ -173,23 +220,29 @@
|
||||
<string name="i2ptunnel_wizard_desc_target_host">Esse é o IP no qual o serviço está rodando, isto está geralmente na mesma maquina então 127.0.0.1 é autopreenchido.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_port">Essa é a porta pela qual o serviço está aceitando conexões.</string>
|
||||
<string name="i2ptunnel_wizard_desc_reachable_on">Isso limita quais computadores ou smartphones podem acessar esse túnel</string>
|
||||
<string name="i2ptunnel_wizard_desc_binding_port">Esta é a porta para o túnel cliente ser acessado localmente. Esta também é a porta para o túnel servidor de HTTP.</string>
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">O túnel deve iniciar automaticamente quando o roteador iniciar?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Criar túnel?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Criar túnel</string>
|
||||
<string name="i2ptunnel_view_target">Alvo</string>
|
||||
<string name="i2ptunnel_view_access_point">Ponto de acesso</string>
|
||||
<string name="i2ptunnel_view_autostart">Auto-início</string>
|
||||
<string name="i2ptunnel_view_autostart">Auto-inicialização</string>
|
||||
<string name="edit_tunnel">Editar túnel</string>
|
||||
<string name="name">Nome</string>
|
||||
<string name="description">Descrição</string>
|
||||
<string name="auto_start">Auto-inicialização</string>
|
||||
<string name="tunnel_summ_auto_start">Iniciar o túnel na inicialização do roteador.</string>
|
||||
<string name="tunnel_cat_ports">Portas locais</string>
|
||||
<string name="shared_client">Cliente compartilhado</string>
|
||||
<string name="tunnel_summ_shared_client">Usar mesmo Destino e túneis para demais clientes compartilhados</string>
|
||||
<string name="target_destination">Destino alvo</string>
|
||||
<string name="persistent_key">Chave persistente</string>
|
||||
<string name="persistent_key_conflict_title">Desativar novas chaves na reabertura?</string>
|
||||
<string name="persistent_key_conflict_msg">Você não pode ativar chaves persistentes enquanto o túnel estiver configurado para gerar novas chaves na reabertura. Quer desativar novas chaves na reabertura?</string>
|
||||
<string name="tunnel_summ_persistent_key">Manter o destino desse túnel quando ele reiniciar</string>
|
||||
<string name="reachable_on">Ao alcance em</string>
|
||||
<string name="listen_port">Porta de escuta</string>
|
||||
<string name="client_ssl">Cliente SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">Os clientes devem usar SSL para se conectar</string>
|
||||
<string name="outproxies">Proxies de saída</string>
|
||||
<string name="ssl_outproxies">Proxies de saida com SSL</string>
|
||||
@ -205,6 +258,7 @@
|
||||
<string name="profile">Perfil</string>
|
||||
<string name="profile_bulk">Conexão em massa (downloads/websites/BT)</string>
|
||||
<string name="profile_interactive">Conexão interativa</string>
|
||||
<string name="delay_connect">Atrasar conexão</string>
|
||||
<string name="tunnel_summ_delay_connect">Ativar para conexões de pedidos/respostas</string>
|
||||
<string name="access_control">Controle de acesso</string>
|
||||
<string name="restricted_access">Acesso restrito</string>
|
||||
@ -218,9 +272,11 @@
|
||||
<string name="tunnel_summ_unique_local">Usar IPs de host locais únicos para cada cliente</string>
|
||||
<string name="multihome">Multihome</string>
|
||||
<string name="tunnel_summ_multihome">Ativar otimizações de multihoming</string>
|
||||
<string name="client_connection_limits">Limites de conexões de cliente</string>
|
||||
<string name="connections_per_minute">Conexões por minuto</string>
|
||||
<string name="connections_per_hour">Conexões por hora</string>
|
||||
<string name="connections_per_day">Conexões por dia</string>
|
||||
<string name="total_connection_limits">Limites totais de conexões</string>
|
||||
<string name="total_connections_per_minute">Total de conexões por minuto</string>
|
||||
<string name="total_connections_per_hour">Total de conexões por hora</string>
|
||||
<string name="total_connections_per_day">Total de conexões por dia</string>
|
||||
@ -230,22 +286,46 @@
|
||||
<string name="num_per_day">%s por dia</string>
|
||||
<string name="unlimited">Ilimitado</string>
|
||||
<string name="set_zero_for_unlimited">Especifique 0 para ilimitado</string>
|
||||
<string name="post_limits">Limites de POST</string>
|
||||
<string name="limit_period">Período limite</string>
|
||||
<string name="power_saving">Economia de energia</string>
|
||||
<string name="delay_open">Atrasar a abertura</string>
|
||||
<string name="tunnel_summ_delay_open">Atrasar a abertura do túnel até ser utilizado</string>
|
||||
<string name="reduce_quantity">Reduzir quantidade</string>
|
||||
<string name="tunnel_summ_reduce_quantity">Reduzir quantidade de túneis quando ocioso</string>
|
||||
<string name="idle_time">Tempo ocioso</string>
|
||||
<string name="num_minutes">%s minutos</string>
|
||||
<string name="reduced_tunnel_quantity">Quantidade de túneis reduzida</string>
|
||||
<string name="close_tunnels">Fechar túneis quando ociosos</string>
|
||||
<string name="new_keys_on_reopen">Novas chaves na reabertura</string>
|
||||
<string name="new_keys_on_reopen_conflict_title">Desativar chaves persistentes?</string>
|
||||
<string name="new_keys_on_reopen_conflict_msg">Você não pode habilitar novas chaves enquanto o túnel estiver configurado para ter chaves permanentes. Deseja desabilitar as chaves permanentes?</string>
|
||||
<string name="http_client">Cliente HTTP</string>
|
||||
<string name="tunnel_summ_user_agent">Passar o cabeçalho original \'User-Agent\'</string>
|
||||
<string name="tunnel_summ_referer">Passar o cabeçalho original \'Referer\'</string>
|
||||
<string name="tunnel_summ_accept">Passar o cabeçalho original \'Accept-*\'</string>
|
||||
<string name="tunnel_summ_allow_ssl">Permitir SSL para endereços I2P</string>
|
||||
<string name="jump_url_list">Pular lista de URLs</string>
|
||||
<string name="proxy_auth">Autorização de proxy</string>
|
||||
<string name="tunnel_summ_proxy_auth">É necessário um login para usar esse proxy</string>
|
||||
<string name="username">Nome de usuário</string>
|
||||
<string name="password">Senha</string>
|
||||
<string name="outproxy_auth">Autorização de proxy de saída</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Autenticação necessária para o proxy de saída</string>
|
||||
<string name="other">Outros</string>
|
||||
<string name="signature_type">Tipo de assinatura</string>
|
||||
<string name="custom_options">Opções personalizadas</string>
|
||||
<string name="all">Todos</string>
|
||||
<string name="no_messages">Sem mensagens</string>
|
||||
<string name="no_error_messages">Nenhuma mensagem de erro</string>
|
||||
<plurals name="log_messages">
|
||||
<item quantity="one">Uma mensagem</item>
|
||||
<item quantity="other">%d mensagens, mais novas primeiro</item>
|
||||
</plurals>
|
||||
<string name="log_entry">Entrada no log</string>
|
||||
<string name="copy_logs">Copiar logs</string>
|
||||
<string name="error_logs_copied_to_clipboard">Logs de erro copiados para a área de transferência</string>
|
||||
<string name="logs_copied_to_clipboard">Logs copiados para a área de transferência</string>
|
||||
<string name="label_browser_configuration">Configuração do navegador</string>
|
||||
<string name="unset">Desligado</string>
|
||||
</resources>
|
||||
|
@ -2,16 +2,16 @@
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">Logótipo I2P</string>
|
||||
<string name="choose_language">Escolher língua</string>
|
||||
<string name="welcome_new_install">Bem-vindo à I2P! Esta app é um programa ALPHA e não proporciona um anonimato forte. Por favor, leia as notas de lançamento e a informação da licença.</string>
|
||||
<string name="choose_language">Escolha o idioma</string>
|
||||
<string name="welcome_new_install">Bem-vindo à I2P! Esta aplicação é um software ALPHA e não proporciona um anonimato forte. Por favor, leia as notas de lançamento e a informação da licença.</string>
|
||||
<string name="welcome_new_version">Nova versão instalada. Por favor, leia as notas de lançamento. Versão:</string>
|
||||
<string name="label_tunnels">Tuneis</string>
|
||||
<string name="label_status">Estado</string>
|
||||
<string name="label_console">Consola</string>
|
||||
<string name="label_addresses">Endereços</string>
|
||||
<string name="label_addressbook">Livro de Endereços</string>
|
||||
<string name="label_i2ptunnel_client">Tuneis cliente</string>
|
||||
<string name="label_i2ptunnel_server">Tuneis servidor</string>
|
||||
<string name="label_i2ptunnel_client">Túneis de cliente</string>
|
||||
<string name="label_i2ptunnel_server">Tuneis de servidor</string>
|
||||
<string name="label_logs">Registos</string>
|
||||
<string name="label_error_logs">Registos de Erros</string>
|
||||
<string name="label_news">Notícias</string>
|
||||
@ -26,11 +26,11 @@
|
||||
<string name="button_shutdown_now">Pressionar longo para parar imediatamente</string>
|
||||
<string name="button_cancel_graceful">Pressionar longo para não desligar</string>
|
||||
<string name="no_internet">Sem ligação à Internet</string>
|
||||
<string name="hidden">Escondido</string>
|
||||
<string name="testing">Em teste</string>
|
||||
<string name="hidden">Oculto</string>
|
||||
<string name="testing">A testar</string>
|
||||
<string name="firewalled">Atrás de uma firewall</string>
|
||||
<string name="symmetric_nat">NAT simétrico</string>
|
||||
<string name="net_status_error_i2cp">Erro no gestor de cliente I2CP - veja os registos</string>
|
||||
<string name="symmetric_nat">NAT Simétrico</string>
|
||||
<string name="net_status_error_i2cp">Erro no gestor de cliente I2CP - consulte os registos</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Deriva de relógio de %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Endereços TCP por resolver</string>
|
||||
@ -40,8 +40,8 @@
|
||||
<string name="net_status_info_disconnected">Desligado - verifique a sua ligação de rede</string>
|
||||
<string name="net_status_error_udp_port">Porta UDP em uso - mude as configurações e reinicie</string>
|
||||
<string name="net_status_error_no_active_peers">Não existem nós ativos - verifique a sua ligação de rede e firewall</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP desligado e máquina/porta TCP de entrada não definida</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Atrás de firewall com UDP desligado</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP desativado e hospedeiro/porta TCP de entrada não definida</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Atrás de firewall com UDP desativado</string>
|
||||
<string name="shared_clients">Cliente partilhados</string>
|
||||
<string name="uptime">Tempo de atividade</string>
|
||||
<string name="active_peers">Nós ativos</string>
|
||||
@ -50,10 +50,10 @@
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Ainda não tem túneis ativos.</string>
|
||||
<string name="download">Download</string>
|
||||
<string name="upload">Upload</string>
|
||||
<string name="configure_browser_title">Configurar navegador?</string>
|
||||
<string name="no_tunnels_running">Ainda não tem túneis em execução.</string>
|
||||
<string name="download">Transferir</string>
|
||||
<string name="upload">Enviar</string>
|
||||
<string name="configure_browser_title">Configurar o navegador?</string>
|
||||
<string name="configure_browser_for_i2p">Gostaria de configurar um navegador para ver sites I2P? (Pode fazê-lo mais tarde através do menu de ajuda.)</string>
|
||||
<string name="first_start_title">Parabéns por ter instalado o I2P!</string>
|
||||
<string name="first_start_welcome"><b>Bem vindo ao I2P!</b> Por favor <b>tenha paciência</b> enquanto o I2P arranca e encontra outros nós na rede.</string>
|
||||
@ -64,12 +64,12 @@
|
||||
<string name="action_search">Procurar</string>
|
||||
<string name="action_add">Adicionar</string>
|
||||
<string name="action_edit">Editar</string>
|
||||
<string name="action_delete">Apagar</string>
|
||||
<string name="action_i2ptunnel_start">Começar túneis</string>
|
||||
<string name="action_delete">Eliminar</string>
|
||||
<string name="action_i2ptunnel_start">Iniciar túneis</string>
|
||||
<string name="action_i2ptunnel_stop">Parar túneis </string>
|
||||
<string name="action_i2ptunnel_start_all">Começar todos os túneis </string>
|
||||
<string name="action_i2ptunnel_start_all">Iniciar todos os túneis </string>
|
||||
<string name="action_i2ptunnel_stop_all">Parar todos os túneis</string>
|
||||
<string name="action_i2ptunnel_restart_all">Recomeçar todos os túneis </string>
|
||||
<string name="action_i2ptunnel_restart_all">Reiniciar todos os túneis </string>
|
||||
<string name="action_reload">Recarregar</string>
|
||||
<string name="action_refresh">Atualizar</string>
|
||||
<string name="hint_search_addressbook">Procurar no livro de endereços</string>
|
||||
@ -81,6 +81,7 @@
|
||||
<string name="router_not_running">O router não está em execução.</string>
|
||||
<string name="router_shutting_down">O router está a desligar.</string>
|
||||
<string name="stats_not_ready">O gestor de estatísticas ainda não está pronto. Tente de novo mais tarde.</string>
|
||||
<string name="select_an_address">Escolha um endereço</string>
|
||||
<string name="no_graphs_configured">Não foram configurados quaisquer gráficos. Pode escolher as estatísticas que deseja representar no menu de configuração. Qualquer mudança terá efeito após 60 segundos.</string>
|
||||
<string name="configure_graphs">Configurar gráficos</string>
|
||||
<string name="graphs_not_ready">Os gráficos não estão pronto. Tente de novo mais tarde.</string>
|
||||
@ -93,25 +94,25 @@
|
||||
<string name="versions">Versões</string>
|
||||
<string name="version">Versão</string>
|
||||
<string name="count">Contagem</string>
|
||||
<string name="tname_0">Escondido ao iniciar</string>
|
||||
<string name="tname_0">Oculto ou a iniciar</string>
|
||||
<string name="netdb_routers_empty">Não tem router na sua NetDB.</string>
|
||||
<string name="netdb_leases_empty">Não tem LeaseSets na sua NetDB.</string>
|
||||
<string name="notification_status_starting">O I2P está a ligar</string>
|
||||
<string name="notification_status_starting">O I2P está a iniciar</string>
|
||||
<string name="notification_status_restarting">O I2P está a reiniciar</string>
|
||||
<string name="notification_status_waiting">O I2P está à espera de uma ligação à rede</string>
|
||||
<string name="notification_status_starting_after_waiting">Deteta ligação à rede, o I2P está a ligar</string>
|
||||
<string name="notification_status_running">O I2P está ligado</string>
|
||||
<string name="notification_status_client_ready">Os túneis cliente estão prontos</string>
|
||||
<string name="notification_status_client_down">Os túneis clientes estão desligados</string>
|
||||
<string name="notification_status_waiting">O I2P está a aguardar por uma ligação à rede</string>
|
||||
<string name="notification_status_starting_after_waiting">Rede ligada, I2P está a iniciar</string>
|
||||
<string name="notification_status_running">O I2P está em execução</string>
|
||||
<string name="notification_status_client_ready">Os túneis de cliente estão prontos</string>
|
||||
<string name="notification_status_client_down">Os túneis de clientes estão desligados</string>
|
||||
<string name="notification_status_graceful">A parar I2P dentro de %s</string>
|
||||
<string name="notification_status_stopping">A parar o I2P</string>
|
||||
<string name="notification_status_stopping_after_net">Sem ligação à rede, a parar o I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Cancelada a ordem para desligar</string>
|
||||
<string name="notification_status_shutting_down">O I2P está a desligar</string>
|
||||
<string name="notification_status_bw">Largura de banda: %1$s KBps down / %2$s KBps up</string>
|
||||
<string name="notification_status_stopping_after_net">Ligação desligada, a parar o I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Encerramento cancelado</string>
|
||||
<string name="notification_status_shutting_down">O I2P está a encerrar</string>
|
||||
<string name="notification_status_bw">Largura de banda: %1$sBps down / %2$sBps up</string>
|
||||
<string name="notification_status_peers">Nós: %1$d ativos, %2$d conhecidos</string>
|
||||
<string name="notification_status_expl">Túneis exploratórios: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túneis cliente: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Túneis de cliente: %1$d/%2$d</string>
|
||||
<string name="menu_settings">Configurações</string>
|
||||
<string name="settings_enable">Ativar</string>
|
||||
<string name="settings_desc_subscriptions">URLs de Subscrição</string>
|
||||
|
@ -2,44 +2,56 @@
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="desc_i2p_logo">Emblema I2P</string>
|
||||
<string name="choose_language">Alegeți limba</string>
|
||||
<string name="welcome_new_install">Bine ati venit la I2P! Aceasta aplicatie este un software ALPHA și nu oferă anonimatul puternic. Vă rugăm să citiți notele de lansare și licență.</string>
|
||||
<string name="welcome_new_version">Noua versiune instalată. Vă rugăm să citiți notele de lansare. versiune:</string>
|
||||
<string name="label_home">Controale și stare</string>
|
||||
<string name="label_tunnels">Tuneluri</string>
|
||||
<string name="label_status">Stare</string>
|
||||
<string name="label_console">Consolă</string>
|
||||
<string name="label_addresses">Adrese</string>
|
||||
<string name="label_addressbook">Agendă</string>
|
||||
<string name="label_i2ptunnel_client">Tuneluri clienti</string>
|
||||
<string name="label_i2ptunnel_server">Tuneluri server</string>
|
||||
<string name="label_logs">Jurnale</string>
|
||||
<string name="label_error_logs">jurnalele de erori</string>
|
||||
<string name="label_info_and_pages">Informații și pagini</string>
|
||||
<string name="label_welcome_page">Pagina de start</string>
|
||||
<string name="label_news">Noutăți</string>
|
||||
<string name="label_peers_status">Parteneri</string>
|
||||
<string name="label_release_notes">Note de publicare</string>
|
||||
<string name="label_licenses">Licențe</string>
|
||||
<string name="label_nonanon_info">Informații non-anonim</string>
|
||||
<string name="label_browse">Navighează</string>
|
||||
<string name="label_graphs">Grafice</string>
|
||||
<string name="button_router_off">Apasari lung pentru a porni I2P</string>
|
||||
<string name="button_router_on">I2P ruleaza (tineti apasat pentru a oprii)</string>
|
||||
<string name="button_router_graceful">I2P se va închide în %s</string>
|
||||
<string name="button_shutdown_now">Apăsat lung pentru a se opri acum</string>
|
||||
<string name="button_cancel_graceful">Apăsare lungă pentru anularea închiderii</string>
|
||||
<string name="no_internet">Nu este disponibilă nici o conexiune la internet</string>
|
||||
<string name="hidden">Ascuns</string>
|
||||
<string name="testing">Testare</string>
|
||||
<string name="firewalled">Cu Firewall</string>
|
||||
<string name="symmetric_nat">NAT simetric</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_private_tcp">Adrese TCP private</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Cu Firewall și UDP dezactivat</string>
|
||||
<string name="shared_clients">Clienți partajați</string>
|
||||
<string name="active_peers">Parteneri activi</string>
|
||||
<string name="known_peers">Parteneri cunoscuți</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Nu rulează încă nici un tunul.</string>
|
||||
<string name="download">Descărcare</string>
|
||||
<string name="upload">Încărcare</string>
|
||||
<string name="configure_browser_title">Configurați navigatorul web?</string>
|
||||
<string name="configure_browser_for_i2p">Doriți să configurați un navigator web să vizualizați site-uri I2P? (Puteți face acest lucru mai târziu din meniul ajutor.)</string>
|
||||
<string name="first_start_title">Felicitari pentru instalarea I2P!</string>
|
||||
<string name="first_start_read">Cât timp așteptați, citiți notele de lansare și pagina de bun venit.</string>
|
||||
<string name="first_start_faq_nonanon">Sau utilizați acest link ne-anonim dacă nu doriți să așteptați pentru tuneluri:</string>
|
||||
<string name="drawer_open">Deschide nav</string>
|
||||
<string name="drawer_close">Închide nav</string>
|
||||
<string name="action_search">Cauta</string>
|
||||
<string name="action_add">Adaugă</string>
|
||||
<string name="action_edit">Editeaza</string>
|
||||
<string name="action_delete">Sterge</string>
|
||||
<string name="action_router_start">Porneste Router</string>
|
||||
<string name="action_router_stop">Opreste Router</string>
|
||||
<string name="action_i2ptunnel_start">Pornește tunelul</string>
|
||||
<string name="action_i2ptunnel_stop">Oprește tunelul</string>
|
||||
<string name="action_i2ptunnel_start_all">Pornește toate tunelurile</string>
|
||||
@ -49,11 +61,26 @@
|
||||
<string name="action_refresh">Reâmprospătează</string>
|
||||
<string name="hint_search_addressbook">Caută agenda</string>
|
||||
<string name="action_reload_subscriptions">Reâncarcă abonamentele</string>
|
||||
<string name="news_updated">Știri actualizate</string>
|
||||
<string name="view_news">Atinge pentru a vizualiza ultimele știri I2P</string>
|
||||
<string name="router_not_running">Ruterul nu rulează.</string>
|
||||
<string name="router_shutting_down">Ruterul este închis.</string>
|
||||
<string name="select_an_address">Selectați o adresă.</string>
|
||||
<string name="configure_graphs">Configurează graficele</string>
|
||||
<string name="graphs_not_ready">Graficele nu sunt gata, sau ruterul nu rulează. Încercați mai târziu.</string>
|
||||
<string name="statistics">Statistici</string>
|
||||
<string name="routers">Rutere</string>
|
||||
<string name="countries">Regiuni</string>
|
||||
<string name="country">Regiune</string>
|
||||
<string name="transport">Transport</string>
|
||||
<string name="versions">Versiuni</string>
|
||||
<string name="version">Versiune</string>
|
||||
<string name="netdb_routers_empty">Nu sunt rutere în NetDB.</string>
|
||||
<string name="notification_status_bw">Lățime de bandă: %1$s KBps desc / %2$s KBps în</string>
|
||||
<string name="notification_status_starting">I2P este pornit</string>
|
||||
<string name="notification_status_restarting">I2P repornește</string>
|
||||
<string name="notification_status_waiting">I2P așteaptă pentru o conexiune la rețea</string>
|
||||
<string name="notification_status_running">I2P rulează</string>
|
||||
<string name="notification_status_shutdown_cancelled">Oprirea anulată</string>
|
||||
<string name="notification_status_bw">Lățime de bandă: %1$sBps desc / %2$sBps în</string>
|
||||
<string name="notification_status_peers">Parteneri: %1$d activi, %2$d cunoscuți</string>
|
||||
<string name="menu_settings">Configurări</string>
|
||||
<string name="settings_enable">Activează</string>
|
||||
@ -74,7 +101,11 @@
|
||||
<string name="settings_desc_sharePercent">Procentul de lățime de bandă pentru partajare (implicit = 80)</string>
|
||||
<string name="settings_dialog_sharePercent">Procentul de lățime de bandă pentru partajare </string>
|
||||
<string name="settings_desc_upnp">Deschide automat porturile firewall</string>
|
||||
<string name="settings_label_logging">Autentificare</string>
|
||||
<string name="settings_label_default_log_level">Nivel implicit jurnal</string>
|
||||
<string name="settings_label_appearance">Aspect</string>
|
||||
<string name="settings_label_language">Limbă</string>
|
||||
<string name="settings_default">Implicit</string>
|
||||
<string name="settings_label_advanced">Avansat</string>
|
||||
<string name="settings_label_showStats">Statistici ruter</string>
|
||||
<string name="settings_label_transports">Transporturi</string>
|
||||
@ -105,6 +136,9 @@
|
||||
<string name="about_donate">Doriți să donați bani sau bitcoins pentru cumpărarea de mai multe dispozitive Android pentru dezvoltare și testare? Mergeți la:</string>
|
||||
<string name="menu_help">Ajutor</string>
|
||||
<string name="general">General</string>
|
||||
<string name="label_router">Adrese publice</string>
|
||||
<string name="label_private">Adrese private</string>
|
||||
<string name="addressbook_is_empty">Agenda este goală</string>
|
||||
<string name="addressbook_search_header">%s gasit</string>
|
||||
<string name="addressbook_add_wizard_k_name">Nume</string>
|
||||
<string name="addressbook_add_wizard_k_destination">Destinatie</string>
|
||||
@ -122,6 +156,7 @@
|
||||
<string name="i2ptunnel_type_sockstunnel">SOCKS 4/4a/5 proxy</string>
|
||||
<string name="i2ptunnel_type_socksirctunnel">SOCKS IRC proxy</string>
|
||||
<string name="i2ptunnel_type_ircserver">Server IRC</string>
|
||||
<string name="install_recommended_app">Se instalează aplicația recomandată?</string>
|
||||
<string name="i2ptunnel_new_tunnel">Tunel nou</string>
|
||||
<string name="i2ptunnel_msg_config_saved">Modificările configurării s-au salvat</string>
|
||||
<string name="i2ptunnel_msg_config_save_failed">A eșuat salvarea configurării</string>
|
||||
@ -147,7 +182,54 @@
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">Ar trebui ca tunelul să pornească automat când ruterul pornește?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Se creează tunelul?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Creare tunel</string>
|
||||
<string name="i2ptunnel_view_target">Țintă</string>
|
||||
<string name="i2ptunnel_view_access_point">Punct de acces</string>
|
||||
<string name="i2ptunnel_view_autostart">Auto pornire</string>
|
||||
<string name="edit_tunnel">Editare tunel</string>
|
||||
<string name="name">Nume</string>
|
||||
<string name="description">Descriere</string>
|
||||
<string name="auto_start">Pornire automată</string>
|
||||
<string name="tunnel_summ_auto_start">Pornește tunelul când pornește ruterul.</string>
|
||||
<string name="tunnel_cat_ports">Porturi locale</string>
|
||||
<string name="shared_client">Client partajat</string>
|
||||
<string name="target_destination">Destinație țintă</string>
|
||||
<string name="persistent_key">Cheie permanentă</string>
|
||||
<string name="client_ssl">Client SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">Clienții trebuie să utilizeze SSL pentru conectare</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="enable_dcc">Activează DCC</string>
|
||||
<string name="tunnel_summ_enable_dcc">Permite clienților IRC să utilizeze DCC</string>
|
||||
<string name="use_ssl">Utilizează SSL</string>
|
||||
<string name="tunnel_summ_use_ssl">Utilizează SSL pentru conectarea la țintă</string>
|
||||
<string name="tunnel_parameters">Parametri tunel</string>
|
||||
<string name="profile">Profil</string>
|
||||
<string name="profile_interactive">Conexiune interactivă</string>
|
||||
<string name="delay_connect">Întârziere conectare</string>
|
||||
<string name="access_control">Control acces</string>
|
||||
<string name="restricted_access">Acces restricționat</string>
|
||||
<string name="disabled">Dezactivat</string>
|
||||
<string name="whitelist">Listă de excepții</string>
|
||||
<string name="blacklist">Listă de blocare</string>
|
||||
<string name="access_list">Listă de acces</string>
|
||||
<string name="connections_per_minute">Conexiuni pe minut</string>
|
||||
<string name="connections_per_hour">Conexiuni pe oră</string>
|
||||
<string name="connections_per_day">Conexiuni pe zi</string>
|
||||
<string name="num_per_minute">%s pe minut</string>
|
||||
<string name="num_per_hour">%s pe oră</string>
|
||||
<string name="num_per_day">%s pe zi</string>
|
||||
<string name="unlimited">Nelimitat</string>
|
||||
<string name="set_zero_for_unlimited">Configurați 0 pentru nelimitat</string>
|
||||
<string name="num_minutes">%s minute</string>
|
||||
<string name="http_client">Client HTTP</string>
|
||||
<string name="proxy_auth">Autorizare proxy</string>
|
||||
<string name="username">Nume utilizator</string>
|
||||
<string name="password">Parolă</string>
|
||||
<string name="other">Altceva</string>
|
||||
<string name="signature_type">Tip semnătură</string>
|
||||
<string name="custom_options">Opțiuni personalizate</string>
|
||||
<string name="all">Tot</string>
|
||||
<string name="no_messages">Fără mesaje</string>
|
||||
<string name="no_error_messages">Fără mesaje de eroare</string>
|
||||
<string name="copy_logs">Copiază jurnale</string>
|
||||
<string name="i2p_android_error_logs">Jurnale eroare I2P Android</string>
|
||||
<string name="i2p_android_logs">Jurnale I2P Android</string>
|
||||
|
@ -81,6 +81,7 @@
|
||||
<string name="router_not_running">Маршрутизатор не запущен.</string>
|
||||
<string name="router_shutting_down">Маршрутизатор выключается.</string>
|
||||
<string name="stats_not_ready">Менеджер статистики ещё не готов. Попробуйте позже.</string>
|
||||
<string name="select_an_address">Выбрать адрес.</string>
|
||||
<string name="no_graphs_configured">Графики не настроены. Вы можете выбрать статистику для отображения на графике в настройках меню. Любые изменения начнут действовать через 60 секунд.</string>
|
||||
<string name="configure_graphs">Настройки графиков</string>
|
||||
<string name="graphs_not_ready">Графики ещё не готовы. Попробуйте позже.</string>
|
||||
@ -108,9 +109,9 @@
|
||||
<string name="notification_status_stopping_after_net">Сеть отключена, остановка I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Выключение отменено</string>
|
||||
<string name="notification_status_shutting_down">I2P выключается</string>
|
||||
<string name="notification_status_bw">Пропускная способность: %1$s KBps прием / %2$s KBps отправка</string>
|
||||
<string name="notification_status_bw">Пропускная способность: %1$sBps прием / %2$sBps отправка</string>
|
||||
<string name="notification_status_peers">Узлы: %1$d активны, %2$d известны</string>
|
||||
<string name="notification_status_expl">Исследовательские туннели: %1$d/%2$d</string>
|
||||
<string name="notification_status_expl">Поисковые туннели: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Туннели клиента: %1$d/%2$d</string>
|
||||
<string name="menu_settings">Настройки</string>
|
||||
<string name="settings_enable">Включить</string>
|
||||
@ -245,7 +246,7 @@
|
||||
<string name="name">Имя</string>
|
||||
<string name="description">Описание</string>
|
||||
<string name="auto_start">Автозапуск</string>
|
||||
<string name="tunnel_summ_auto_start">Запустить туннель с запуском маршрутизатора</string>
|
||||
<string name="tunnel_summ_auto_start">Запустить туннель с запуском маршрутизатора.</string>
|
||||
<string name="tunnel_cat_ports">Локальный порт</string>
|
||||
<string name="shared_client">Общий клиент</string>
|
||||
<string name="tunnel_summ_shared_client">Использовать то же назначение и туннели, что и общие клиенты</string>
|
||||
|
@ -16,7 +16,7 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="label_logs">Loggar</string>
|
||||
<string name="label_error_logs">Felloggar</string>
|
||||
<string name="label_news">Nyheter</string>
|
||||
<string name="label_peers_status">Peers</string>
|
||||
<string name="label_peers_status">Noder</string>
|
||||
<string name="label_release_notes">Releasekommentarer</string>
|
||||
<string name="label_licenses">Licenser</string>
|
||||
<string name="label_browse">Bläddra</string>
|
||||
@ -31,7 +31,7 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="testing">Testar</string>
|
||||
<string name="firewalled">Bakom brandvägg</string>
|
||||
<string name="symmetric_nat">Symmetrisk NAT</string>
|
||||
<string name="net_status_error_i2cp">Klienthanterare I2CP fel - kontrollera loggar</string>
|
||||
<string name="net_status_error_i2cp">Klienthanterare I2CP-fel - kontrollera loggar</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">Klockförskjutning på %s</string>
|
||||
<string name="net_status_error_unresolved_tcp">Ej upplöst TCP-adress</string>
|
||||
@ -40,13 +40,13 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="net_status_warn_firewalled_floodfill">Bakom brandvägg och floodfill</string>
|
||||
<string name="net_status_info_disconnected">Frånkopplad - kontrollera nätverksanslutning</string>
|
||||
<string name="net_status_error_udp_port">UDP-porten används - ändra i inställningar och start om</string>
|
||||
<string name="net_status_error_no_active_peers">Inga aktiva peers - kontrollera nätverksanslutning och brandvägg</string>
|
||||
<string name="net_status_error_no_active_peers">Inga aktiva noder - kontrollera nätverksanslutning och brandvägg</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP deaktiverad och inåtgående TCP host/port inte angiven</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Bakom brandvägg med UDP avaktiverad</string>
|
||||
<string name="shared_clients">Delade klienter</string>
|
||||
<string name="uptime">Upptid</string>
|
||||
<string name="active_peers">Aktiva peers</string>
|
||||
<string name="known_peers">Kända peers</string>
|
||||
<string name="active_peers">Aktiva noder</string>
|
||||
<string name="known_peers">Kända noder</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">C</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
@ -57,7 +57,7 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="configure_browser_title">Konfigurera browsern?</string>
|
||||
<string name="configure_browser_for_i2p">Vill du konfigurera en browser för att se på I2P sidor? (Du kan också göra detta senare från hjälpmenyn.)</string>
|
||||
<string name="first_start_title">Gratulerar till din I2P installation!</string>
|
||||
<string name="first_start_welcome"><b>Välkommen till I2P</b>Vänligen<b>ha tålamod</b> medan I2P bootar och letar upp peers.</string>
|
||||
<string name="first_start_welcome"><b>Välkommen till I2P!</b> Vänligen <b>ha tålamod</b> medan I2P startar och letar upp noder.</string>
|
||||
<string name="first_start_read">Medan du väntar, vänligen läs utgåvans meddelanden och välkomstsidan.</string>
|
||||
<string name="first_start_faq">När du har fått klienttunnlar, vänligen <b>kolla</b> vår FAQ:</string>
|
||||
<string name="first_start_faq_nonanon">Använd den här icke-anonyma länken om du inte vill vänta på tunnlar:</string>
|
||||
@ -82,6 +82,7 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="router_not_running">Routern kör inte</string>
|
||||
<string name="router_shutting_down">Routern stänger ner.</string>
|
||||
<string name="stats_not_ready">Statistikhanteraren är inte redo än. Försök igen senare.</string>
|
||||
<string name="select_an_address">Välj en adress.</string>
|
||||
<string name="no_graphs_configured">Inga grafer har ställts in. Du kan välja statistik till grafen i inställningsmenyn. Ändringar aktiveras efter 60 sekunder.</string>
|
||||
<string name="configure_graphs">Ställ in grafer</string>
|
||||
<string name="graphs_not_ready">Graferna är inte färdiga än. Försök igen senare.</string>
|
||||
@ -109,8 +110,8 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="notification_status_stopping_after_net">Nätverk nedkopplat, stannar I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Avstängning avbruten</string>
|
||||
<string name="notification_status_shutting_down">I2P stänger ner</string>
|
||||
<string name="notification_status_bw">Bandbredd:%1$s KBps ner / %2$s KBps upp</string>
|
||||
<string name="notification_status_peers">Peers: %1$d aktiva, %2$d kända</string>
|
||||
<string name="notification_status_bw">Bandbredd:%1$sBps ner / %2$sBps upp</string>
|
||||
<string name="notification_status_peers">Noder: %1$d aktiva, %2$d kända</string>
|
||||
<string name="notification_status_expl">Utforskande tunnlar: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Klienttunnlar:%1$d/%2$d</string>
|
||||
<string name="menu_settings">Inställningar</string>
|
||||
@ -169,8 +170,8 @@ Var god läs release kommentarerna och licens-information.</string>
|
||||
<string name="about_project">Projektets Hem:</string>
|
||||
<string name="about_bugs">Bugs och Support:</string>
|
||||
<string name="about_helpwanted">Hjälp Önskas!</string>
|
||||
<string name="about_volunteer">Vill du hjälpa till att göra appen bättre? Anmäl dig på Android forum:</string>
|
||||
<string name="about_donate">Vill du donera pengar eller bitcoins för inköp av fler Androidenheter till utveckling och testning? Gå till:</string>
|
||||
<string name="about_volunteer">Vill du hjälpa till att göra appen bättre? Anmäl dig på Android-forumet:</string>
|
||||
<string name="about_donate">Vill du donera pengar eller bitcoin för inköp av fler Androidenheter till utveckling och testning? Gå till:</string>
|
||||
<string name="menu_help">Hjälp</string>
|
||||
<string name="general">Generell</string>
|
||||
<string name="label_router">Offentliga adresser</string>
|
||||
|
@ -1,55 +1,354 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="app_name">I2P</string>
|
||||
<string name="welcome_new_install">I2P dünyasına hoş geldiniz. Bu uygulama henüz ALPHA geliştirme düzeyindedir ve yaygın olarak herkese açılmamıştır. Lütfen notları ve lisans bilgilerini okuyun.</string>
|
||||
<string name="desc_i2p_logo">I2P logosu</string>
|
||||
<string name="choose_language">Dil seçin</string>
|
||||
<string name="welcome_new_install">I2P dünyasına hoş geldiniz. Bu uygulama henüz ALPHA geliştirme düzeyindedir ve güçlü bir isimsiz kalma özelliği sağlamamaktadır. Lütfen yayım notlarını ve lisans bilgilerini okuyun.</string>
|
||||
<string name="welcome_new_version">Yeni sürüm yüklendi. Lütfen yayım notlarını okuyun. Sürüm:</string>
|
||||
<string name="label_home">I2P Anasayfası</string>
|
||||
<string name="label_tunnels">Tüneller</string>
|
||||
<string name="label_status">Durum</string>
|
||||
<string name="label_console">Konsol</string>
|
||||
<string name="label_addresses">Adresler</string>
|
||||
<string name="label_addressbook">Adres defteri</string>
|
||||
<string name="label_i2ptunnel_client">İstemci tünelleri</string>
|
||||
<string name="label_i2ptunnel_server">Sunucu tünelleri</string>
|
||||
<string name="label_logs">Günlükler</string>
|
||||
<string name="label_error_logs">Hata Günlükleri</string>
|
||||
<string name="label_info_and_pages">Bilgiler ve sayfalar</string>
|
||||
<string name="label_welcome_page">Karşılama Sayfası</string>
|
||||
<string name="label_news">Haberler</string>
|
||||
<string name="label_peers_status">Eşler</string>
|
||||
<string name="label_release_notes">Yayım Notları</string>
|
||||
<string name="label_licenses">Lisanslar</string>
|
||||
<string name="label_nonanon_info">Herkese Açık Olmayan Bilgiler</string>
|
||||
<string name="action_add">Ekleyin</string>
|
||||
<string name="action_router_start">Yönelticiyi Başlatın</string>
|
||||
<string name="action_router_stop">Yönelticiyi Durdurun</string>
|
||||
<string name="action_reload">Yeniden Yükleyin</string>
|
||||
<string name="label_browse">Gözat</string>
|
||||
<string name="label_graphs">Çizelgeler</string>
|
||||
<string name="button_router_off">I2P başlatmak için uzun basın</string>
|
||||
<string name="button_router_on">I2P çalışıyor (durdurmak için uzun basın)</string>
|
||||
<string name="button_router_graceful">I2P %s içinde kapatılacak</string>
|
||||
<string name="button_shutdown_now">Şimdi durdurmak için uzun basın</string>
|
||||
<string name="button_cancel_graceful">Kapatmayı engellemek için uzun basın</string>
|
||||
<string name="no_internet">Kullanılabilecek bir İnternet bağlantısı yok</string>
|
||||
<string name="hidden">Gizli</string>
|
||||
<string name="testing">Sınanıyor</string>
|
||||
<string name="firewalled">Güvenlik duvarlı</string>
|
||||
<string name="symmetric_nat">Simetrik NAT</string>
|
||||
<string name="net_status_error_i2cp">İstemci yöneticisi I2CP hatası - günlüklere bakın</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_skew">%s saat sapması</string>
|
||||
<string name="net_status_error_unresolved_tcp">Çözümlenmemiş TCP adresi</string>
|
||||
<string name="net_status_error_private_tcp">Kişisel TCP adresi</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Gelen TCP güvenlik duvarı etkinleştirilmiş </string>
|
||||
<string name="net_status_warn_firewalled_floodfill">Güvenlik duvarlı ve akış korumalı</string>
|
||||
<string name="net_status_info_disconnected">Bağlantı kesildi - ağ bağlantısını denetleyin</string>
|
||||
<string name="net_status_error_udp_port">UPD kapısı kullanılıyor - ayarları değiştirip yeniden başlatın</string>
|
||||
<string name="net_status_error_no_active_peers">Etkin eş yok, ağ bağlantısını ve güvenlik duvarını denetleyin</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP devre dışı ve Gelen TCP sunucu/kapı ayarlanmamış</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">Güvenlik duvarı ve UDP devre dışı</string>
|
||||
<string name="shared_clients">Paylaşılmış istemciler</string>
|
||||
<string name="uptime">Çalışma süresi</string>
|
||||
<string name="active_peers">Etkin eşler</string>
|
||||
<string name="known_peers">Bilinen eşler</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">İ</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">S</string>
|
||||
<string name="no_tunnels_running">Henüz çalışan bir tünel yok.</string>
|
||||
<string name="download">İndirme</string>
|
||||
<string name="upload">Yükleme</string>
|
||||
<string name="configure_browser_title">Tarayıcı yapılandırılsın mı?</string>
|
||||
<string name="configure_browser_for_i2p">I2P sitelerini görüntüleyecek bir tarayıcı ayarlamak ister misiniz? (bu işlemi daha sonra Yardım menüsünden yapabilirsiniz).</string>
|
||||
<string name="first_start_title">Tebrikler, I2P yüklendi!</string>
|
||||
<string name="first_start_welcome"><b>I2P Yazılımına Hoşgeldiniz</b> Lütfen I2P yüklenip eşleri bulana kadar <b>sabırlı olun</b>.</string>
|
||||
<string name="first_start_read">Beklerken, lütfen sürüm notları ve hoş geldiniz sayfalarını okuyun.</string>
|
||||
<string name="first_start_faq">İstemci tünelleri bulunduğunda, lütfen Sık Sorulan Sorular bölümüne <b>bakın</b>:</string>
|
||||
<string name="first_start_faq_nonanon">Ya da tünelleri beklemek istemiyorsanız isimsiz olmayan şu bağlantıyı kullanın:</string>
|
||||
<string name="first_start_irc">IRC istemcinizi <b>localhost:6668</b> adresine yönlendirip şuradan bize merhaba deyin:</string>
|
||||
<string name="action_search">Arama</string>
|
||||
<string name="action_add">Ekle</string>
|
||||
<string name="action_edit">Düzenle</string>
|
||||
<string name="action_delete">Sil</string>
|
||||
<string name="action_i2ptunnel_start">Tüneli aç</string>
|
||||
<string name="action_i2ptunnel_stop">Tüneli kapat</string>
|
||||
<string name="action_i2ptunnel_start_all">Tüm tünelleri aç</string>
|
||||
<string name="action_i2ptunnel_stop_all">Tüm tünelleri kapat</string>
|
||||
<string name="action_i2ptunnel_restart_all">Tüm tünelleri yeniden aç</string>
|
||||
<string name="action_reload">Yeniden Yükle</string>
|
||||
<string name="action_refresh">Yenile</string>
|
||||
<string name="hint_search_addressbook">Adres defterinde arama</string>
|
||||
<string name="action_reload_subscriptions">Abonelikleri yeniden yükle</string>
|
||||
<string name="news_last_updated">Haberler en son %s önce güncellendi</string>
|
||||
<string name="news_last_checked">Haberler en son %s önce denetlendi</string>
|
||||
<string name="news_updated">Haberler Güncellendi</string>
|
||||
<string name="view_news">I2P yeniliklerini görmek için dokunun</string>
|
||||
<string name="router_not_running">Yöneltici çalışmıyor.</string>
|
||||
<string name="router_shutting_down">Yöneltici kapatılıyor.</string>
|
||||
<string name="stats_not_ready">İstatistik yönetimi henüz hazır değil. Daha sonra yeniden deneyin.</string>
|
||||
<string name="select_an_address">Bir adres seçin.</string>
|
||||
<string name="no_graphs_configured">Henüz bir çizelge ayarlanmamış. Ayarlar menüsünden çizelgesi oluşturulacak istatistikleri seçebilirsiniz. Yapılacak değişiklikler 60 saniye sonra geçerli olur.</string>
|
||||
<string name="configure_graphs">Çizelge ayarları</string>
|
||||
<string name="graphs_not_ready">Çizelgeler henüz hazır değil. Daha sonra yeniden deneyin.</string>
|
||||
<string name="statistics">İstatistikler</string>
|
||||
<string name="routers">Yönelticiler</string>
|
||||
<string name="leasesets">Kiralama Kümeleri</string>
|
||||
<string name="countries">Ülkeler</string>
|
||||
<string name="country">Ülke</string>
|
||||
<string name="transport">Aktarım</string>
|
||||
<string name="versions">Sürümler</string>
|
||||
<string name="version">Sürüm</string>
|
||||
<string name="count">Sayı</string>
|
||||
<string name="tname_0">Gizli ya da başlatılıyor</string>
|
||||
<string name="netdb_routers_empty">Ağ Veritabanınızda bir yöneltici bulunamadı.</string>
|
||||
<string name="netdb_leases_empty">Ağ Veritabanınızda bir LeaseSets bulunamadı.</string>
|
||||
<string name="notification_status_starting">I2P başlatılıyor</string>
|
||||
<string name="notification_status_restarting">I2P yeniden başlatılıyor</string>
|
||||
<string name="notification_status_waiting">I2P bir ağ bağlantısının kurulmasını bekliyor</string>
|
||||
<string name="notification_status_starting_after_waiting">Ağ bağlantısı kuruldu, I2P başlatılıyor</string>
|
||||
<string name="notification_status_running">I2P çalışıyor</string>
|
||||
<string name="notification_status_client_ready">İstemci tünelleri hazır</string>
|
||||
<string name="notification_status_client_down">İstemci tünelleri kapalı</string>
|
||||
<string name="notification_status_graceful">I2P %s içinde durdurulacak</string>
|
||||
<string name="notification_status_stopping">I2P durduruluyor</string>
|
||||
<string name="notification_status_stopping_after_net">Ağ devre dışı bırakıldı, I2P durduruluyor</string>
|
||||
<string name="notification_status_shutdown_cancelled">Kapatma iptal edildi</string>
|
||||
<string name="notification_status_shutting_down">I2P kapatılıyor</string>
|
||||
<string name="notification_status_bw">Bant genişliği: %1$sBps indirme / %2$sBps yükleme</string>
|
||||
<string name="notification_status_peers">Eşler: %1$d etkin, %2$d bilinmeyen</string>
|
||||
<string name="notification_status_expl">Keşif tünelleri: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">İstemci tünelleri: %1$d/%2$d</string>
|
||||
<string name="menu_settings">Ayarlar</string>
|
||||
<string name="settings_enable">Etkinleştirin</string>
|
||||
<string name="settings_enable">Etkinleştir</string>
|
||||
<string name="settings_desc_subscriptions">Abonelik İnternet Adresleri</string>
|
||||
<string name="settings_label_bandwidth">Bant genişliği ve ağ</string>
|
||||
<string name="settings_label_bandwidth_net">Bant genişliği ve ağ</string>
|
||||
<string name="settings_label_startOnBoot">I2P Açılışta Başlatılsın</string>
|
||||
<string name="settings_desc_startOnBoot">Android aygıtınız başlatıldığında I2P kendiliğinden bağlanır</string>
|
||||
<string name="settings_label_bandwidth">Bant genişliği</string>
|
||||
<string name="settings_label_bw_inbound">Geliş hızı</string>
|
||||
<string name="settings_desc_bw_inbound">En fazla geliş hızı</string>
|
||||
<string name="settings_desc_bw_inbound">En yüksek geliş hızı</string>
|
||||
<string name="settings_label_bw_outbound">Gidiş hızı</string>
|
||||
<string name="settings_desc_bw_outbound">En fazla gidiş hızı</string>
|
||||
<string name="settings_desc_bw_outbound">En yüksek gidiş hızı</string>
|
||||
<string name="settings_label_network">Ağ</string>
|
||||
<string name="settings_label_hiddenMode">Katılım</string>
|
||||
<string name="settings_desc_hiddenMode">Gizli kipi kapatın</string>
|
||||
<string name="settings_desc_hiddenMode">Gizli kipi kapat</string>
|
||||
<string name="settings_label_maxPartTunnels">Katılınacak en fazla tünel sayısı </string>
|
||||
<string name="settings_desc_maxPartTunnels">Katılınacak en fazla tünel sayısı (varsayılan=20)</string>
|
||||
<string name="settings_dialog_maxPartTunnels">Katılınacak en fazla tünel sayısı </string>
|
||||
<string name="settings_label_sharePercent">Paylaşım yüzdei</string>
|
||||
<string name="settings_desc_sharePercent">Paylaşılan bant genişliği yüzdesi (varsayılan=80)</string>
|
||||
<string name="settings_label_sharePercent">Paylaşım yüzdesi</string>
|
||||
<string name="settings_desc_sharePercent">Paylaşılacak bant genişliği yüzdesi (varsayılan=80)</string>
|
||||
<string name="settings_dialog_sharePercent">Paylaşılacak bant genişliği yüzdesi</string>
|
||||
<string name="settings_desc_upnp">Güvenlik duvarı kapıları kendiliğinden açılsın</string>
|
||||
<string name="settings_label_logging">Günlükleme</string>
|
||||
<string name="settings_label_default_log_level">Varsayılan günlük düzeyi</string>
|
||||
<string name="settings_label_appearance">Görünüm</string>
|
||||
<string name="settings_label_language">Dil</string>
|
||||
<string name="settings_default">Varsayılan</string>
|
||||
<string name="settings_label_advanced">Gelişmiş</string>
|
||||
<string name="settings_label_showStats">Yöneltici istatistikleri</string>
|
||||
<string name="settings_summ_showStats">Ana konsolda ayrıntılı istatistikler görüntülensin</string>
|
||||
<string name="settings_label_transports">Aktarımlar</string>
|
||||
<string name="settings_label_maxConns">En fazla bağlantı</string>
|
||||
<string name="settings_label_i2cp">I2CP Arayüzü</string>
|
||||
<string name="settings_desc_i2cp">7654. kapı dinlensin</string>
|
||||
<string name="settings_label_exploratory_pool">Keşif havuzu</string>
|
||||
<string name="settings_desc_exploratory_pool">Tunel ayarları</string>
|
||||
<string name="settings_label_expl_inbound">Gelen tüneller</string>
|
||||
<string name="settings_label_expl_outbound">Giden tüneller</string>
|
||||
<string name="settings_label_expl_inbound">Geliş tünelleri</string>
|
||||
<string name="settings_label_expl_outbound">Gidiş tünelleri</string>
|
||||
<string name="settings_label_expl_length">Uzunluk</string>
|
||||
<string name="settings_summ_expl_length">%s sıçrama</string>
|
||||
<string name="settings_desc_expl_length">Kullanılacak sıçrama sayısı</string>
|
||||
<string name="settings_label_expl_lengthVariance">Sıçrama çeşitliliği</string>
|
||||
<string name="settings_summ_expl_lengthVariance">%s</string>
|
||||
<string name="settings_desc_expl_lengthVariance">Rastgele eklenecek sıçrama sayısı</string>
|
||||
<string name="settings_label_expl_quantity">Nicelik</string>
|
||||
<string name="settings_label_expl_quantity">Sayı</string>
|
||||
<string name="settings_summ_expl_quantity">%s tünel</string>
|
||||
<string name="settings_desc_expl_quantity">Tünel sayısı</string>
|
||||
<string name="settings_label_expl_backupQuantity">Yedek niceliği</string>
|
||||
<string name="settings_label_expl_backupQuantity">Yedek sayısı</string>
|
||||
<string name="settings_summ_expl_backupQuantity">%s tünel</string>
|
||||
<string name="settings_desc_expl_backupQuantity">Tünel yedeği sayısı</string>
|
||||
<string name="settings_need_transport_enabled">En az bir aktarım etkinleştirilmiş olmalıdır</string>
|
||||
<string name="settings_router_restart_required">Değişikliklerin etkili olması için I2P yeniden başlatılmalı</string>
|
||||
<string name="menu_about">Hakkında</string>
|
||||
<string name="about_version">Sürüm:</string>
|
||||
<string name="about_project">Proje Web Sitesi:</string>
|
||||
<string name="about_bugs">Hatalar ve Destek</string>
|
||||
<string name="about_helpwanted">Yardımınız Gerekli!</string>
|
||||
<string name="about_volunteer">Uygulamayı daha iyi duruma getirmek için yardımcı olmak ister misiniz? Android forumunda gönüllü olun:</string>
|
||||
<string name="about_donate">Geliştirme ve denemeler için çeşitli Android aygıtları alabilmemiz için para ya da bitcoin bağışlamak ister misiniz:</string>
|
||||
<string name="menu_help">Yardım</string>
|
||||
<string name="general">Genel</string>
|
||||
<string name="label_router">Herkese açık adresler</string>
|
||||
<string name="label_private">Kişisel adresler</string>
|
||||
<string name="addressbook_is_empty">Adres defteri boş</string>
|
||||
<string name="addressbook_search_header">%s bulundu</string>
|
||||
<string name="addressbook_add_wizard_k_name">Ad</string>
|
||||
<string name="addressbook_add_wizard_k_destination">Hedef</string>
|
||||
<string name="addressbook_add_wizard_desc_name">Ad</string>
|
||||
<string name="addressbook_add_wizard_desc_destination">Hedefin B64 değerini buraya yapıştırın. Yüklü bir dosya yöneticiniz varsa, içinde B64 geçen bir metin dosyasını aratabilirsiniz.</string>
|
||||
<string name="nsu_iae_illegal_char">\"%1$s\" sunucu adında %2$s geçersiz karakteri bulunuyor</string>
|
||||
<string name="nsu_iae_cannot_start_with">Sunucu adı \"%s\" ile başlayamaz</string>
|
||||
<string name="nsu_iae_cannot_end_with">Sunucu adı \"%s\" ile bitemez</string>
|
||||
<string name="nsu_iae_cannot_contain">Sunucu adında \"%s\" bulunamaz</string>
|
||||
<string name="nsu_iae_requires_conversion">\"%s\" sunucu adının ASCII karakterlerine dönüştürülmesi gerekiyor ancak bu Android sürümü için dönüştürme kitaplığı kullanılamıyor</string>
|
||||
<string name="i2ptunnel_type_client">Standart istemci</string>
|
||||
<string name="i2ptunnel_type_httpclient">HTTP istemcisi</string>
|
||||
<string name="i2ptunnel_type_ircclient">IRC istemcisi</string>
|
||||
<string name="i2ptunnel_type_server">Standart sunucusu</string>
|
||||
<string name="i2ptunnel_type_httpserver">HTTP sunucusu</string>
|
||||
<string name="i2ptunnel_type_sockstunnel">SOCKS 4/4a/5 vekil sunucusu</string>
|
||||
<string name="i2ptunnel_type_socksirctunnel">SOCKS IRC vekil sunucusu</string>
|
||||
<string name="i2ptunnel_type_connectclient">CONNECT/SSL/HTTPS vekil sunucusu</string>
|
||||
<string name="i2ptunnel_type_ircserver">IRC sunucusu</string>
|
||||
<string name="i2ptunnel_type_streamrclient">Streamr istemcisi</string>
|
||||
<string name="i2ptunnel_type_streamrserver">Streamr sunucusu</string>
|
||||
<string name="i2ptunnel_type_httpbidirserver">HTTP bidir</string>
|
||||
<string name="install_recommended_app">Önerilen uygulama yüklensin</string>
|
||||
<string name="app_needed_for_this_tunnel_type">Bu tüneli kullanmak için bir uygulama yüklemelisiniz. Önerilen uygulamayı yüklemek ister misiniz?</string>
|
||||
<string name="i2ptunnel_not_initialized">Tüneller henüz hazır değil, lütfen iki dakika sonra yeniden yükleyin.</string>
|
||||
<string name="no_configured_client_tunnels">Henüz ayarlanmış bir istemci tüneli yok.</string>
|
||||
<string name="no_configured_server_tunnels">Henüz ayarlanmış bir sunucu tüneli yok.</string>
|
||||
<string name="i2ptunnel_new_tunnel">Yeni Tünel</string>
|
||||
<string name="i2ptunnel_msg_config_saved">Ayar değişiklikleri kaydedildi</string>
|
||||
<string name="i2ptunnel_msg_config_save_failed">Ayarlar kaydedilemedi</string>
|
||||
<string name="i2ptunnel_msg_tunnel_starting">Tünel açılıyor</string>
|
||||
<string name="i2ptunnel_msg_tunnel_stopping">Tünel kapatılıyor</string>
|
||||
<string name="i2ptunnel_delete_confirm_message">Tüneli sil</string>
|
||||
<string name="i2ptunnel_delete_confirm_button">Tüneli sil</string>
|
||||
<string name="i2ptunnel_wizard_k_client_server">İstemci ya da Sunucu</string>
|
||||
<string name="i2ptunnel_wizard_v_client">İstemci tüneli</string>
|
||||
<string name="i2ptunnel_wizard_v_server">Sunucu tüneli</string>
|
||||
<string name="i2ptunnel_wizard_k_type">Tünel türü</string>
|
||||
<string name="i2ptunnel_wizard_k_name">Ad</string>
|
||||
<string name="i2ptunnel_wizard_k_desc">Açıklama</string>
|
||||
<string name="i2ptunnel_wizard_k_dest">Hedef</string>
|
||||
<string name="i2ptunnel_wizard_k_outproxies">Çıkış vekil sunucuları</string>
|
||||
<string name="i2ptunnel_wizard_k_target_host">Hedef sunucu</string>
|
||||
<string name="i2ptunnel_wizard_k_target_port">Hedef kapı</string>
|
||||
<string name="i2ptunnel_wizard_k_reachable_on">Şuradan erişilebilir</string>
|
||||
<string name="i2ptunnel_wizard_k_binding_port">Bağlanılacak kapı</string>
|
||||
<string name="i2ptunnel_wizard_k_auto_start">Otomatik başlat</string>
|
||||
<string name="next">Sonraki</string>
|
||||
<string name="prev">Önceki</string>
|
||||
<string name="finish">Gönder</string>
|
||||
<string name="review">Gözden Geçir</string>
|
||||
<string name="enabled">Etkin</string>
|
||||
<string name="i2ptunnel_wizard_desc_name">Tünel listesinde görüntülenecek tünel adı.</string>
|
||||
<string name="i2ptunnel_wizard_desc_desc">İsteğe bağlı olarak yazılabilecek tünel açıklaması.</string>
|
||||
<string name="i2ptunnel_wizard_desc_dest">Bu istemci tünelinin bağlanacağı hizmetin I2P hedefini yazın. Tam Base 64 hedef anahtarı ya da adres defterinizden bir sunucu adı olabilir.</string>
|
||||
<string name="i2ptunnel_wizard_desc_outproxies">Bu tünel türü için bildiğiniz çıkış sunucuları varsa (HTTP ya da SOCKS) buraya virgül ile ayırarak yazın. </string>
|
||||
<string name="i2ptunnel_wizard_desc_target_host">Çalıştırdığınız hizmetin IP adresi. Genellikle aynı bilgisayarda olduğundan otomatik olarak 127.0.0.1 yazılır.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_port">Hizmetin bağlantıları kabul edeceği kapı numarası.</string>
|
||||
<string name="i2ptunnel_wizard_desc_reachable_on">Bu seçenek bu tünele erişebilecek bilgisayar ve akıllı telefonları sınırlar.</string>
|
||||
<string name="i2ptunnel_wizard_desc_binding_port">İstemci tüneline yerel olarak erişilebilecek kapı numarası. Aynı zaman HTTP bidir sunucu tünelinin istemci kapı numarasıdır.</string>
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">Yöneltici başlatıldığında tünel de başlatılsın mı?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Tünel oluşturulsun</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Tüneli oluştur</string>
|
||||
<string name="i2ptunnel_view_target">Hedef</string>
|
||||
<string name="i2ptunnel_view_access_point">Erişim noktası</string>
|
||||
<string name="i2ptunnel_view_autostart">Otomatik başlat</string>
|
||||
<string name="edit_tunnel">Tüneli düzenle</string>
|
||||
<string name="name">Ad</string>
|
||||
<string name="description">Açıklama</string>
|
||||
<string name="auto_start">Otomatik başlat</string>
|
||||
<string name="tunnel_summ_auto_start">Yöneltici başlatıldığında tünel de başlatılsın.</string>
|
||||
<string name="tunnel_cat_ports">Yerel kapılar</string>
|
||||
<string name="shared_client">Paylaşılmış istemci</string>
|
||||
<string name="tunnel_summ_shared_client">Diğer paylaşılmış istemciler ile aynı hedef ve tüneller kullanılsın</string>
|
||||
<string name="target_destination">Hedef konum</string>
|
||||
<string name="persistent_key">Sürekli anahtar</string>
|
||||
<string name="persistent_key_conflict_title">Yeniden açıldığında yeni anahtarlar oluşturulmasın</string>
|
||||
<string name="persistent_key_conflict_msg">Tünel yeniden açıldığında yeni anahtarlar oluşturuluyorsa sürekli anahtarlar kullanılamaz. Yeniden açıldığından yeni anahtarların oluşturulması devre dışı bırakılsın mı?</string>
|
||||
<string name="tunnel_summ_persistent_key">Yeniden başlatıldığında bu tünelin hedefi korunsun</string>
|
||||
<string name="reachable_on">Şuradan erişilebilir</string>
|
||||
<string name="listen_port">Dinlenecek kapı</string>
|
||||
<string name="client_ssl">SSL İstemci</string>
|
||||
<string name="tunnel_summ_client_ssl">İstemci yalnız SSL üzerinden bağlanabilir</string>
|
||||
<string name="outproxies">Çıkış vekil sunucuları</string>
|
||||
<string name="ssl_outproxies">SSL çıkış vekil sunucuları</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="enable_dcc">DCC Kullanılsın</string>
|
||||
<string name="tunnel_summ_enable_dcc">IRC istemcileri DCC kullanabilsin</string>
|
||||
<string name="website_domain_name">Web sitesinin etki alanı</string>
|
||||
<string name="target_host">Hedef sunucu</string>
|
||||
<string name="target_port">Hedef kapı</string>
|
||||
<string name="use_ssl">SSL Kullanılsın</string>
|
||||
<string name="tunnel_summ_use_ssl">Hedefe bağlanmak için SSL kullanılsın</string>
|
||||
<string name="tunnel_parameters">Tünel parametreleri</string>
|
||||
<string name="profile">Profil</string>
|
||||
<string name="profile_bulk">Toplu bağlantı (indirme/web siteleri/BT)</string>
|
||||
<string name="profile_interactive">Etkileşimli bağlantı</string>
|
||||
<string name="delay_connect">Bağlantı gecikmesi</string>
|
||||
<string name="tunnel_summ_delay_connect">Bağlantı yanıtları için etkinleştirin</string>
|
||||
<string name="access_control">Erişim denetimi</string>
|
||||
<string name="restricted_access">Kısıtlı erişim</string>
|
||||
<string name="disabled">Devre dışı</string>
|
||||
<string name="whitelist">Beyaz liste</string>
|
||||
<string name="blacklist">Kara liste</string>
|
||||
<string name="access_list">Erişim listesi</string>
|
||||
<string name="reject_inproxies">Geçen vekil sunucular reddedilsin</string>
|
||||
<string name="tunnel_summ_reject_inproxies">Yalnız I2P kullanıcıları bağlanabilsin</string>
|
||||
<string name="unique_local">Eşsiz yerel</string>
|
||||
<string name="tunnel_summ_unique_local">Her istemci için eşsiz yerel sunucu IP adresi kullanılsın</string>
|
||||
<string name="multihome">Çoklu ev</string>
|
||||
<string name="tunnel_summ_multihome">Çoklu ev iyileştirmeleri kullanılsın</string>
|
||||
<string name="client_connection_limits">İstemci bağlantı sınırları</string>
|
||||
<string name="connections_per_minute">Dakikalık bağlantı sayısı</string>
|
||||
<string name="connections_per_hour">Saatlik bağlantı sayısı</string>
|
||||
<string name="connections_per_day">Günlük bağlantı sayısı</string>
|
||||
<string name="total_connection_limits">Toplam bağlantı sınırları</string>
|
||||
<string name="total_connections_per_minute">Dakikalık toplam bağlantı sayısı</string>
|
||||
<string name="total_connections_per_hour">Saatlik toplam bağlantı sayısı</string>
|
||||
<string name="total_connections_per_day">Günlük toplam bağlantı sayısı</string>
|
||||
<string name="max_active_connections">En fazla etkin bağlantı sayısı</string>
|
||||
<string name="num_per_minute">Dakikalık %s</string>
|
||||
<string name="num_per_hour">Saatlik %s</string>
|
||||
<string name="num_per_day">Günlük %s</string>
|
||||
<string name="unlimited">Sınırsız</string>
|
||||
<string name="set_zero_for_unlimited">Sınırsız olması için 0 yazın</string>
|
||||
<string name="post_limits">POST sınırlaması</string>
|
||||
<string name="limit_period">Sınırlama süresi</string>
|
||||
<string name="client_posts_per_period">Aralıktaki istemci POST sayısı</string>
|
||||
<string name="client_ban_length">İstemci engelleme uzunluğu</string>
|
||||
<string name="total_posts_per_period">Aralıktaki toplam POST sayısı</string>
|
||||
<string name="total_ban_length">Toplam engelleme uzunluğu</string>
|
||||
<string name="power_saving">Güç tasarrufu</string>
|
||||
<string name="delay_open">Açılma geciktirilsin</string>
|
||||
<string name="tunnel_summ_delay_open">Gerekene kadar tünel açılması geciktirilir</string>
|
||||
<string name="reduce_quantity">Sayı azaltılsın</string>
|
||||
<string name="tunnel_summ_reduce_quantity">Boştayken tünel sayısı azaltılır</string>
|
||||
<string name="idle_time">Boşta bekleme süresi</string>
|
||||
<string name="num_minutes">%s dakika</string>
|
||||
<string name="reduced_tunnel_quantity">Azaltılacak tünel sayısı</string>
|
||||
<string name="close_tunnels">Boştayken tüneller kapatılsın</string>
|
||||
<string name="new_keys_on_reopen">Yeniden açıldığından yeni anahtarlar oluşturulsun</string>
|
||||
<string name="new_keys_on_reopen_conflict_title">Sürekli anahtarlar kullanılamasın</string>
|
||||
<string name="new_keys_on_reopen_conflict_msg">Tünel yeniden açıldığında yeni anahtarlar oluşturuluyorsa sürekli anahtarlar kullanılamaz. Sürekli anahtarlar devre dışı bırakılsın mı?</string>
|
||||
<string name="http_client">HTTP istemcisi</string>
|
||||
<string name="tunnel_summ_user_agent">\'User-Agent\' üstbilgisi geçirilsin</string>
|
||||
<string name="tunnel_summ_referer">\'Referer\' üstbilgisi geçirilsin</string>
|
||||
<string name="tunnel_summ_accept">\'Accept-*\' üstbilgisi geçirilsin</string>
|
||||
<string name="tunnel_summ_allow_ssl">I2P adreslerinde SSL kullanılabilsin</string>
|
||||
<string name="jump_url_list">İnternet adresi listesine sıçra</string>
|
||||
<string name="proxy_auth">Vekil sunucu kimlik doğrulaması</string>
|
||||
<string name="tunnel_summ_proxy_auth">Bu vekil sunucuda oturum açmak için kimlik doğrulaması istensin</string>
|
||||
<string name="username">Kullanıcı Adı</string>
|
||||
<string name="password">Parola</string>
|
||||
<string name="outproxy_auth">Giden vekil sunucu kimlik doğrulaması</string>
|
||||
<string name="tunnel_summ_outproxy_auth">Giden vekil sunucu için oturum açılması gerekiyor</string>
|
||||
<string name="other">Diğer</string>
|
||||
<string name="signature_type">İmza türü</string>
|
||||
<string name="custom_options">Uyarlanmış seçenekler</string>
|
||||
<string name="all">Tümü</string>
|
||||
<string name="no_messages">Henüz bir ileti yok</string>
|
||||
<string name="no_error_messages">Henüz bir hata iletisi yok</string>
|
||||
<plurals name="log_error_messages">
|
||||
<item quantity="other">%d hata iletisi, yeniden eskiye</item>
|
||||
</plurals>
|
||||
<plurals name="log_messages">
|
||||
<item quantity="other">%d ileti, yeniden eskiye</item>
|
||||
</plurals>
|
||||
<string name="log_entry">Günlük Kaydı</string>
|
||||
<string name="copy_logs">Günlükleri kopyala</string>
|
||||
<string name="i2p_android_error_logs">I2P Android Hata Günlükleri</string>
|
||||
<string name="i2p_android_logs">I2P Android Günlükleri</string>
|
||||
<string name="error_logs_copied_to_clipboard">Hata günlükleri panoya kopyalandı</string>
|
||||
<string name="logs_copied_to_clipboard">Günlükler panoya kopyalandı</string>
|
||||
<string name="label_browser_configuration">Tarayıcı ayarları</string>
|
||||
<string name="unset">Ayarı Kaldır</string>
|
||||
</resources>
|
||||
|
@ -25,11 +25,33 @@
|
||||
<string name="button_router_graceful">I2P буде зупинено протягом %s</string>
|
||||
<string name="button_shutdown_now">Утримуйте, щоб зупинити</string>
|
||||
<string name="button_cancel_graceful">Утримуйте, щоб скасувати зупинку</string>
|
||||
<string name="no_internet">Немає підключення до Інтернету</string>
|
||||
<string name="hidden">Приховано</string>
|
||||
<string name="testing">Тестування</string>
|
||||
<string name="firewalled">Зафаерволено</string>
|
||||
<string name="symmetric_nat">Симетричний NAT</string>
|
||||
<string name="net_status_error_i2cp">Помилка клієнт менеджера i2cp - перевірити журнали</string>
|
||||
<!--Parameter is a time, e.g. 32s or 2m-->
|
||||
<string name="net_status_error_unresolved_tcp">Невирішена адреса TCP</string>
|
||||
<string name="net_status_error_private_tcp">Приватна TCP адреса</string>
|
||||
<string name="net_status_warn_firewalled_inbound_tcp">Зафаерволено з включеними вхідними TCP</string>
|
||||
<string name="net_status_warn_firewalled_floodfill">перевірено фаєрволом та застосовано алгоритм \"заливки\" </string>
|
||||
<string name="net_status_info_disconnected">Від’єднано, перевірте мережевий кабель</string>
|
||||
<string name="net_status_error_udp_port">Використовується UDP порт - змініть в налаштуваннях та перезавантажте</string>
|
||||
<string name="net_status_error_no_active_peers">Немає активних пірів - перевірте мережеве з\'єднання і файрвол</string>
|
||||
<string name="net_status_error_udp_disabled_tcp_not_set">UDP вимкнено і вхідний TCP хост/порт не встановлено</string>
|
||||
<string name="net_status_warn_firewalled_udp_disabled">перевірено фаєрволом з вимкненим UDP </string>
|
||||
<string name="shared_clients">Колективні клієнти</string>
|
||||
<string name="uptime">Аптайм</string>
|
||||
<string name="active_peers">Активні піри</string>
|
||||
<string name="known_peers">Відомі піри</string>
|
||||
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
|
||||
<string name="char_client_tunnel">К</string>
|
||||
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
|
||||
<string name="char_server_tunnel">С</string>
|
||||
<string name="no_tunnels_running">Нема жодного працюючого клієнта</string>
|
||||
<string name="download">Завантажено</string>
|
||||
<string name="upload">Вивантажено</string>
|
||||
<string name="configure_browser_title">Налаштувати браузер?</string>
|
||||
<string name="configure_browser_for_i2p">Бажаєте налаштувати браузер для перегляду I2P-сайтів? (Ви також можете зробити це пізніше через меню).</string>
|
||||
<string name="first_start_title">Вітаємо! I2P встановлено.</string>
|
||||
@ -58,6 +80,7 @@
|
||||
<string name="router_not_running">Маршрутизатор не працює.</string>
|
||||
<string name="router_shutting_down">Маршрутизатор вимикається.</string>
|
||||
<string name="stats_not_ready">Менеджер статистики ще не готовий. Спробуйте пізніше.</string>
|
||||
<string name="select_an_address">Оберіть адресу.</string>
|
||||
<string name="no_graphs_configured">Немає налаштованих графиків. Ви можете вибрати яку статистику показувати на графіках у меню налаштувань. Будь-які зміни набудуть чинності за 60 секунд.</string>
|
||||
<string name="configure_graphs">Налаштування графиків</string>
|
||||
<string name="graphs_not_ready">Графіки ще не готові. Спробуйте пізніше.</string>
|
||||
@ -84,7 +107,7 @@
|
||||
<string name="notification_status_stopping_after_net">Немає з\'єднання з мережею, вимикаємо I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">Вимикання було відмінено</string>
|
||||
<string name="notification_status_shutting_down">Вимикаємо I2P</string>
|
||||
<string name="notification_status_bw">Пропускна здатність: %1$s КБ/с прийом / %2$s КБ/с передача</string>
|
||||
<string name="notification_status_bw">Пропускна здатність: %1$sБ/с прийом / %2$sБ/с передача</string>
|
||||
<string name="notification_status_peers">Піри: %1$d активно, %2$d відомо</string>
|
||||
<string name="notification_status_expl">Пошукові тунелі: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Клієнтські тунелі: %1$d/%2$d</string>
|
||||
@ -174,6 +197,7 @@
|
||||
<string name="i2ptunnel_type_streamrserver">Streamr сервер</string>
|
||||
<string name="i2ptunnel_type_httpbidirserver">HTTP bidir</string>
|
||||
<string name="install_recommended_app">Встановити рекомендований додаток?</string>
|
||||
<string name="app_needed_for_this_tunnel_type">Вам необхідно встановити додаток щоб використовувати цей тунель. Бажаєте встановити рекомендований додаток?</string>
|
||||
<string name="i2ptunnel_not_initialized">Тунелі ще неініціалізовані, будь ласка, перезавантажте через дві хвилини.</string>
|
||||
<string name="no_configured_client_tunnels">Нема жодного налаштованого клієнтського тунеля.</string>
|
||||
<string name="no_configured_server_tunnels">Нема жодного налаштованого серверного тунеля.</string>
|
||||
@ -204,8 +228,12 @@
|
||||
<string name="enabled">Увімкнено</string>
|
||||
<string name="i2ptunnel_wizard_desc_name">Назва тунелю для ідентифікації у списці тунелів.</string>
|
||||
<string name="i2ptunnel_wizard_desc_desc">Опис тунелю. Використовуйте це необов\'язкове поле задля більшої інформативності.</string>
|
||||
<string name="i2ptunnel_wizard_desc_dest">Тип призначення сервісу в мережі I2P, тобто куди клієнт має приєднатися. Це може бути повний BASE64 ключ призначення або імʼя вузла I2P з вашої адресної книги.</string>
|
||||
<string name="i2ptunnel_wizard_desc_outproxies">Якщо ви знаєте інші вихідні проксі для цього типу тунелю (або HTTP або SOCKS), то надрукуйте тут. Розділяйте проксі комами.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_host">Це IP-адреса, на якій сервіс працює. Зазвичай така сама, як у машини, тому 127.0.0.1 введено автоматично.</string>
|
||||
<string name="i2ptunnel_wizard_desc_target_port">Це порт, на який сервіс приймає з’єднання.</string>
|
||||
<string name="i2ptunnel_wizard_desc_reachable_on">Встановлює обмеження на доступ до цього тунелю через компʼютери чи смартфони.</string>
|
||||
<string name="i2ptunnel_wizard_desc_binding_port">Локальний порт доступу для клієнтського тунелю; клієнтський порт для тунелю для двонаправленого HTTP серверу.</string>
|
||||
<string name="i2ptunnel_wizard_desc_auto_start">Чи повинен тунель запускатись автоматично коли запускається маршрутизатор?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_message">Створити тунель?</string>
|
||||
<string name="i2ptunnel_wizard_submit_confirm_button">Створити тунель</string>
|
||||
@ -219,13 +247,22 @@
|
||||
<string name="tunnel_summ_auto_start">Запускати тунель, коли запускається маршрутизатор.</string>
|
||||
<string name="tunnel_cat_ports">Локальні порти</string>
|
||||
<string name="shared_client">Колективний клієнт</string>
|
||||
<string name="tunnel_summ_shared_client">Використовувати такі ж самі Призначення і тунелі як інші спільні клієнти</string>
|
||||
<string name="target_destination">Ціль призначення</string>
|
||||
<string name="persistent_key">Постійні ключі</string>
|
||||
<string name="persistent_key_conflict_title">Виключити нові ключі при перевідкритті?</string>
|
||||
<string name="persistent_key_conflict_msg">Ви не можете включити постійні ключі доки тунель налаштовується щоб згенерувати нові ключі після перезапуску. Чи хочете ви відключити нові ключі після перезапуску?</string>
|
||||
<string name="tunnel_summ_persistent_key">Залишити це Призначення тунелю після перезапуску</string>
|
||||
<string name="reachable_on">Доступний на</string>
|
||||
<string name="listen_port">Вхідний порт</string>
|
||||
<string name="client_ssl">Клієнт SSL</string>
|
||||
<string name="tunnel_summ_client_ssl">Клієнт має використовувати SSL для зʼєднання</string>
|
||||
<string name="outproxies">Вихідні проксі</string>
|
||||
<string name="ssl_outproxies">Вихідні проксі SSL</string>
|
||||
<string name="irc">IRC</string>
|
||||
<string name="enable_dcc">Увімкнути DCC</string>
|
||||
<string name="tunnel_summ_enable_dcc">Дозволити IRC клієнтам використовувати DCC</string>
|
||||
<string name="website_domain_name">Імʼя домену сайта</string>
|
||||
<string name="target_host">Цільовий хост</string>
|
||||
<string name="target_port">Цільовий порт</string>
|
||||
<string name="use_ssl">Використовувати SSL</string>
|
||||
@ -234,9 +271,17 @@
|
||||
<string name="profile">Профіль</string>
|
||||
<string name="profile_interactive">Інтерактивне з’єднання</string>
|
||||
<string name="delay_connect">Затримка з’єднання</string>
|
||||
<string name="tunnel_summ_delay_connect">Дозволити зʼєднання типу запит/відповідь</string>
|
||||
<string name="access_control">Контроль доступу</string>
|
||||
<string name="restricted_access">Обмежений доступ</string>
|
||||
<string name="disabled">Вимкнено</string>
|
||||
<string name="whitelist">Білий список</string>
|
||||
<string name="blacklist">Чорний список</string>
|
||||
<string name="access_list">Список дозволів</string>
|
||||
<string name="reject_inproxies">Відхилити вхідні проксі</string>
|
||||
<string name="tunnel_summ_reject_inproxies">Дозволити зʼєднання тільки користувачам I2P</string>
|
||||
<string name="unique_local">Унікальні локальні мережі</string>
|
||||
<string name="tunnel_summ_unique_local">Використовувати унікальні локальні адреси для кожного клієнту</string>
|
||||
<string name="connections_per_minute">З’єднань за хвилину</string>
|
||||
<string name="connections_per_hour">З’єднань за годину</string>
|
||||
<string name="connections_per_day">З’єднань за день</string>
|
||||
|
@ -1,5 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.I2P" parent="Base.Theme.I2P">
|
||||
<!-- This fixes a UI bug in the support preference library -->
|
||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||
</style>
|
||||
|
||||
<style name="WizardPageTitle" parent="WizardPageTitleBase">
|
||||
<item name="android:paddingLeft">?android:attr/listPreferredItemPaddingLeft</item>
|
||||
</style>
|
||||
|
@ -6,5 +6,7 @@
|
||||
<item name="android:windowAllowReturnTransitionOverlap">true</item>
|
||||
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
|
||||
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
|
||||
<!-- This fixes a UI bug in the support preference library -->
|
||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
|
||||
</style>
|
||||
</resources>
|
@ -81,6 +81,7 @@
|
||||
<string name="router_not_running">路由器未在运行。</string>
|
||||
<string name="router_shutting_down">路由器正在关闭。</string>
|
||||
<string name="stats_not_ready">统计管理器还没有准备好。请稍后再试。</string>
|
||||
<string name="select_an_address">选择一个地址。</string>
|
||||
<string name="no_graphs_configured">没有已配置的图表。您可以在设置菜单中选择统计信息以获得图表。任何更改将在60秒后生效。</string>
|
||||
<string name="configure_graphs">配置图表</string>
|
||||
<string name="graphs_not_ready">图表尚未就绪。请稍候再试。</string>
|
||||
@ -108,7 +109,7 @@
|
||||
<string name="notification_status_stopping_after_net">网络已中断,正在停止 I2P</string>
|
||||
<string name="notification_status_shutdown_cancelled">关闭已取消</string>
|
||||
<string name="notification_status_shutting_down">I2P 正在关闭</string>
|
||||
<string name="notification_status_bw">带宽:下行 %1$s KB/s / 上行 %2$s KB/s</string>
|
||||
<string name="notification_status_bw">带宽:下行 %1$sBps / 上行 %2$sBps</string>
|
||||
<string name="notification_status_peers">节点:%1$d 活动,%2$d 已知</string>
|
||||
<string name="notification_status_expl">探索隧道:%1$d/%2$d</string>
|
||||
<string name="notification_status_client">客户隧道:%1$d/%2$d</string>
|
||||
|
@ -90,22 +90,23 @@
|
||||
<item>@string/label_i2ptunnel</item>
|
||||
</string-array>
|
||||
<string-array name="recommended_browsers">
|
||||
<item>info.guardianproject.browser</item>
|
||||
<item>acr.browser.lightning</item>
|
||||
</string-array>
|
||||
<string-array name="recommended_browser_labels">
|
||||
<item>Orweb</item>
|
||||
<item>Lightning</item>
|
||||
</string-array>
|
||||
<string-array name="supported_browsers">
|
||||
<item>info.guardianproject.browser</item>
|
||||
<item>org.mozilla.firefox</item>
|
||||
</string-array>
|
||||
<string-array name="supported_browser_labels">
|
||||
<item>Orweb</item>
|
||||
<item>Firefox</item>
|
||||
</string-array>
|
||||
<string-array name="unsupported_browsers">
|
||||
<item>com.android.chrome</item>
|
||||
<item>com.android.browser</item>
|
||||
<item>com.sec.android.app.sbrowser</item>
|
||||
<item>acr.browser.lightning</item>
|
||||
<item>mobi.mgeek.TunnyBrowser</item>
|
||||
<item>com.lastpass.lpandroid</item>
|
||||
</string-array>
|
||||
|
@ -8,4 +8,10 @@
|
||||
<attr name="shadowDrawable" format="reference" />
|
||||
<attr name="shadowVisible" format="boolean" />
|
||||
</declare-styleable>
|
||||
|
||||
<declare-styleable name="SeekBarPreference">
|
||||
<attr name="msbp_maxValue" format="reference|integer"/>
|
||||
<attr name="msbp_defaultValue" format="reference|integer"/>
|
||||
<attr name="msbp_measurementUnit" format="reference|string"/>
|
||||
</declare-styleable>
|
||||
</resources>
|
@ -1,6 +1,7 @@
|
||||
<resources>
|
||||
<color name="primary">#673ab7</color><!-- Deep Purple 500 -->
|
||||
<color name="primary_dark">#512da8</color><!-- Deep Purple 700 -->
|
||||
<color name="primary_light">#9575cd</color><!-- Deep Purple 300 -->
|
||||
<color name="accent">#ff6e40</color><!-- Deep Orange A200 -->
|
||||
<color name="accent_dark">#ff3d00</color><!-- Deep Orange A400 -->
|
||||
|
||||
|
@ -99,6 +99,7 @@
|
||||
<string name="router_not_running">The router is not running.</string>
|
||||
<string name="router_shutting_down">The router is shutting down.</string>
|
||||
<string name="stats_not_ready">The statistics manager is not ready yet. Try again later.</string>
|
||||
<string name="select_an_address">Select an address.</string>
|
||||
|
||||
<string name="no_graphs_configured">No graphs have been configured. You can choose statistics to graph in the settings menu. Any changes will take effect after 60 seconds.</string>
|
||||
<string name="configure_graphs">Configure graphs</string>
|
||||
@ -142,7 +143,7 @@
|
||||
<string name="notification_status_shutdown_cancelled">Shutdown cancelled</string>
|
||||
<string name="notification_status_shutting_down">I2P is shutting down</string>
|
||||
<string name="notification_status_text" translatable="false">%1$sBps ↓ / %2$sBps ↑</string>
|
||||
<string name="notification_status_bw">Bandwidth: %1$s KBps down / %2$s KBps up</string>
|
||||
<string name="notification_status_bw">Bandwidth: %1$sBps down / %2$sBps up</string>
|
||||
<string name="notification_status_peers">Peers: %1$d active, %2$d known</string>
|
||||
<string name="notification_status_expl">Exploratory tunnels: %1$d/%2$d</string>
|
||||
<string name="notification_status_client">Client tunnels: %1$d/%2$d</string>
|
||||
@ -294,6 +295,7 @@
|
||||
<string name="i2ptunnel_view_target">Target</string>
|
||||
<string name="i2ptunnel_view_access_point">Access point</string>
|
||||
<string name="i2ptunnel_view_autostart">Auto-start</string>
|
||||
<string name="address_copied_to_clipboard">Address copied to clipboard</string>
|
||||
|
||||
<string name="edit_tunnel">Edit tunnel</string>
|
||||
<string name="name">Name</string>
|
||||
|
@ -22,7 +22,9 @@
|
||||
<!-- The rest of your attributes -->
|
||||
</style>
|
||||
|
||||
<style name="Theme.I2P" parent="Base.Theme.I2P" />
|
||||
<style name="Theme.I2P" parent="Base.Theme.I2P">
|
||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
||||
</style>
|
||||
|
||||
<style name="TextAppearance.AppCompat.Primary" parent="TextAppearance.AppCompat.Body1">
|
||||
<item name="android:textColor">@color/primary_text_default_material_dark</item>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<!--
|
||||
router.inboundPool.length=1
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="2"
|
||||
android:dialogTitle="@string/settings_desc_expl_length"
|
||||
android:entries="@array/setting0to3"
|
||||
@ -18,7 +18,7 @@
|
||||
<!--
|
||||
router.inboundPool.lengthVariance=1
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="0"
|
||||
android:dialogTitle="@string/settings_desc_expl_lengthVariance"
|
||||
android:entries="@array/setting2to2"
|
||||
@ -31,7 +31,7 @@
|
||||
<!--
|
||||
router.inboundPool.quantity=2
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="2"
|
||||
android:dialogTitle="@string/settings_desc_expl_quantity"
|
||||
android:entries="@array/setting0to3"
|
||||
@ -43,7 +43,7 @@
|
||||
<!--
|
||||
router.inboundPool.backupQuantity=0
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="0"
|
||||
android:dialogTitle="@string/settings_desc_expl_backupQuantity"
|
||||
android:entries="@array/setting0to3"
|
||||
@ -59,7 +59,7 @@
|
||||
<!--
|
||||
router.outboundPool.length=1
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="2"
|
||||
android:dialogTitle="@string/settings_desc_expl_length"
|
||||
android:entries="@array/setting0to3"
|
||||
@ -71,7 +71,7 @@
|
||||
<!--
|
||||
router.outboundPool.lengthVariance=1
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="0"
|
||||
android:dialogTitle="@string/settings_desc_expl_lengthVariance"
|
||||
android:entries="@array/setting2to2"
|
||||
@ -83,7 +83,7 @@
|
||||
<!--
|
||||
router.outboundPool.quantity=2
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="2"
|
||||
android:dialogTitle="@string/settings_desc_expl_quantity"
|
||||
android:entries="@array/setting0to3"
|
||||
@ -95,7 +95,7 @@
|
||||
<!--
|
||||
router.outboundPool.backupQuantity=0
|
||||
-->
|
||||
<net.i2p.android.router.util.IntListPreference
|
||||
<net.i2p.android.preferences.util.IntListPreference
|
||||
android:defaultValue="0"
|
||||
android:dialogTitle="@string/settings_desc_expl_backupQuantity"
|
||||
android:entries="@array/setting0to3"
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<!--
|
||||
Keys and the default values from current installation:
|
||||
-->
|
||||
@ -16,26 +17,22 @@
|
||||
<!--
|
||||
i2np.bandwidth.inboundKBytesPerSecond=100
|
||||
-->
|
||||
<com.hlidskialf.android.preference.SeekBarPreference
|
||||
<com.pavelsikun.seekbarpreference.SeekBarPreference
|
||||
android:key="@string/PROP_INBOUND_BANDWIDTH"
|
||||
android:defaultValue="100"
|
||||
android:max="1000"
|
||||
android:title="@string/settings_label_bw_inbound"
|
||||
android:summary="@string/settings_desc_bw_inbound"
|
||||
android:dialogMessage="Maximum inbound speed"
|
||||
android:text=" KBytes/sec"
|
||||
android:title="@string/settings_desc_bw_inbound"
|
||||
app:msbp_defaultValue="100"
|
||||
app:msbp_maxValue="1000"
|
||||
app:msbp_measurementUnit="KB/s"
|
||||
/>
|
||||
<!--
|
||||
i2np.bandwidth.outboundKBytesPerSecond=30
|
||||
-->
|
||||
<com.hlidskialf.android.preference.SeekBarPreference
|
||||
<com.pavelsikun.seekbarpreference.SeekBarPreference
|
||||
android:key="@string/PROP_OUTBOUND_BANDWIDTH"
|
||||
android:defaultValue="100"
|
||||
android:max="1000"
|
||||
android:title="@string/settings_label_bw_outbound"
|
||||
android:summary="@string/settings_desc_bw_outbound"
|
||||
android:dialogMessage="Maximum outbound speed"
|
||||
android:text=" KBytes/sec"
|
||||
android:title="@string/settings_desc_bw_outbound"
|
||||
app:msbp_defaultValue="100"
|
||||
app:msbp_maxValue="1000"
|
||||
app:msbp_measurementUnit="KB/s"
|
||||
/>
|
||||
</PreferenceCategory>
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<PreferenceCategory
|
||||
android:key="settings_udp"
|
||||
android:title="UDP">
|
||||
@ -13,7 +14,7 @@
|
||||
android:summary="DO NOT DISABLE THIS"
|
||||
android:title="@string/settings_enable" />
|
||||
|
||||
<net.i2p.android.router.util.PortPreference
|
||||
<net.i2p.android.preferences.util.PortPreference
|
||||
android:dependency="@string/PROP_ENABLE_UDP"
|
||||
android:key="@string/PROP_UDP_INTERNAL_PORT"
|
||||
android:title="UDP port" />
|
||||
@ -21,16 +22,13 @@
|
||||
<!--
|
||||
i2np.udp.maxConnections=12
|
||||
-->
|
||||
<com.hlidskialf.android.preference.SeekBarPreference
|
||||
android:defaultValue="32"
|
||||
<com.pavelsikun.seekbarpreference.SeekBarPreference
|
||||
android:dependency="@string/PROP_ENABLE_UDP"
|
||||
android:dialogMessage="Maximum UDP connections"
|
||||
android:key="@string/PROP_UDP_MAX_CONNECTIONS"
|
||||
android:max="500"
|
||||
android:shouldDisableView="true"
|
||||
android:summary="Maximum UDP connections allowed"
|
||||
android:text=" connections"
|
||||
android:title="@string/settings_label_maxConns" />
|
||||
android:title="@string/settings_label_maxConns"
|
||||
app:msbp_defaultValue="32"
|
||||
app:msbp_maxValue="500" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
@ -49,22 +47,19 @@
|
||||
android:summary="Use same port as UDP"
|
||||
android:title="Auto-set port" />
|
||||
|
||||
<net.i2p.android.router.util.PortPreference
|
||||
<net.i2p.android.preferences.util.PortPreference
|
||||
android:dependency="@string/PROP_I2NP_NTCP_AUTO_PORT"
|
||||
android:key="@string/PROP_I2NP_NTCP_PORT"
|
||||
android:title="NTCP port" />
|
||||
<!--
|
||||
i2np.ntcp.maxConnections=24
|
||||
-->
|
||||
<com.hlidskialf.android.preference.SeekBarPreference
|
||||
android:defaultValue="32"
|
||||
<com.pavelsikun.seekbarpreference.SeekBarPreference
|
||||
android:dependency="i2np.ntcp.enable"
|
||||
android:dialogMessage="Maximum NTCP connections"
|
||||
android:key="@string/PROP_NTCP_MAX_CONNECTIONS"
|
||||
android:max="250"
|
||||
android:shouldDisableView="true"
|
||||
android:summary="Maximum NTCP connections allowed (default=32)"
|
||||
android:text=" connections"
|
||||
android:title="@string/settings_label_maxConns" />
|
||||
android:title="@string/settings_label_maxConns"
|
||||
app:msbp_defaultValue="32"
|
||||
app:msbp_maxValue="250" />
|
||||
</PreferenceCategory>
|
||||
</PreferenceScreen>
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user