Compare commits

..

25 Commits

Author SHA1 Message Date
350515041a I2P Android release commit for 0.9.40 2019-05-10 22:26:04 +00:00
5ba294c2c2 Updated the release docs with a lot more information. 2019-05-10 22:23:57 +00:00
a215363206 merge of '252f48089a9d496c609cf1b886d8d56c65836851'
and '2c8389bae9c93fb46e31edc66f1c292a95bf87eb'
2019-05-10 22:16:39 +00:00
4bd647c67c Translation updates. 2019-05-10 22:16:29 +00:00
zzz
b951892c05 Util: Check for NTCP2 in getNetStatus() 2019-05-02 14:29:59 +00:00
zzz
16e05e0dd8 Fix NPE in ViewPager (ticket #2488)
See code comments for references
2019-05-01 17:34:45 +00:00
5bdf119b81 merge of '67e6f911bbdcd72a5910ab653cf40eca13f08659'
and 'f846922ebab446b76ccee6c4d10f873af2d3d4ac'
2019-05-01 13:00:34 +00:00
b73b72c9c8 Fix for trac ticket #2485. 2019-05-01 12:59:56 +00:00
zzz
0bae211da5 Fix addressbook crash (ticket #2489) 2019-04-30 21:14:52 +00:00
zzz
709392e8b6 UI: Classify NTCP2 as NTCP
Don't crash on unknown transport configuration (ticket #2482)
2019-04-30 14:25:29 +00:00
zzz
80ed1e71da i2ptunnel: Possible NPE fix (ticket #2483) 2019-04-29 16:33:32 +00:00
6c0a60892f Fix for trac issue #2481. 2019-04-29 16:18:43 +00:00
zzz
7f13aa26fb i2ptunnel: more finals 2019-04-29 13:34:11 +00:00
zzz
7167a11844 i2ptunnel: finals 2019-04-29 13:28:18 +00:00
zzz
1f140bf95a Settings: Fix saving I2CP config (hopefully) 2019-04-29 12:47:21 +00:00
zzz
940b2b83a1 New translations: ar, gl, hu 2019-04-24 14:10:53 +00:00
zzz
bdbebe11c4 reduce min translate percentage 2019-04-24 14:07:07 +00:00
zzz
51ca137102 Update news URLs 2019-04-23 18:34:52 +00:00
f0ff4eeab7 Temporary fix for Javadoc errors 2019-04-22 07:35:37 +00:00
zzz
93d103e5ad Re-enable the advanced config for i2cp.disable,
so third-party apps can connect via the standard socket.
Domain sockets don't work on recent androids for 3rd party apps.
Bote can continue to use the domain socket if it's signed by the same key
and has the same ID.
2019-04-12 17:05:25 +00:00
b87d77d5e3 Android release commit 0.9.39
* translation updates.
* changed IPC uid to match bote.
2019-03-23 12:18:13 +00:00
ffbd8cfb76 I2P Android 0.9.38 Release commit. 2019-01-27 14:23:08 +00:00
2d1664574d "Fix" for ticket #2404 2019-01-24 18:33:26 +00:00
5d3aa1f625 Strings update 2019-01-24 18:21:20 +00:00
3fa53c7654 Expanded code to hunt NPE - ticket #2389 2019-01-24 18:21:01 +00:00
57 changed files with 879 additions and 130 deletions

View File

@ -4,7 +4,7 @@ lang_map = he: iw, id: in, pt_BR: pt-rBR, ru_RU: ru, sv_SE: sv, tr_TR: tr, uk_UA
[I2P.android]
file_filter = app/src/main/res/values-<lang>/strings.xml
minimum_perc = 50
minimum_perc = 30
source_file = app/src/main/res/values/strings.xml
source_lang = en
type = ANDROID

View File

@ -1,25 +1,57 @@
# Release Process
1. Check out a clean copy of i2p.i2p at the correct release version.
2. Edit `routerjars/local.properties` to use the clean i2p.i2p copy.
3. Pull the latest translations with `tx pull -a` and commit them. (If you don't have the `tx` command, do `pip install transifex-client` )
4. Ensure that `signing.properties` contains the details of the release key.
5. Edit `gradle.properties` to bump the I2P version.
6. Edit `app/build.gradle` to bump the Android version number.
7. If the helper has changed since the last release, edit
## Prerequirements
1. Ensure you got the deprecated maven ant tasks. ( https://maven.apache.org/ant-tasks/download.cgi )
2. It should exist at `~/.ant/lib/maven-ant-tasks-2.1.3.jar`
3. Ensure you got hamcrest-integration, hamcrest-library, hamcrest-core in the hamcrest.home directory.
4. Ensure junit 4.12 at least in junit.home, ensure the jar file is named `junit4.jar`.
## Maven Central
1. Check out a clean copy of i2p.i2p at the correct release version. (Make a clean checkout)
2. Build the maven packages via `ant mavenCentral` where you end up with mavencentral-*.jar files in the current directory.
3. Login to http://oss.sonatype.org for uploading the mavencentral-*.jar bundles.
4. In nexus, choose "Staging Upload" and upload all of the bundles with upload mode set to "Artifact Bundle"
5. Under "Staging Repositories" ensure all where uploaded correctly, select them all and press "Release" in the toolbar.
## Android Common Build
1. Edit `routerjars/local.properties` to use the clean i2p.i2p copy.
2. Pull the latest translations with `tx pull -a` and commit them. (If you don't have the `tx` command, do `pip install transifex-client` )
3. Ensure that `signing.properties` contains the details of the release key.
4. Edit `gradle.properties` to bump the I2P version.
5. Edit `app/build.gradle` to bump the Android version number.
6. If the helper has changed since the last release, edit
`lib/helper/gradle.properties` to bump the version.
8. `./gradlew clean assembleRelease`
9. `./gradlew :lib:client:uploadArchives`
10. If the helper version was changed: `./gradlew :lib:helper:uploadArchives`
11. Check on Sonatype that everything worked, and close/release.
12. Update local fdroidserver repo
13. `cp app/build/outputs/apk/free/release/app-free-release.apk path/to/fdroid/repo/I2P-VERSION.apk`
14. Update `path/to/fdroid/metadata/net.i2p.android.txt`
15. `fdroid update`
16. Push to download server and put in place.
17. Check F-Droid repo works, and app works.
18. `mtn ci gradle.properties lib/helper/gradle.properties app/build.gradle`
19. Push free and donate builds to Google Play.
20. Tag the new release. Example `mtn tag h: android-0.9.36`
7. `./gradlew clean assembleRelease`
### Steps to take if the android helper is updated and should be released
1. `./gradlew :lib:client:uploadArchives`
2. If the helper version was changed: `./gradlew :lib:helper:uploadArchives`
3. Check on Sonatype that everything worked, and close/release.
## F-Droid Guide
1. Ensure you have the release keys, the keyfile must be placed at `~/.local/share/fdroidserver/keystore.jks`
2. If it's the first time, or you have reinstalled anything, ensure `path/to/fdroid/config.py` has correct information.
3. Assuming you already have ran `./gradlew clean assembleRelease` from a earlier step, continue.
4. `cp app/build/outputs/apk/free/release/app-free-release.apk path/to/fdroid/repo/I2P-VERSION.apk`
5. Update `path/to/fdroid/metadata/net.i2p.android.txt` (The versions at the bottom of the file)
6. Run `fdroid update` from inside the fdroid path (install fdroid command via `pip install fdroidserver`)
7. Zip/tar the local fdroid repo and archive. `rm fdroid.tgz && tar czf fdroid.tgz archive/ repo/` from the fdroid directory.
8. Push to download server and put in place. (via SSH for example, `scp fdroid.tgz download.i2p2.de:~/`)
9. On the server run `bin-fd/update-fdroid` and `sudo bin-fd/update-app i2p 0.9.40` (This ensures we use the exact same apk file for the download page as in fdroid and gplay)
10. Check F-Droid repo works, and app works.
## Google Play and finishing up
1. Verify which files that are changed via `mtn ls cha`. It shouldn't be much more than those bellow this line and possible translations (`mtn ls unk`).
2. Commit your release changes, `mtn ci gradle.properties lib/helper/gradle.properties app/build.gradle`
3. Push free and donate builds to Google Play via https://play.google.com/apps/publish/
4. Tag the new release. Example `mtn tag h: android-0.9.36`
5. Push the monotone changes

View File

@ -1,11 +1,11 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
compileSdkVersion 28
defaultConfig {
versionCode 4745245
versionCode 4745248
versionName "$I2P_VERSION"
minSdkVersion 9
minSdkVersion 14
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
// For Espresso
@ -32,6 +32,7 @@ android {
}
lintOptions {
abortOnError false
disable 'MissingDefaultResource'
}
packagingOptions {
exclude 'LICENSE.txt'
@ -51,6 +52,7 @@ android {
applicationId 'net.i2p.android.router'
}
}
buildToolsVersion '28.0.3'
}
dependencies {
@ -58,15 +60,13 @@ dependencies {
implementation project(':lib:client')
implementation project(':lib:helper')
implementation project(path: ':routerjars', configuration: 'routerjars')
// Android Support Repository dependencies
def supportVersion = '25.3.1'
def supportVersion = '28.0.0'
implementation "com.android.support:support-v4:$supportVersion"
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation "com.android.support:preference-v7:$supportVersion"
implementation "com.android.support:preference-v14:$supportVersion"
implementation "com.android.support:recyclerview-v7:$supportVersion"
// Remote dependencies
implementation 'com.androidplot:androidplot-core:1.4.1'
implementation 'com.eowise:recyclerview-stickyheaders:0.5.2@aar'
@ -75,7 +75,6 @@ dependencies {
implementation "net.i2p:router:$I2P_VERSION"
implementation 'net.i2p.android.ext:floatingactionbutton:1.10.1'
implementation 'org.sufficientlysecure:html-textview:3.1'
// Testing-only dependencies
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2') {
exclude group: 'com.android.support', module: 'support-annotations'

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.i2p.android.router"
android:installLocation="auto">
android:installLocation="auto"
android:sharedUserId="net.i2p">
<uses-sdk xmlns:tools="http://schemas.android.com/tools"
tools:overrideLibrary="android.support.v14.preference" />
@ -9,6 +10,7 @@
<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" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:icon="@drawable/ic_launcher_itoopie"

View File

@ -31,6 +31,13 @@ public class CustomViewPager extends ViewPager {
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
// See Nov. 20, 2013 comment at:
// https://github.com/JakeWharton/ViewPagerIndicator/pull/257
// Our ticket #2488
// prevent NPE if fake dragging and touching ViewPager
if(isFakeDragging()) return false;
return mEnabled && mFixedPage < 0 && super.onInterceptTouchEvent(event);
}

View File

@ -71,12 +71,12 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
*
* @since 0.7.14 not configurable
*/
private static final String BACKUP_NEWS_URL_SU3 = "http://avviiexdngd32ccoy4kuckvc3mkf53ycvzbz6vz75vzhv4tbpk5a.b32.i2p/news.su3";
private static final String BACKUP_NEWS_URL_SU3 = "http://dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka.b32.i2p/news/news.su3";
private static final String PROP_LAST_CHECKED = "router.newsLastChecked";
private static final String PROP_REFRESH_FREQUENCY = "router.newsRefreshFrequency";
private static final String DEFAULT_REFRESH_FREQUENCY = 24 * 60 * 60 * 1000 + "";
private static final String PROP_NEWS_URL = "router.newsURL";
public static final String DEFAULT_NEWS_URL_SU3 = "http://echelon.i2p/news/news.su3";
public static final String DEFAULT_NEWS_URL_SU3 = "http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/news.su3";
private NewsFetcher(Context context, RouterContext ctx, Notifications notif) {
mCtx = context;

View File

@ -14,13 +14,14 @@ import android.widget.TextView;
import net.i2p.android.router.R;
import net.i2p.android.util.FragmentUtils;
import java.util.ArrayList;
import java.util.List;
public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context mCtx;
private boolean mClientTunnels;
private TunnelListFragment.OnTunnelSelectedListener mListener;
private FragmentUtils.TwoPaneProvider mTwoPane;
private final Context mCtx;
private final boolean mClientTunnels;
private final TunnelListFragment.OnTunnelSelectedListener mListener;
private final FragmentUtils.TwoPaneProvider mTwoPane;
private List<TunnelEntry> mTunnels;
/**
* The current activated item position. Only used on tablets.
@ -34,10 +35,10 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
}
public static class TunnelViewHolder extends RecyclerView.ViewHolder {
public ImageView status;
public TextView name;
public TextView description;
public TextView interfacePort;
public final ImageView status;
public final TextView name;
public final TextView description;
public final TextView interfacePort;
public TunnelViewHolder(View itemView) {
super(itemView);
@ -65,6 +66,8 @@ public class TunnelEntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
}
public void addTunnel(TunnelEntry tunnel) {
if (mTunnels == null)
mTunnels = new ArrayList<TunnelEntry>();
boolean wasEmpty = mTunnels.isEmpty();
mTunnels.add(tunnel);
if (wasEmpty) {

View File

@ -13,10 +13,10 @@ import java.util.ArrayList;
import java.util.List;
public class TunnelEntryLoader extends AsyncTaskLoader<List<TunnelEntry>> {
private TunnelControllerGroup mGroup;
private boolean mClientTunnels;
private final TunnelControllerGroup mGroup;
private final boolean mClientTunnels;
private List<TunnelEntry> mData;
private Handler mHandler;
private final Handler mHandler;
private TunnelControllerMonitor mMonitor;
public TunnelEntryLoader(Context context, TunnelControllerGroup tcg, boolean clientTunnels) {

View File

@ -211,6 +211,9 @@ public class TunnelsContainer extends Fragment implements
if (requestCode == TUNNEL_WIZARD_REQUEST) {
if (resultCode == Activity.RESULT_OK) {
Bundle tunnelData = data.getExtras().getBundle(TUNNEL_WIZARD_DATA);
// ticket #2483
if (tunnelData == null)
return;
// TODO fetch earlier
TunnelControllerGroup tcg = TunnelControllerGroup.getInstance();
TunnelConfig cfg = TunnelUtil.createConfigFromWizard(getActivity(), tcg, tunnelData);

View File

@ -15,9 +15,9 @@ import java.util.List;
* InetAddress.getByName(), which will trigger a NetworkOnMainThreadException otherwise.
*/
public class SaveTunnelTask extends AsyncTask<Void, Void, List<String>> {
TunnelControllerGroup mGroup;
int mTunnelId;
TunnelConfig mCfg;
final TunnelControllerGroup mGroup;
final int mTunnelId;
final TunnelConfig mCfg;
public SaveTunnelTask(TunnelControllerGroup group, int tunnelId, TunnelConfig cfg) {
mGroup = group;

View File

@ -11,7 +11,7 @@ package net.i2p.android.i2ptunnel.util;
* tunnel properties always exist.
*/
public abstract class TunnelLogic {
protected String mType;
protected final String mType;
public TunnelLogic(String type) {
mType = type;

View File

@ -99,6 +99,7 @@ public class TunnelUtil extends GeneralHelper {
public static void writeTunnelToPreferences(Context ctx, TunnelControllerGroup tcg, int tunnel) {
new TunnelUtil(tcg).writeTunnelToPreferences(ctx, tunnel);
}
public void writeTunnelToPreferences(Context ctx, int tunnel) {
Resources res = ctx.getResources();
@ -122,9 +123,9 @@ public class TunnelUtil extends GeneralHelper {
}
class TunnelToPreferences extends TunnelLogic {
SharedPreferences.Editor ed;
Resources res;
int tunnel;
final SharedPreferences.Editor ed;
final Resources res;
final int tunnel;
public TunnelToPreferences(SharedPreferences.Editor ed, Resources res, int tunnel, String type) {
super(type);
@ -328,6 +329,7 @@ public class TunnelUtil extends GeneralHelper {
public static TunnelConfig createConfigFromPreferences(Context ctx, TunnelControllerGroup tcg, int tunnel) {
return new TunnelUtil(tcg).createConfigFromPreferences(ctx, tunnel);
}
public TunnelConfig createConfigFromPreferences(Context ctx, int tunnel) {
Resources res = ctx.getResources();
@ -348,11 +350,11 @@ public class TunnelUtil extends GeneralHelper {
}
class TunnelConfigFromPreferences extends TunnelLogic {
TunnelConfig cfg;
SharedPreferences prefs;
Resources res;
TunnelControllerGroup tcg;
int tunnel;
final TunnelConfig cfg;
final SharedPreferences prefs;
final Resources res;
final TunnelControllerGroup tcg;
final int tunnel;
public TunnelConfigFromPreferences(TunnelConfig cfg, SharedPreferences prefs, Resources res,
TunnelControllerGroup tcg, int tunnel, String type) {
@ -566,10 +568,17 @@ public class TunnelUtil extends GeneralHelper {
}
}
/**
* @param data non-null
*/
public static TunnelConfig createConfigFromWizard(
Context ctx, TunnelControllerGroup tcg, Bundle data) {
return new TunnelUtil(tcg).createConfigFromWizard(ctx, data);
}
/**
* @param data non-null
*/
public TunnelConfig createConfigFromWizard(Context ctx, Bundle data) {
// Get the Bundle keys
Resources res = ctx.getResources();
@ -591,10 +600,10 @@ public class TunnelUtil extends GeneralHelper {
}
class TunnelConfigFromWizard extends TunnelLogic {
TunnelConfig cfg;
Bundle data;
Resources res;
TunnelControllerGroup tcg;
final TunnelConfig cfg;
final Bundle data;
final Resources res;
final TunnelControllerGroup tcg;
public TunnelConfigFromWizard(TunnelConfig cfg, Bundle data, Resources res,
TunnelControllerGroup tcg, String type) {

View File

@ -3,12 +3,11 @@ package net.i2p.android.preferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
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 PreferenceFragmentCompat {
public class AdvancedPreferenceFragment extends I2PreferenceFragment {
private static final String PREFERENCE_CATEGORY_TRANSPORTS = "preference_category_transports";
private static final String PREFERENCE_CATEGORY_EXPL_TUNNELS = "preference_category_expl_tunnels";

View File

@ -95,7 +95,7 @@ public class NetDbStatsLoader extends AsyncTaskLoader<List<ObjectCounter<String>
int rv = 0;
for (RouterAddress addr : info.getAddresses()) {
String style = addr.getTransportStyle();
if (style.equals("NTCP")) {
if (style.equals("NTCP") || style.equals("NTCP2")) {
rv |= NTCP;
} else if (style.equals("SSU")) {
if (addr.getOption("iport0") != null)
@ -108,7 +108,12 @@ public class NetDbStatsLoader extends AsyncTaskLoader<List<ObjectCounter<String>
rv |= IPV6;
}
return getContext().getString(TNAMES[rv]);
int tname = TNAMES[rv];
// remap cases with no string to "Hidden or starting up"
// so we don't crash NotFoundException
if (tname == 0)
tname = TNAMES[0];
return getContext().getString(tname);
}
@Override

View File

@ -5,6 +5,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import net.i2p.android.router.util.Util;
import net.i2p.android.router.I2PConstants;
import net.i2p.android.router.service.RouterService;
@ -19,7 +20,12 @@ public class OnBootReceiver extends BroadcastReceiver implements I2PConstants {
if (startOnBoot) {
Intent routerService = new Intent(context, RouterService.class);
context.startService(routerService);
// Ticket #2404
try {
context.startService(routerService);
} catch (IllegalStateException ex) {
Util.e("Error: ", ex);
}
}
}
}

View File

@ -32,7 +32,17 @@ public class NamingServiceUtil {
String kDest = res.getString(R.string.addressbook_add_wizard_k_destination);
String hostName = data.getBundle(kHostName).getString(Page.SIMPLE_DATA_KEY);
String host = toASCII(res, hostName); // Already validated, won't throw IAE
String host;
try {
// Already validated, won't throw IAE
// ^^^ NOT TRUE ticket #2489 ^^^
host = toASCII(res, hostName);
} catch (IllegalArgumentException iae) {
Toast.makeText(ctx,
iae.getMessage(),
Toast.LENGTH_LONG).show();
return false;
}
String displayHost = host.equals(hostName) ? hostName :
hostName + " (" + host + ')';

View File

@ -445,10 +445,15 @@ public abstract class Util implements I2PConstants {
case IPV4_UNKNOWN_IPV6_OK:
case IPV4_DISABLED_IPV6_OK:
case IPV4_SNAT_IPV6_OK:
RouterAddress ra = routerInfo.getTargetAddress("NTCP");
if (ra == null)
List<RouterAddress> ras = routerInfo.getTargetAddresses("NTCP", "NTCP2");
if (ras.isEmpty())
return new NetStatus(NetStatus.Level.INFO, toStatusString(ctx, status));
byte[] ip = ra.getIP();
byte[] ip = null;
for (RouterAddress ra : ras) {
ip = ra.getIP();
if (ip != null)
break;
}
if (ip == null)
return new NetStatus(NetStatus.Level.ERROR, ctx.getString(R.string.net_status_error_unresolved_tcp));
// TODO set IPv6 arg based on configuration?
@ -462,7 +467,7 @@ public abstract class Util implements I2PConstants {
case REJECT_UNSOLICITED:
case IPV4_DISABLED_IPV6_FIREWALLED:
if (routerInfo.getTargetAddress("NTCP") != null)
if (routerInfo.getTargetAddresses("NTCP", "NTCP2").isEmpty())
return new NetStatus(NetStatus.Level.WARN, ctx.getString(R.string.net_status_warn_firewalled_inbound_tcp));
// fall through...
case IPV4_FIREWALLED_IPV6_OK:
@ -483,7 +488,7 @@ public abstract class Util implements I2PConstants {
case IPV4_UNKNOWN_IPV6_FIREWALLED:
case IPV4_DISABLED_IPV6_UNKNOWN:
default:
ra = routerInfo.getTargetAddress("SSU");
RouterAddress ra = routerInfo.getTargetAddress("SSU");
if (ra == null && rCtx.router().getUptime() > 5 * 60 * 1000) {
if (rCtx.commSystem().countActivePeers() <= 0)
return new NetStatus(NetStatus.Level.ERROR, ctx.getString(R.string.net_status_error_no_active_peers));

View File

@ -49,19 +49,21 @@ public class WebFragment extends I2PFragmentBase {
wv.getSettings().setBuiltInZoomControls(true);
// http://stackoverflow.com/questions/2369310/webview-double-tap-zoom-not-working-on-a-motorola-droid-a855
wv.getSettings().setUseWideViewPort(true);
_uriStr = getArguments().getString(HTML_URI);
if (_uriStr != null) {
Uri uri = Uri.parse(_uriStr);
//wv.getSettings().setLoadsImagesAutomatically(true);
//wv.loadUrl(uri.toString());
// go thru the client so .i2p will work too
_wvClient.shouldOverrideUrlLoading(wv, uri.toString());
} else {
wv.getSettings().setLoadsImagesAutomatically(false);
int id = getArguments().getInt(HTML_RESOURCE_ID, 0);
// no default, so restart should keep previous view
if (id != 0)
loadResource(wv, id);
if (getArguments() != null) {
_uriStr = getArguments().getString(HTML_URI);
if (_uriStr != null) {
Uri uri = Uri.parse(_uriStr);
//wv.getSettings().setLoadsImagesAutomatically(true);
//wv.loadUrl(uri.toString());
// go thru the client so .i2p will work too
_wvClient.shouldOverrideUrlLoading(wv, uri.toString());
} else {
wv.getSettings().setLoadsImagesAutomatically(false);
int id = getArguments().getInt(HTML_RESOURCE_ID, 0);
// no default, so restart should keep previous view
if (id != 0)
loadResource(wv, id);
}
}
return v;
}

View File

@ -30,10 +30,10 @@ import java.util.List;
* To create an actual wizard model, extend this class and implement {@link #onNewRootPageList()}.
*/
public abstract class AbstractWizardModel implements ModelCallbacks {
protected Context mContext;
protected final Context mContext;
private List<ModelCallbacks> mListeners = new ArrayList<ModelCallbacks>();
private PageList mRootPageList;
private final List<ModelCallbacks> mListeners = new ArrayList<ModelCallbacks>();
private final PageList mRootPageList;
public AbstractWizardModel(Context context) {
mContext = context;
@ -67,7 +67,10 @@ public abstract class AbstractWizardModel implements ModelCallbacks {
public void load(Bundle savedValues) {
for (String key : savedValues.keySet()) {
mRootPageList.findByKey(key).resetData(savedValues.getBundle(key));
// Expanded the code to hunt NPE - Ticket #2389
Page tmp = mRootPageList.findByKey(key);
Bundle tmpBundle = savedValues.getBundle(key);
tmp.resetData(tmpBundle);
}
}

View File

@ -0,0 +1,120 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="app_name">I2P</string>
<string name="desc_i2p_logo">شعار I2P</string>
<string name="choose_language">اختر اللغة</string>
<string name="welcome_new_version">نسخة جديدة مثبتة. يرجى قراءة ملاحظات الإصدار. الإصدار:</string>
<string name="label_tunnels">نفق</string>
<string name="label_status">الحالة</string>
<string name="label_console">وحدة التحكم</string>
<string name="label_addresses">عناوين</string>
<string name="label_addressbook">دفتر العناوين</string>
<string name="label_i2ptunnel_client">أنفاق العميل</string>
<string name="label_i2ptunnel_server">أنفاق الخادم</string>
<string name="label_logs">السجلات</string>
<string name="label_error_logs">سجلات الأخطاء</string>
<string name="label_news">الأخبار</string>
<string name="label_peers_status">المستخدمين</string>
<string name="label_release_notes">ملاحظات الإصدار</string>
<string name="label_licenses">الرخص</string>
<string name="label_browse">تصفح</string>
<string name="label_graphs">رسم بياني</string>
<string name="button_router_off">اضغط لفترة طويلة لبدء I2P</string>
<string name="button_router_on">I2P يعمل (اضغط لفترة طويلة لإيقافه)</string>
<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>
<!--Parameter is a time, e.g. 32s or 2m-->
<string name="uptime">مدة الاشتغال</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="download">تحميل</string>
<string name="upload">رفع</string>
<string name="first_start_title">تهانينا على تثبيتِ I2P!</string>
<string name="first_start_read">أثناء انتظارك، فضلا اطلع على ملاحظات الإصدار والصفحة الرئيسية</string>
<string name="action_search">بحث</string>
<string name="action_add">إضافة</string>
<string name="action_edit">تحرير</string>
<string name="action_delete">حذف</string>
<string name="action_reload">إعادة تحميل</string>
<string name="action_refresh">تحديث</string>
<string name="stats_not_ready">مدير الإحصاءات غير جاهز حاليا. يرجى المحاولة لاحقا</string>
<string name="routers">الموجه</string>
<string name="country">البلد</string>
<string name="transport">نقل</string>
<string name="version">إصدار</string>
<string name="count">عدد</string>
<string name="tname_0">مختفي</string>
<string name="menu_settings">الإعدادات</string>
<string name="settings_enable">تفعيل</string>
<string name="settings_label_bandwidth">سرعة الاتصال</string>
<string name="settings_label_network">الشبكة</string>
<string name="settings_label_hiddenMode">المشاركة</string>
<string name="settings_label_logging">تسجيل</string>
<string name="settings_label_default_log_level">نوع السجل</string>
<string name="settings_label_appearance">المظهر</string>
<string name="settings_label_language">اللغة</string>
<string name="settings_default">افتراضي</string>
<string name="settings_label_advanced">متقدم</string>
<string name="settings_label_transports">نقل</string>
<string name="settings_label_expl_length">الطول</string>
<string name="settings_label_expl_quantity">الكمية</string>
<string name="settings_label_expl_backupQuantity">قدر نسخ الاحتياط</string>
<string name="menu_about">حول</string>
<string name="about_version">الإصدار:</string>
<string name="menu_help">المساعدة</string>
<string name="general">عام</string>
<string name="addressbook_add_wizard_k_name">الاسم</string>
<string name="addressbook_add_wizard_k_destination">اتجاه</string>
<string name="i2ptunnel_type_client">مستخدم عادي</string>
<string name="i2ptunnel_type_httpclient">HTTP client</string>
<string name="i2ptunnel_type_ircclient">IRC برنامج</string>
<string name="i2ptunnel_type_server">خادم عادي</string>
<string name="i2ptunnel_type_httpserver">HTTP خادم</string>
<string name="i2ptunnel_type_sockstunnel">SOCKS 4/4a/5 بروكسي</string>
<string name="i2ptunnel_type_socksirctunnel">SOCKS IRC بروكسي دردشة</string>
<string name="i2ptunnel_type_connectclient">اتصال/SSL/HTTPS بروكسي</string>
<string name="i2ptunnel_type_ircserver">IRC خادم</string>
<string name="i2ptunnel_new_tunnel">نفق جديد</string>
<string name="i2ptunnel_msg_config_saved">تم حفظ الإعدادات</string>
<string name="i2ptunnel_msg_config_save_failed">فشل حفظ الإعدادات</string>
<string name="i2ptunnel_msg_tunnel_starting">ابدأ النفق</string>
<string name="i2ptunnel_msg_tunnel_stopping">توقيف النفق</string>
<string name="i2ptunnel_wizard_k_client_server">المستخدم أو الخادم</string>
<string name="i2ptunnel_wizard_k_name">الاسم</string>
<string name="i2ptunnel_wizard_k_desc">وصف</string>
<string name="i2ptunnel_wizard_k_dest">اتجاه</string>
<string name="i2ptunnel_wizard_k_outproxies">بروكسي خارجي</string>
<string name="i2ptunnel_wizard_k_auto_start">تشغيل آلي</string>
<string name="next">التالي</string>
<string name="prev">السابق</string>
<string name="finish">رفع</string>
<string name="review">مراجعة</string>
<string name="enabled">مفعل</string>
<string name="i2ptunnel_view_target">الهدف</string>
<string name="i2ptunnel_view_autostart">تشغيل آلي</string>
<string name="name">الاسم</string>
<string name="description">وصف</string>
<string name="auto_start">تشغيل آلي</string>
<string name="outproxies">بروكسي خارجي</string>
<string name="use_ssl">استعمل SSL</string>
<string name="profile">بروفايل</string>
<string name="disabled">معطل</string>
<string name="whitelist">قائمة بيضاء</string>
<string name="blacklist">قائمة سوداء</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 client</string>
<string name="username">اسم المستخدم</string>
<string name="password">كلمة السر</string>
<string name="custom_options">خيارات خاصة</string>
<string name="no_messages">لا رسائل</string>
</resources>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Nəqliyyatlar</string>
<string name="settings_label_maxConns">Maksimum əlaqələr</string>
<string name="settings_label_i2cp">I2CP interfeysi</string>
<string name="settings_desc_i2cp">7654 portunda dinlə</string>
<string name="settings_label_exploratory_pool">Axtarış hovuzu</string>
<string name="settings_desc_exploratory_pool">Tunel parametrləri</string>
<string name="settings_label_expl_inbound">Daxil olan tunellər</string>

View File

@ -132,7 +132,6 @@
<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>
<string name="settings_desc_i2cp">Escoltar el port 7654</string>
<string name="settings_label_exploratory_pool">Piscina exploratòria</string>
<string name="settings_desc_exploratory_pool">Paràmetres del túnel</string>
<string name="settings_label_expl_inbound">Túnels d\'entrada</string>

View File

@ -145,7 +145,7 @@
<string name="settings_label_transports">Übertragungen</string>
<string name="settings_label_maxConns">Max. Verbindungen</string>
<string name="settings_label_i2cp">I2CP-Benutzeroberfläche</string>
<string name="settings_desc_i2cp">Auf Port 7654 lauschen</string>
<string name="settings_desc_i2cp">Erlaube anderen Applikationen das Erzeugen von Tunneln (benötigt ein Neustart des Routers)</string>
<string name="settings_label_exploratory_pool">Satz an Erkundungstunneln</string>
<string name="settings_desc_exploratory_pool">Tunnelparameter</string>
<string name="settings_label_expl_inbound">Eingehende Tunnel</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Transportes</string>
<string name="settings_label_maxConns">Conexiones máximas</string>
<string name="settings_label_i2cp">Interfaz de I2CP</string>
<string name="settings_desc_i2cp">Escuchar el puerto 7654</string>
<string name="settings_label_exploratory_pool">Grupo exploratorio</string>
<string name="settings_desc_exploratory_pool">Parámetros de túneles</string>
<string name="settings_label_expl_inbound">Túneles de entrada</string>

View File

@ -122,7 +122,6 @@
<string name="settings_label_transports">Siirrot</string>
<string name="settings_label_maxConns">Yhteyksien enimmäismäärä</string>
<string name="settings_label_i2cp">I2CP-käyttöliittymä</string>
<string name="settings_desc_i2cp">Kuuntele portissa 7654</string>
<string name="settings_desc_exploratory_pool">Tunneliparametrit</string>
<string name="settings_label_expl_inbound">Tulotunnelit</string>
<string name="settings_label_expl_outbound">Lähtötunnelit</string>

View File

@ -145,7 +145,7 @@
<string name="settings_label_transports">Transports</string>
<string name="settings_label_maxConns">Maximum de connexions</string>
<string name="settings_label_i2cp">Interface dI2CP</string>
<string name="settings_desc_i2cp">Écouter sur le port 7654</string>
<string name="settings_desc_i2cp">Permettre aux applis tierces de créer des tunnels (exige un redémarrage du routeur)</string>
<string name="settings_label_exploratory_pool">Réserve exploratoire</string>
<string name="settings_desc_exploratory_pool">Paramètres des tunnels</string>
<string name="settings_label_expl_inbound">Tunnels entrants</string>
@ -325,7 +325,7 @@
<string name="tunnel_summ_user_agent">Passer len-tête « agent utilisateur »</string>
<string name="tunnel_summ_referer">Passer len-tête Référent</string>
<string name="tunnel_summ_accept">Passer len-tête « Accept-* »</string>
<string name="tunnel_summ_allow_ssl">Autoriser SSL vers des adresses I2P</string>
<string name="tunnel_summ_allow_ssl">Permettre SSL vers des adresses I2P</string>
<string name="jump_url_list">Liste dURL de saut</string>
<string name="proxy_auth">Autorisation du mandataire</string>
<string name="tunnel_summ_proxy_auth">Exiger une authentification pour utiliser ce mandataire</string>

View File

@ -0,0 +1,117 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="app_name">I2P</string>
<string name="desc_i2p_logo">Logo de I2P</string>
<string name="choose_language">Escolle a lingua</string>
<string name="welcome_new_install">Benvido/a a I2P! Ista app é software ALPHA e non fornece un anonimato forte. Por favor le as notas da publicación e a información da licenza.</string>
<string name="welcome_new_version">Nova versión instalada. Por favor le as notas da edición. Versión: </string>
<string name="label_tunnels">Túneles</string>
<string name="label_status">Estado</string>
<string name="label_console">Consola</string>
<string name="label_addresses">Enderezos</string>
<string name="label_addressbook">Axenda de Enderezos</string>
<string name="label_i2ptunnel_client">Túneles de Cliente</string>
<string name="label_i2ptunnel_server">Túneles de Servidor</string>
<string name="label_logs">Rexistros (Logs)</string>
<string name="label_error_logs">Rexistros (Logs) de Erros</string>
<string name="label_news">Noticias</string>
<string name="label_peers_status">Pares</string>
<string name="label_release_notes">Notas da edición</string>
<string name="label_licenses">Licencias</string>
<string name="label_browse">Navegar</string>
<string name="label_graphs">Gráficas</string>
<string name="button_router_off">Pulsación longa para iniciar I2P</string>
<string name="button_router_on">I2P está en marcha (pulsación longa para deter)</string>
<string name="button_router_graceful">I2P hase deter en %s</string>
<string name="button_shutdown_now">Pulsación longa para deter agora</string>
<string name="button_cancel_graceful">Pulsación longa para cancelar o apagado</string>
<string name="no_internet">Non hai conexión a Internet dispoñible</string>
<string name="hidden">Oculto</string>
<string name="testing">A probar...</string>
<string name="firewalled">Detrás dunha devasa</string>
<string name="symmetric_nat">NAT simétrico</string>
<string name="net_status_error_i2cp">Erro do xestor de cliente I2CP - Revisa os logues</string>
<!--Parameter is a time, e.g. 32s or 2m-->
<string name="net_status_error_skew">Desfase do reloxo en %s</string>
<string name="net_status_error_unresolved_tcp">Enderezo TCP non resolto</string>
<string name="net_status_error_private_tcp">Enderezo TCP privado</string>
<string name="net_status_warn_firewalled_inbound_tcp">Detrás dunha devasa con TCP entrante habilitado</string>
<string name="net_status_warn_firewalled_floodfill">Detrás dunha devasa e </string>
<string name="net_status_info_disconnected">Desconectado - Comprobar conexión á rede</string>
<string name="net_status_error_udp_port">Porto UDP en uso - cambiao na configuración e reinicia</string>
<string name="net_status_error_no_active_peers">Non hay pares activos - comproba a túa conexión á rede e o teu cortafogos</string>
<string name="shared_clients">Clientes compartidos</string>
<string name="active_peers">Pares activos</string>
<string name="known_peers">Pares coñecidos</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">Aínda non hai túneles en marcha.</string>
<string name="download">Descargar</string>
<string name="upload">Cargar</string>
<string name="configure_browser_title">Configurar o navegador?</string>
<string name="first_start_title">Parabéns por instalares I2P!</string>
<string name="first_start_read">Mentres agardas por favor le as notas do lanzamento</string>
<string name="first_start_faq_nonanon">Ou usa ista ligazón non anónima se non queres agardar polos túneles:</string>
<string name="action_search">Buscar</string>
<string name="action_add">Engadir</string>
<string name="action_edit">Editar</string>
<string name="action_delete">Borrar</string>
<string name="action_i2ptunnel_start">Inicia-lo túnel</string>
<string name="action_i2ptunnel_stop">Dete-lo túnel</string>
<string name="action_i2ptunnel_start_all">Iniciar tódolos túneles</string>
<string name="action_i2ptunnel_stop_all">Deter tódolos túneles</string>
<string name="action_i2ptunnel_restart_all">Reiniciar tódolos túneles</string>
<string name="action_reload">Recargar</string>
<string name="action_refresh">Refrescar</string>
<string name="hint_search_addressbook">Buscar na axenda de enderezos</string>
<string name="action_reload_subscriptions">Recargar subscripcións</string>
<string name="news_last_updated">Novas actualizadas fai %s</string>
<string name="news_last_checked">Novas comprobadas fai %s</string>
<string name="news_updated">Novas actualizadas</string>
<string name="view_news">Preme para ver al últimas novas de I2P</string>
<string name="statistics">Estadísticas</string>
<string name="countries">Países</string>
<string name="country">País</string>
<string name="versions">Versións</string>
<string name="version">Versión</string>
<string name="notification_status_starting">I2P está a se iniciar</string>
<string name="notification_status_restarting">I2P está a se reiniciar</string>
<string name="notification_status_running">I2P está en funcionamento</string>
<string name="notification_status_client_ready">Os túneles de cliente están preparados</string>
<string name="menu_settings">Opcións</string>
<string name="settings_enable">Activar</string>
<string name="settings_label_bandwidth_net">Rede e ancho de banda</string>
<string name="settings_label_startOnBoot">Lanzar I2P no inicio</string>
<string name="settings_label_bw_inbound">Velocidade entrante</string>
<string name="settings_label_network">Rede</string>
<string name="settings_label_appearance">Aparencia</string>
<string name="settings_label_language">Idioma</string>
<string name="settings_default">Predeterminado</string>
<string name="settings_label_advanced">Avanzadas</string>
<string name="settings_summ_expl_lengthVariance">%s</string>
<string name="menu_about">Acerca de</string>
<string name="about_version">Versión:</string>
<string name="menu_help">Axuda</string>
<string name="general">Xeral</string>
<string name="addressbook_add_wizard_k_name">Nome</string>
<string name="addressbook_add_wizard_k_destination">Destino</string>
<string name="i2ptunnel_new_tunnel">Novo Túnel</string>
<string name="i2ptunnel_msg_tunnel_starting">Iniciando o túnel</string>
<string name="i2ptunnel_msg_tunnel_stopping">Detendo o túnel</string>
<string name="i2ptunnel_wizard_k_name">Nome</string>
<string name="i2ptunnel_wizard_k_desc">Descrición</string>
<string name="i2ptunnel_wizard_k_dest">Destino</string>
<string name="next">Seguinte</string>
<string name="finish">Enviar</string>
<string name="review">Revisión</string>
<string name="enabled">Activado</string>
<string name="i2ptunnel_view_target">Destino</string>
<string name="name">Nome</string>
<string name="description">Descrición</string>
<string name="disabled">Desactivado</string>
<string name="username">Nome de usuario</string>
<string name="password">Contrasinal</string>
<string name="other">Outra</string>
</resources>

View File

@ -0,0 +1,111 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="app_name">I2P</string>
<string name="desc_i2p_logo">I2P logo</string>
<string name="choose_language">Nyelv választása</string>
<string name="welcome_new_install">Üdvözöl az I2P! Ez az alkalmazás egy ALPHA szoftver és nem nyújt erős anonimitást. Kérlek olvasd el a verziókövetési jegyzetet és a licencinformációt.</string>
<string name="welcome_new_version">Új verzió telepítve. Kérlek olvasd el a verziókövetési jegyzetet. Verzió:</string>
<string name="label_tunnels">Átjárók</string>
<string name="label_status">Állapot</string>
<string name="label_addresses">Címek</string>
<string name="label_addressbook">Címjegyzék</string>
<string name="label_i2ptunnel_client">Kliens átjárók</string>
<string name="label_i2ptunnel_server">Kiszolgáló átjárók</string>
<string name="label_logs">Napló</string>
<string name="label_news">Hírek</string>
<string name="label_peers_status">Peer-ek</string>
<string name="label_release_notes">Verziókövetési jegyzet</string>
<string name="label_licenses">Licencek</string>
<string name="label_browse">Tallóz</string>
<string name="label_graphs">Ábra</string>
<string name="hidden">Rejtett</string>
<string name="testing">Tesztelés</string>
<string name="firewalled">Tűzfalazva</string>
<string name="symmetric_nat">Szimmetrikus NAT</string>
<!--Parameter is a time, e.g. 32s or 2m-->
<string name="uptime">Indítás óta eltelt idő</string>
<!--Character to indicate a client tunnel. Usually first letter of the word "client".-->
<string name="char_client_tunnel">M</string>
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
<string name="char_server_tunnel">S</string>
<string name="download">Letöltés</string>
<string name="action_search">Keresés</string>
<string name="action_add">Hozzáadás</string>
<string name="action_edit">Szerkesztés</string>
<string name="action_delete">Törlés</string>
<string name="action_reload">Újratöltés</string>
<string name="action_refresh">Frissítés</string>
<string name="routers">Routerek</string>
<string name="leasesets">LeaseSet-ek</string>
<string name="country">Ország</string>
<string name="transport">Szállítás</string>
<string name="version">Verzió</string>
<string name="count">Mennyiség</string>
<string name="tname_0">Rejtett vagy indul</string>
<string name="menu_settings">Beállítások</string>
<string name="settings_enable">Engedélyezés</string>
<string name="settings_label_bandwidth">Sávszélesség</string>
<string name="settings_label_network">Hálózat</string>
<string name="settings_label_logging">Naplózás</string>
<string name="settings_label_default_log_level">Alapértelmezett naplózási szint</string>
<string name="settings_label_appearance">Megjelenés</string>
<string name="settings_label_language">Nyelv</string>
<string name="settings_default">Alapértelmezett</string>
<string name="settings_label_advanced">Haladó</string>
<string name="settings_label_transports">Átvitel</string>
<string name="settings_label_expl_length">Hossz</string>
<string name="settings_label_expl_quantity">Mennyiség</string>
<string name="settings_label_expl_backupQuantity">Mentési mennyiség</string>
<string name="menu_about">Névjegy</string>
<string name="about_version">Verzió:</string>
<string name="menu_help">Segítség</string>
<string name="general">Általános</string>
<string name="addressbook_add_wizard_k_name">Név</string>
<string name="addressbook_add_wizard_k_destination">Célállomás</string>
<string name="i2ptunnel_type_client">Normál kliens</string>
<string name="i2ptunnel_type_httpclient">HTTP kliens</string>
<string name="i2ptunnel_type_ircclient">IRC kliens</string>
<string name="i2ptunnel_type_server">Normál szerver</string>
<string name="i2ptunnel_type_httpserver">HTTP szerver</string>
<string name="i2ptunnel_type_sockstunnel">SOCKS 4/4a/5 proxy</string>
<string name="i2ptunnel_type_socksirctunnel">SOCKS IRC proxy</string>
<string name="i2ptunnel_type_connectclient">CONNECT/SSL/HTTPS proxy</string>
<string name="i2ptunnel_type_ircserver">IRC szerver</string>
<string name="i2ptunnel_type_streamrclient">Streamr kliens</string>
<string name="i2ptunnel_type_streamrserver">Streamr szerver</string>
<string name="i2ptunnel_type_httpbidirserver">HTTP bidir</string>
<string name="i2ptunnel_new_tunnel">Új Alagút</string>
<string name="i2ptunnel_msg_config_saved">A változtatás a beállításokon mentésre kerül</string>
<string name="i2ptunnel_msg_config_save_failed">Beállítások mentése sikertelen</string>
<string name="i2ptunnel_msg_tunnel_starting">Alagút indítása</string>
<string name="i2ptunnel_msg_tunnel_stopping">Alagút leállítása</string>
<string name="i2ptunnel_wizard_k_type">Alagút típus</string>
<string name="i2ptunnel_wizard_k_name">Név</string>
<string name="i2ptunnel_wizard_k_desc">Leírás</string>
<string name="i2ptunnel_wizard_k_dest">Célállomás</string>
<string name="i2ptunnel_wizard_k_outproxies">Kimenő proxyk</string>
<string name="i2ptunnel_wizard_k_auto_start">Automatikus indítás</string>
<string name="next">Következő</string>
<string name="prev">Előző</string>
<string name="finish">Elküld</string>
<string name="enabled">Engedélyezve</string>
<string name="i2ptunnel_wizard_desc_target_host">Ez az IP, melyen a szolgáltatásod fut, ez rendszerint ugyanazon a gépen van, így a 127.0.0.1 automatikusan beírásra kerül.</string>
<string name="i2ptunnel_wizard_desc_target_port">Ez a port, melyen a szolgáltatás csatlakozásokat fogad.</string>
<string name="i2ptunnel_view_target">Cél</string>
<string name="name">Név</string>
<string name="description">Leírás</string>
<string name="outproxies">Kimenő proxyk</string>
<string name="enable_dcc">DCC Engedélyezése</string>
<string name="use_ssl">SSL használata</string>
<string name="profile">Profil</string>
<string name="disabled">Tiltva</string>
<string name="whitelist">Engedélyezett-Lista</string>
<string name="blacklist">Tiltott-Lista</string>
<string name="tunnel_summ_delay_open">Az alagút nyitás késleltetése szükségessé válásig</string>
<string name="tunnel_summ_reduce_quantity">Alagutak mennyiségének csökkentése üres állapotban</string>
<string name="close_tunnels">Alagutak bezárása üresjárat esetén</string>
<string name="http_client">HTTP kliens</string>
<string name="username">Felhasználónév</string>
<string name="password">Jelszó</string>
<string name="custom_options">Egyéni beállítások</string>
</resources>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Transport</string>
<string name="settings_label_maxConns">Maks sambungan</string>
<string name="settings_label_i2cp">I2CP antarmuka</string>
<string name="settings_desc_i2cp">Mendengarkan port 7654</string>
<string name="settings_label_exploratory_pool">Pool eksplorasi</string>
<string name="settings_desc_exploratory_pool">Parameter saluran</string>
<string name="settings_label_expl_inbound">Saluran inbound</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Trasporti</string>
<string name="settings_label_maxConns">Limite connessioni</string>
<string name="settings_label_i2cp">Interfaccia I2CP</string>
<string name="settings_desc_i2cp">Ascolta sulla porta 7654</string>
<string name="settings_label_exploratory_pool">Esplorazione pool</string>
<string name="settings_desc_exploratory_pool">Parametri tunnel</string>
<string name="settings_label_expl_inbound">Tunnel in ingresso</string>

View File

@ -102,7 +102,6 @@
<string name="settings_label_transports">トランスポート</string>
<string name="settings_label_maxConns">最大接続数</string>
<string name="settings_label_i2cp">I2CP インターフェース</string>
<string name="settings_desc_i2cp">7654番ポートでリッスン</string>
<string name="settings_label_exploratory_pool">予備プール</string>
<string name="settings_desc_exploratory_pool">トンネルパラーメーター</string>
<string name="settings_label_expl_inbound">受信トンネル</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">트랜스포트</string>
<string name="settings_label_maxConns">최대 접속 수</string>
<string name="settings_label_i2cp">I2CP 인터페이스</string>
<string name="settings_desc_i2cp">7654 포트로 수신</string>
<string name="settings_label_exploratory_pool">예비 풀</string>
<string name="settings_desc_exploratory_pool">터널 파라미터</string>
<string name="settings_label_expl_inbound">수신 터널</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Overføringer</string>
<string name="settings_label_maxConns">Maks. tilknytninger</string>
<string name="settings_label_i2cp">I2CP-grensesnitt</string>
<string name="settings_desc_i2cp">Lytt til port 7654</string>
<string name="settings_label_exploratory_pool">Utforsknings-grunnlag</string>
<string name="settings_desc_exploratory_pool">Tunnel-dimensjoner</string>
<string name="settings_label_expl_inbound">Innkommende tunneler</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Transporten</string>
<string name="settings_label_maxConns">Maximale connecties</string>
<string name="settings_label_i2cp">I2CP-interface</string>
<string name="settings_desc_i2cp">Luister op poort 7654</string>
<string name="settings_label_exploratory_pool">Verkennende-pool</string>
<string name="settings_desc_exploratory_pool">Tunnelparameters</string>
<string name="settings_label_expl_inbound">Inkomende tunnels</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Transporty</string>
<string name="settings_label_maxConns">Maksymalna liczba połączeń</string>
<string name="settings_label_i2cp">Interfejs I2CP</string>
<string name="settings_desc_i2cp">Słuchaj na porcie 7654</string>
<string name="settings_label_exploratory_pool">Pole rozpoznawcze</string>
<string name="settings_desc_exploratory_pool">Parametry tuneli</string>
<string name="settings_label_expl_inbound">Tunele przychodzące</string>

View File

@ -140,7 +140,6 @@
<string name="settings_label_transports">Transportes</string>
<string name="settings_label_maxConns">Número máximo de conexões</string>
<string name="settings_label_i2cp">Interface do I2CP</string>
<string name="settings_desc_i2cp">Ouvindo na porta 7654</string>
<string name="settings_desc_exploratory_pool">Parêmetros de tunel</string>
<string name="settings_label_expl_inbound">Túneis entrantes</string>
<string name="settings_label_expl_outbound">Tuneis de saída</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Transportes</string>
<string name="settings_label_maxConns">Nr. máx. de ligações</string>
<string name="settings_label_i2cp">Interface I2CP</string>
<string name="settings_desc_i2cp">Escutar na porta 7654</string>
<string name="settings_label_exploratory_pool">Poço exploratório</string>
<string name="settings_desc_exploratory_pool">Parâmetros dos túneis</string>
<string name="settings_label_expl_inbound">Túneis de entrada</string>

View File

@ -116,7 +116,6 @@
<string name="settings_label_transports">Transporturi</string>
<string name="settings_label_maxConns">Maxim conexiuni</string>
<string name="settings_label_i2cp">Interfata I2CP</string>
<string name="settings_desc_i2cp">Asculta pe portul 7654</string>
<string name="settings_label_exploratory_pool">pool de explorare</string>
<string name="settings_desc_exploratory_pool">Parametri tunelului</string>
<string name="settings_label_expl_inbound">Tunele de intrare</string>

View File

@ -145,7 +145,7 @@
<string name="settings_label_transports">Транспортные протоколы</string>
<string name="settings_label_maxConns">Максимум соединений</string>
<string name="settings_label_i2cp">I2CP-интерфейс</string>
<string name="settings_desc_i2cp">Слушать на порту 7654</string>
<string name="settings_desc_i2cp">Разрешить создание туннелей сторонним программам (требуется перезапуск маршрутизатора)</string>
<string name="settings_label_exploratory_pool">Зондирующий пул</string>
<string name="settings_desc_exploratory_pool">Параметры тоннелей</string>
<string name="settings_label_expl_inbound">Входящие туннели</string>

View File

@ -87,7 +87,6 @@
<string name="settings_label_transports">Transporty</string>
<string name="settings_label_maxConns">Maximum pripojení</string>
<string name="settings_label_i2cp">Rozhranie I2CP</string>
<string name="settings_desc_i2cp">Počúvať na porte 7654</string>
<string name="settings_label_exploratory_pool">Skúšobný pool</string>
<string name="settings_desc_exploratory_pool">Parametre tunelov</string>
<string name="settings_label_expl_inbound">Prichádzajúce tunely</string>
@ -193,6 +192,7 @@
<string name="http_client">HTTP klient</string>
<string name="username">Užívateľské meno</string>
<string name="password">Heslo</string>
<string name="other">Ďalší</string>
<string name="custom_options">Vlastné nastavenia</string>
<string name="all">Všetko</string>
</resources>

View File

@ -6,6 +6,7 @@
<string name="welcome_new_version">Tip/version i ri është instaluar. Ju lutem lexoni notat e lëshimit .Versioni:</string>
<string name="label_tunnels">Tunelet</string>
<string name="label_status">Statusi</string>
<string name="label_console">Konsolë</string>
<string name="label_addresses">Adresa</string>
<string name="label_addressbook">Libri i adresave. </string>
<string name="label_i2ptunnel_client">Tunelet e klientëve</string>
@ -87,7 +88,6 @@
<string name="settings_label_transports">Transportimet</string>
<string name="settings_label_maxConns">Lidhjet maksimale</string>
<string name="settings_label_i2cp">Ndërfaqja e I2CP\'së</string>
<string name="settings_desc_i2cp">Ndëgjo në portalen 7654</string>
<string name="settings_label_exploratory_pool">Mjet zbulimi</string>
<string name="settings_desc_exploratory_pool">Parametrat e tunelëve</string>
<string name="settings_label_expl_inbound">Tunelët në hyrje</string>
@ -189,6 +189,7 @@
<string name="http_client">Klient i HTTP\'së</string>
<string name="username">Emër përdoruesi</string>
<string name="password">Fjalëkalim</string>
<string name="other">Tjetër</string>
<string name="all">Krejt</string>
<string name="no_messages">Nuk ka mesazhe</string>
</resources>

View File

@ -146,7 +146,6 @@ Läs utgåvenoteringar och licens-information.</string>
<string name="settings_label_transports">Transporter</string>
<string name="settings_label_maxConns">Max anslutningar</string>
<string name="settings_label_i2cp">I2CP interfrace</string>
<string name="settings_desc_i2cp">Lyssnar på port 7654</string>
<string name="settings_label_exploratory_pool">Utforskande pool</string>
<string name="settings_desc_exploratory_pool">Tunnelparametrar</string>
<string name="settings_label_expl_inbound">Inåtgående tunnlar</string>

View File

@ -145,7 +145,7 @@
<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_desc_i2cp">Üçüncü taraf uygulamalar tünel oluşturabilsin (yönelticinin yeniden başlatılması gerekir)</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">Geliş tünelleri</string>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">Транспорти</string>
<string name="settings_label_maxConns">Максимально з’єднань</string>
<string name="settings_label_i2cp">Інтерфейс I2CP</string>
<string name="settings_desc_i2cp">Прослуховується на порту 7654</string>
<string name="settings_label_exploratory_pool">Пошуковий пул</string>
<string name="settings_desc_exploratory_pool">Параметри тунелів</string>
<string name="settings_label_expl_inbound">Вхідні тунелі</string>
@ -342,11 +341,13 @@
<plurals name="log_error_messages">
<item quantity="one">Одне повідомлення про помилку</item>
<item quantity="few">%d повідомлень про помилку, спочатку нові</item>
<item quantity="many">%d повідомлень про помилки, спочатку нові</item>
<item quantity="other">%d повідомлень про помилки, спочатку нові</item>
</plurals>
<plurals name="log_messages">
<item quantity="one">Одне повідомлення</item>
<item quantity="few">%d повідомлень, спочатку нові</item>
<item quantity="many">%d повідомлень, спочатку нові</item>
<item quantity="other">%d повідомлень, спочатку нові</item>
</plurals>
<string name="log_entry">Запис у журналі</string>

View File

@ -3,29 +3,43 @@
<string name="app_name">I2P</string>
<string name="welcome_new_install">Chào mừng bạn đã sử dụng I2P! Đây là phiên bản ALPHA và có thể vẫn chưa được hoàn thiện đầy đủ các tính năng. Vui lòng đọc các tính năng có trong phần ghi chú về phiên bản cũng như thông tin về giấy phép sử dụng.</string>
<string name="welcome_new_version">Phiên bản mới đã được cài đặt. Vui lòng đọc kỹ phần chú ý cài đặt. Phiên bản:</string>
<string name="label_home">Trang chủ I2P</string>
<string name="label_status">Trng thái</string>
<string name="label_addresses">Địa chỉ</string>
<string name="label_addressbook">Sổ địa chỉ</string>
<string name="label_logs">Nhật trình</string>
<string name="label_error_logs">Nhật trình về lỗi</string>
<string name="label_info_and_pages">Tin tức và trang tin</string>
<string name="label_welcome_page">Trang chào mừng</string>
<string name="label_news">Tin tức</string>
<string name="label_peers_status">Mạng ngang hàng</string>
<string name="label_release_notes">Ghi chú phát hành</string>
<string name="label_licenses">Giấy phép</string>
<string name="label_nonanon_info">Thông tin không được ẩn danh</string>
<string name="label_browse">Duyệt qua</string>
<string name="hidden">Dấu</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>
<!--Character to indicate a server tunnel. Usually first letter of the word "server".-->
<string name="char_server_tunnel">S</string>
<string name="download">Tải xuống</string>
<string name="upload">Tải lên</string>
<string name="action_search">Tìm</string>
<string name="action_add">Thêm vào</string>
<string name="action_router_start">Bắt đầu định tuyến</string>
<string name="action_router_stop">Dừng lại định tuyến</string>
<string name="action_edit">Chỉnh sửa</string>
<string name="action_delete">Xóa</string>
<string name="action_reload">Tải lại</string>
<string name="action_refresh">Nạp lại</string>
<string name="statistics">Thống kê</string>
<string name="country">Quốc gia</string>
<string name="version">Phiên bản</string>
<string name="count">Số lượng</string>
<string name="menu_settings">Thiết lập</string>
<string name="settings_enable">Cho phép</string>
<string name="settings_desc_subscriptions">Đường dẫn đăng ký theo dõi</string>
<string name="settings_label_bandwidth">Băng thông và mạng lưới</string>
<string name="settings_label_bandwidth_net">Băng thông và mạng lưới</string>
<string name="settings_label_bw_inbound">Tốc độ hướng vào</string>
<string name="settings_desc_bw_inbound">Tốc độ hướng vào tối đa</string>
<string name="settings_label_bw_outbound">Tốc độ hướng ra</string>
<string name="settings_desc_bw_outbound">Tốc độ hướng ra tối đa</string>
<string name="settings_label_network">Mạng lưới</string>
<string name="settings_label_hiddenMode">Sự tham gia</string>
<string name="settings_desc_hiddenMode">Tắt chế độ ẩn</string>
<string name="settings_label_maxPartTunnels">Số đường hầm tối đa liên quan</string>
@ -35,11 +49,13 @@
<string name="settings_desc_sharePercent">Phần trăm của lượng băng thông dùng cho chia sẻ (mặc định=80)</string>
<string name="settings_dialog_sharePercent">Phần trăm của lượng băng thông dùng cho chia sẻ</string>
<string name="settings_desc_upnp">Tự động mở kết nối ở cổng dữ liệu cho tường lửa</string>
<string name="settings_label_appearance">Xuất hiện</string>
<string name="settings_label_language">Ngôn ngữ</string>
<string name="settings_default">Mặc định</string>
<string name="settings_label_advanced">Nâng cao</string>
<string name="settings_label_transports">Giao thông</string>
<string name="settings_label_maxConns">Số kết nối tối đa</string>
<string name="settings_label_i2cp">Giao diện I2CP</string>
<string name="settings_desc_i2cp">Đón nhận thông tin trên cổng 7654</string>
<string name="settings_label_exploratory_pool">Công cụ khám phá</string>
<string name="settings_desc_exploratory_pool">Thông số đường hầm</string>
<string name="settings_label_expl_inbound">Hướng vào đường hầm</string>
@ -52,4 +68,53 @@
<string name="settings_desc_expl_quantity">Số lượng đường hầm</string>
<string name="settings_label_expl_backupQuantity">Đường hầm dự trữ</string>
<string name="settings_desc_expl_backupQuantity">Số lượng đường hầm dự phòng</string>
<string name="menu_about">Giới thiệu</string>
<string name="about_version">Phiên bản:</string>
<string name="menu_help">Giúp đỡ</string>
<string name="general">Chung</string>
<string name="addressbook_add_wizard_k_name">Tên</string>
<string name="addressbook_add_wizard_k_destination">Đích đến</string>
<string name="i2ptunnel_type_client">Khách thường</string>
<string name="i2ptunnel_type_httpclient">Khách HTTP</string>
<string name="i2ptunnel_type_ircclient">Khách IRC</string>
<string name="i2ptunnel_type_server">Máy chủ thường</string>
<string name="i2ptunnel_type_httpserver">Máy chủ HTTP</string>
<string name="i2ptunnel_type_sockstunnel">Proxy SOCKS 4/4a/5</string>
<string name="i2ptunnel_type_socksirctunnel">Proxy SOCKS IRC</string>
<string name="i2ptunnel_type_connectclient">Proxy nối kết/SSL/HTTPS</string>
<string name="i2ptunnel_type_ircserver">Máy chủ IRC</string>
<string name="i2ptunnel_type_streamrclient">Khách Streamr</string>
<string name="i2ptunnel_type_streamrserver">Máy chủ Streamr</string>
<string name="i2ptunnel_type_httpbidirserver">HTTP hai chiều</string>
<string name="i2ptunnel_new_tunnel">Đường Hầm Mới</string>
<string name="i2ptunnel_msg_config_saved">Lưu giữ thay đổi cấu hình</string>
<string name="i2ptunnel_msg_config_save_failed">Không lưu cấu hình được</string>
<string name="i2ptunnel_msg_tunnel_starting">Bắt đầu đường hầm</string>
<string name="i2ptunnel_msg_tunnel_stopping">Ngưng đường hầm</string>
<string name="i2ptunnel_wizard_k_name">Tên</string>
<string name="i2ptunnel_wizard_k_desc">Mô tả</string>
<string name="i2ptunnel_wizard_k_dest">Đích đến</string>
<string name="i2ptunnel_wizard_k_outproxies">Proxy ra</string>
<string name="i2ptunnel_wizard_k_auto_start">Tự động bắt đầu</string>
<string name="next">Kế</string>
<string name="prev">Trước</string>
<string name="finish">Nạp</string>
<string name="enabled">Được bật lên</string>
<string name="i2ptunnel_view_target">Điểm đến</string>
<string name="name">Tên</string>
<string name="description">Mô tả</string>
<string name="outproxies">Proxy ra</string>
<string name="use_ssl">Sử dụng SSL</string>
<string name="tunnel_parameters">Thông số đường hầm</string>
<string name="profile">Hồ sơ</string>
<string name="disabled">Tàn tật</string>
<string name="whitelist">Sổ trắng</string>
<string name="blacklist">Sổ đen</string>
<string name="tunnel_summ_delay_open">Đợi mở đường hầm cho đến khi yêu cầu</string>
<string name="tunnel_summ_reduce_quantity">Giảm số lượng hầm khi rổi</string>
<string name="close_tunnels">Đóng đường hầm khi rảnh rổi</string>
<string name="http_client">Khách HTTP</string>
<string name="username">Tên đăng nhập</string>
<string name="password">Mật khẩu</string>
<string name="custom_options">Tùy chọn tùy ý</string>
</resources>

View File

@ -0,0 +1,248 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="app_name">I2P</string>
<string name="desc_i2p_logo">I2P標誌</string>
<string name="choose_language">選擇語言</string>
<string name="welcome_new_install">歡迎來到I2P! 這個應用程式尚在α階段且不提供高度匿名。請閱讀發行公告與許可證資訊。</string>
<string name="welcome_new_version">已安裝新版本。請閱讀發行公告。版本:</string>
<string name="label_tunnels">隧道</string>
<string name="label_status">狀態</string>
<string name="label_console">控制檯</string>
<string name="label_addresses">地址</string>
<string name="label_addressbook">地址簿</string>
<string name="label_i2ptunnel_client">客戶端隧道</string>
<string name="label_i2ptunnel_server">伺服器隧道</string>
<string name="label_logs">日誌</string>
<string name="label_error_logs">錯誤日誌</string>
<string name="label_news">新聞</string>
<string name="label_peers_status">節點</string>
<string name="label_release_notes">版本說明</string>
<string name="label_licenses">許可證</string>
<string name="label_browse">瀏覽</string>
<string name="label_graphs">圖表</string>
<string name="button_router_off">長按啟動I2P</string>
<string name="button_router_on">I2P正在執行(長按結束)</string>
<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_skew">時間誤差了%s秒</string>
<string name="net_status_error_unresolved_tcp">未解決的傳輸控制協定位址</string>
<string name="net_status_error_private_tcp">私人傳輸控制協定位址</string>
<string name="net_status_warn_firewalled_inbound_tcp">入站傳輸控制協定許可被防火牆擋下</string>
<string name="net_status_warn_firewalled_floodfill">種子節點因防火牆受限</string>
<string name="net_status_info_disconnected">連線已斷開 - 請檢查網路連接</string>
<string name="net_status_error_udp_port">使用者數據包協定埠口正在使用 - 在設定中改變並重啟</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>
<string name="first_start_welcome"><b>歡迎來到I2P!</b><b>保持耐心</b> 等 I2P 啟動和找節點。</string>
<string name="first_start_read">在您等候的同時,請在閱讀發行公告與歡迎頁面。</string>
<string name="first_start_faq">當您有了客戶端隧道時,請 <b>看看</b> 我們的 FAQ:</string>
<string name="first_start_faq_nonanon">或使用這不匿名的網址,如果您不想等的話:</string>
<string name="first_start_irc">將您的 IRC 客戶端連線指向<b>localhost:6668</b> 並且在上面跟我們打聲招呼:</string>
<string name="action_search">搜尋</string>
<string name="action_add">新增</string>
<string name="action_edit">編輯</string>
<string name="action_delete">刪除</string>
<string name="action_i2ptunnel_start">啟動隧道</string>
<string name="action_i2ptunnel_stop">中止隧道</string>
<string name="action_i2ptunnel_start_all">啟動所有隧道</string>
<string name="action_i2ptunnel_stop_all">中止所有隧道</string>
<string name="action_i2ptunnel_restart_all">重啟所有隧道</string>
<string name="action_reload">重新載入</string>
<string name="action_refresh">重新整理</string>
<string name="hint_search_addressbook">搜尋地址簿</string>
<string name="action_reload_subscriptions">重新載入訂閱</string>
<string name="news_last_updated">新聞˙最後更新於%s秒前</string>
<string name="news_last_checked">新聞˙最後檢查於%s秒前</string>
<string name="news_updated">新聞已更新</string>
<string name="view_news">點擊查看最新的I2P新聞</string>
<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>
<string name="statistics">統計</string>
<string name="routers">路由器</string>
<string name="leasesets">賃集</string>
<string name="countries">國家</string>
<string name="country">國家</string>
<string name="transport">傳輸</string>
<string name="versions">版本</string>
<string name="version">版本</string>
<string name="count">計數</string>
<string name="tname_0">隱身或正在啟動</string>
<string name="netdb_routers_empty">在您的NetDB裡沒有路由器。</string>
<string name="netdb_leases_empty">在您的NetDB裡沒有租賃集。</string>
<string name="notification_status_starting">I2P正在啟動</string>
<string name="notification_status_restarting">I2P正在重啟</string>
<string name="notification_status_waiting">I2P正在等待網路連接</string>
<string name="notification_status_starting_after_waiting">網路已連接I2P正在啟動</string>
<string name="notification_status_running">I2P正在運行</string>
<string name="notification_status_client_ready">客戶端隧道已經預備</string>
<string name="notification_status_client_down">客戶端隧道已經結束</string>
<string name="notification_status_graceful">I2P將在%s秒內終止</string>
<string name="notification_status_stopping">I2P將終止</string>
<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_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>
<string name="menu_settings">設定</string>
<string name="settings_enable">啟用</string>
<string name="settings_desc_subscriptions">訂閱的網址</string>
<string name="settings_label_bandwidth_net">頻寬和網路</string>
<string name="settings_label_startOnBoot">開機時啟動I2P</string>
<string name="settings_desc_startOnBoot">當您的Android設備啟動時自動連上I2P</string>
<string name="settings_label_bandwidth">頻寬</string>
<string name="settings_label_bw_inbound">入站速度</string>
<string name="settings_desc_bw_inbound">最大入站速度</string>
<string name="settings_label_bw_outbound">出站速度</string>
<string name="settings_desc_bw_outbound">最大出站速度</string>
<string name="settings_label_network">網路</string>
<string name="settings_label_hiddenMode">共享</string>
<string name="settings_desc_hiddenMode">關閉隱身模式</string>
<string name="settings_label_maxPartTunnels">最大共享隧道</string>
<string name="settings_desc_maxPartTunnels">參與者的最大隧道數量(默認值 = 20</string>
<string name="settings_dialog_maxPartTunnels">參與者的最大隧道數量</string>
<string name="settings_label_sharePercent">分享率</string>
<string name="settings_desc_sharePercent">共享出多少百分比的頻寬(默認值= 80</string>
<string name="settings_dialog_sharePercent">共享出多少百分比的頻寬</string>
<string name="settings_desc_upnp">自動開啟防火牆連接埠</string>
<string name="settings_label_logging">日誌</string>
<string name="settings_label_default_log_level">預設日誌等級</string>
<string name="settings_label_appearance">外觀</string>
<string name="settings_label_language">語言</string>
<string name="settings_default">預設值</string>
<string name="settings_label_advanced">高階</string>
<string name="settings_label_showStats">路由統計</string>
<string name="settings_summ_showStats">在主控制台中顯示高級統計資料</string>
<string name="settings_label_transports">傳輸</string>
<string name="settings_label_maxConns">最大連接數</string>
<string name="settings_label_i2cp">I2CP 介面</string>
<string name="settings_label_exploratory_pool">導坑池</string>
<string name="settings_desc_exploratory_pool">隧道參數</string>
<string name="settings_label_expl_inbound">Inbound 隧道</string>
<string name="settings_label_expl_outbound">Outbound 隧道</string>
<string name="settings_label_expl_length">長度</string>
<string name="settings_summ_expl_length">%s 跳躍數</string>
<string name="settings_desc_expl_length">要使用多少個跳躍數</string>
<string name="settings_label_expl_lengthVariance">跳躍數的變異</string>
<string name="settings_summ_expl_lengthVariance">%s</string>
<string name="settings_desc_expl_lengthVariance">隨機添加跳躍數</string>
<string name="settings_label_expl_quantity">數量</string>
<string name="settings_summ_expl_quantity">%s 隧道</string>
<string name="settings_desc_expl_quantity">多少個隧道</string>
<string name="settings_label_expl_backupQuantity">備用數量</string>
<string name="settings_summ_expl_backupQuantity">%s 隧道</string>
<string name="settings_desc_expl_backupQuantity">儲備多少個隧道</string>
<string name="settings_need_transport_enabled">您至少要打開一種傳輸層協定</string>
<string name="settings_router_restart_required">請重新啟動 I2P 來讓新設定生效</string>
<string name="menu_about">關於</string>
<string name="about_version">版本:</string>
<string name="about_project">專案首頁:</string>
<string name="about_bugs">問題和支援:</string>
<string name="about_helpwanted">需要幫忙!</string>
<string name="about_volunteer">您是否願意伸出援手,讓這個 app 變得更好使用?我們的安卓論壇正在招募志工:</string>
<string name="about_donate">您願意捐款或捐比特幣給我們,去買開發和測試用的安卓設備嗎?這裡:</string>
<string name="menu_help">幫助</string>
<string name="general">功能概況</string>
<string name="label_router">公共位址</string>
<string name="label_private">私有位址</string>
<string name="addressbook_is_empty">地址簿是空的</string>
<string name="addressbook_search_header">%s 個發現</string>
<string name="addressbook_add_wizard_k_name">名稱</string>
<string name="addressbook_add_wizard_k_destination">目標</string>
<string name="addressbook_add_wizard_desc_name">名字是</string>
<string name="i2ptunnel_type_client">標準客戶端</string>
<string name="i2ptunnel_type_httpclient">HTTP 客戶端</string>
<string name="i2ptunnel_type_ircclient">IRC客戶端</string>
<string name="i2ptunnel_type_server">標準伺服器</string>
<string name="i2ptunnel_type_httpserver">HTTP 伺服器</string>
<string name="i2ptunnel_type_sockstunnel">SOCKS 4/4a/5 的代理</string>
<string name="i2ptunnel_type_socksirctunnel">SOCKS IRC 代理</string>
<string name="i2ptunnel_type_connectclient">CONNECT/SSL/HTTPS 代理</string>
<string name="i2ptunnel_type_ircserver">IRC 伺服器</string>
<string name="install_recommended_app">安裝建議的 app ?</string>
<string name="i2ptunnel_not_initialized">隧道尚未初始化,請在兩分鐘內重整。</string>
<string name="no_configured_client_tunnels">客戶端隧道沒有設定。</string>
<string name="no_configured_server_tunnels">伺服器隧道沒有設定。</string>
<string name="i2ptunnel_new_tunnel">新隧道</string>
<string name="i2ptunnel_msg_config_saved">設定檔變更已儲存</string>
<string name="i2ptunnel_msg_config_save_failed">儲存設定檔案失敗</string>
<string name="i2ptunnel_msg_tunnel_starting">隧道開啟中</string>
<string name="i2ptunnel_msg_tunnel_stopping">隧道終止中</string>
<string name="i2ptunnel_delete_confirm_message">刪除隧道?</string>
<string name="i2ptunnel_delete_confirm_button">刪除隧道</string>
<string name="i2ptunnel_no_tunnel_details">無法載入詳細的隧道資料</string>
<string name="i2ptunnel_wizard_k_client_server">客戶端或伺服器</string>
<string name="i2ptunnel_wizard_v_client">客戶端隧道</string>
<string name="i2ptunnel_wizard_v_server">伺服器隧道</string>
<string name="i2ptunnel_wizard_k_type">隧道類型</string>
<string name="i2ptunnel_wizard_k_name">名稱</string>
<string name="i2ptunnel_wizard_k_desc">描述</string>
<string name="i2ptunnel_wizard_k_dest">目標</string>
<string name="i2ptunnel_wizard_k_outproxies">連外代理</string>
<string name="i2ptunnel_wizard_k_target_host">目標主機</string>
<string name="i2ptunnel_wizard_k_target_port">目標端口</string>
<string name="i2ptunnel_wizard_k_reachable_on">開啟被連通</string>
<string name="i2ptunnel_wizard_k_auto_start">自動啟動</string>
<string name="next">下一個</string>
<string name="prev">前一個</string>
<string name="finish">提交</string>
<string name="review">複檢</string>
<string name="enabled">啟用</string>
<string name="i2ptunnel_wizard_submit_confirm_message">建立新隧道?</string>
<string name="i2ptunnel_wizard_submit_confirm_button">建立新隧道</string>
<string name="i2ptunnel_view_target">目標</string>
<string name="i2ptunnel_view_access_point">訪問點</string>
<string name="i2ptunnel_view_autostart">自動啟動</string>
<string name="address_copied_to_clipboard">將位址複製到剪貼簿</string>
<string name="edit_tunnel">編輯隧道</string>
<string name="name">名稱</string>
<string name="description">描述</string>
<string name="auto_start">自動啟動</string>
<string name="tunnel_summ_auto_start">當路由器啟動時一併啟動這個隧道。</string>
<string name="tunnel_cat_ports">本地端口</string>
<string name="shared_client">共享客戶端</string>
<string name="reachable_on">開啟被連通</string>
<string name="outproxies">連外代理</string>
<string name="ssl_outproxies">SSL 的連外代理</string>
<string name="target_host">目標主機</string>
<string name="target_port">目標端口</string>
<string name="use_ssl">使用 SSL</string>
<string name="tunnel_parameters">隧道參數</string>
<string name="profile">個人資料</string>
<string name="disabled">關閉</string>
<string name="unlimited">無限制</string>
<string name="http_client">HTTP 客戶端</string>
<string name="username">使用者名稱</string>
<string name="password">密碼</string>
<string name="other">其它</string>
<string name="all">全部</string>
</resources>

View File

@ -145,7 +145,6 @@
<string name="settings_label_transports">传输</string>
<string name="settings_label_maxConns">最大连接数</string>
<string name="settings_label_i2cp">I2CP 接口</string>
<string name="settings_desc_i2cp">监听端口 7654</string>
<string name="settings_label_exploratory_pool">探索隧道池</string>
<string name="settings_desc_exploratory_pool">隧道参数</string>
<string name="settings_label_expl_inbound">入站隧道</string>
@ -352,5 +351,6 @@
<string name="error_logs_copied_to_clipboard">错误日志已复制到剪贴板</string>
<string name="logs_copied_to_clipboard">日志已复制到剪贴板</string>
<string name="label_browser_configuration">浏览器配置</string>
<string name="no_market_app">没有找到应用商店,请手动安装</string>
<string name="unset">未设置</string>
</resources>

View File

@ -180,7 +180,7 @@
<string name="settings_label_transports">Transports</string>
<string name="settings_label_maxConns">Max connections</string>
<string name="settings_label_i2cp">I2CP interface</string>
<string name="settings_desc_i2cp">Listen on port 7654</string>
<string name="settings_desc_i2cp">Allow third-party apps to create tunnels (requires router restart)</string>
<string name="settings_label_exploratory_pool">Exploratory pool</string>
<string name="settings_desc_exploratory_pool">Tunnel parameters</string>
<string name="settings_label_expl_inbound">Inbound tunnels</string>

View File

@ -13,14 +13,15 @@
<!--
i2cp.disableInterface=true
-->
<!-- Hidden because we have the client library now.
<!-- Was hidden because we have the client library now.
Un-hidden in 0.9.40 because domain sockets don't work for third-party apps.
-->
<CheckBoxPreference
android:key="i2cp.disableInterface"
android:defaultValue="false"
android:title="@string/settings_label_i2cp"
android:summary="@string/settings_desc_i2cp"
/>
-->
<Preference
android:key="preference_category_expl_tunnels"

View File

@ -1,10 +1,11 @@
buildscript {
repositories {
mavenLocal()
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.0'
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.android.tools.lint:lint-gradle:26.1.1'
}
}
@ -13,7 +14,10 @@ allprojects {
group = GROUP
repositories {
mavenLocal()
jcenter()
google()
}
}

View File

@ -13,6 +13,6 @@ POM_DEVELOPER_ID=str4d
POM_DEVELOPER_NAME=str4d
POM_DEVELOPER_EMAIL=str4d@i2pmail.org
I2P_VERSION=0.9.37
I2P_VERSION=0.9.40
ANDROID_BUILD_TARGET_SDK_VERSION=26
ANDROID_BUILD_SDK_VERSION=26
ANDROID_BUILD_SDK_VERSION=28

View File

@ -108,6 +108,8 @@ afterEvaluate { project ->
}
task androidJavadocs(type: Javadoc) {
// TODO: Fix links to external modules
failOnError false
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

View File

@ -1,6 +1,6 @@
#Tue Oct 09 23:18:43 CEST 2018
#Thu Jan 24 19:09:07 CET 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip

View File

@ -4,7 +4,6 @@ version = "$I2P_VERSION"
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
defaultConfig {
minSdkVersion 9
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
@ -22,12 +21,12 @@ android {
lintOptions {
abortOnError false
}
buildToolsVersion '28.0.3'
}
dependencies {
implementation "net.i2p:i2p:$I2P_VERSION"
implementation "net.i2p.client:streaming:$I2P_VERSION"
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.11.0'
}

View File

@ -4,7 +4,6 @@ version = '0.9.5'
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION as String)
defaultConfig {
minSdkVersion 9
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION as String)
@ -22,11 +21,11 @@ android {
lintOptions {
abortOnError false
}
buildToolsVersion '28.0.3'
}
dependencies {
implementation 'com.android.support:support-v4:25.3.1'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:2.11.0'
}

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<resources>
<string name="yes">نعم</string>
<string name="no"></string>
<string name="install_i2p_android">تثبيت I2P أندرويد؟</string>
<string name="you_must_have_i2p_android">يجب تثبيت I2P أندرويد وتشغيله. هل ترغب في تثبيته؟</string>
<string name="start_i2p_android">بدأ I2P أندرويد؟</string>
<string name="would_you_like_to_start_i2p_android">يبدو أن I2P أندرويد لا يعمل. هل ترغب في بدء تشغيله؟</string>
</resources>

View File

@ -3,5 +3,7 @@
<string name="yes">Igen</string>
<string name="no">Nem</string>
<string name="install_i2p_android">I2P Android telepítése?</string>
<string name="you_must_have_i2p_android">Az I2P Android telepítve lennie és futnia kell. Szeretné telepíteni?</string>
<string name="start_i2p_android">I2P Android indítása?</string>
<string name="would_you_like_to_start_i2p_android">Úgy tűnik, hogy az I2P Android nem fut. Szeretné elindítani?</string>
</resources>