diff options
author | Parménides GV <parmegv@sdf.org> | 2016-04-02 15:30:51 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2016-04-02 15:30:51 +0200 |
commit | c260dff02dcc773320fbdc4e3f89131ec7a1b3fc (patch) | |
tree | db7ddf01d4999a23d6f228ddf40190a6631a96b2 /app/src/main | |
parent | 93aca53eae03b4b31877e97991d61bdc11a2db44 (diff) | |
parent | 574960d09f5cf054001f8f6e9eb54f80312b60db (diff) |
Merge branch 'update-ics-openvpn' into develop
Diffstat (limited to 'app/src/main')
43 files changed, 1256 insertions, 1000 deletions
diff --git a/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java b/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java index 721e8991..16f986ae 100644 --- a/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java +++ b/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java @@ -20,7 +20,6 @@ import android.preference.PreferenceManager; import android.text.InputType; import android.text.TextUtils; import android.text.method.PasswordTransformationMethod; -import android.util.Log; import android.view.View; import android.widget.CheckBox; import android.widget.CompoundButton; @@ -36,202 +35,179 @@ import de.blinkt.openvpn.core.VpnStatus.ConnectionStatus; /** * This Activity actually handles two stages of a launcher shortcut's life cycle. - * + * <p/> * 1. Your application offers to provide shortcuts to the launcher. When - * the user installs a shortcut, an activity within your application - * generates the actual shortcut and returns it to the launcher, where it - * is shown to the user as an icon. - * + * the user installs a shortcut, an activity within your application + * generates the actual shortcut and returns it to the launcher, where it + * is shown to the user as an icon. + * <p/> * 2. Any time the user clicks on an installed shortcut, an intent is sent. - * Typically this would then be handled as necessary by an activity within - * your application. - * + * Typically this would then be handled as necessary by an activity within + * your application. + * <p/> * We handle stage 1 (creating a shortcut) by simply sending back the information (in the form * of an {@link android.content.Intent} that the launcher will use to create the shortcut. - * + * <p/> * You can also implement this in an interactive way, by having your activity actually present * UI for the user to select the specific nature of the shortcut, such as a contact, picture, URL, * media item, or action. - * + * <p/> * We handle stage 2 (responding to a shortcut) in this sample by simply displaying the contents * of the incoming {@link android.content.Intent}. - * + * <p/> * In a real application, you would probably use the shortcut intent to display specific content * or start a particular operation. */ public class LaunchVPN extends Activity { - public static final String EXTRA_KEY = "de.blinkt.openvpn.shortcutProfileUUID"; - public static final String EXTRA_NAME = "de.blinkt.openvpn.shortcutProfileName"; - public static final String EXTRA_HIDELOG = "de.blinkt.openvpn.showNoLogWindow"; - public static final String CLEARLOG = "clearlogconnect"; + public static final String EXTRA_KEY = "de.blinkt.openvpn.shortcutProfileUUID"; + public static final String EXTRA_NAME = "de.blinkt.openvpn.shortcutProfileName"; + public static final String EXTRA_HIDELOG = "de.blinkt.openvpn.showNoLogWindow"; + public static final String CLEARLOG = "clearlogconnect"; - private static final int START_VPN_PROFILE= 70; + private static final int START_VPN_PROFILE = 70; - private ProfileManager mPM; - private VpnProfile mSelectedProfile; - private boolean mhideLog=false; + private VpnProfile mSelectedProfile; + private boolean mhideLog = false; - private boolean mCmfixed=false; + private boolean mCmfixed = false; - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); - mPM =ProfileManager.getInstance(this); + startVpnFromIntent(); + } - } + protected void startVpnFromIntent() { + // Resolve the intent - @Override - protected void onStart() { - super.onStart(); - // Resolve the intent + final Intent intent = getIntent(); + final String action = intent.getAction(); - final Intent intent = getIntent(); - final String action = intent.getAction(); + // If the intent is a request to create a shortcut, we'll do that and exit - // If the intent is a request to create a shortcut, we'll do that and exit + if (Intent.ACTION_MAIN.equals(action)) { + // Check if we need to clear the log + if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(CLEARLOG, true)) + VpnStatus.clearLog(); - if(Intent.ACTION_MAIN.equals(action)) { - // Check if we need to clear the log - if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(CLEARLOG, true)) - VpnStatus.clearLog(); + // we got called to be the starting point, most likely a shortcut + String shortcutUUID = intent.getStringExtra(EXTRA_KEY); + String shortcutName = intent.getStringExtra(EXTRA_NAME); + mhideLog = intent.getBooleanExtra(EXTRA_HIDELOG, false); - // we got called to be the starting point, most likely a shortcut - String shortcutUUID = intent.getStringExtra( EXTRA_KEY); - String shortcutName = intent.getStringExtra( EXTRA_NAME); - mhideLog = intent.getBooleanExtra(EXTRA_HIDELOG, false); + VpnProfile profileToConnect = ProfileManager.get(this, shortcutUUID); + if (shortcutName != null && profileToConnect == null) + profileToConnect = ProfileManager.getInstance(this).getProfileByName(shortcutName); - VpnProfile profileToConnect = ProfileManager.get(this,shortcutUUID); - if(shortcutName != null && profileToConnect ==null) - profileToConnect = ProfileManager.getInstance(this).getProfileByName(shortcutName); + if (profileToConnect == null) { + VpnStatus.logError(R.string.shortcut_profile_notfound); + // show Log window to display error + showLogWindow(); + finish(); + } else { + mSelectedProfile = profileToConnect; + launchVPN(); + } + } + } - if(profileToConnect ==null) { - VpnStatus.logError(R.string.shortcut_profile_notfound); - // show Log window to display error - showLogWindow(); - finish(); - return; - } + @Override + protected void onActivityResult (int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); - mSelectedProfile = profileToConnect; - launchVPN(); + if(requestCode==START_VPN_PROFILE) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean showLogWindow = prefs.getBoolean("showlogwindow", true); - } - } - - @Override - protected void onActivityResult (int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - - if(requestCode==START_VPN_PROFILE) { - if(resultCode == Activity.RESULT_OK) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - boolean showLogWindow = prefs.getBoolean("showlogwindow", true); - - if(!mhideLog && showLogWindow) - showLogWindow(); - new startOpenVpnThread().start(); - } else if (resultCode == Activity.RESULT_CANCELED) { - // User does not want us to start, so we just vanish - VpnStatus.updateStateString("USER_VPN_PERMISSION_CANCELLED", "", R.string.state_user_vpn_permission_cancelled, - ConnectionStatus.LEVEL_NOTCONNECTED); - - finish(); - } - } - } + if(!mhideLog && showLogWindow) + showLogWindow(); - void showLogWindow() { - - Intent startLW = new Intent(getBaseContext(),LogWindow.class); - startLW.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); - startActivity(startLW); + VPNLaunchHelper.startOpenVpn(mSelectedProfile, getBaseContext()); + finish(); + } else if (resultCode == Activity.RESULT_CANCELED) { + // User does not want us to start, so we just vanish + VpnStatus.updateStateString("USER_VPN_PERMISSION_CANCELLED", "", R.string.state_user_vpn_permission_cancelled, + ConnectionStatus.LEVEL_NOTCONNECTED); + finish(); } + } - void showConfigErrorDialog(int vpnok) { - AlertDialog.Builder d = new AlertDialog.Builder(this); - d.setTitle(R.string.config_error_found); - d.setMessage(vpnok); - d.setPositiveButton(android.R.string.ok, new OnClickListener() { + void showLogWindow() { - @Override - public void onClick(DialogInterface dialog, int which) { - finish(); + Intent startLW = new Intent(getBaseContext(), LogWindow.class); + startLW.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); + startActivity(startLW); - } - }); - d.show(); - } + } - void launchVPN () { - int vpnok = mSelectedProfile.checkProfile(this); - if(vpnok!= R.string.no_error_found) { - showConfigErrorDialog(vpnok); - return; - } + void showConfigErrorDialog(int vpnok) { + AlertDialog.Builder d = new AlertDialog.Builder(this); + d.setTitle(R.string.config_error_found); + d.setMessage(vpnok); + d.setPositiveButton(android.R.string.ok, new OnClickListener() { - Intent intent = VpnService.prepare(this); - // Check if we want to fix /dev/tun - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - boolean usecm9fix = prefs.getBoolean("useCM9Fix", false); - boolean loadTunModule = prefs.getBoolean("loadTunModule", false); + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); - if(loadTunModule) - execeuteSUcmd("insmod /system/lib/modules/tun.ko"); + } + }); + d.show(); + } - if(usecm9fix && !mCmfixed ) { - execeuteSUcmd("chown system /dev/tun"); - } + void launchVPN() { + int vpnok = mSelectedProfile.checkProfile(this); + if (vpnok != R.string.no_error_found) { + showConfigErrorDialog(vpnok); + return; + } + Intent intent = VpnService.prepare(this); + // Check if we want to fix /dev/tun + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean usecm9fix = prefs.getBoolean("useCM9Fix", false); + boolean loadTunModule = prefs.getBoolean("loadTunModule", false); - if (intent != null) { - VpnStatus.updateStateString("USER_VPN_PERMISSION", "", R.string.state_user_vpn_permission, - ConnectionStatus.LEVEL_WAITING_FOR_USER_INPUT); - // Start the query - try { - startActivityForResult(intent, START_VPN_PROFILE); - } catch (ActivityNotFoundException ane) { - // Shame on you Sony! At least one user reported that - // an official Sony Xperia Arc S image triggers this exception - VpnStatus.logError(R.string.no_vpn_support_image); - showLogWindow(); - } - } else { - onActivityResult(START_VPN_PROFILE, Activity.RESULT_OK, null); - } - - } + if (loadTunModule) + execeuteSUcmd("insmod /system/lib/modules/tun.ko"); - private void execeuteSUcmd(String command) { - ProcessBuilder pb = new ProcessBuilder("su","-c",command); - try { - Process p = pb.start(); - int ret = p.waitFor(); - if(ret ==0) - mCmfixed=true; - } catch (InterruptedException e) { - VpnStatus.logException("SU command", e); + if (usecm9fix && !mCmfixed) { + execeuteSUcmd("chown system /dev/tun"); + } - } catch (IOException e) { + if (intent != null) { + VpnStatus.updateStateString("USER_VPN_PERMISSION", "", R.string.state_user_vpn_permission, + ConnectionStatus.LEVEL_WAITING_FOR_USER_INPUT); + // Start the query + try { + startActivityForResult(intent, START_VPN_PROFILE); + } catch (ActivityNotFoundException ane) { + // Shame on you Sony! At least one user reported that + // an official Sony Xperia Arc S image triggers this exception + VpnStatus.logError(R.string.no_vpn_support_image); + showLogWindow(); + } + } else { + onActivityResult(START_VPN_PROFILE, Activity.RESULT_OK, null); + } + + } + + private void execeuteSUcmd(String command) { + try { + ProcessBuilder pb = new ProcessBuilder("su", "-c", command); + Process p = pb.start(); + int ret = p.waitFor(); + if (ret == 0) + mCmfixed = true; + } catch (InterruptedException | IOException e) { VpnStatus.logException("SU command", e); - } - } - - private class startOpenVpnThread extends Thread { - - @Override - public void run() { - VPNLaunchHelper.startOpenVpn(mSelectedProfile, getBaseContext()); - finish(); - - } - - } - - + } + } } diff --git a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java index dbe4b440..38d76f68 100644 --- a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -64,7 +64,7 @@ public class VpnProfile implements Serializable, Cloneable { // The Serializable documentation mentions that class name change are possible // but the how is unclear // - transient public static final long MAX_EMBED_FILE_SIZE = 2048*1024; // 2048kB + transient public static final long MAX_EMBED_FILE_SIZE = 2048 * 1024; // 2048kB // Don't change this, not all parts of the program use this constant public static final String EXTRA_PROFILEUUID = "de.blinkt.openvpn.profileUUID"; public static final String INLINE_TAG = "[[INLINE]]"; @@ -150,18 +150,23 @@ public class VpnProfile implements Serializable, Cloneable { private int mProfileVersion; public String mExcludedRoutes; public String mExcludedRoutesv6; - public int mMssFix =0; // -1 is default, + public int mMssFix = 0; // -1 is default, public Connection[] mConnections = new Connection[0]; - public boolean mRemoteRandom=false; + public boolean mRemoteRandom = false; public HashSet<String> mAllowedAppsVpn = new HashSet<>(); public boolean mAllowedAppsVpnAreDisallowed = true; + + public String mCrlFilename; public String mProfileCreator; - /* Options no long used in new profiles */ + + public boolean mPushPeerInfo = false; + public static final boolean mIsOpenVPN22 = false; + + /* Options no longer used in new profiles */ public String mServerName = "openvpn.blinkt.de"; public String mServerPort = "1194"; public boolean mUseUdp = true; - public boolean mPushPeerInfo=false; public VpnProfile(String name) { mUuid = UUID.randomUUID(); @@ -169,7 +174,7 @@ public class VpnProfile implements Serializable, Cloneable { mProfileVersion = CURRENT_PROFILE_VERSION; mConnections = new Connection[1]; - mConnections[0] = new Connection(); + mConnections[0] = new Connection(); } public static String openVpnEscape(String unescaped) { @@ -197,7 +202,7 @@ public class VpnProfile implements Serializable, Cloneable { mCheckRemoteCN = false; mPersistTun = false; mAllowLocalLAN = true; - mPushPeerInfo =false; + mPushPeerInfo = false; mMssFix = 0; } @@ -207,33 +212,33 @@ public class VpnProfile implements Serializable, Cloneable { } public String getName() { - if (mName==null) + if (mName == null) return "No profile name"; return mName; } - public void upgradeProfile(){ - if(mProfileVersion< 2) { + public void upgradeProfile() { + if (mProfileVersion < 2) { /* default to the behaviour the OS used */ mAllowLocalLAN = Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT; } if (mProfileVersion < 4) { moveOptionsToConnection(); - mAllowedAppsVpnAreDisallowed=true; + mAllowedAppsVpnAreDisallowed = true; } - if (mAllowedAppsVpn==null) + if (mAllowedAppsVpn == null) mAllowedAppsVpn = new HashSet<>(); - if (mConnections ==null) + if (mConnections == null) mConnections = new Connection[0]; if (mProfileVersion < 6) { if (TextUtils.isEmpty(mProfileCreator)) - mUserEditable=true; + mUserEditable = true; } - mProfileVersion= CURRENT_PROFILE_VERSION; + mProfileVersion = CURRENT_PROFILE_VERSION; } @@ -271,7 +276,7 @@ public class VpnProfile implements Serializable, Cloneable { cfg += String.format("setenv IV_GUI_VER %s \n", openVpnEscape(getVersionEnvString(context))); String versionString = String.format("%d %s %s %s %s %s", Build.VERSION.SDK_INT, Build.VERSION.RELEASE, NativeUtils.getNativeAPI(), Build.BRAND, Build.BOARD, Build.MODEL); - cfg += String.format("setenv IV_PLAT_VER %s\n", openVpnEscape(versionString)) ; + cfg += String.format("setenv IV_PLAT_VER %s\n", openVpnEscape(versionString)); } cfg += "machine-readable-output\n"; @@ -304,7 +309,8 @@ public class VpnProfile implements Serializable, Cloneable { mConnectRetry = "5"; - cfg += "connect-retry " + mConnectRetry + "\n"; + if (!mIsOpenVPN22 || !mUseUdp) + cfg += "connect-retry " + mConnectRetry + "\n"; cfg += "resolv-retry 60\n"; @@ -315,7 +321,7 @@ public class VpnProfile implements Serializable, Cloneable { boolean canUsePlainRemotes = true; - if (mConnections.length==1) { + if (mConnections.length == 1) { cfg += mConnections[0].getConnectionBlock(); } else { for (Connection conn : mConnections) { @@ -323,7 +329,7 @@ public class VpnProfile implements Serializable, Cloneable { } if (mRemoteRandom) - cfg+="remote-random\n"; + cfg += "remote-random\n"; if (canUsePlainRemotes) { for (Connection conn : mConnections) { @@ -378,6 +384,9 @@ public class VpnProfile implements Serializable, Cloneable { cfg += insertFileData("ca", mCaFilename); } + if (!TextUtils.isEmpty(mCrlFilename)) + cfg += insertFileData("crl-verify", mCrlFilename); + if (mUseLzo) { cfg += "comp-lzo\n"; } @@ -411,13 +420,12 @@ public class VpnProfile implements Serializable, Cloneable { if (mUseDefaultRoute) routes += "route 0.0.0.0 0.0.0.0 vpn_gateway\n"; - else - { + else { for (String route : getCustomRoutes(mCustomRoutes)) { routes += "route " + route + " vpn_gateway\n"; } - for (String route: getCustomRoutes(mExcludedRoutes)) { + for (String route : getCustomRoutes(mExcludedRoutes)) { routes += "route " + route + " net_gateway\n"; } } @@ -442,11 +450,11 @@ public class VpnProfile implements Serializable, Cloneable { } - if (mMssFix !=0){ - if (mMssFix!=1450) { + if (mMssFix != 0) { + if (mMssFix != 1450) { cfg += String.format("mssfix %d\n", mMssFix, Locale.US); } else - cfg+="mssfix\n"; + cfg += "mssfix\n"; } if (mNobind) @@ -507,11 +515,11 @@ public class VpnProfile implements Serializable, Cloneable { } if (mPushPeerInfo) - cfg+="push-peer-info\n"; + cfg += "push-peer-info\n"; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean usesystemproxy = prefs.getBoolean("usesystemproxy", true); - if (usesystemproxy) { + if (usesystemproxy && !mIsOpenVPN22) { cfg += "# Use system proxy setting\n"; cfg += "management-query-proxy\n"; } @@ -537,8 +545,6 @@ public class VpnProfile implements Serializable, Cloneable { } - - return cfg; } @@ -557,8 +563,7 @@ public class VpnProfile implements Serializable, Cloneable { //! Put inline data inline and other data as normal escaped filename public static String insertFileData(String cfgentry, String filedata) { if (filedata == null) { - // TODO: generate good error - return String.format("%s %s\n", cfgentry, "missing"); + return String.format("%s %s\n", cfgentry, "file missing in config profile"); } else if (isEmbedded(filedata)) { String dataWithOutHeader = getEmbeddedContent(filedata); return String.format(Locale.ENGLISH, "<%s>\n%s\n</%s>\n", cfgentry, dataWithOutHeader, cfgentry); @@ -629,39 +634,32 @@ public class VpnProfile implements Serializable, Cloneable { } - - public Intent prepareStartService(Context context) { Intent intent = getStartServiceIntent(context); + // TODO: Handle this?! +// if (mAuthenticationType == VpnProfile.TYPE_KEYSTORE || mAuthenticationType == VpnProfile.TYPE_USERPASS_KEYSTORE) { +// if (getKeyStoreCertificates(context) == null) +// return null; +// } - if (mAuthenticationType == VpnProfile.TYPE_KEYSTORE || mAuthenticationType == VpnProfile.TYPE_USERPASS_KEYSTORE) { - if (getKeyStoreCertificates(context) == null) - return null; - } - + return intent; + } - try { - FileWriter cfg = new FileWriter(VPNLaunchHelper.getConfigFilePath(context)); - cfg.write(getConfigFile(context, false)); - cfg.flush(); - cfg.close(); - } catch (IOException e) { - VpnStatus.logException(e); - } + public void writeConfigFile(Context context) throws IOException { + FileWriter cfg = new FileWriter(VPNLaunchHelper.getConfigFilePath(context)); + cfg.write(getConfigFile(context, false)); + cfg.flush(); + cfg.close(); - return intent; } public Intent getStartServiceIntent(Context context) { String prefix = context.getPackageName(); Intent intent = new Intent(context, OpenVPNService.class); - intent.putExtra(prefix + ".ARGV", VPNLaunchHelper.buildOpenvpnArgv(context)); intent.putExtra(prefix + ".profileUUID", mUuid.toString()); - ApplicationInfo info = context.getApplicationInfo(); - intent.putExtra(prefix + ".nativelib", info.nativeLibraryDir); return intent; } @@ -672,11 +670,10 @@ public class VpnProfile implements Serializable, Cloneable { public static String getDisplayName(String embeddedFile) { int start = DISPLAYNAME_TAG.length(); int end = embeddedFile.indexOf(INLINE_TAG); - return embeddedFile.substring(start,end); + return embeddedFile.substring(start, end); } - public static String getEmbeddedContent(String data) - { + public static String getEmbeddedContent(String data) { if (!data.contains(INLINE_TAG)) return data; @@ -685,7 +682,7 @@ public class VpnProfile implements Serializable, Cloneable { } public static boolean isEmbedded(String data) { - if (data==null) + if (data == null) return false; if (data.startsWith(INLINE_TAG) || data.startsWith(DISPLAYNAME_TAG)) return true; @@ -697,8 +694,8 @@ public class VpnProfile implements Serializable, Cloneable { /* This method is called when OpenVPNService is restarted */ if ((mAuthenticationType == VpnProfile.TYPE_KEYSTORE || mAuthenticationType == VpnProfile.TYPE_USERPASS_KEYSTORE) - && mPrivateKey==null) { - new Thread( new Runnable() { + && mPrivateKey == null) { + new Thread(new Runnable() { @Override public void run() { getKeyStoreCertificates(context); @@ -713,9 +710,9 @@ public class VpnProfile implements Serializable, Cloneable { VpnProfile copy = (VpnProfile) super.clone(); copy.mUuid = UUID.randomUUID(); copy.mConnections = new Connection[mConnections.length]; - int i=0; - for (Connection conn: mConnections) { - copy.mConnections[i++]=conn.clone(); + int i = 0; + for (Connection conn : mConnections) { + copy.mConnections[i++] = conn.clone(); } copy.mAllowedAppsVpn = (HashSet<String>) mAllowedAppsVpn.clone(); return copy; @@ -735,12 +732,12 @@ public class VpnProfile implements Serializable, Cloneable { class NoCertReturnedException extends Exception { - public NoCertReturnedException (String msg) { + public NoCertReturnedException(String msg) { super(msg); } } - synchronized String[] getKeyStoreCertificates(Context context,int tries) { + synchronized String[] getKeyStoreCertificates(Context context, int tries) { try { PrivateKey privateKey = KeyChain.getPrivateKey(context, mAlias); mPrivateKey = privateKey; @@ -749,7 +746,7 @@ public class VpnProfile implements Serializable, Cloneable { X509Certificate[] caChain = KeyChain.getCertificateChain(context, mAlias); - if(caChain == null) + if (caChain == null) throw new NoCertReturnedException("No certificate returned from Keystore"); if (caChain.length <= 1 && TextUtils.isEmpty(mCaFilename)) { @@ -774,10 +771,10 @@ public class VpnProfile implements Serializable, Cloneable { StringWriter caoutWriter = new StringWriter(); PemWriter pw = new PemWriter(caoutWriter); - for (Certificate cert: cacerts) + for (Certificate cert : cacerts) pw.writeObject(new PemObject("CERTIFICATE", cert.getEncoded())); pw.close(); - caout= caoutWriter.toString(); + caout = caoutWriter.toString(); } catch (Exception e) { VpnStatus.logError("Could not read CA certificate" + e.getLocalizedMessage()); @@ -800,12 +797,12 @@ public class VpnProfile implements Serializable, Cloneable { String ca, extra; - if(caout==null) { - ca =keystoreChain; - extra=null; + if (caout == null) { + ca = keystoreChain; + extra = null; } else { ca = caout; - extra=keystoreChain; + extra = keystoreChain; } return new String[]{ca, extra, user}; @@ -823,15 +820,15 @@ public class VpnProfile implements Serializable, Cloneable { return null; } catch (AssertionError e) { - if (tries ==0) + if (tries == 0) return null; - VpnStatus.logError(String.format("Failure getting Keystore Keys (%s), retrying",e.getLocalizedMessage())); + VpnStatus.logError(String.format("Failure getting Keystore Keys (%s), retrying", e.getLocalizedMessage())); try { Thread.sleep(3000); } catch (InterruptedException e1) { VpnStatus.logException(e1); } - return getKeyStoreCertificates(context, tries-1); + return getKeyStoreCertificates(context, tries - 1); } } @@ -848,20 +845,32 @@ public class VpnProfile implements Serializable, Cloneable { return R.string.ipv4_format_error; } if (!mUseDefaultRoute) { - if (!TextUtils.isEmpty(mCustomRoutes) && getCustomRoutes(mCustomRoutes).size() == 0 ) + if (!TextUtils.isEmpty(mCustomRoutes) && getCustomRoutes(mCustomRoutes).size() == 0) return R.string.custom_route_format_error; - if (!TextUtils.isEmpty(mExcludedRoutes) && getCustomRoutes(mExcludedRoutes).size() == 0 ) + if (!TextUtils.isEmpty(mExcludedRoutes) && getCustomRoutes(mExcludedRoutes).size() == 0) return R.string.custom_route_format_error; } + if (mUseTLSAuth && TextUtils.isEmpty(mTLSAuthFilename)) + return R.string.missing_tlsauth; + + if ((mAuthenticationType == TYPE_USERPASS_CERTIFICATES || mAuthenticationType == TYPE_CERTIFICATES) + && (TextUtils.isEmpty(mClientCertFilename) || TextUtils.isEmpty(mClientKeyFilename))) + return R.string.missing_certificates; + + if ((mAuthenticationType == TYPE_CERTIFICATES || mAuthenticationType == TYPE_USERPASS_CERTIFICATES) + && TextUtils.isEmpty(mCaFilename)) + return R.string.missing_ca_certificate; + + boolean noRemoteEnabled = true; for (Connection c : mConnections) if (c.mEnabled) noRemoteEnabled = false; - if(noRemoteEnabled) + if (noRemoteEnabled) return R.string.remote_no_server_selected; // Everything okay @@ -956,7 +965,7 @@ public class VpnProfile implements Serializable, Cloneable { if (isUserPWAuth() && (TextUtils.isEmpty(mUsername) || - (TextUtils.isEmpty(mPassword) && (mTransientPW == null || ignoreTransient)))) { + (TextUtils.isEmpty(mPassword) && (mTransientPW == null || ignoreTransient)))) { return R.string.password; } return 0; diff --git a/app/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java b/app/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java index f55de486..d25bccad 100644 --- a/app/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java +++ b/app/src/main/java/de/blinkt/openvpn/activities/DisconnectVPN.java @@ -81,7 +81,7 @@ public class DisconnectVPN extends Activity implements DialogInterface.OnClickLi if (which == DialogInterface.BUTTON_POSITIVE) { ProfileManager.setConntectedVpnProfileDisconnected(this); if (mService != null && mService.getManagement() != null) - mService.getManagement().stopVPN(); + mService.getManagement().stopVPN(false); } finish(); } diff --git a/app/src/main/java/de/blinkt/openvpn/core/ConfigParser.java b/app/src/main/java/de/blinkt/openvpn/core/ConfigParser.java index 80a15c54..d14e643e 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/ConfigParser.java +++ b/app/src/main/java/de/blinkt/openvpn/core/ConfigParser.java @@ -32,8 +32,6 @@ public class ConfigParser { private HashMap<String, Vector<Vector<String>>> options = new HashMap<String, Vector<Vector<String>>>(); private HashMap<String, Vector<String>> meta = new HashMap<String, Vector<String>>(); private String auth_user_pass_file; - private String crl_verify_file; - public void parseConfig(Reader reader) throws IOException, ConfigParseError { @@ -132,10 +130,6 @@ public class ConfigParser { return auth_user_pass_file; } - public String getCrlVerifyFile() { - return crl_verify_file; - } - enum linestate { initial, readin_single_quote, reading_quoted, reading_unquoted, done @@ -299,7 +293,8 @@ public class ConfigParser { { {"setenv", "IV_GUI_VER"}, {"setenv", "IV_OPENVPN_GUI_VERSION"}, - {"engine", "dynamic"} + {"engine", "dynamic"}, + {"setenv", "CLIENT_CERT"} }; final String[] connectionOptions = { @@ -621,11 +616,12 @@ public class ConfigParser { Vector<String> crlfile = getOption("crl-verify", 1, 2); if (crlfile != null) { // If the 'dir' parameter is present just add it as custom option .. - np.mCustomConfigOptions += TextUtils.join(" ", crlfile) + "\n"; - if (crlfile.size() == 2) { + if (crlfile.size() == 3 && crlfile.get(2).equals("dir")) + np.mCustomConfigOptions += TextUtils.join(" ", crlfile) + "\n"; + else // Save the filename for the config converter to add later - crl_verify_file = crlfile.get(1); - } + np.mCrlFilename = crlfile.get(1); + } @@ -813,16 +809,6 @@ public class ConfigParser { } } - public static void removeCRLCustomOption(VpnProfile np) { - String lines[] = np.mCustomConfigOptions.split("\\r?\\n"); - Vector<String> keeplines = new Vector<>(); - for (String l : lines) { - if (!l.startsWith("crl-verify ")) - keeplines.add(l); - } - np.mCustomConfigOptions = TextUtils.join("\n", keeplines); - } - private void checkIgnoreAndInvalidOptions(VpnProfile np) throws ConfigParseError { for (String option : unsupportedOptions) if (options.containsKey(option)) diff --git a/app/src/main/java/de/blinkt/openvpn/core/LogFileHandler.java b/app/src/main/java/de/blinkt/openvpn/core/LogFileHandler.java index 5c1741d9..288c7934 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/LogFileHandler.java +++ b/app/src/main/java/de/blinkt/openvpn/core/LogFileHandler.java @@ -11,12 +11,15 @@ import android.os.Message; import android.os.Parcel; import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.Locale; + +import se.leap.bitmaskclient.R; /** * Created by arne on 23.01.16. @@ -27,7 +30,6 @@ class LogFileHandler extends Handler { static final int LOG_INIT = 102; public static final int LOG_MESSAGE = 103; private static FileOutputStream mLogFile; - private static BufferedOutputStream mBufLogfile; public static final String LOGFILE_NAME = "logcache.dat"; @@ -41,6 +43,8 @@ class LogFileHandler extends Handler { public void handleMessage(Message msg) { try { if (msg.what == LOG_INIT) { + if (mLogFile != null) + throw new RuntimeException("mLogFile not null"); readLogCache((File) msg.obj); openLogFile((File) msg.obj); } else if (msg.what == LOG_MESSAGE && msg.obj instanceof VpnStatus.LogItem) { @@ -70,15 +74,13 @@ class LogFileHandler extends Handler { private static void trimLogFile() { try { - mBufLogfile.flush(); + mLogFile.flush(); mLogFile.getChannel().truncate(0); - } catch (IOException e) { e.printStackTrace(); } } - private void writeLogItemToDisk(VpnStatus.LogItem li) throws IOException { Parcel p = Parcel.obtain(); li.writeToParcel(p, 0); @@ -86,8 +88,8 @@ class LogFileHandler extends Handler { // write binary format to disc byte[] liBytes = p.marshall(); - mLogFile.write(liBytes.length & 0xff); - mLogFile.write(liBytes.length >> 8); + byte[] lenBytes = ByteBuffer.allocate(4).putInt(liBytes.length).array(); + mLogFile.write(lenBytes); mLogFile.write(liBytes); p.recycle(); } @@ -95,39 +97,56 @@ class LogFileHandler extends Handler { private void openLogFile (File cacheDir) throws FileNotFoundException { File logfile = new File(cacheDir, LOGFILE_NAME); mLogFile = new FileOutputStream(logfile); - mBufLogfile = new BufferedOutputStream(mLogFile); } private void readLogCache(File cacheDir) { File logfile = new File(cacheDir, LOGFILE_NAME); + if (!logfile.exists() || !logfile.canRead()) return; - VpnStatus.logDebug("Reread log items from cache file"); + try { + BufferedInputStream logFile = new BufferedInputStream(new FileInputStream(logfile)); byte[] buf = new byte[8192]; - int read = logFile.read(buf, 0, 2); + int read = logFile.read(buf, 0, 4); + int itemsRead=0; - while (read > 0) { - // Marshalled LogItem - int len = (0xff & buf[0]) | buf[1] << 8; + while (read >= 4) { + int len = ByteBuffer.wrap(buf, 0, 4).asIntBuffer().get(); + // Marshalled LogItem read = logFile.read(buf, 0, len); Parcel p = Parcel.obtain(); p.unmarshall(buf, 0, read); p.setDataPosition(0); VpnStatus.LogItem li = VpnStatus.LogItem.CREATOR.createFromParcel(p); - VpnStatus.newLogItem(li, true); + if (li.verify()) { + VpnStatus.newLogItem(li, true); + } else { + VpnStatus.logError(String.format(Locale.getDefault(), + "Could not read log item from file: %d/%d: %s", + read, len, bytesToHex(buf, Math.max(read,80)))); + } p.recycle(); //Next item - read = logFile.read(buf, 0, 2); + read = logFile.read(buf, 0, 4); + itemsRead++; + if (itemsRead > 2*VpnStatus.MAXLOGENTRIES) { + VpnStatus.logError("Too many logentries read from cache, aborting."); + read = 0; + } + } + VpnStatus.logDebug(R.string.reread_log, itemsRead); + + } catch (java.io.IOException | java.lang.RuntimeException e) { VpnStatus.logError("Reading cached logfile failed"); @@ -137,4 +156,17 @@ class LogFileHandler extends Handler { } } + final protected static char[] hexArray = "0123456789ABCDEF".toCharArray(); + public static String bytesToHex(byte[] bytes, int len) { + len = Math.min(bytes.length, len); + char[] hexChars = new char[len * 2]; + for ( int j = 0; j < len; j++ ) { + int v = bytes[j] & 0xFF; + hexChars[j * 2] = hexArray[v >>> 4]; + hexChars[j * 2 + 1] = hexArray[v & 0x0F]; + } + return new String(hexChars); + } + + } diff --git a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNManagement.java b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNManagement.java index 2771fa6a..2911fb1e 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNManagement.java +++ b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNManagement.java @@ -16,15 +16,19 @@ public interface OpenVPNManagement { screenOff } - int mBytecountInterval =2; + int mBytecountInterval = 2; - void reconnect(); + void reconnect(); - void pause(pauseReason reason); + void pause(pauseReason reason); - void resume(); + void resume(); - boolean stopVPN(); + /** + * @param replaceConnection True if the VPN is connected by a new connection. + * @return true if there was a process that has been send a stop signal + */ + boolean stopVPN(boolean replaceConnection); /* * Rebind the interface diff --git a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java index 17be29b0..2917bce1 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java +++ b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNService.java @@ -32,6 +32,7 @@ import android.text.TextUtils; import android.util.Log; import android.widget.Toast; +import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.net.Inet6Address; @@ -87,6 +88,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac private final Object mProcessLock = new Object(); private Handler guiHandler; private Toast mlastToast; + private Runnable mOpenVPNThread; // From: http://stackoverflow.com/questions/3758606/how-to-convert-byte-size-into-human-readable-format-in-java public static String humanReadableByteCount(long bytes, boolean mbit) { @@ -116,7 +118,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac @Override public void onRevoke() { VpnStatus.logInfo(R.string.permission_revoked); - mManagement.stopVPN(); + mManagement.stopVPN(false); endVpnService(); } @@ -132,6 +134,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac VpnStatus.removeByteCountListener(this); unregisterDeviceStateReceiver(); ProfileManager.setConntectedVpnProfileDisconnected(this); + mOpenVPNThread = null; if (!mStarting) { stopForeground(!mNotificationAlwaysVisible); @@ -182,16 +185,16 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac mNotificationManager.notify(OPENVPN_STATUS, notification); - //startForeground(OPENVPN_STATUS, notification); + // startForeground(OPENVPN_STATUS, notification); // Check if running on a TV - if(runningOnAndroidTV() && !lowpriority) + if (runningOnAndroidTV() && !lowpriority) guiHandler.post(new Runnable() { @Override public void run() { - if (mlastToast!=null) + if (mlastToast != null) mlastToast.cancel(); String toastText = String.format(Locale.getDefault(), "%s - %s", mProfile.mName, msg); mlastToast = Toast.makeText(getBaseContext(), toastText, Toast.LENGTH_SHORT); @@ -378,38 +381,50 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac mProfile = ProfileManager.get(this, profileUUID); } + /* start the OpenVPN process itself in a background thread */ + new Thread(new Runnable() { + @Override + public void run() { + startOpenVPN(); + } + }).start(); + + + ProfileManager.setConnectedVpnProfile(this, mProfile); + /* TODO: At the moment we have no way to handle asynchronous PW input + * Fixing will also allow to handle challenge/response authentication */ + if (mProfile.needUserPWInput(true) != 0) + return START_NOT_STICKY; + + return START_STICKY; + } + + private void startOpenVPN() { + VpnStatus.logInfo(R.string.building_configration); + VpnStatus.updateStateString("VPN_GENERATE_CONFIG", "", R.string.building_configration, VpnStatus.ConnectionStatus.LEVEL_START); + + + try { + mProfile.writeConfigFile(this); + } catch (IOException e) { + VpnStatus.logException("Error writing config file", e); + endVpnService(); + return; + } // Extract information from the intent. String prefix = getPackageName(); - String[] argv = intent.getStringArrayExtra(prefix + ".ARGV"); - String nativeLibraryDirectory = intent.getStringExtra(prefix + ".nativelib"); + String nativeLibraryDirectory = getApplicationInfo().nativeLibraryDir; + + // Also writes OpenVPN binary + String[] argv = VPNLaunchHelper.buildOpenvpnArgv(this); - String startTitle = getString(R.string.start_vpn_title, mProfile.mName); - String startTicker = getString(R.string.start_vpn_ticker, mProfile.mName); - showNotification(startTitle, startTicker, - false, 0, LEVEL_CONNECTING_NO_SERVER_REPLY_YET); // Set a flag that we are starting a new VPN mStarting = true; // Stop the previous session by interrupting the thread. - if (mManagement != null && mManagement.stopVPN()) - // an old was asked to exit, wait 1s - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - //ignore - } - synchronized (mProcessLock) { - if (mProcessThread != null) { - mProcessThread.interrupt(); - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - //ignore - } - } - } + stopOldOpenVPNProcess(); // An old running VPN should now be exited mStarting = false; @@ -420,10 +435,8 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac if (!"ovpn3".equals(BuildConfig.FLAVOR)) mOvpn3 = false; - // Open the Management Interface if (!mOvpn3) { - // start a Thread that handles incoming messages of the managment socket OpenVpnManagementThread ovpnManagementThread = new OpenVpnManagementThread(mProfile, this); if (ovpnManagementThread.openManagementInterface(this)) { @@ -433,13 +446,15 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac mManagement = ovpnManagementThread; VpnStatus.logInfo("started Socket Thread"); } else { - return START_NOT_STICKY; + endVpnService(); + return; } } - Runnable processThread; - if (mOvpn3) { + if (mOvpn3) + + { OpenVPNManagement mOpenVPN3 = instantiateOpenVPN3Core(); processThread = (Runnable) mOpenVPN3; @@ -449,25 +464,53 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } else { HashMap<String, String> env = new HashMap<>(); processThread = new OpenVPNThread(this, argv, env, nativeLibraryDirectory); + mOpenVPNThread = processThread; } - synchronized (mProcessLock) { + synchronized (mProcessLock) + + { mProcessThread = new Thread(processThread, "OpenVPNProcessThread"); mProcessThread.start(); } - if (mDeviceStateReceiver != null) - unregisterDeviceStateReceiver(); - registerDeviceStateReceiver(mManagement); + new Handler(getMainLooper()).post(new Runnable() { + @Override + public void run() { + if (mDeviceStateReceiver != null) + unregisterDeviceStateReceiver(); + registerDeviceStateReceiver(mManagement); + } + } - ProfileManager.setConnectedVpnProfile(this, mProfile); - /* TODO: At the moment we have no way to handle asynchronous PW input - * Fixing will also allow to handle challenge/response authentication */ - if (mProfile.needUserPWInput(true) != 0) - return START_NOT_STICKY; + ); + } - return START_STICKY; + private void stopOldOpenVPNProcess() { + if (mManagement != null) { + if (mOpenVPNThread!=null) + ((OpenVPNThread) mOpenVPNThread).setReplaceConnection(); + if (mManagement.stopVPN(true)) { + // an old was asked to exit, wait 1s + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + //ignore + } + } + } + + synchronized (mProcessLock) { + if (mProcessThread != null) { + mProcessThread.interrupt(); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + //ignore + } + } + } } private OpenVPNManagement instantiateOpenVPN3Core() { @@ -475,7 +518,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac Class cl = Class.forName("de.blinkt.openvpn.core.OpenVPNThreadv3"); return (OpenVPNManagement) cl.getConstructor(OpenVPNService.class, VpnProfile.class).newInstance(this, mProfile); } catch (IllegalArgumentException | InstantiationException | InvocationTargetException | - NoSuchMethodException | ClassNotFoundException | IllegalAccessException e ) { + NoSuchMethodException | ClassNotFoundException | IllegalAccessException e) { e.printStackTrace(); } return null; @@ -485,7 +528,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac public void onDestroy() { synchronized (mProcessLock) { if (mProcessThread != null) { - mManagement.stopVPN(); + mManagement.stopVPN(true); } } @@ -581,7 +624,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac // Check if the first DNS Server is in the VPN range try { ipAddress dnsServer = new ipAddress(new CIDRIP(mDnslist.get(0), 32), true); - boolean dnsIncluded=false; + boolean dnsIncluded = false; for (ipAddress net : positiveIPv4Routes) { if (net.containsNet(dnsServer)) { dnsIncluded = true; @@ -620,8 +663,6 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac } - - if (mDomain != null) builder.addSearchDomain(mDomain); @@ -716,7 +757,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac @TargetApi(Build.VERSION_CODES.LOLLIPOP) private void setAllowedVpnPackages(Builder builder) { - boolean atLeastOneAllowedApp=false; + boolean atLeastOneAllowedApp = false; for (String pkg : mProfile.mAllowedAppsVpn) { try { if (mProfile.mAllowedAppsVpnAreDisallowed) { @@ -910,7 +951,7 @@ public class OpenVPNService extends VpnService implements StateListener, Callbac // Does not work :( String msg = getString(resid); // showNotification(VpnStatus.getLastCleanLogMessage(this), - // msg, lowpriority, 0, level); + // msg, lowpriority, 0, level); } } diff --git a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java index 10bc9e87..e0c39546 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java +++ b/app/src/main/java/de/blinkt/openvpn/core/OpenVPNThread.java @@ -34,51 +34,56 @@ public class OpenVPNThread implements Runnable { @SuppressLint("SdCardPath") private static final String BROKEN_PIE_SUPPORT = "/data/data/de.blinkt.openvpn/cache/pievpn"; private final static String BROKEN_PIE_SUPPORT2 = "syntax error"; - private static final String TAG = "OpenVPN"; + private static final String TAG = "OpenVPN"; public static final int M_FATAL = (1 << 4); public static final int M_NONFATAL = (1 << 5); public static final int M_WARN = (1 << 6); public static final int M_DEBUG = (1 << 7); private String[] mArgv; - private Process mProcess; - private String mNativeDir; - private OpenVPNService mService; - private String mDumpPath; - private Map<String, String> mProcessEnv; - private boolean mBrokenPie=false; - - public OpenVPNThread(OpenVPNService service,String[] argv, Map<String,String> processEnv, String nativelibdir) - { - mArgv = argv; - mNativeDir = nativelibdir; - mService = service; - mProcessEnv = processEnv; - } - - public void stopProcess() { - mProcess.destroy(); - } - - @Override - public void run() { - try { - Log.i(TAG, "Starting openvpn"); - startOpenVPNThreadArgs(mArgv, mProcessEnv); - Log.i(TAG, "Giving up"); - } catch (Exception e) { - VpnStatus.logException("Starting OpenVPN Thread" ,e); - Log.e(TAG, "OpenVPNThread Got " + e.toString()); - } finally { - int exitvalue = 0; - try { - if (mProcess!=null) - exitvalue = mProcess.waitFor(); - } catch ( IllegalThreadStateException ite) { - VpnStatus.logError("Illegal Thread state: " + ite.getLocalizedMessage()); - } catch (InterruptedException ie) { - VpnStatus.logError("InterruptedException: " + ie.getLocalizedMessage()); - } - if( exitvalue != 0) { + private Process mProcess; + private String mNativeDir; + private OpenVPNService mService; + private String mDumpPath; + private Map<String, String> mProcessEnv; + private boolean mBrokenPie = false; + private boolean mNoProcessExitStatus = false; + + public OpenVPNThread(OpenVPNService service, String[] argv, Map<String, String> processEnv, String nativelibdir) { + mArgv = argv; + mNativeDir = nativelibdir; + mService = service; + mProcessEnv = processEnv; + } + + public void stopProcess() { + mProcess.destroy(); + } + + void setReplaceConnection() + { + mNoProcessExitStatus=true; + } + + @Override + public void run() { + try { + Log.i(TAG, "Starting openvpn"); + startOpenVPNThreadArgs(mArgv, mProcessEnv); + Log.i(TAG, "OpenVPN process exited"); + } catch (Exception e) { + VpnStatus.logException("Starting OpenVPN Thread", e); + Log.e(TAG, "OpenVPNThread Got " + e.toString()); + } finally { + int exitvalue = 0; + try { + if (mProcess != null) + exitvalue = mProcess.waitFor(); + } catch (IllegalThreadStateException ite) { + VpnStatus.logError("Illegal Thread state: " + ite.getLocalizedMessage()); + } catch (InterruptedException ie) { + VpnStatus.logError("InterruptedException: " + ie.getLocalizedMessage()); + } + if (exitvalue != 0) { VpnStatus.logError("Process exited with exit value " + exitvalue); if (mBrokenPie) { /* This will probably fail since the NoPIE binary is probably not written */ @@ -95,70 +100,72 @@ public class OpenVPNThread implements Runnable { } } - - VpnStatus.updateStateString("NOPROCESS", "No process running.", R.string.state_noprocess, ConnectionStatus.LEVEL_NOTCONNECTED); - if(mDumpPath!=null) { - try { - BufferedWriter logout = new BufferedWriter(new FileWriter(mDumpPath + ".log")); - SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",Locale.GERMAN); - for(LogItem li : VpnStatus.getlogbuffer()){ - String time = timeformat.format(new Date(li.getLogtime())); - logout.write(time +" " + li.getString(mService) + "\n"); - } - logout.close(); - VpnStatus.logError(R.string.minidump_generated); - } catch (IOException e) { - VpnStatus.logError("Writing minidump log: " + e.getLocalizedMessage()); - } - } - - mService.processDied(); - Log.i(TAG, "Exiting"); - } - } - - private void startOpenVPNThreadArgs(String[] argv, Map<String, String> env) { - LinkedList<String> argvlist = new LinkedList<String>(); + + if (!mNoProcessExitStatus) + VpnStatus.updateStateString("NOPROCESS", "No process running.", R.string.state_noprocess, ConnectionStatus.LEVEL_NOTCONNECTED); + + if (mDumpPath != null) { + try { + BufferedWriter logout = new BufferedWriter(new FileWriter(mDumpPath + ".log")); + SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.GERMAN); + for (LogItem li : VpnStatus.getlogbuffer()) { + String time = timeformat.format(new Date(li.getLogtime())); + logout.write(time + " " + li.getString(mService) + "\n"); + } + logout.close(); + VpnStatus.logError(R.string.minidump_generated); + } catch (IOException e) { + VpnStatus.logError("Writing minidump log: " + e.getLocalizedMessage()); + } + } + + mService.processDied(); + Log.i(TAG, "Exiting"); + } + } + + private void startOpenVPNThreadArgs(String[] argv, Map<String, String> env) { + LinkedList<String> argvlist = new LinkedList<String>(); Collections.addAll(argvlist, argv); - - ProcessBuilder pb = new ProcessBuilder(argvlist); - // Hack O rama - - String lbpath = genLibraryPath(argv, pb); - - pb.environment().put("LD_LIBRARY_PATH", lbpath); - - // Add extra variables - for(Entry<String,String> e:env.entrySet()){ - pb.environment().put(e.getKey(), e.getValue()); - } - pb.redirectErrorStream(true); - try { - mProcess = pb.start(); - // Close the output, since we don't need it - mProcess.getOutputStream().close(); - InputStream in = mProcess.getInputStream(); - BufferedReader br = new BufferedReader(new InputStreamReader(in)); - - while(true) { - String logline = br.readLine(); - if(logline==null) - return; - - if (logline.startsWith(DUMP_PATH_STRING)) - mDumpPath = logline.substring(DUMP_PATH_STRING.length()); + + ProcessBuilder pb = new ProcessBuilder(argvlist); + // Hack O rama + + String lbpath = genLibraryPath(argv, pb); + + pb.environment().put("LD_LIBRARY_PATH", lbpath); + + // Add extra variables + for (Entry<String, String> e : env.entrySet()) { + pb.environment().put(e.getKey(), e.getValue()); + } + pb.redirectErrorStream(true); + try { + mProcess = pb.start(); + // Close the output, since we don't need it + mProcess.getOutputStream().close(); + InputStream in = mProcess.getInputStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(in)); + + while (true) { + String logline = br.readLine(); + if (logline == null) + return; + + if (logline.startsWith(DUMP_PATH_STRING)) + mDumpPath = logline.substring(DUMP_PATH_STRING.length()); if (logline.startsWith(BROKEN_PIE_SUPPORT) || logline.contains(BROKEN_PIE_SUPPORT2)) mBrokenPie = true; - + // 1380308330.240114 18000002 Send to HTTP proxy: 'X-Online-Host: bla.blabla.com' Pattern p = Pattern.compile("(\\d+).(\\d+) ([0-9a-f])+ (.*)"); Matcher m = p.matcher(logline); - if(m.matches()) { - int flags = Integer.parseInt(m.group(3),16); + if (m.matches()) { + int flags = Integer.parseInt(m.group(3), 16); String msg = m.group(4); int logLevel = flags & 0x0F; @@ -166,45 +173,45 @@ public class OpenVPNThread implements Runnable { if ((flags & M_FATAL) != 0) logStatus = VpnStatus.LogLevel.ERROR; - else if ((flags & M_NONFATAL)!=0) + else if ((flags & M_NONFATAL) != 0) logStatus = VpnStatus.LogLevel.WARNING; - else if ((flags & M_WARN)!=0) + else if ((flags & M_WARN) != 0) logStatus = VpnStatus.LogLevel.WARNING; - else if ((flags & M_DEBUG)!=0) + else if ((flags & M_DEBUG) != 0) logStatus = VpnStatus.LogLevel.VERBOSE; if (msg.startsWith("MANAGEMENT: CMD")) logLevel = Math.max(4, logLevel); - VpnStatus.logMessageOpenVPN(logStatus,logLevel,msg); + VpnStatus.logMessageOpenVPN(logStatus, logLevel, msg); } else { VpnStatus.logInfo("P:" + logline); } - } - - - } catch (IOException e) { - VpnStatus.logException("Error reading from output of OpenVPN process" , e); - stopProcess(); - } - - - } - - private String genLibraryPath(String[] argv, ProcessBuilder pb) { - // Hack until I find a good way to get the real library path - String applibpath = argv[0].replaceFirst("/cache/.*$" , "/lib"); - - String lbpath = pb.environment().get("LD_LIBRARY_PATH"); - if(lbpath==null) - lbpath = applibpath; - else - lbpath = applibpath + ":" + lbpath; - - if (!applibpath.equals(mNativeDir)) { - lbpath = mNativeDir + ":" + lbpath; - } - return lbpath; - } + } + + + } catch (IOException e) { + VpnStatus.logException("Error reading from output of OpenVPN process", e); + stopProcess(); + } + + + } + + private String genLibraryPath(String[] argv, ProcessBuilder pb) { + // Hack until I find a good way to get the real library path + String applibpath = argv[0].replaceFirst("/cache/.*$", "/lib"); + + String lbpath = pb.environment().get("LD_LIBRARY_PATH"); + if (lbpath == null) + lbpath = applibpath; + else + lbpath = applibpath + ":" + lbpath; + + if (!applibpath.equals(mNativeDir)) { + lbpath = mNativeDir + ":" + lbpath; + } + return lbpath; + } } diff --git a/app/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java b/app/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java index 4c550f47..569a3846 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java +++ b/app/src/main/java/de/blinkt/openvpn/core/OpenVpnManagementThread.java @@ -49,6 +49,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { private pauseReason lastPauseReason = pauseReason.noNetwork; private PausedStateCallback mPauseCallback; + private boolean mShuttingDown; public OpenVpnManagementThread(VpnProfile profile, OpenVPNService openVpnService) { mProfile = profile; @@ -223,7 +224,8 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { processByteCount(argument); break; case "STATE": - processState(argument); + if (!mShuttingDown) + processState(argument); break; case "PROXY": processProxyCMD(argument); @@ -452,7 +454,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { break; default: - Log.e(TAG, "Unkown needok command " + argument); + Log.e(TAG, "Unknown needok command " + argument); return; } @@ -621,7 +623,9 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNManagement { } @Override - public boolean stopVPN() { + public boolean stopVPN(boolean replaceConnection) { + mShuttingDown = true; return stopOpenVPN(); } + } diff --git a/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java b/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java index f2cf8cec..78f462e7 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java +++ b/app/src/main/java/de/blinkt/openvpn/core/VPNLaunchHelper.java @@ -27,7 +27,7 @@ public class VPNLaunchHelper { - static private String writeMiniVPN(Context context) { + private static String writeMiniVPN(Context context) { String[] abis; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) abis = getSupportedABIsLollipop(); @@ -73,12 +73,18 @@ public class VPNLaunchHelper { } - public static String[] buildOpenvpnArgv(Context c) { + static String[] buildOpenvpnArgv(Context c) { Vector<String> args = new Vector<>(); + String binaryName = writeMiniVPN(c); // Add fixed paramenters //args.add("/data/data/de.blinkt.openvpn/lib/openvpn"); - args.add(writeMiniVPN(c)); + if(binaryName==null) { + VpnStatus.logError("Error writing minivpn binary"); + return null; + } + + args.add(binaryName); args.add("--config"); args.add(getConfigFilePath(c)); @@ -126,14 +132,6 @@ public class VPNLaunchHelper { public static void startOpenVpn(VpnProfile startprofile, Context context) { - VpnStatus.logInfo(R.string.building_configration); - VpnStatus.updateStateString("VPN_GENERATE_CONFIG", "", R.string.building_configration, VpnStatus.ConnectionStatus.LEVEL_START); - if(writeMiniVPN(context)==null) { - VpnStatus.logError("Error writing minivpn binary"); - return; - } - - Intent startVPN = startprofile.prepareStartService(context); if(startVPN!=null) context.startService(startVPN); diff --git a/app/src/main/java/de/blinkt/openvpn/core/VpnStatus.java b/app/src/main/java/de/blinkt/openvpn/core/VpnStatus.java index 3ac1595c..1e2ccba3 100644 --- a/app/src/main/java/de/blinkt/openvpn/core/VpnStatus.java +++ b/app/src/main/java/de/blinkt/openvpn/core/VpnStatus.java @@ -17,9 +17,12 @@ import android.os.Message; import android.os.Parcel; import android.os.Parcelable; import android.text.TextUtils; +import android.util.Log; import java.io.ByteArrayInputStream; +import java.io.DataOutputStream; import java.io.File; +import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.security.MessageDigest; @@ -34,6 +37,7 @@ import java.util.Locale; import java.util.UnknownFormatConversionException; import java.util.Vector; +import se.leap.bitmaskclient.BuildConfig; import se.leap.bitmaskclient.R; public class VpnStatus { @@ -73,7 +77,7 @@ public class VpnStatus { logException(LogLevel.ERROR, context, e); } - private static final int MAXLOGENTRIES = 1000; + static final int MAXLOGENTRIES = 1000; public static String getLastCleanLogMessage(Context c) { @@ -291,7 +295,6 @@ public class VpnStatus { if (mArgs != null) str += TextUtils.join("|", mArgs); - return str; } } @@ -369,6 +372,16 @@ public class VpnStatus { } return mVerbosityLevel; } + + public boolean verify() { + if (mLevel == null) + return false; + + if (mMessage == null && mRessourceId == 0) + return false; + + return true; + } } public interface LogListener { @@ -575,6 +588,9 @@ public class VpnStatus { mLogFileHandler.sendMessage(mLogFileHandler.obtainMessage(LogFileHandler.TRIM_LOG_FILE)); } + if (BuildConfig.DEBUG && !cachedLine) + Log.d("OpenVPN", logItem.getString(null)); + for (LogListener ll : logListener) { ll.newLog(logItem); @@ -613,8 +629,8 @@ public class VpnStatus { public static synchronized void updateByteCount(long in, long out) { long lastIn = mlastByteCount[0]; long lastOut = mlastByteCount[1]; - long diffIn = mlastByteCount[2] = in - lastIn; - long diffOut = mlastByteCount[3] = out - lastOut; + long diffIn = mlastByteCount[2] = Math.max(0, in - lastIn); + long diffOut = mlastByteCount[3] = Math.max(0, out - lastOut); mlastByteCount = new long[]{in, out, diffIn, diffOut}; diff --git a/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java b/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java index f75e459e..bbd52a34 100644 --- a/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java +++ b/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java @@ -429,34 +429,33 @@ public class LogFragment extends ListFragment implements StateListener, SeekBar. Intent intent = new Intent(getActivity(), DisconnectVPN.class); startActivity(intent); return true; - } else if (item.getItemId() == R.id.send) { - ladapter.shareLog(); - } else if (item.getItemId() == R.id.edit_vpn) { - VpnProfile lastConnectedprofile = ProfileManager.getLastConnectedVpn(); - - if (lastConnectedprofile != null) { - Intent vprefintent = new Intent(getActivity(), Dashboard.class) - .putExtra(VpnProfile.EXTRA_PROFILEUUID, lastConnectedprofile.getUUIDString()); - startActivityForResult(vprefintent, START_VPN_CONFIG); - } else { - Toast.makeText(getActivity(), R.string.log_no_last_vpn, Toast.LENGTH_LONG).show(); - } - } else if (item.getItemId() == R.id.toggle_time) { - showHideOptionsPanel(); - } else if (item.getItemId() == android.R.id.home) { - // This is called when the Home (Up) button is pressed - // in the Action Bar. - Intent parentActivityIntent = new Intent(getActivity(), Dashboard.class); - parentActivityIntent.addFlags( - Intent.FLAG_ACTIVITY_CLEAR_TOP | - Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(parentActivityIntent); - getActivity().finish(); - return true; - - } - return super.onOptionsItemSelected(item); - + } else if(item.getItemId()==R.id.send) { + ladapter.shareLog(); + } else if(item.getItemId()==R.id.edit_vpn) { + VpnProfile lastConnectedprofile = ProfileManager.getLastConnectedVpn(); + + if(lastConnectedprofile!=null) { + Intent vprefintent = new Intent(getActivity(),Dashboard.class) + .putExtra(VpnProfile.EXTRA_PROFILEUUID,lastConnectedprofile.getUUIDString()); + startActivityForResult(vprefintent,START_VPN_CONFIG); + } else { + Toast.makeText(getActivity(), R.string.log_no_last_vpn, Toast.LENGTH_LONG).show(); + } + } else if(item.getItemId() == R.id.toggle_time) { + showHideOptionsPanel(); + } else if(item.getItemId() == android.R.id.home) { + // This is called when the Home (Up) button is pressed + // in the Action Bar. + Intent parentActivityIntent = new Intent(getActivity(), Dashboard.class); + parentActivityIntent.addFlags( + Intent.FLAG_ACTIVITY_CLEAR_TOP | + Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(parentActivityIntent); + getActivity().finish(); + return true; + + } + return super.onOptionsItemSelected(item); } private void showHideOptionsPanel() { diff --git a/app/src/main/java/se/leap/bitmaskclient/Dashboard.java b/app/src/main/java/se/leap/bitmaskclient/Dashboard.java index 218b22a7..dbdf0a51 100644 --- a/app/src/main/java/se/leap/bitmaskclient/Dashboard.java +++ b/app/src/main/java/se/leap/bitmaskclient/Dashboard.java @@ -88,36 +88,55 @@ public class Dashboard extends Activity implements ProviderAPIResultReceiver.Rec @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - app = this; - - PRNGFixes.apply(); - VpnStatus.initLogCache(getApplicationContext().getCacheDir()); - preferences = getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE); fragment_manager = new FragmentManagerEnhanced(getFragmentManager()); - handleVersion(); - User.init(getString(R.string.default_username)); ProviderAPICommand.initialize(this); providerAPI_result_receiver = new ProviderAPIResultReceiver(new Handler(), this); - restoreProvider(savedInstanceState); - if (!provider.isConfigured()) + if (app == null) { + app = this; + + PRNGFixes.apply(); + VpnStatus.initLogCache(getApplicationContext().getCacheDir()); + handleVersion(); + User.init(getString(R.string.default_username)); + } + boolean provider_exists = previousProviderExists(savedInstanceState); + if (provider_exists) { + provider = getProvider(savedInstanceState); + if(!provider.isConfigured()) + startActivityForResult(new Intent(this, ConfigurationWizard.class), CONFIGURE_LEAP); + else { + buildDashboard(getIntent().getBooleanExtra(ON_BOOT, false)); + user_status_fragment.restoreSessionStatus(savedInstanceState); + } + } else { startActivityForResult(new Intent(this, ConfigurationWizard.class), CONFIGURE_LEAP); - else { - buildDashboard(getIntent().getBooleanExtra(ON_BOOT, false)); - user_status_fragment.restoreSessionStatus(savedInstanceState); } } - private void restoreProvider(Bundle savedInstanceState) { - if (savedInstanceState != null) { - if (savedInstanceState.containsKey(Provider.KEY)) - provider = savedInstanceState.getParcelable(Provider.KEY); - } - if (!provider.isConfigured() && preferences.getBoolean(Constants.PROVIDER_CONFIGURED, false)) + private boolean previousProviderExists(Bundle savedInstanceState) { + return providerInSavedInstance(savedInstanceState) || providerInSharedPreferences(); + } + + private Provider getProvider(Bundle savedInstanceState) { + if(providerInSavedInstance(savedInstanceState)) + provider = savedInstanceState.getParcelable(Provider.KEY); + else if (providerInSharedPreferences()) provider = getSavedProviderFromSharedPreferences(); + return provider; + } + + private boolean providerInSavedInstance(Bundle savedInstanceState) { + return savedInstanceState != null && + savedInstanceState.containsKey(Provider.KEY); + } + + private boolean providerInSharedPreferences() { + return preferences != null && + preferences.getBoolean(Constants.PROVIDER_CONFIGURED, false); + } @Override diff --git a/app/src/main/res/menu/logmenu.xml b/app/src/main/res/menu/logmenu.xml index 890d1c2e..4c8daf35 100644 --- a/app/src/main/res/menu/logmenu.xml +++ b/app/src/main/res/menu/logmenu.xml @@ -37,7 +37,8 @@ android:id="@+id/edit_vpn" android:alphabeticShortcut="e" android:icon="@drawable/ic_menu_edit" - android:showAsAction="ifRoom" + android:showAsAction="withText|ifRoom" android:title="@string/edit_vpn" android:visible="false"/> + </menu> diff --git a/app/src/main/res/values-ca/strings-icsopenvpn.xml b/app/src/main/res/values-ca/strings-icsopenvpn.xml index 16147643..2233e71e 100755 --- a/app/src/main/res/values-ca/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ca/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-cs/strings-icsopenvpn.xml b/app/src/main/res/values-cs/strings-icsopenvpn.xml index c2b47b77..f5e4db60 100755 --- a/app/src/main/res/values-cs/strings-icsopenvpn.xml +++ b/app/src/main/res/values-cs/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-de/strings-icsopenvpn.xml b/app/src/main/res/values-de/strings-icsopenvpn.xml index c1b3f10a..c78c0039 100755 --- a/app/src/main/res/values-de/strings-icsopenvpn.xml +++ b/app/src/main/res/values-de/strings-icsopenvpn.xml @@ -1,43 +1,43 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> <string name="address">Server:</string> - <string name="port">Server Port:</string> + <string name="port">Port:</string> <string name="location">Ort</string> <string name="cant_read_folder">Verzeichnis kann nicht gelesen werden</string> <string name="select">Auswählen</string> <string name="cancel">Abbrechen</string> <string name="no_data">Keine Daten</string> - <string name="useLZO">LZO Komprimierung</string> + <string name="useLZO">LZO-Komprimierung</string> <string name="client_no_certificate">Kein Zertifikat</string> <string name="client_certificate_title">Clientzertifikat</string> <string name="client_key_title">Clientzertifikatsschlüssel</string> - <string name="client_pkcs12_title">PKCS12 Datei</string> - <string name="ca_title">CA Zertifikat</string> + <string name="client_pkcs12_title">PKCS12-Datei</string> + <string name="ca_title">CA-Zertifikat</string> <string name="no_certificate">Kein Zertifikat ausgewählt</string> - <string name="copyright_guicode">Quellcode und Issue Tracker sind verfügbar unter http://code.google.com/p/ics-openvpn/</string> + <string name="copyright_guicode">Quellcode und Issue-Tracker sind verfügbar unter https://github.com/schwabe/ics-openvpn</string> <string name="copyright_others">Dieses Programm nutzt die folgenden Komponenten. Die kompletten Lizenzdetails sind im Quelltext verfügbar.</string> <string name="about">Über</string> <string name="vpn_list_title">Profile</string> <string name="vpn_type">Typ</string> - <string name="pkcs12pwquery">PKCS12 Passwort</string> + <string name="pkcs12pwquery">PKCS12-Passwort</string> <string name="file_select">Auswählen…</string> <string name="file_nothing_selected">Nichts ausgewählt</string> - <string name="useTLSAuth">Benutze TLS Authentifizierung</string> - <string name="tls_direction">TLS Richtung</string> - <string name="ipv6_dialog_tile">Tragen Sie die IPv6 Adresse und Netzmaske im CIDR Format ein (z.B. 2000:dd::23/64)</string> - <string name="ipv4_dialog_title">Tragen Sie die IPv4 Adresse und Netzmaske im CIDR Format ein (z.B. 1.2.3.4/24)</string> - <string name="ipv4_address">IPv4 Adresse</string> - <string name="ipv6_address">IPv6 Adresse</string> - <string name="custom_option_warning">Tragen Sie eigene OpenVPN Optionen ein. Beachten Sie, dass einige (vor allem tun spezifische) Optionen von der Android Version nicht unterstützt werden können. Wenn Sie denken, dass eine wichtige Option fehlt, kontaktieren Sie den Autor</string> + <string name="useTLSAuth">TLS-Authentifizierung verwenden</string> + <string name="tls_direction">TLS-Richtung</string> + <string name="ipv6_dialog_tile">Tragen Sie die IPv6-Adresse und Netzmaske im CIDR-Format ein (z.B. 2000:dd::23/64)</string> + <string name="ipv4_dialog_title">Tragen Sie die IPv4-Adresse und Netzmaske im CIDR-Format ein (z.B. 1.2.3.4/24)</string> + <string name="ipv4_address">IPv4-Adresse</string> + <string name="ipv6_address">IPv6-Adresse</string> + <string name="custom_option_warning">Tragen Sie eigene OpenVPN-Optionen ein. Beachten Sie, dass einige (vor allem tun-spezifische) Optionen von der Android-API nicht unterstützt werden. Wenn Sie denken, dass eine wichtige Option fehlt, kontaktieren Sie den Autor</string> <string name="auth_username">Benutzername</string> <string name="auth_pwquery">Passwort</string> - <string name="static_keys_info">Für die statische Konfiguration werden die TLS Auth Schlüssel als statische Schlüssel benutzt</string> + <string name="static_keys_info">Für die statische Konfiguration werden die TLS-Authentifizierungsschlüssel als statische Schlüssel benutzt</string> <string name="configure_the_vpn">VPN konfigurieren</string> <string name="menu_add_profile">Profil hinzufügen</string> <string name="add_profile_name_prompt">Geben Sie einen Namen für das neue Profil an</string> @@ -47,193 +47,193 @@ <string name="no_error_found">Kein Fehler.</string> <string name="config_error_found">Fehler in der Konfiguration</string> <string name="ipv4_format_error">Fehler beim Auflösen der IPv4-Adresse</string> - <string name="custom_route_format_error">Kann die manuell angegeben Routen nicht parsen</string> - <string name="pw_query_hint">(Leer lassen um nicht zu speichern)</string> - <string name="vpn_shortcut">OpenVPN Verknüpfung</string> + <string name="custom_route_format_error">Kann die manuell angegeben Routen nicht verarbeiten</string> + <string name="pw_query_hint">(Leer lassen, um nicht zu speichern)</string> + <string name="vpn_shortcut">OpenVPN-Verknüpfung</string> <string name="vpn_launch_title">VPN verbinden</string> <string name="shortcut_profile_notfound">Von der Verknüpfung referenziertes Profil konnte nicht gefunden werden</string> - <string name="random_host_prefix">Random Host Präfix</string> - <string name="random_host_summary">Verwürfelt den Hostnamen mit zufälligen Präfix</string> + <string name="random_host_prefix">Zufälliger Host-Präfix</string> + <string name="random_host_summary">Fügt 6 zufällige Zeichen am Anfang des Hostnamens hinzu</string> <string name="custom_config_title">Eigene Konfigurationsoptionen</string> - <string name="custom_config_summary">Geben Sie eigene Konfigurationsoptionen an. Seien Sie vorsichtig!</string> - <string name="route_rejected">Route von Android zurückgewiesen.</string> + <string name="custom_config_summary">Hier können Sie eigene Konfigurationsoptionen angeben. Seien Sie vorsichtig!</string> + <string name="route_rejected">Route von Android zurückgewiesen</string> <string name="cancel_connection">Trennen</string> - <string name="cancel_connection_long">VPN Verbindung trennen</string> - <string name="clear_log">Log löschen.</string> - <string name="title_cancel">Trennungsbestätigung</string> + <string name="cancel_connection_long">VPN-Verbindung trennen</string> + <string name="clear_log">Protokoll löschen</string> + <string name="title_cancel">Trennen bestätigen</string> <string name="cancel_connection_query">Möchten Sie das VPN trennen bzw. den Verbindungsversuch abbrechen?</string> <string name="remove_vpn">VPN löschen</string> - <string name="check_remote_tlscert">Überprüfe, ob der Server ein Zertifikat mit TLS-Servererweiterungen verwendet (--remote-cert-tls server)</string> + <string name="check_remote_tlscert">Überprüfen, ob der Server ein Zertifikat mit TLS-Servererweiterungen verwendet (--remote-cert-tls server)</string> <string name="check_remote_tlscert_title">TLS-Serverzertifikat erwarten</string> - <string name="remote_tlscn_check_summary">Server Zertifikatssubjekt DN überprüfen</string> - <string name="remote_tlscn_check_title">Zertifikat Namen überprüfen</string> - <string name="enter_tlscn_dialog">Spezifizieren Sie die Methode mit welcher der DN des Serverzertifikates (z. B. C=DE, L=Paderborn, OU=Avian IP-Carrier, CN=openvpn.blinkt.de) überprüft wird.\n\nSie können den vollständigen DN oder den RDN (openvpn.blinkt.de im Beispiel) oder ein RDN-Präfix angeben.\n\nDer RDN Präfix \"Server\" erlaubt z.B. \"Server-1\" und \"Server-2\" \n\nWenn Sie das Eingabefeld leer lassen, wird der RDN gegen den Servernamen geprüft.\n\n Für weitere Details sehen Sie die Manpage von OpenVPN 2.3.1+ unter —verify-x509-name</string> - <string name="enter_tlscn_title">Serverzertifikat Subject</string> - <string name="tls_key_auth">Benutzte TLS Schlüssel Authentifizierung</string> - <string name="tls_auth_file">TLS Auth Datei</string> - <string name="pull_on_summary">Fordert IP Adressen, Routen und andere Optionen vom Server an.</string> - <string name="pull_off_summary">Keine Informationen werden vom Server bezogen. Geben Sie manuell die Optionen an.</string> - <string name="use_pull">Pull Settings</string> + <string name="remote_tlscn_check_summary">Subjekt-DN des Serverzertifikats überprüfen</string> + <string name="remote_tlscn_check_title">Hostnamen überprüfen</string> + <string name="enter_tlscn_dialog">Geben Sie hier die Methode an, mit welcher der DN des Serverzertifikates (z. B. C=DE, L=Paderborn, OU=Avian IP-Carrier, CN=openvpn.blinkt.de) überprüft wird.\n\nSie können den vollständigen DN, den RDN (openvpn.blinkt.de im Beispiel) oder ein RDN-Präfix angeben.\n\nDer RDN-Präfix \"Server\" erlaubt z.B. \"Server-1\" und \"Server-2\".\n\nWenn Sie das Eingabefeld leer lassen, wird der RDN gegen den Servernamen geprüft.\n\n Weitere Details finden Sie in der Manpage von OpenVPN 2.3.1+ unter —verify-x509-name</string> + <string name="enter_tlscn_title">Subject des Serverzertifikats</string> + <string name="tls_key_auth">TLS-Schlüssel-Authentifizierung verwenden</string> + <string name="tls_auth_file">Schlüssel-Datei</string> + <string name="pull_on_summary">IP-Adressen, Routen und andere Optionen vom Server anfordern.</string> + <string name="pull_off_summary">Keine Informationen werden vom Server bezogen. Alle Einstellungen müssen unten manuell getätigt werden.</string> + <string name="use_pull">Informationen abrufen</string> <string name="dns">DNS</string> - <string name="override_dns">Eigene DNS Server.</string> - <string name="dns_override_summary">Eigene DNS Server benutzen.</string> - <string name="searchdomain">DNS Such Domäne</string> - <string name="dns1_summary">Primärer DNS Server</string> - <string name="dns_server">DNS Server</string> - <string name="secondary_dns_message">Sekundärer DNS Server. Wird genutzt falls der normale DNS Server nicht erreicht werden kann</string> - <string name="backup_dns">Backup DNS Server</string> - <string name="ignored_pushed_routes">Ignoriere gepushte Routen</string> - <string name="ignore_routes_summary">Ignoriere die Routen, die der Server dem Client sendet.</string> - <string name="default_route_summary">Leitet allen Internet Verkehr über das VPN</string> - <string name="use_default_title">Benutze Default Route</string> - <string name="custom_route_message">Benutze eigene Routen. Geben Sie Zielnetzwerk im CIDR Format an. Z.b. \"10.0.0.0/8 2002::/16\" würde die Netzwerke 10.0.0.0/8 und 2002::/16 über das VPN routen.</string> + <string name="override_dns">Eigene DNS-Server</string> + <string name="dns_override_summary">Eigene DNS-Server an Stelle der vom Server gesendeten verwenden</string> + <string name="searchdomain">Such-Domäne</string> + <string name="dns1_summary">Primärer DNS-Server</string> + <string name="dns_server">DNS-Server</string> + <string name="secondary_dns_message">Sekundärer DNS-Server, der genutzt wird, falls der normale DNS Server nicht erreicht werden kann.</string> + <string name="backup_dns">Backup-DNS-Server</string> + <string name="ignored_pushed_routes">Gepushte Routen ignorieren</string> + <string name="ignore_routes_summary">Vom Server gesendete Routen ignorieren</string> + <string name="default_route_summary">Sämtlichen Internetverkehr über das VPN leiten</string> + <string name="use_default_title">Default-Route verwenden</string> + <string name="custom_route_message">Geben Sie hier eigene Routen an. Geben Sie dabei nur das Zielnetz im CIDR-Format an; zum Beispiel würde \"10.0.0.0/8 2002::/16\" die Netze 10.0.0.0/8 und 2002::/16 über das VPN routen.</string> <string name="custom_route_message_excluded">Routen, die NICHT über das VPN geleitet werden sollen. Verwendet die gleiche Syntax wie bei den eigenen Routen.</string> <string name="custom_routes_title">Eigene Routen</string> <string name="custom_routes_title_excluded">Ausgeschlossene Netze</string> - <string name="log_verbosity_level">Log Detail Level</string> - <string name="float_summary">Erlaube authentifizierte Pakete von jeder IP</string> - <string name="float_title">Erlaube floating Server</string> + <string name="log_verbosity_level">Protokollumfang</string> + <string name="float_summary">Authentifizierte Pakete von jeder IP zulassen</string> + <string name="float_title">Floating Server zulassen</string> <string name="custom_options_title">Eigene Optionen</string> - <string name="edit_vpn">Ändere VPN Einstellungen</string> - <string name="remove_vpn_query">VPN Profile \'%s\' löschen?</string> - <string name="tun_error_helpful">Auf manchen ROM Version sind eventuell die Zugriffsrechte von /dev/tun falsch oder das tun Kernel Modul fehlt. Für Cyanogenmod 9 ROMs mit root gibt einen provisorischen Fix in den generellen Einstellungen.</string> - <string name="tun_open_error">Das Öffnen des tun Interfaces ist katastrophal gescheitert</string> + <string name="edit_vpn">VPN-Einstellungen ändern</string> + <string name="remove_vpn_query">VPN-Profil \'%s\' löschen?</string> + <string name="tun_error_helpful">Auf manchen Custom-ROM-Version sind eventuell die Zugriffsrechte von /dev/tun falsch oder das tun-Kernelmodul fehlt. Für Cyanogenmod 9-ROMs mit Root finden Sie einen provisorischen Fix in den allgemeinen Einstellungen.</string> + <string name="tun_open_error">Die tun-Schnittstelle konnte nicht geöffnet werden</string> <string name="error">"Fehler: "</string> - <string name="clear">Clear</string> - <string name="last_openvpn_tun_config">Öffne tun Netzwerkinterface:</string> + <string name="clear">Entfernen</string> + <string name="last_openvpn_tun_config">Tun-Netzwerkinterface wird geöffnet:</string> <string name="local_ip_info">Lokale IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d</string> <string name="dns_server_info">DNS-Server: %1$s, Domäne: %2$s</string> <string name="routes_info_incl">Routen: %1$s %2$s</string> - <string name="routes_info_excl">ausgeschlossene Routen: %1$s %2$s</string> - <string name="routes_debug">Installierte Routen (VpnService): %1$s %2$s</string> - <string name="ip_not_cidr">Interface Information %1$s und %2$s, nehme an, die zweite Adresse ist die Peer Adresse. Benutze /32 Netzmaske für die lokale IP Adresse. Interface Modus spezifiziert von OpenVPN ist \"%3$s\".</string> - <string name="route_not_cidr">Die Route %1$s mit der Netzmaske %2$s ist keine Route mit einer CIDR Netzmaske, benutze /32 als Netzmaske.</string> + <string name="routes_info_excl">Ausgeschlossene Routen: %1$s %2$s</string> + <string name="routes_debug">Installierte VpnService-Routen: %1$s %2$s</string> + <string name="ip_not_cidr">Interface Information %1$s und %2$s: verwende die zweite Adresse als Peer-Adresse. Benutze /32-Netzmaske für die lokale IP-Adresse. Von OpenVPN gesetzter Interface-Modus ist \"%3$s\".</string> + <string name="route_not_cidr">Die Route %1$s mit der Netzmaske %2$s ist keine Route mit einer CIDR-Netzmaske; verwende /32 als Netzmaske.</string> <string name="route_not_netip">Route %1$s/%2$s korrigiert zu %3$s/%2$s</string> - <string name="keychain_access">Kann nicht auf die Android Keychain Zertifikate zugreifen (dies kann durch ein System Update oder durch Zurücksichern der Anwendung aus einem Backup hervorgerufen werden). Bitte editieren Sie das VPN und wählen Sie erneut das Zertifikat in dem Grundeinstellungen aus, um die Zugriffsberechtigung für das Zertifikat wieder herzustellen.</string> + <string name="keychain_access">Kann nicht auf die Zertifikate im Android-Zertifikatsspeicher zugreifen. Dies kann durch ein Systemupdate oder durch Zurückspielen der App oder ihrer Einstellungen aus einem Backup hervorgerufen werden. Bitte bearbeiten Sie das VPN und wählen Sie das Zertifikat erneut in den Grundeinstellungen aus, um die Zugriffsberechtigung für das Zertifikat wieder herzustellen.</string> <string name="version_info">%1$s %2$s</string> - <string name="send_logfile">Sende Logdatei</string> - <string name="send">Sende</string> - <string name="ics_openvpn_log_file">ICS OpenVPN log Datei</string> - <string name="copied_entry">Log Eintrag in die Zwischenablage kopiert</string> - <string name="tap_mode">Tap Mode</string> - <string name="faq_tap_mode">Die VPN API von Android, die ohne rooten des Telefons funktioniert, unterstützt nur den tun Modus. Das Unterstützen des Tap Modus ist daher nicht möglich.</string> - <string name="tap_faq2">Die gleiche Frage nochmal? Meinen Sie das ernst? Ohne root kann tap wirklich nicht unterstützt werden. Emails an mich, mit der Frage, wann tap unterstützt wird, helfen hier kein Stück.</string> - <string name="tap_faq3">Ein drittes Mal? Nun gut, theoretisch kann tap mit einem tun Gerät emuliert werden. Dieser tap Emulator müsste die Layer 2 Informationen beim Senden hinzufügen und beim Empfangen wieder entfernen. Zusätzlich muss noch ARP und sinnvollerweise auch ein DHCP Client implementiert werden. Mir ist niemand bekannt, der etwas in dieser Richtung unternimmt. Kontaktieren Sie mich, falls Sie so etwas implementieren möchten.</string> + <string name="send_logfile">Protokoll senden</string> + <string name="send">Senden</string> + <string name="ics_openvpn_log_file">ICS-OpenVPN-Protokolldatei</string> + <string name="copied_entry">Protokolleintrag in die Zwischenablage kopiert</string> + <string name="tap_mode">Tap-Modus</string> + <string name="faq_tap_mode">Da der Tap-Modus von der Android-VPN-API nicht unterstützt wird, kann in dieser App nur der Tun-Modus verwendet werden.</string> + <string name="tap_faq2">Die gleiche Frage nochmal? Meinen Sie das ernst? Ohne Root kann tap wirklich nicht unterstützt werden. Es hilft dabei auch nicht, mir Emails mit der Frage, wann tap unterstützt wird, zu senden.</string> + <string name="tap_faq3">Ein drittes Mal? Nun gut, theoretisch kann tap mit einem tun-Gerät emuliert werden. Dieser tap-Emulator müsste die Layer 2-Informationen beim Senden hinzufügen und beim Empfangen wieder entfernen. Zusätzlich muss noch ARP und sinnvollerweise auch ein DHCP-Client implementiert werden. Mir ist niemand bekannt, der etwas in dieser Richtung unternimmt. Kontaktieren Sie mich, falls Sie so etwas implementieren möchten.</string> <string name="faq">FAQ</string> - <string name="copying_log_entries">Kopieren von Log Einträgen</string> - <string name="faq_copying">Um einen einzelnen Log Eintrag zu kopieren berühren Sie den Log Eintrag und halten Sie gedrückt. Um das ganze Log zu Kopieren/Versenden benutzen Sie die \"Sende Log\" Option. Falls Sie Option nicht im in der GUI sehen, drücken Sie die Menü Taste am Gerät.</string> + <string name="copying_log_entries">Kopieren von Protokolleinträgen</string> + <string name="faq_copying">Um einen einzelnen Protokolleintrag zu kopieren, berühren Sie den Eintrag und halten Sie ihn gedrückt. Verwenden Sie die Option \"Protokoll versenden\", um das ganze Protokoll zu kopieren oder versenden. Falls Sie Option nicht in der Titelzeile sehen, drücken Sie die Menütaste des Gerätes.</string> <string name="faq_shortcut">Verknüpfung zu einem VPN</string> - <string name="faq_howto_shortcut">Sie können ein Shortcut zum Starten des VPN auf Ihren Startbildschirm ablegen. Abhängig von der verwendeten Benutzeroberfläche müssen Sie ein Widget, einen Shortcut oder eine Verknüpfung hinzufügen.</string> - <string name="no_vpn_support_image">Dieses Android ROM enthält keine VPNService API. Sorry :(</string> + <string name="faq_howto_shortcut">Sie können eine Verknüpfung zum Starten des VPN auf Ihren Startbildschirm ablegen. Abhängig von der verwendeten Benutzeroberfläche müssen Sie entweder ein Widget oder eine Verknüpfung hinzufügen.</string> + <string name="no_vpn_support_image">Ihre Gerätefirmwäre unterstützt die VPNService-API nicht. Tut uns leid :(</string> <string name="encryption">Verschlüsselung</string> - <string name="cipher_dialog_title">Geben Sie die Verschlüsslungsmethode an</string> + <string name="cipher_dialog_title">Geben Sie die Verschlüsselungsmethode an</string> <string name="chipher_dialog_message">Geben sie den Verschlüsslungsalgorithmus an, der von OpenVPN genutzt werden soll. Lassen sie das Feld frei, um den Standardalgorithmus zu verwenden.</string> - <string name="auth_dialog_message">Geben Sie den Hashalgorithmus der zur Nachrichtenauthentifizierung benutzt wird an. Leer lassen um den Standard Algorithmus zu nutzen.</string> + <string name="auth_dialog_message">Geben Sie den Hashalgorithmus, der zur Nachrichtenauthentifizierung benutzt wird, an. Lassen Sie das Feld frei, um den Standard-Algorithmus zu nutzen.</string> <string name="settings_auth">Authentifizierung/Verschlüsselung</string> <string name="file_explorer_tab">Datei auswählen…</string> <string name="inline_file_tab">Eingebettete Datei</string> - <string name="error_importing_file">Fehler beim importieren der Datei</string> + <string name="error_importing_file">Fehler beim Import der Datei</string> <string name="import_error_message">Konnte Datei nicht vom Dateisystem importieren</string> <string name="inline_file_data">[[Eingebettete Datei]]</string> - <string name="opentun_no_ipaddr">Verweigere tun Gerät zu öffnen ohne IP Information</string> - <string name="menu_import">Importiere Profil von .ovpn Datei</string> + <string name="opentun_no_ipaddr">Verweigere, das tun-Gerät ohne IP-Informationen zu öffnen</string> + <string name="menu_import">Profil aus .ovpn-Datei importieren</string> <string name="menu_import_short">Import</string> <string name="import_content_resolve_error">Konnte zu importierendes Profil nicht lesen</string> <string name="error_reading_config_file">Fehler beim Lesen der Konfigurationsdatei</string> <string name="add_profile">Profil hinzufügen</string> - <string name="import_could_not_open">Konnte die Datei %1$s, die in der importierten Konfiguration angeben war, nicht finden</string> + <string name="import_could_not_open">Konnte die Datei %1$s, die in der importierten Konfiguration angegeben war, nicht finden</string> <string name="importing_config">Importiere Konfigurationsdatei aus %1$s</string> - <string name="import_warning_custom_options">Ihre Konfiguration hatte ein paar Konfigurationsoptionen, die nicht direkt mit der GUI konfigurierbar sind. Diese Optionen wurden als benutzerdefinierte Konfigurationsoptionen hinzugefügt. Dies sind:</string> - <string name="import_done">Konfigurationsdatei lesen abgeschlossen.</string> - <string name="nobind_summary">Binde nicht an lokalen Port und IP Adresse</string> + <string name="import_warning_custom_options">In Ihren Konfiguration waren Konfigurationsoptionen enthalten, die nicht direkt mit der GUI konfigurierbar sind. Diese Optionen wurden als benutzerdefinierte Konfigurationsoptionen hinzugefügt. Dies sind:</string> + <string name="import_done">Lesen der Konfigurationsdatei abgeschlossen.</string> + <string name="nobind_summary">Nicht an lokalen Port und IP-Adresse binden</string> <string name="no_bind">Kein lokales Binden</string> - <string name="import_configuration_file">Importiere Konfigurationsdatei</string> + <string name="import_configuration_file">Zu importierende Konfigurationsdatei</string> <string name="faq_security_title">Bemerkungen zur Sicherheit</string> - <string name="faq_security">Da OpenVPN sicherheitsrelevant ist, sind einige Worte zur Sicherheit der Anwendung angebracht. Alle Daten, die sich auf der SD Karte befinden sind als absolut unsicher anzusehen. Jede Anwendung kann diese lesen. (Diese Anwendung braucht zum Beispiel keine SD Karten Berechtigung). Die restlichen Konfiguration dieser Anwendung kann nur von der Anwendung selbst gelesen werden. Wenn die Option genutzt wird, dass die Zertifikate und Schlüssel eingebettet werden, werden diese im VPN Profil gespeichert. Die VPN Profile sind nur von der Anwendung selbst lesbar. (Vergessen Sie nicht die ursprünglichen Zertifikate/Schlüssel von der SD Karte zu löschen). Die Daten die Anwendung selbst speichert sind unverschlüsselt. Es besteht die Möglichkeit diese mittels \"rooten\" des Telefons/Tablets oder anderen Schwachstellen diese Daten auszulesen. Gespeicherte Passwörter werden auch im Klartext gespeichert. Es wird dringend empfohlen die Zertifikate in dem Android Keystore zu speichern.\"</string> + <string name="faq_security">Da OpenVPN sicherheitsrelevant ist, sind einige Worte zur Sicherheit der Anwendung angebracht. Alle Daten, die sich auf der SD-Karte befinden, sind als absolut unsicher anzusehen. Jede Anwendung kann diese lesen. (Auch diese Anwendung braucht zum Beispiel keine Berechtigung für SD-Karten-Zugriff). Die restliche Konfiguration dieser Anwendung kann nur von der Anwendung selbst gelesen werden. Wenn die Option genutzt wird, dass die Zertifikate und Schlüssel eingebettet werden, werden diese im VPN-Profil gespeichert. Die VPN-Profile sind nur von der Anwendung selbst lesbar. (Vergessen Sie nicht die ursprünglichen Zertifikate/Schlüssel von der SD-Karte zu löschen). Die Daten, die die Anwendung selbst speichert sind unverschlüsselt. Es besteht die Möglichkeit, diese Daten mittels \"rooten\" des Telefons/Tablets oder anderen Schwachstellen auszulesen. Auch gespeicherte Passwörter werden im Klartext gespeichert. Es wird daher dringend empfohlen, die Zertifikate im Android-Zertifikatsspeicher zu speichern.</string> <string name="import_vpn">Importieren</string> <string name="broken_image_cert_title">Fehler beim Anzeigen des Zertifikatsauswahlbildschirmes</string> - <string name="broken_image_cert">Android hat einen Fehler beim Anzeigen des Zertifikat Dialog gemeldet. Dies sollte nie passieren, da dies ein Standard Feature von Android 4.0+ ist. Eventuell ist Unterstützung von Zertifikaten in Ihrer Firmware fehlerhaft</string> + <string name="broken_image_cert">Konnte den Zertifikatsdialog nicht öffnen. Dies sollte nie passieren, da dies eine Standardfunktion von Android 4.0+ ist. Eventuell ist die Unterstützung von Zertifikaten in der Firmware Ihres Gerätes fehlerhaft</string> <string name="ipv4">IPv4</string> <string name="ipv6">IPv6</string> - <string name="speed_waiting">Warte auf OpenVPN Status Nachricht…</string> + <string name="speed_waiting">Warte auf OpenVPN-Status-Nachricht…</string> <string name="converted_profile">Importiertes Profil</string> <string name="converted_profile_i">Importiertes Profil %d</string> - <string name="broken_images">Fehlerhafte Images</string> - <string name="broken_images_faq"><p>Von offiziellen HTC Firmwares ist bekannt, dass diese teilweise merkwürdige Routing Probleme haben, die dafür sorgen, dass der Verkehr nicht durch den Tunnel fließt. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> im Bug Tracker.)</p><p>Bei älteren Version der offiziellen SONY Firmwares für das Xperia arc S and Xperia Ray scheint der VPNService Support komplett zu fehlen. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\">Issue 29</a> im Bug Tracker.)</p><p>Auf anderen (insbesondere Custom ROMS) fehlt teilweise das tun Kernel Modul oder die Rechte von /dev/tun sind falsch gesetzt. Auf einigen CM9 Firmware wird die \"/dev/tun Eigentümer setzen\" Option in den Allgemeinen Einstellungen benötigt.</p><p>Am wichtigsten ist aber, falls Sie eine fehlerhafte Firmware haben, melden Sie dies Ihrem Hersteller. Je mehr Leute den Fehler dem Hersteller melden, desto wahrscheinlicher werden Sie eine Fehlerkorrektur bekommen.</p></string> - <string name="pkcs12_file_encryption_key">PKCS12 Veschlüsslungspassword</string> - <string name="private_key_password">Passphrase privater Schlüssel</string> + <string name="broken_images">Fehlerhafte Firmwares</string> + <string name="broken_images_faq"><p>Von offiziellen HTC-Firmwares ist bekannt, dass diese teilweise merkwürdige Routingprobleme haben, die dafür sorgen, dass der Verkehr nicht durch den Tunnel fließt. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\">Issue 18</a> im Bugtracker.)</p><p>Bei älteren Version der offiziellen Sony-Firmwares für das Xperia arc S and Xperia Ray scheint der VPNService-Support komplett zu fehlen. (Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\">Issue 29</a> im Bugtracker.)</p><p>Auf anderen (insbesondere Custom ROMs) fehlt teilweise das tun-Kernelmodul oder die Rechte von /dev/tun sind falsch gesetzt. Auf einigen CM9-Firmwares wird die Option \"Eigentümer von /dev/tun setzen\" in den Allgemeinen Einstellungen benötigt.</p><p>Am wichtigsten ist aber: falls Sie eine fehlerhafte Firmware haben, melden Sie dies Ihrem Hersteller. Je mehr Nutzer dem Hersteller den Fehler melden, desto wahrscheinlicher werden Sie eine Fehlerkorrektur bekommen.</p></string> + <string name="pkcs12_file_encryption_key">PKCS12-Verschlüsselungs-Passwort</string> + <string name="private_key_password">Passphrase des privaten Schlüssels</string> <string name="password">Passwort</string> - <string name="file_icon">Datei Symbol</string> - <string name="tls_authentication">TLS Authentifizierung</string> + <string name="file_icon">Dateisymbol</string> + <string name="tls_authentication">TLS-Authentifizierung</string> <string name="generated_config">Generierte Konfiguration</string> <string name="generalsettings">Einstellungen</string> - <string name="owner_fix_summary">Versucht den Eigentümer von /dev/tun auf system zu ändern. Einige Cyanogenmod 9 ROM Versionen benötigen diese Option, damit die VPN API funktioniert. Benötigt root.</string> - <string name="owner_fix">/dev/tun Eigentümer setzen.</string> - <string name="generated_config_summary">Zeigt die generierte Konfigurationsdatei</string> - <string name="edit_profile_title">Editiere \"%s\"</string> - <string name="building_configration">Generiere OpenVPN Konfiguration…</string> - <string name="netchange_summary">Aktivieren dieser Option zwingt OpenVPN dazu, beim Wechsel des Netzwerkes (WLAN zu Mobilfunk und umgekehrt), neu zu verbinden</string> + <string name="owner_fix_summary">Versucht, den Eigentümer von /dev/tun auf system zu ändern. Einige Cyanogenmod 9-ROM-Versionen benötigen diese Option, damit die VPN-API funktioniert. Benötigt root.</string> + <string name="owner_fix">Eigentümer von /dev/tun setzen</string> + <string name="generated_config_summary">Generierte Konfigurationsdatei anzeigen</string> + <string name="edit_profile_title">Bearbeiten von \"%s\"</string> + <string name="building_configration">Generiere OpenVPN-Konfiguration…</string> + <string name="netchange_summary">VPN bei jedem Wechsel des verwendeten Netzwerktyps (WLAN zu Mobilfunk und umgekehrt) neu verbinden</string> <string name="netchange">Netzwerkänderungen beachten</string> <string name="netstatus">Netzwerkstatus: %s</string> - <string name="extracahint">Das CA Zertifikat wird meist aus dem Zertifikatsspeicher automatisch ausgewählt. Sollte dies nicht funktionieren und Sie Verifizierungsprobleme erhalten(self signed certificate), wählen Sie manuell ein Zertifikat aus.</string> + <string name="extracahint">Das CA-Zertifikat wird meist automatisch aus dem Zertifikatsspeicher ausgewählt. Sollte dies nicht funktionieren und Sie Verifizierungsprobleme haben (self signed certificate), wählen Sie manuell ein Zertifikat aus.</string> <string name="select_file">Auswählen</string> - <string name="keychain_nocacert">Beim Abfragen des Android KeyStore wurde kein CA Zertifikat zurückgegeben. Überprüfen des Serverzertifikat wird wahrscheinlich fehlschlagen. Geben Sie manuell ein CA Zertifikat an.</string> - <string name="show_log_summary">Zeigt das Status Log, wenn ein VPN verbunden wird. Das Status log kann immer über die Benachrichtigung aufgerufen werden.</string> - <string name="show_log_window">Zeige Log</string> + <string name="keychain_nocacert">Beim Abfragen des Android-Zertifikatsspeichers wurde kein CA-Zertifikat zurückgegeben. Die Überprüfung des Serverzertifikats wird wahrscheinlich fehlschlagen. Geben Sie manuell ein CA-Zertifikat an.</string> + <string name="show_log_summary">Verbindungsprotokoll beim Start einer VPN-Verbindung anzeigen. Das Protokoll kann unabhängig von dieser Einstellung immer über die Benachrichtigung aufgerufen werden.</string> + <string name="show_log_window">Protokoll anzeigen</string> <string name="mobile_info">%10$s %9$s läuft auf %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s)</string> - <string name="error_rsa_sign">Fehler beim Zugriff auf den Android Keystore %1$s: %2$s</string> - <string name="faq_system_dialogs">Die Meldung, dass OpenVPN versucht eine VPN-Verbindung aufzubauen und dabei den gesamten Netzwerkverkehr abhören kann, wird vom Android System selbst erzeugt. Diese wird vom System erzwungen, damit keine Anwendung vom Benutzer unbemerkt eine VPN Verbindung aufbauen kann\Die VPN Benachrichtigung (Das Schlüssel Symbol) wird genauso vom Android System angezeigt um eine bestehende VPN anzuzeigen.\nDiese beiden Features wurden in Android für die Sicherheit des Nutzers implementiert und können nicht umgangen werden. (Auf machen Telefon/Tablets wird die Benachrichtigung leider mit einem Ton signalisiert.)</string> + <string name="error_rsa_sign">Fehler beim Zugriff auf den Schlüssel %1$s im Android-Zertifikatsspeicher: %2$s</string> + <string name="faq_system_dialogs">Die Meldung, dass OpenVPN versucht, eine VPN-Verbindung aufzubauen und dabei den gesamten Netzwerkverkehr abhören kann, wird vom Android-System erzwungen, damit keine Anwendung vom Benutzer unbemerkt eine VPN-Verbindung aufbauen kann.\Die VPN-Benachrichtigung (das Schlüsselsymbol) wird ebenso vom Android-System angezeigt, um eine bestehende VPN-Verbindung zu signalisieren.\nDiese beiden Features wurden in Android für die Sicherheit des Nutzers implementiert und können nicht umgangen werden. (Auf machen Telefon/Tablets wird die Benachrichtigung leider mit einem Ton signalisiert.)</string> <string name="faq_system_dialogs_title">Warnung beim Verbinden und Benachrichtigungston</string> - <string name="translationby">Deutsche Übersetzung von Arne Schwabe <arne@rfc2549.org></string> + <string name="translationby">Deutsche Übersetzung von Arne Schwabe <arne@rfc2549.org> und Danny Baumann <dannybaumann@web.de></string> <string name="ipdns">IP und DNS</string> <string name="basic">Grundeinstellungen</string> <string name="routing">Routing</string> <string name="obscure">Obskure OpenVPN Einstellungen, die normalerweise nicht benötigt werden.</string> <string name="advanced">Erweitert</string> - <string name="export_config_title">ICS OpenVPN Konfiguration</string> - <string name="warn_no_dns">Es werden keine DNS Server für die VPN Verbindung genutzt. Die Namensauflösung wird möglicherweise nicht funktionieren. Ziehen Sie in Erwähung selbst DNS Server in den Optionen zu setzen. Beachten Sie weiterhin, dass Android die Proxyeinstellungen für Handy/WLAN weiterhin benutzt, falls keine DNS Server für das VPN festgelegt sind.</string> - <string name="dns_add_error">Konnte den DNS Server \"%1$s\" nicht hinzufügen, da das System ihn zurückweist mit %2$s</string> - <string name="ip_add_error">Konnte die IP Adresse \"%1$s\" nicht setzen, abgelehnt vom System: %2$s</string> - <string name="faq_howto"><p>Benutzen Sie eine funktionierende Konfiguration (getestet auf einem Computer, oder von Ihrer Organisation/Ihrem Provider bereitgestellt)</p><p>Falls Sie nur eine einzelne Datei benötigen, können Sie sich diese als Email-Anhang zuschicken. Falls Ihre OpenVPN Konfiguration aus mehreren Dateien besteht, müssen Sie alle Dateien auf die SD Karte kopieren.</p><p>Klicken Sie auf den Email Anhang im Android Mail Programm bzw. benutzen Sie das Ordner Symbol in der VPN Liste und wählen Sie die .ovpn bzw. .conf Konfigurationsdatei aus.</p><p>Falls der Import fehlende Dateien anmerkt, kopieren Sie diese auf die SD Karte und starten den Import erneut.</p><p>Benutzen Sie anschließend das Speichern Symbol um das VPN zur VPN Liste hinzuzufügen</p><p>Tippen Sie den Namen des VPNs an, um das VPN zu starten</p><p>Achten Sie auf Fehler und Warnungen im Verbindungslog.</p> </string> + <string name="export_config_title">ICS-OpenVPN-Konfiguration</string> + <string name="warn_no_dns">Es werden keine DNS-Server für die VPN-Verbindung genutzt. Die Namensauflösung wird möglicherweise nicht funktionieren. Ziehen Sie in Erwägung, selbst DNS-Server in den Einstellungen zu setzen. Beachten Sie weiterhin, dass Android die Proxyeinstellungen für Handy/WLAN weiterhin benutzt, falls keine DNS-Server für das VPN festgelegt sind.</string> + <string name="dns_add_error">Konnte den DNS-Server \"%1$s\" nicht hinzufügen, da das System ihn zurückweist: %2$s</string> + <string name="ip_add_error">Das Setzen der IP-Adresse \"%1$s\" wurde vom System abgewiesen %2$s</string> + <string name="faq_howto"><p>Verwenden Sie eine funktionierende Konfiguration (auf einem Computer getestet, oder von Ihrer Organisation/Ihrem Provider bereitgestellt).</p><p>Falls Sie nur eine einzelne Datei benötigen, können Sie sich diese als Email-Anhang zuschicken. Falls Ihre OpenVPN-Konfiguration aus mehreren Dateien besteht, müssen Sie alle Dateien auf die SD-Karte kopieren.</p><p>Klicken Sie auf den Email-Anhang im Android-Mail-Programm bzw. verwenden Sie das Ordnersymbol in der VPN-Liste und wählen Sie die .ovpn- bzw. .conf-Konfigurationsdatei aus.</p><p>Falls der Import fehlende Dateien anmerkt, kopieren Sie diese auf die SD-Karte und starten den Import erneut.</p><p>Verwenden Sie anschließend das \"Speichern\"-Symbol, um das VPN zur VPN-Liste hinzuzufügen.</p><p>Tippen Sie den Namen des VPNs an, um das VPN zu starten</p><p>Achten Sie auf Fehler und Warnungen im Verbindungsprotokoll.</p> </string> <string name="faq_howto_title">Schnellstart</string> - <string name="setting_loadtun_summary">Versuche das tun.ko Kernel Modul zu laden. Benötigt root.</string> - <string name="setting_loadtun">Lade tun Modul</string> - <string name="importpkcs12fromconfig">Importiere die PKCS12 Datei, die in der Konfiguration angegeben ist, in den Android Keystore</string> - <string name="getproxy_error">Fehler beim Ermitteln der Proxy Einstellungen: %s</string> - <string name="using_proxy">Benutzt Proxy %1$s %2$d</string> - <string name="use_system_proxy">Benutze System Proxys</string> - <string name="use_system_proxy_summary">Benutze die System weiten Einstellungen für HTTP/HTTPS Proxys beim Verbinden.</string> + <string name="setting_loadtun_summary">Versuchen das Kernelmodul tun.ko zu laden. Benötigt Root.</string> + <string name="setting_loadtun">Tun-Modul laden</string> + <string name="importpkcs12fromconfig">In der Konfiguration angegebene PKCS12-Datei in den Android-Zertifikatsspeicher importieren</string> + <string name="getproxy_error">Fehler beim Ermitteln der Proxy-Einstellungen: %s</string> + <string name="using_proxy">Verwende Proxy %1$s %2$d</string> + <string name="use_system_proxy">System-Proxys verwenden</string> + <string name="use_system_proxy_summary">Systemweite Einstellungen für HTTP- und HTTPS-Proxys beim Verbinden verwenden.</string> <string name="donatewithpaypal"><a href=\"https://www.paypal.com/cgi-bin/webscr?hosted_button_id=R2M6ZP9AF25LS&amp;cmd=_s-xclick\">Spenden mit PayPal</a> </string> - <string name="onbootrestartsummary">OpenVPN wird bei einem Neustart des Telefon das beim herunterfahren/neu starten aktive VPN wieder verbinden. Bitte lesen Sie die FAQ \"Warnung beim Verbinden\" FAQ bevor Sie diese Option verwenden.</string> + <string name="onbootrestartsummary">OpenVPN wird bei einem Neustart des Telefons das beim Herunterfahren aktive VPN wieder verbinden. Bitte lesen Sie die FAQ \"Warnung beim Verbinden\", bevor Sie diese Option verwenden.</string> <string name="onbootrestart">Nach Neustart verbinden</string> <string name="ignore">Ignorieren</string> <string name="restart">Neu verbinden</string> - <string name="restart_vpn_after_change">Konfigurationsänderungen werden erst nach einem VPN Neustart aktiv. Jetzt neu verbinden?</string> + <string name="restart_vpn_after_change">Konfigurationsänderungen werden erst nach einem Neustart des VPNs aktiv. Jetzt neu verbinden?</string> <string name="configuration_changed">Konfiguration geändert</string> - <string name="log_no_last_vpn">Konnte das zuletzt verbundene Profile beim Versuch des Editieren nicht ermitteln.</string> + <string name="log_no_last_vpn">Konnte das zuletzt verbundene Profil beim Versuch des Editierens nicht ermitteln</string> <string name="faq_duplicate_notification_title">Doppelte Benachrichtigungen</string> - <string name="faq_duplicate_notification">Android beendet automatisch Anwendungen und Dienste, die im Hintergrund laufen, wenn der Arbeitsspeicher knapp wird. Wird dabei OpenVPN beendet, bricht die VPN Verbindung ab. Um dies zu vermeiden, läuft der VPN Prozess mit einer höheren Priorität. Um eine höhere Priorität nutzen zu können, muss die Anwesenheit des Prozesses dem Benutzer im Form einer Benachrichtigung mitgeteilt werden. Daher zeigt OpenVPN für Android immer seine eigene Benachrichtigung an. Die Schlüssel Benachrichtigung, die auch im letzten Eintrag erklärt wird, zählt leider nicht als Benachrichtigung, die der Anwendung erlaubt mit höherer Priorität zu arbeiten.</string> - <string name="no_vpn_profiles_defined">Keine VPN Profile definiert.</string> - <string name="add_new_vpn_hint">Benutzen Sie <img src=\"ic_menu_add\"/> um ein neues VPN anzulegen</string> - <string name="vpn_import_hint">Benutzen Sie <img src=\"ic_menu_archive\"/> um ein vorhandenes (.ovpn oder .conf) Profil von Ihrer SD Karte zu importieren</string> - <string name="faq_hint">Lesen Sie auch die FAQ. Dort befindet sich eine Schnellstart Anleitung</string> - <string name="faq_routing_title">Routing/Netzwerk Konfiguration</string> - <string name="faq_routing">In dieser Anwendung wird die Routing und Netzwerkkonfiguration nicht mit den traditionellen ifconfig/route Kommandos konfiguriert sondern mittels der VPNService API. Diese erwartet eine Tunnel IP Adresse und die Netzwerke, die über den Tunnel geroutet werden sollen. Insbesondere wird keine Gateway oder Peer IP Adresse benötigt. Die Anwendung ignoriert diese daher auch beim Import. Dass die Verbindung zum VPN Server nicht über den Tunnel geroutet wird, wird auch über die VPNService API sichergestellt ohne dass hierfür spezielle Routen nötig sind. Da nur Netzwerke, die über den Tunnel geroutet werden sollen, angeben werden können, ist es nicht möglich andere Routen zu unterstützen. Die Anwendung versucht daher andere Routen (wie z.B. route x.x.x.x y.y.y.y net_gateway)\" die nicht über den Tunnel geroutet werden sollen zu erkken und eine Menge von Routen zu berechnen die das Verhalten auf anderen Plattformen emulieren. Das Verbindungslog zeigt die genaue Konfiguration und die errechneten Routen beim Verbinden an.</string> + <string name="faq_duplicate_notification">Android beendet automatisch Anwendungen und Dienste, die im Hintergrund laufen, wenn der Arbeitsspeicher knapp wird. Wird dabei OpenVPN beendet, bricht die VPN-Verbindung ab. Um dies zu vermeiden, läuft der VPN-Prozess mit einer höheren Priorität. Um eine höhere Priorität nutzen zu können, muss dem Benutzer die Anwesenheit des Prozesses in Form einer Benachrichtigung mitgeteilt werden. Daher zeigt OpenVPN für Android immer seine eigene Benachrichtigung an. Die Schlüssel-Benachrichtigung, die auch im letzten Eintrag erklärt wird, zählt leider nicht als Benachrichtigung, die der Anwendung erlaubt, mit höherer Priorität zu arbeiten.</string> + <string name="no_vpn_profiles_defined">Keine VPN-Profile definiert.</string> + <string name="add_new_vpn_hint">Durch Berühren von <img src=\"ic_menu_add\"/> können Sie ein neues VPN anlegen</string> + <string name="vpn_import_hint">Berühren Sie <img src=\"ic_menu_archive\"/>, um ein vorhandenes Profil von Ihrer SD-Karte zu importieren</string> + <string name="faq_hint">Werfen Sie auch einen Blick in die FAQ. Dort befindet sich eine Schnellstart-Anleitung.</string> + <string name="faq_routing_title">Routing-/Netzwerk-Konfiguration</string> + <string name="faq_routing">In dieser App wird die Routing- und Netzwerkkonfiguration nicht mit den traditionellen ifconfig-/route-Kommandos konfiguriert, sondern mittels der VPNService-API. Diese erwartet eine Tunnel-IP-Adresse und die Netze, die über den Tunnel geroutet werden sollen. Insbesondere wird keine Gateway- oder Peer-IP-Adresse benötigt. Die Anwendung ignoriert diese daher auch beim Import. Die VPNService-API stellt weiterhin sicher, dass die Verbindung zum VPN-Server nicht über den Tunnel geroutet wird, ohne dass hierfür spezielle Routen nötig sind. Da nur Netze, die über den Tunnel geroutet werden sollen, angeben werden können, ist es nicht möglich andere Routen zu unterstützen. Die Anwendung versucht daher andere Routen (wie z.B. route x.x.x.x y.y.y.y net_gateway), die nicht über den Tunnel geroutet werden sollen, zu erkennen, und eine Menge von Routen zu berechnen, die das Verhalten auf anderen Plattformen emulieren. Das Verbindungsprotokoll zeigt die genaue Konfiguration und die errechneten Routen beim Verbinden an.</string> <string name="persisttun_summary">Verhindere Zurückfallen auf nicht VPN Verbindungen während OpenVPN neu verbindet.</string> - <string name="persistent_tun_title">Persistentes tun Device</string> - <string name="openvpn_log">OpenVPN-Log</string> - <string name="import_config">OpenVPN Konfiguration importieren</string> + <string name="persistent_tun_title">Persistentes tun-Device</string> + <string name="openvpn_log">OpenVPN-Protokoll</string> + <string name="import_config">OpenVPN-Konfiguration importieren</string> <string name="battery_consumption_title">Energieverbrauch</string> - <string name="baterry_consumption">In meinen eigenen Tests ist der Hauptgrund für den hohen Stromverbrauch von OpenVPN das Senden und Empfangen der Keepalive-Pakete. Die meisten OpenVPN-Server haben eine Konfigurationsoption wie \'keepalive 10 60\', was bedeutet, dass vom Client an den Server und vom Server an den Client alle zehn Sekunden ein Paket geschickt wird. <p> Diese Pakete sind klein und erzeugen keine große Datenmenge. Sie sorgen allerdings dafür, dass permanent Daten übertragen werden und somit auch die Mobilfunk- bzw. WLAN Einheit aktiv ist und steigern damit den Energieverbrauch. (Siehe auch <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>)<p> Diese keepalive Einstellung kann nicht auf dem Client geändert werden. Nur der Systemadministrator des VPN Servers kann die Einstellung ändern. lt;pgt; Leider hat eine keepalive Einstellung von mehr als 60 Sekunden unter udp Probleme mit einigen NAT-Gateways, die für inaktive Verbindungen nur eine sehr kurze Haltzeit haben und danach verwerfen (60s in meinen Tests). Benutzen von TCP mit langen Keep-Alive-Timeouts funktioniert, hat aber das TCP über TCP Problem. (Siehe <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\" > Why TCP Over TCP Is A Bad Idea </a>)</string> - <string name="faq_tethering">Die Funktion \"Anbindung & mobiler WLAN-Hotspot\" und die VPNService-API, die von diesem Programm verwendet wird, funktionieren nicht zusammen. Für weitere Details siehe <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=34\"> Issue #34 </a></string> + <string name="baterry_consumption">Nach meinen eigenen Tests ist der Hauptgrund für den hohen Stromverbrauch von OpenVPN das Senden und Empfangen der Keep-Alive-Pakete. Die meisten OpenVPN-Server haben eine Konfigurationsoption wie \'keepalive 10 60\', was bedeutet, dass vom Client an den Server und vom Server an den Client alle zehn Sekunden ein Paket geschickt wird. <p> Diese Pakete sind klein und erzeugen keine große Datenmenge. Sie sorgen allerdings dafür, dass permanent Daten übertragen werden und somit auch die Mobilfunk- bzw. WLAN-Einheit aktiv ist und steigern damit den Energieverbrauch. (Siehe auch <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>)<p> Diese Keep-Alive-Einstellung kann nicht auf dem Client geändert werden. Nur der Systemadministrator des VPN-Servers kann die Einstellung ändern. <p> Leider hat eine Keep-Alive-Einstellung von mehr als 60 Sekunden unter UDP Probleme mit einigen NAT-Gateways, die für inaktive Verbindungen nur eine sehr kurze Haltezeit haben und danach verwerfen (60s in meinen Tests). Benutzen von TCP mit langen Keep-Alive-Timeouts funktioniert, hat aber das TCP-über-TCP-Problem. (Siehe <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\" > Why TCP Over TCP Is A Bad Idea </a>)</string> + <string name="faq_tethering">Die Funktion \"Anbindung & mobiler WLAN-Hotspot\" und die VPNService-API, die von dieser App verwendet wird, funktionieren nicht zusammen. Für weitere Details siehe <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=34\"> Issue #34 </a></string> <string name="vpn_tethering_title">VPN und \"Anbindung & mobiler WLAN-Hotspot\"</string> - <string name="connection_retries">Anzahl Verbindungsversuche</string> - <string name="reconnection_settings">Einstellungen für das Neuverbinden</string> - <string name="connectretrymessage">Anzahl von Sekunden zwischen Verbindungsversuchen.</string> - <string name="connectretrywait">Sekunden zwischen Verbindungsversuchen</string> - <string name="minidump_generated">Der OpenVPN Prozess ist unerwartet abgestürzt. Bitte erwägen Sie die Option \"Minidump senden\" im Hauptmenü</string> + <string name="connection_retries">Verbindungsversuche</string> + <string name="reconnection_settings">Verbindungseinstellungen</string> + <string name="connectretrymessage">Zeit, die zwischen zwei Verbindungsversuchen gewartet wird.</string> + <string name="connectretrywait">Zeit zwischen Verbindungsversuchen</string> + <string name="minidump_generated">Der OpenVPN-Prozess ist unerwartet abgestürzt. Bitte erwägen Sie die Option \"Minidump an Entwickler senden\" im Hauptmenü</string> <string name="send_minidump">Minidump an Entwickler senden</string> - <string name="send_minidump_summary">Sendet Debugging Informationen des letzten Absturzes an den Entwickler</string> + <string name="send_minidump_summary">Informationen über den letzten Absturz zur Fehlersuche an den Entwickler senden</string> <string name="notifcation_title">OpenVPN - %s</string> <string name="session_ipv4string">%1$s - %2$s</string> <string name="session_ipv6string">%1$s - %3$s, %2$s</string> @@ -241,13 +241,13 @@ <string name="state_wait">Warte auf Serverantwort</string> <string name="state_auth">Authentifiziere</string> <string name="state_get_config">Warte auf Clientkonfiguration</string> - <string name="state_assign_ip">Weise IP Adressen zu</string> - <string name="state_add_routes">Hinzufügen von Routen</string> + <string name="state_assign_ip">Weise IP-Adressen zu</string> + <string name="state_add_routes">Lege Routen an</string> <string name="state_connected">Verbunden</string> <string name="state_disconnected">Trennen</string> <string name="state_reconnecting">Wiederverbinden</string> <string name="state_exiting">Beende</string> - <string name="state_noprocess">Kein OpenVPN Prozess</string> + <string name="state_noprocess">OpenVPN läuft nicht</string> <string name="state_resolve">Löse Hostnamen auf</string> <string name="state_tcp_connect">Verbinde (TCP)</string> <string name="state_auth_failed">Authentifizierung fehlgeschlagen</string> @@ -256,53 +256,53 @@ <string name="notifcation_title_notconnect">Nicht verbunden</string> <string name="start_vpn_title">Verbinde mit VPN %s</string> <string name="start_vpn_ticker">Verbinde mit VPN %s</string> - <string name="jelly_keystore_alphanumeric_bug">Einige Versionen von Android 4.1 haben Probleme, wenn der Name des im Zertifikat Keystore gespeicherten Zertifikates nicht alphanumerische Zeichen (wie Leerzeichen, Unterstriche oder Bindestriche) enthält. Probieren Sie das Sie das Zertifikat mit einem Namen ohne Sonderzeichen zu importieren.</string> + <string name="jelly_keystore_alphanumeric_bug">Einige Versionen von Android 4.1 haben Probleme, wenn der Name des im Zertifikatsspeicher gespeicherten Zertifikates nicht alphanumerische Zeichen (wie Leerzeichen, Unterstriche oder Bindestriche) enthält. Probieren Sie, das Zertifikat mit einem Namen ohne Sonderzeichen zu importieren</string> <string name="encryption_cipher">Verschlüsselungsalgorithmus</string> - <string name="packet_auth">Packetauthentifizierung</string> + <string name="packet_auth">Paket-Authentifizierung</string> <string name="auth_dialog_title">Geben Sie den Authentifizierungsalgorithmus an</string> <string name="built_by">compiliert von %s</string> <string name="debug_build">Testversion</string> <string name="official_build">offizielle Version</string> - <string name="make_selection_inline">Ins Profil einbetten</string> - <string name="crashdump">Crashlog</string> + <string name="make_selection_inline">In das Profil einbetten</string> + <string name="crashdump">Absturzinformationen</string> <string name="add">Hinzufügen</string> <string name="send_config">Konfigurationsdatei senden</string> <string name="complete_dn">Völlständiger DN</string> <string name="remotetlsnote">Ihre importierte Konfiguration verwendete die alte VERALTETE tls-remote-Option, die ein anderes DN-Format verwendet.</string> - <string name="rdn">RDN (common name)</string> - <string name="rdn_prefix">RDN Präfix</string> + <string name="rdn">RDN (Common Name)</string> + <string name="rdn_prefix">RDN-Präfix</string> <string name="tls_remote_deprecated">tls-remote (VERALTET)</string> - <string name="help_translate">Sie können helfen die Übersetzung zu verbessern auf der Website http://crowdin.net/project/ics-openvpn/invite</string> - <string name="prompt">%1$s versucht %2$s zu steuern</string> - <string name="remote_warning">Wenn Sie fortfahren, gestatten Sie der App OpenVPN für Android komplett zu kontrollieren und den gesamten Netzwerkverkehr abzufangen. <b> Akzeptieren Sie nur, wenn Sie der App vertrauen. </b> Anderenfalls riskieren Sie, dass Ihre Daten von schädlicher Software manipuliert werden</string> + <string name="help_translate">Sie können helfen, die Übersetzung zu verbessern: Besuchen Sie http://crowdin.net/project/ics-openvpn/invite</string> + <string name="prompt">%1$s versucht, %2$s zu steuern</string> + <string name="remote_warning">Wenn Sie fortfahren, gestatten Sie der App, OpenVPN für Android komplett zu kontrollieren und den gesamten Netzwerkverkehr abzufangen.<b>Akzeptieren Sie nur, wenn Sie der App vertrauen.</b>Anderenfalls riskieren Sie, dass Ihre Daten von schädlicher Software manipuliert werden.</string> <string name="remote_trust">Ich vertraue dieser App.</string> <string name="no_external_app_allowed">Keine App für die Verwendung der API freigegeben</string> - <string name="allowed_apps">Freigegebene Apps: %s</string> + <string name="allowed_apps">Zugelassene Apps: %s</string> <string name="clearappsdialog">Liste der freigegeben externen Apps löschen? \nAktuelle Liste der freigegebenen Apps:\n\n%s</string> - <string name="screenoff_summary">Pausiert das VPN, wenn der Bildschirm aus ist und weniger als 64 kB in 60 Sekunden übertragen wurden. Falls die Option \"Persistentes tun Device\" ausgewählt ist, wird durch das Pausieren des VPNs das Gerät KEINE Netzwerkverbindung haben. Ohne die \"Persistentes tun Device\" Option, benutzt das Gerät die normal (ungesicherte) Internetverbindung, wenn das VPN pausiert wird.</string> - <string name="screenoff_title">Bei ausgeschalteten Bildschirm VPN Verbindung pausieren</string> - <string name="screenoff_pause">Pausiere VPN Verbindung da weniger als %1$s in %2$ss.</string> - <string name="screen_nopersistenttun">Warnung: Persistentes tun Device für dieses VPN nicht aktiviert. Der Netzwerkverkehr nutzt die normale Internet Verbindung, wenn der Bildschirm aus ist.</string> - <string name="save_password">Passwort merken</string> - <string name="pauseVPN">VPN pausieren</string> + <string name="screenoff_summary">VPN anhalten, wenn der Bildschirm ausgeschaltet ist und weniger als 64 kB in 60 Sekunden übertragen wurden. Falls die Option \"Persistentes tun-Device\" ausgewählt ist, wird durch das Gerät nach dem Anhalten des VPNs KEINE Netzwerkverbindung haben. Ohne die Option \"Persistentes tun-Device\" benutzt das Gerät die normale (ungesicherte) Internetverbindung, wenn das VPN angehalten wird.</string> + <string name="screenoff_title">Anhalten bei Inaktivität</string> + <string name="screenoff_pause">VPN-Verbindung wird angehalten, da weniger als %1$s in %2$ss</string> + <string name="screen_nopersistenttun">Warnung: Persistentes tun-Device für dieses VPN nicht aktiviert. Der Netzwerkverkehr nutzt die normale Internetverbindung, wenn der Bildschirm ausgeschaltet ist.</string> + <string name="save_password">Passwort speichern</string> + <string name="pauseVPN">VPN anhalten</string> <string name="resumevpn">VPN fortsetzen</string> - <string name="state_userpause">VPN Verbindung durch Benutzer pausiert</string> - <string name="state_screenoff">VPN pausiert wegen Inaktitvität pausiert (Bildschirm aus)</string> - <string name="device_specific">Geräte spezifische Hacks</string> - <string name="cannotparsecert">Kann Zertifikatsinformationen nicht anzeigen.</string> + <string name="state_userpause">VPN-Verbindung durch Benutzer angehalten</string> + <string name="state_screenoff">VPN auf Grund von Inaktitvität angehalten (Bildschirm ausgeschaltet)</string> + <string name="device_specific">Gerätespezifische Hacks</string> + <string name="cannotparsecert">Zertifikatsinformationen können nicht angezeigt werden</string> <string name="appbehaviour">Anwendung</string> <string name="vpnbehaviour">VPN</string> - <string name="allow_vpn_changes">Änderungen an VPN-profilen zulassen</string> - <string name="hwkeychain">Im Hardware Keystore gespeichert:</string> - <string name="permission_icon_app">Symbol der Anwendung, die versucht OpenVPN für Android zu kontrollieren</string> - <string name="faq_vpndialog43">Beginnend mit Android 4.3 wird der VPN-Bestätigungsdialog vor \"überlappenden Anwendungen\" geschützt. Dadurch kann es vorkommen, dass der Dialog nicht auf Eingaben reagiert. Eine Anwendung benutzen, die Overlays verwendet, kann dieses Verhalten verursachen. Sollten Sie solch eine verursachende Anwendung finden, kontaktieren Sie dessen Entwickler. Dieses Problem betrifft alle VPN-Anwendungen ab Android 4.3. Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=185\" > Issue 185 <a> für zusätzliche Details \"</string> + <string name="allow_vpn_changes">Änderungen an VPN-Profilen zulassen</string> + <string name="hwkeychain">Im Hardware-Zertifikatsspeicher gespeichert:</string> + <string name="permission_icon_app">Symbol der App, die versucht, OpenVPN für Android zu steuern</string> + <string name="faq_vpndialog43">Beginnend mit Android 4.3 wird der VPN-Bestätigungsdialog vor \"überlappenden Anwendungen\" geschützt. Dadurch kann es vorkommen, dass der Dialog nicht auf Eingaben reagiert. Die Verwendung von Apps, die Overlays verwenden, kann dieses Verhalten verursachen. Sollten Sie solch eine verursachende App finden, kontaktieren Sie dessen Entwickler. Dieses Problem betrifft alle VPN-Anwendungen ab Android 4.3. Siehe auch <a href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=185\" > Issue 185 <a> für zusätzliche Details</string> <string name="faq_vpndialog43_title">VPN-Bestätigungsdialog ab Android 4.3</string> <string name="donatePlayStore">Alternativ können Sie mir per Play Store Geld zukommen lassen:</string> <string name="thanks_for_donation">Vielen Dank für die %s Spende!</string> <string name="logCleared">Protokoll gelöscht.</string> <string name="show_password">Passwort anzeigen</string> - <string name="keyChainAccessError">KeyChain Zugriffsfehler: %s</string> - <string name="timestamp_short">Kurze</string> + <string name="keyChainAccessError">Fehler beim Zugriff auf den Zertifikatsspeicher: %s</string> + <string name="timestamp_short">Kurz</string> <string name="timestamp_iso">ISO</string> <string name="timestamps">Zeitstempel</string> <string name="timestamps_none">Keine</string> @@ -312,28 +312,28 @@ <string name="logview_options">Ansichtsoptionen</string> <string name="unhandled_exception">Unbehandelte Ausnahme: %1$s\n\n%2$s</string> <string name="unhandled_exception_context">%3$s: %1$s\n\n%2$s</string> - <string name="faq_system_dialog_xposed">Wenn Sie ihr Gerät gerootet haben können Sie das <a href=\"http://xposed.info/\">Xposed Framework</a> und das <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog confirm Modul</a> auf eigene Gefahr installieren.</string> - <string name="full_licenses">Komplette Lizenzen</string> - <string name="blocklocal_summary">Netze, die direkt über ein lokales Interfaces erreicht werden können werden nicht über das VPN geroutet. Deaktivieren dieser Option leitet allen Verkehr, der für lokale Netzwerke bestimmt ist, über das VPN.</string> - <string name="blocklocal_title">VPN für lokale Netzwerke umgehen</string> + <string name="faq_system_dialog_xposed">Wenn Sie ihr Gerät gerootet haben, können Sie das <a href=\"http://xposed.info/\">Xposed Framework</a> und das <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog confirm-Modul</a> auf eigene Gefahr installieren</string> + <string name="full_licenses">Vollständige Lizenzen</string> + <string name="blocklocal_summary">Netze, die direkt über ein lokales Interface erreicht werden können, werden nicht über das VPN geroutet. Deaktivieren dieser Option leitet allen Verkehr, der für lokale Netze bestimmt ist, über das VPN.</string> + <string name="blocklocal_title">VPN für lokale Netze umgehen</string> <string name="userpw_file">Datei mit Benutzername und Passwort</string> <string name="imported_from_file">[Importiert aus %s]</string> <string name="files_missing_hint">Einige Dateien konnten nicht gefunden werden. Bitte wählen Sie diese manuell aus:</string> - <string name="openvpn_is_no_free_vpn">Um diese Anwendung nutzen zu können brauchen Sie einen OpenVPN fähigen Server. Diese werden häufig von Ihrer Firma oder Universität bereitgestellt. Besuchen Sie http://community.openvpn.net/ um mehr über OpenVPN zu erfahren und wie Sie Ihren eigenen Server aufsetzen können.</string> + <string name="openvpn_is_no_free_vpn">Um diese Anwendung nutzen zu können, benötigen Sie einen OpenVPN-fähigen Server. Diese werden häufig von Firmen oder Universitäten bereitgestellt. Besuchen Sie http://community.openvpn.net/ für weitere Informationen über OpenVPN und das Einrichten eines eigenen Servers.</string> <string name="import_log">Import-Protokoll:</string> - <string name="ip_looks_like_subnet">VPN-Topologie \"%3$s\" wurde angegeben, die Interface Konfiguration \'ifconfig %1$s %2$s sieht wie eine IP-Adresse mit einer Netzwerkmaske. Topologie \"subnet\" wird angenommen.</string> - <string name="mssfix_invalid_value">mssfix Wert muss eine Zahl zwischen 0 und 9000 sein</string> - <string name="mssfix_value_dialog">Ändere TCP-Verbindungen, die über den Tunnel laufen, so dass die resultierende UDP-Paketgröße nach der Enkapsulierung durch OpenVPN auf diesen Wert beschränkt bleibt. (Standardwert ist 1450)</string> - <string name="mssfix_checkbox">Überschreiben des MSS-Wert von TCP-Nutzlast</string> - <string name="mssfix_dialogtitle">Setze MSS von TCP-Nutzlast</string> + <string name="ip_looks_like_subnet">VPN-Topologie \"%3$s\" wurde angegeben, die Interface-Konfiguration \'ifconfig %1$s %2$s sieht allerdings wie eine IP-Adresse mit einer Netzwerkmaske aus. Topologie \"subnet\" wird angenommen.</string> + <string name="mssfix_invalid_value">Wert muss eine Zahl zwischen 0 und 9000 sein</string> + <string name="mssfix_value_dialog">TCP-Verbindungen, die über den Tunnel laufen, anweisen, ihre maximale Paketgröße so einzustellen, dass die resultierende UDP-Paketgröße nach der Enkapsulierung durch OpenVPN auf den hier eingestellten Wert beschränkt bleibt. (Standardwert ist 1450)</string> + <string name="mssfix_checkbox">MSS-Wert der TCP-Nutzlast überschreiben</string> + <string name="mssfix_dialogtitle">MSS der TCP-Nutzlast</string> <string name="client_behaviour">Client-Verhalten</string> - <string name="clear_external_apps">Widerrufe Berechtigungen OpenVPN zu steuern</string> + <string name="clear_external_apps">Berechtigungen für die Steuerung von OpenVPN widerrufen</string> <string name="loading">Wird geladen…</string> - <string name="allowed_vpn_apps_info">Erlaubte Apps für das VPN: %1$s</string> - <string name="disallowed_vpn_apps_info">Verbotene Apps für das VPN: %1$s</string> - <string name="app_no_longer_exists">Anwendung mit Paketnamen \'%s\' ist nicht mehr installiert, wird von der Liste der erlaubten/nicht erlaubten VPN Anwendungen gelöscht.</string> - <string name="vpn_disallow_radio">VPN für alle Anwendung ausgenommen den ausgewählten</string> - <string name="vpn_allow_radio">VPN nur für die ausgewählten Anwendungen</string> + <string name="allowed_vpn_apps_info">Zugelassene Apps für das VPN: %1$s</string> + <string name="disallowed_vpn_apps_info">Nicht zugelassene Apps für das VPN: %1$s</string> + <string name="app_no_longer_exists">Die App \'%s\' ist nicht mehr installiert und wird daher von der Liste der erlaubten/nicht erlaubten VPN-Anwendungen entfernt</string> + <string name="vpn_disallow_radio">VPN wird für alle Apps mit Ausnahme der ausgewählten verwendet</string> + <string name="vpn_allow_radio">VPN wird nur für die ausgewählten Apps verwendet</string> <string name="query_delete_remote">Servereintrag entfernen?</string> <string name="keep">Behalten</string> <string name="delete">Entfernen</string> @@ -341,58 +341,64 @@ <string name="remote_random">Beim Verbinden Servereinträge in zufälliger Reihenfolge verwenden</string> <string name="remote_no_server_selected">Sie müssen mindestens einen Server definieren und aktivieren.</string> <string name="server_list">Serverliste</string> - <string name="vpn_allowed_apps">Erlaubte Anwendungen</string> + <string name="vpn_allowed_apps">Zugelassene Apps</string> <string name="advanced_settings">Erweiterte Einstellungen</string> <string name="payload_options">Nutzlast-Optionen</string> <string name="tls_settings">TLS-Einstellungen</string> <string name="no_remote_defined">Keine Server definiert</string> - <string name="duplicate_vpn">VPN Profil duplizieren</string> - <string name="duplicate_profile_title">VPN Profil duplizieren: %s</string> - <string name="show_log">Log anzeigen</string> - <string name="faq_android_clients">Es gibt es mehrere OpenVPN-Clients für Android. Die am häufigsten genutzten sind OpenVPN für Android (dieser Client), OpenVPN Connect und OpenVPN Settings. <p> Die Clients in zwei Gruppen eingeteilt werden können: OpenVPN für Android und OpenVPN Connect verwenden die offizielle VPNService-API (Android 4.0+) und erfordern keine Rootrechte und OpenVPN-Settings, das Rootrechte benötigt. < p > OpenVPN für Android ist ein von Arne Schwabe entwickelter Open-Source-Client. Es richtet sich an fortgeschrittene Benutzer und bietet viele erweiterete Einstellungen sowie die Möglichkeit, Profile aus Dateien zu importieren und das konfigurieren und ändern von Profilen innerhalb der App. Der Client basiert auf der Community-Version von OpenVPN 2.x und kann als semioffizieller Client der community angesehen werden. <p> OpenVPN Connect ist ein Closed-Source-Client, der von OpenVPN Technologies, Inc. entwickelt wird. Der Client ist für die normale Verwendung und auf den durchschnittlichen Benutzer ausgerichtet werden und ermöglicht den Import von OpenVPN-Profilen ohne diese innerhalb der App ändern zu können. Dieser Client basiert auf der OpenVPN C++ Neuimplementierung des OpenVPN-Protokolls (Diese war erforderlich, damit OpenVPN Technologies, Inc, eine iOS-app von OpenVPN veröffentlichen onnte). Dieser Client ist auch der offizielle Client von OpenVPN Technologies, Inc. < p> OpenVPN Settings ist der älteste von den Clients und auch eine Benutzeroberfläche für das Open-Source OpenVPN. Im Gegensatz zu OpenVPN für Android es erfordert es Rootrechte und verwendet nicht die VPNService-API; benötigt aber auch nicht Android 4.0 +</string> - <string name="faq_androids_clients_title">Unterschiede zwischen Android OpenVPN Apps</string> - <string name="ignore_multicast_route">Ignoriere Multicastroute: %s</string> - <string name="ab_only_cidr">Android unterstützt nur CIDR Routen. Da Routen, die nicht CIDR sind, fast nie verwendet werden, wird OpenVPN für Android eine /32 Route für nicht konforme Routen verwenden und eine Warnung ausgegeben.</string> - <string name="ab_tethering_44">Verbindungsfreigabe (WiFi-Hotspot/Tethering) funktioniert, während ein VPN aktiv ist, nutzt aber NICHT die VPN Verbindung.</string> - <string name="ab_kitkat_mss">Frühe KitKat-Version setzen einen falschen MSS-Wert für TCP-Verbindungen (#61948). Versuchen Sie die mssfix-Option zu aktivieren, um dieses Problem zu umgehen.</string> - <string name="ab_proxy">Android wird ihre Proxy-Einstellungen für die WLan-Verbindung beibehalten wenn keine DNS-Servereinstellungen vorhanden sind. OpenVPN für Android gibt einen entsprechenden Warnhinweis in der Log-Datei aus.<p> Wenn eine VPN-Verbindung einen DNS-Server vorgibt kann kein Proxy genutzt werden. Es gibt keine API um einen Proxy-Server für eine VPN-Verbindung zu nutzen.</p></string> - <string name="ab_lollipop_reinstall">Ihre VPN-Anwendung funktioniert möglicherweise nicht mehr wenn diese erst de- und später neu installiert wird. Für Details siehe #80074</string> - <string name="ab_not_route_to_vpn">Die konfigurierte Klient-IP-Adresse und die IP-Adressen in die Netzwerkmaske sind nicht in das VPN geroutet. OpenVPN umgeht diesen Fehler, indem eine Route hinzugefügt wird, die zu der Client-IP-Adresse und deren Netzmaske passt.</string> - <string name="ab_persist_tun">Beim Öffnen eines neuen VPN devices (tun) während eines bereits geöffnet ist (für persist-tun Unterstützung) führt zum Absturz des VPN Dienstes auf Android, der nur durch einen Neustart behoben werden kann. OpenVPN für Android versucht deshalb dieses erneute Öffnen zu vermeiden. Wenn ein erneutes Öffnen zwingend notwendig ist, wird erst das alte Device geschlossen before ein neues geöffnet wird. Dies kann dazu führen, dass teilweise Pakete unverschlüsselt über die normal Internetverbindung gesendet werden. Auch mit diesem Workaround stürzt teilweise der VPN Dienst ab und erfordert einen Neustart des Gerätes.</string> + <string name="duplicate_vpn">VPN Profil kopieren</string> + <string name="duplicate_profile_title">VPN Profil kopieren: %s</string> + <string name="show_log">Protokoll anzeigen</string> + <string name="faq_android_clients">Es gibt mehrere OpenVPN-Clients für Android. Die am häufigsten genutzten sind OpenVPN für Android (dieser Client), OpenVPN Connect und OpenVPN Settings. <p> Die Clients können in zwei Gruppen eingeteilt werden: einerseits OpenVPN für Android und OpenVPN Connect, die die offizielle VPNService-API (Android 4.0+) verwenden und daher keine Root-Rechte erfordern, und andererseits OpenVPN Settings, das Root-Rechte benötigt. <p> OpenVPN für Android ist ein von Arne Schwabe entwickelter Open-Source-Client. Es richtet sich an fortgeschrittene Benutzer und bietet viele erweiterte Einstellungen: zum Beispiel die Möglichkeit, Profile aus Dateien zu importieren, oder das Konfigurieren und Ändern von Profilen innerhalb der App. Der Client basiert auf der Community-Version von OpenVPN 2.x und kann als \"semioffizieller\" Client der Community angesehen werden. <p> OpenVPN Connect ist ein Closed-Source-Client, der von OpenVPN Technologies, Inc. entwickelt wird. Der Client ist für die normale Verwendung und auf den durchschnittlichen Benutzer ausgerichtet und ermöglicht den Import von OpenVPN-Profilen, ohne diese innerhalb der App ändern zu können. Dieser Client basiert auf der OpenVPN-C++-Neuimplementierung des OpenVPN-Protokolls (welche hauptsächlich dafür entwickelt wurde, dass OpenVPN Technologies, Inc. eine OpenVPN-App für iOS veröffentlichen konnte). Dieser Client ist auch der offizielle Client von OpenVPN Technologies, Inc. <p> OpenVPN Settings ist der älteste der Clients und auch eine Benutzeroberfläche für das Open-Source-OpenVPN. Im Gegensatz zu OpenVPN für Android erfordert es Root-Rechte und verwendet nicht die VPNService-API; benötigt aber auch nicht Android 4.0+.</string> + <string name="faq_androids_clients_title">Unterschiede zwischen den Android-OpenVPN-Apps</string> + <string name="ignore_multicast_route">Ignoriere Multicast-Route: %s</string> + <string name="ab_only_cidr">Android unterstützt nur CIDR-Routen. Da Routen, die nicht CIDR sind, fast nie verwendet werden, wird OpenVPN für Android eine /32 Route für nicht konforme Routen verwenden und eine Warnung ausgegeben.</string> + <string name="ab_tethering_44">Verbindungsfreigabe (WiFi-Hotspot/Tethering) funktioniert, während ein VPN aktiv ist, nutzt aber NICHT die VPN-Verbindung.</string> + <string name="ab_kitkat_mss">Frühe KitKat-Version setzen einen falschen MSS-Wert für TCP-Verbindungen (#61948). Versuchen Sie, die mssfix-Option zu aktivieren, um dieses Problem zu umgehen.</string> + <string name="ab_proxy">Android wird ihre Proxy-Einstellungen für die WLAN-Verbindung beibehalten, wenn keine DNS-Servereinstellungen vorhanden sind. OpenVPN für Android gibt einen entsprechenden Warnhinweis in der Protokolldatei aus.<p>Wenn eine VPN-Verbindung einen DNS-Server vorgibt, kann kein Proxy genutzt werden. Es gibt keine API für die Nutzungs eines Proxy-Servers für eine VPN-Verbindung.</p></string> + <string name="ab_lollipop_reinstall">Ihre VPN-App funktioniert möglicherweise nicht mehr, wenn diese erst de- und später neu installiert wird. Für Details siehe #80074</string> + <string name="ab_not_route_to_vpn">Die konfigurierte Client-IP-Adresse und die IP-Adressen in deren Netzwerkmaske sind nicht in das VPN geroutet. OpenVPN umgeht diesen Fehler, indem eine Route hinzugefügt wird, die zu der Client-IP-Adresse und deren Netzmaske passt.</string> + <string name="ab_persist_tun">Das Öffnen eines neuen tun-Devices, während ein weiteres bereits für persist-tun-Unterstützung geöffnet ist, führt zum Absturz des VPN-Dienstes, der nur durch einen Neustart behoben werden kann. OpenVPN für Android versucht daher, dieses erneute Öffnen zu vermeiden. Wenn ein erneutes Öffnen zwingend notwendig ist, wird zunächst das alte Device geschlossen, bevor ein neues geöffnet wird. Dies kann dazu führen, dass teilweise Pakete unverschlüsselt über die normal Internetverbindung gesendet werden. Auch mit diesem Workaround stürzt der VPN-Dienst möglicherweise ab, was einen Neustart des Gerätes erfordert.</string> <string name="ab_secondary_users">VPN funktioniert überhaupt nicht für die Sekundärnutzer.</string> - <string name="ab_kitkat_reconnect">Mehrere Benutzer berichten, dass die mobile Verbindung/Mobile Datenverbindung häufig getrennt wird, wenn ein VPN aktiv. Das Verhalten scheint nur einige Anbieter/Mobilgerät-Kombination beeinflussen und bisher konnte weder Ursache noch Lösung für den Bug identifiziert werden.</string> - <string name="ab_vpn_reachability_44">Nur Ziele, die ohne VPN erreichbar sind, sind auch mit VPN erreichbar. IPv6 VPNs funktionieren überhaupt nicht.</string> - <string name="ab_only_cidr_title">Nicht CIDR konforme Routen</string> + <string name="ab_kitkat_reconnect">Mehrere Benutzer berichten, dass die mobile Datenverbindung bei Verwendund eines VPNs häufig getrennt wird. Das Verhalten scheint nur einige Anbieter/Mobilgerät-Kombination zu beeinflussen und bisher konnte weder eine Ursache noch eine Lösung für dieses Problem identifiziert werden.</string> + <string name="ab_vpn_reachability_44">Nur Ziele, die ohne VPN erreichbar sind, sind auch mit VPN erreichbar. IPv6-VPNs funktionieren überhaupt nicht.</string> + <string name="ab_only_cidr_title">Nicht CIDR-konforme Routen</string> <string name="ab_proxy_title">Proxy-Verhalten für VPNs</string> - <string name="ab_lollipop_reinstall_title">Neuinstallation von VPN-apps</string> + <string name="ab_lollipop_reinstall_title">Neuinstallation von VPN-Apps</string> <string name="version_upto">%s und früher</string> <string name="copy_of_profile">Kopie von %s</string> - <string name="ab_not_route_to_vpn_title">Route zur der konfigurierten VPN IP Adresse</string> + <string name="ab_not_route_to_vpn_title">Route zur konfigurierten VPN-IP-Adresse</string> <string name="ab_kitkat_mss_title">Falscher MSS-Wert für VPN-Verbindung</string> <string name="ab_secondary_users_title">Sekundäre Tablet-Nutzer</string> - <string name="custom_connection_options_warng">Definieren Sie benutzerdefinierte verbindungsspezifische Optionen. Seien Sie vorsichtig!</string> - <string name="custom_connection_options">Benutzerdefinierte Optionen</string> + <string name="custom_connection_options_warng">Hier können Sie eigene verbindungsspezifische Optionen festlegen. Seien Sie vorsichtig!</string> + <string name="custom_connection_options">Eigene Optionen</string> <string name="remove_connection_entry">Verbindung entfernen</string> - <string name="ab_kitkat_reconnect_title">Sporadische Verlust der Verbindung mit dem Mobilfunknetz</string> - <string name="ab_vpn_reachability_44_title">Entfernte Netzwerkresourcen nicht erreichbar</string> - <string name="ab_persist_tun_title">Persistenter tun Modus</string> + <string name="ab_kitkat_reconnect_title">Sporadischer Verlust der Verbindung mit dem Mobilfunknetz</string> + <string name="ab_vpn_reachability_44_title">Entfernte Netzwerkressourcen nicht erreichbar</string> + <string name="ab_persist_tun_title">Persistenter tun-Modus</string> <string name="version_and_later">%s und neuer</string> <string name="tls_cipher_alert_title">Verbindung schlägt mit \"SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure\" fehl</string> - <string name="tls_cipher_alert">OpenVPN für die Android Versionen ab 0.6.29 (März 2015) verwenden einen sicheren Default für die zulässigen TLS Chiffren (\"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). Leider hat Weglassen der weniger sicheren Verschlüsselungschiffren und Exportchfriffen, vor allem aber der Wegfall der Cipher Suites, die keine Unterstützung für Perfect-Forward-Secrecy (Diffie-Hellman) einige Probleme verursacht. In der Regel sind dies gut gemeinte, aber schlecht ausgeführte Versuche, die TLS Sicherheit durch eine händische Wahl zu verbessern oder bei einigen eingebetteten Betriebssysteme mit abgespeckten OpenSSL (z.B. MikroTik).\n Um dieses Problem lösen das Problem, setzen Sie die TLS-Verschlüsselung Einstellungen auf dem Server auf einen sinnvollen Standardwert wie z.B. tls-cipher \"DEFAULT: EXP: PSK: SRP: KRSA\". Als Workaround für Problem auf dem Client, fügen Sie die benutzerdefinierte Option tls-cipher DEFAULT dem VPN Profil hinzu um die weniger sicheren Chiffren wieder zuzulassen.</string> + <string name="tls_cipher_alert">OpenVPN für Android verwendet seit Version 0.6.29 (März 2015) einen sicheren Standardwert für die zulässigen TLS-Chiffren (\"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). Leider hat das Weglassen der weniger sicheren Verschlüsselungschiffren und Exportchiffren, vor allem aber der Wegfall der Cipher Suites ohne Unterstützung für Perfect-Forward-Secrecy (Diffie-Hellman), einige Probleme verursacht. Diese Probleme werden in der Regel durch gut gemeinte, aber schlecht ausgeführte Versuche, die TLS-Sicherheit durch eine händische Wahl zu verbessern oder durch einige eingebettete Betriebssysteme mit abgespecktem OpenSSL (z.B. MikroTik) verursacht.\n Um dieses Problem zu lösen, setzen Sie die TLS-Verschlüsselungs-Einstellungen auf dem Server auf einen sinnvollen Standardwert wie z.B. tls-cipher \"DEFAULT: EXP: PSK: SRP: KRSA\". Falls diese nicht möglich ist, können Sie als clientseitigen Workaround dem VPN-Profil die benutzerdefinierte Option tls-cipher DEFAULT hinzufügen, um die weniger sicheren Chiffren wieder zuzulassen.</string> <string name="message_no_user_edit">Dieses Profil wurde von einer externen Anwendung (%s) hinzugefügt und als nicht vom Benutzer bearbeitbar markiert.</string> - <string name="crl_file">Zertifikatsperrliste</string> - <string name="service_restarted">Neustarten von OpenVPN Service (App vermutlich abgestürzt oder wegen Speicherdruck beendet)</string> - <string name="import_config_error">Importieren der Config ergab einen Fehler, kann diese nicht speichern</string> + <string name="crl_file">Zertifikats-Sperrliste</string> + <string name="service_restarted">OpenVPN-Dienst wird neu gestartet (App vermutlich abgestürzt oder wegen Speichermangels beendet)</string> + <string name="import_config_error">Importieren der Konfiguration ergab einen Fehler, kann diese nicht speichern</string> <string name="Search">Suche</string> - <string name="lastdumpdate">(Letzten Dump ist %1$d:%2$dh alt (%3$s))</string> + <string name="lastdumpdate">(Letzter Absturz war vor %1$d:%2$dh (%3$s))</string> <string name="clear_log_on_connect">Protokoll bei neuer Verbindung leeren</string> <string name="connect_timeout">Verbindungstimeout</string> - <string name="no_allowed_app">Keine erlaubte App hinzgefügt. Füge die App selbst (%s) hinzu um wenigsten eine App in der Liste der nicht erlaubten Anwendungen zu haben</string> - <string name="query_permissions_sdcard">OpenVPN für Android kann versuchen, die fehlende(n) Datei(en) auf der SD-Karte automatisch zu finden. Tippen Sie auf diese Meldung um die Berechtigungsanfrage zu starten.</string> + <string name="no_allowed_app">Keine erlaubte App hinzugefügt. Füge unsere eigene App (%s) hinzu, um zumindest eine App in der Liste der nicht erlaubten Anwendungen zu haben</string> + <string name="query_permissions_sdcard">OpenVPN für Android kann versuchen, die fehlende(n) Datei(en) auf der SD-Karte automatisch zu finden. Tippen Sie auf diese Meldung, um die Berechtigungsanfrage zu starten.</string> <string name="protocol">Protokoll</string> <string name="enabled_connection_entry">Aktiviert</string> - <string name="abi_mismatch">Bevorzugte native ABI Reihenfolge dieses Gerätes (%1$s) und die installierten nativen Bibliotheken (%2$s) unterscheiden sich</string> + <string name="abi_mismatch">Bevorzugte native ABI-Reihenfolge dieses Gerätes (%1$s) und die installierten nativen Bibliotheken (%2$s) unterscheiden sich</string> <string name="months_left">Noch %d Monate gültig</string> <string name="days_left">Noch %d Tage gültig</string> <string name="hours_left">Noch %d Stunden gültig</string> + <string name="permission_revoked">VPN-Berechtigung wurde vom Betriebssytem widerrufen (z.B. weil ein anderes VPN gestartet wurde); VPN wird gestoppt</string> + <string name="pushpeerinfo">Peer-Informationen senden</string> + <string name="pushpeerinfosummary">Weitere Informationen, wie z.B. SSL- und Android-Version, an den Server senden</string> + <string name="pw_request_dialog_title">%1$s benötigt</string> + <string name="pw_request_dialog_prompt">Geben Sie bitte das Passwort für das Profil %1$s ein</string> + <string name="menu_use_inline_data">Inline-Daten verwenden</string> </resources> diff --git a/app/src/main/res/values-es/strings-icsopenvpn.xml b/app/src/main/res/values-es/strings-icsopenvpn.xml index 203e51dc..324742de 100755 --- a/app/src/main/res/values-es/strings-icsopenvpn.xml +++ b/app/src/main/res/values-es/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-et/strings-icsopenvpn.xml b/app/src/main/res/values-et/strings-icsopenvpn.xml index dcc134bf..0a28199f 100755 --- a/app/src/main/res/values-et/strings-icsopenvpn.xml +++ b/app/src/main/res/values-et/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-fr/strings-icsopenvpn.xml b/app/src/main/res/values-fr/strings-icsopenvpn.xml index 3e9b416c..43737f3d 100755 --- a/app/src/main/res/values-fr/strings-icsopenvpn.xml +++ b/app/src/main/res/values-fr/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -180,6 +180,7 @@ <string name="keychain_nocacert">"Aucun certificat CA renvoyée lors de la lecture depuis le gestionnaire de clés. L\'authentification échouera probablement."</string> <string name="show_log_summary">"Affiche la fenêtre de log à la connexion. Cette fenêtre peut toujours être consultée à partir de la notification d\'état."</string> <string name="show_log_window">"Afficher la fenêtre de log"</string> + <string name="mobile_info">%10$s %9$s courir sur %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s)</string> <string name="error_rsa_sign">"Erreur de signature de la clé %1$s : %2$s par le gestionnaire d\'Android"</string> <string name="faq_system_dialogs">\"L\'avertissement de connexion au VPN qui vous informe que cette application peut intercepter tout le trafic est imposé par le système pour éviter les abus de l\'API du service VPN.\nLa notification de connexion au VPN (Le symbole qui ressemble à une clé) est aussi imposé par le système Android pour signaler une connexion VPN en cours de fonctionnement. Sur certaines images, cette notification joue un son.\nAndroid à introduit ces dialogues système pour votre propre sécurité et à fait en sorte d\'être impossible à contourner. (Cela peut inclure en plus une notification sonore pour certaines images)\"</string> @@ -349,4 +350,5 @@ Sur certaines images, cette notification joue un son.\nAndroid à introduit ces <string name="duplicate_vpn">Dupliquer le profil VPN</string> <string name="duplicate_profile_title">Duplicating profile: %s</string> <string name="show_log">Afficher le journal</string> + <string name="faq_android_clients">Il existe plusieurs clients OpenVPN pour Android. Les plus communs sont OpenVPN for Android (ce client), OpenVPN Connect, et OpenVPN Settings..<p>Les clients peuvent êtres regroupés en 2 groupes : OpenVPN for Android et OpenVPN Connect utilisent le service API officiel de VPNService (Android 4.0+) et ne nécessitent pas une élévation des privilèges (rootage), puis OpenVPN Settings qui nécessite le rootage.<p>OpenVPN for Android et un client « open source » développé par Arne Schwabe. Il est destiné aux utilisateurs avancés et comprend plusieurs paramètres, ainsi que la possibilité d\'importer les profils depuis des fichiers et de les configurer/changer à partir de l\'application. Le client est basé sur la version communautaire d\'OpenVPN. Il est basé sur le code source d\'OpenVPN 2.x. Ce client peut-être considérer en étant la version semi-officielle de la communauté.<p>OpenVPN Connect est un logiciel propriétaire développé par OpenVPN Technologies, Inc. Le client est destiné aux utilisateurs avec une connaissance moyenne et offre la possibilité d\'importer les profils OpenVPN. Ce client est basé sur une nouvelle réalisation du protocole OpenVPN C++ (ceci était nécessaire afin de permettre à OpenVPN Technologies, Inc. de publier une version iOS de l\'application OpenVPN). Ce client est le client officiel des technologies OpenVPN<p>OpenVPN Settings est le client le plus ancien et agit comme l\'interface utilisateur de la version « open source » d\'OpenVPN. Contrairement à OpenVPN for Android il ne nécessite pas le rootage et ne se sert pas du service API de VPNService. Il ne dépend pas sur Android 4.0+</string> </resources> diff --git a/app/src/main/res/values-hu/strings-icsopenvpn.xml b/app/src/main/res/values-hu/strings-icsopenvpn.xml index fcdf3f23..dd07abdb 100755 --- a/app/src/main/res/values-hu/strings-icsopenvpn.xml +++ b/app/src/main/res/values-hu/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-in/strings-icsopenvpn.xml b/app/src/main/res/values-in/strings-icsopenvpn.xml index 07415d29..132f25a1 100755 --- a/app/src/main/res/values-in/strings-icsopenvpn.xml +++ b/app/src/main/res/values-in/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -373,4 +373,9 @@ <string name="custom_connection_options_warng">Tentukan pengaturan untuk koneksi khusus . Gunakan dengan hati-hati</string> <string name="custom_connection_options">Pilihan buatan</string> <string name="remove_connection_entry">Hapus entri koneksi</string> + <string name="ab_kitkat_reconnect_title">Terputus acak dari jaringan selular</string> + <string name="ab_vpn_reachability_44_title">Rangkaian remote tak terjangkau</string> + <string name="ab_persist_tun_title">Modus terowongan bertahan</string> + <string name="version_and_later">%s dan yang lebih baru</string> + <string name="tls_cipher_alert_title">Sambungan gagal dengan peringatan kegagalan jabat tangan SSL23_GET_SERVER_HELLO:sslv3</string> </resources> diff --git a/app/src/main/res/values-it/strings-icsopenvpn.xml b/app/src/main/res/values-it/strings-icsopenvpn.xml index a8cafa72..feb61f0d 100755 --- a/app/src/main/res/values-it/strings-icsopenvpn.xml +++ b/app/src/main/res/values-it/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-ja/strings-icsopenvpn.xml b/app/src/main/res/values-ja/strings-icsopenvpn.xml index 93e82f79..7e8be056 100755 --- a/app/src/main/res/values-ja/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ja/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -13,7 +13,7 @@ <string name="select">選択</string> <string name="cancel">キャンセル</string> <string name="no_data">データなし</string> - <string name="useLZO">LZO 圧縮</string> + <string name="useLZO">LZO圧縮</string> <string name="client_no_certificate">証明書がありません。</string> <string name="client_certificate_title">クライアント証明書</string> <string name="client_key_title">クライアント証明書のキー</string> @@ -87,6 +87,7 @@ <string name="default_route_summary">すべての通信をVPN経由にします</string> <string name="use_default_title">既定の経路に使用</string> <string name="custom_route_message">カスタム経路を入力します。宛先のみをCIDR形式で指定します。例えば \"10.0.0.0/8 2002::/16\"と指定すれば10.0.0.0/8と2002::/16への通信はVPNに向けられます。</string> + <string name="custom_route_message_excluded">VPNを経由しないネットワークを指定します。カスタム経路と同じ書式を使用します。</string> <string name="custom_routes_title">カスタム経路情報</string> <string name="custom_routes_title_excluded">除外されたネットワーク</string> <string name="log_verbosity_level">ログの詳細度</string> @@ -236,6 +237,22 @@ OpenVPNの接続を保証するためには、アプリケーションを高い <string name="vpn_import_hint">SDカードからプロファイル(.ovpnや.conf)をインポートするには <img src=\"ic_menu_archive\"/> のアイコンを使用します。</string> <string name="faq_hint">FAQを確認してください。クイックスタートガイドがあります。</string> <string name="faq_routing_title">経路情報/インターフェース設定</string> + <string name="faq_routing">経路とインターフェースの設定は従来のifconfig/routeコマンドではなくVPNService APIを使用して行われます。 +その結果、経路の設定はほかのOSとは異なります。\n + +VPNトンネルの設定は、IPアドレスとこのインターフェースを経由すべきネットワークで構成されます。 +特に、対向側のアドレスやゲートウェイアドレスは必要とされません。 +VPNサーバに到達するための特別な経路(たとえばredirect-gatewayディレクティブを使用したとき)も必要ありません。 +従ってこのアプリが設定をインポートした際は、これらの設定を無視します。 +アプリは、VPNトンネルを経由しないサーバへの接続をVPNService APIによって保証されます。\n + +VPNService APIはVPNを経由すべきでないネットワークの指定を許可しません。 +回避策として、アプリはトンネルを経由すべきでないネットワーク(例 route x.x.x.x y.y.y.y net_gateway)を検知を試み、ほかのプラットフォームの挙動を再現するために除外すべき経路を計算します。ログウィンドウは成立した接続のVPNServiceの設定を表示します。\n + + + +こっそり: +Android 4.4以上はポリシールーティングを使用します。route/ifconfigコマンドは設定された経路を表示しません。代わりにip ruleまたはiptables -t mangle -Lを使用します。</string> <string name="persisttun_summary">OpenVPNが再接続試行中は、VPNなし状態を報告しません。</string> <string name="persistent_tun_title">永続的なTUNデバイス</string> <string name="openvpn_log">OpenVPN のログ</string> @@ -370,7 +387,7 @@ OpenVPNの接続を保証するためには、アプリケーションを高い <string name="duplicate_profile_title">プロファイルの複製:%s</string> <string name="show_log">ログを表示</string> <string name="faq_android_clients">Android用のOpenVPNクライアントは複数あります。主なものとしては「OpenVPN for Android」(このアプリ)「OpenVPN Connect」「OpenVPN Settings」があります。<p>クライアントは大きく2種類に分けられます。「OpenVPN for Android」「OpenVPN Connect」は公式なVPNService API (Android 4.0以降)を使用しroot権限は不要です。「OpenVPN Settings」はroot権限が必要です。<p>「OpenVPN for Android」はオープンソースのクライアントでArne Schwabeにより開発されています。詳しい人をターゲットとして、多くの設定とファイルからのプロファイルインポート、アプリ内でのプロファイル設定変更ができるようになっています。コミュニティ版のOpenVPN 2.xのソースコードをベースとしています。コミュニティの準公式クライアントとみなせます。<p>「OpenVPN Connect」はOpenVPN Technologies, Incにより開発されておりオープンソースではありません。より一般的な使い方と平均的なユーザをターゲットとしており、OpenVPNプロファイルのインポートができます。OpenVPNプロトコルのC++による再実装コードをベースとしています(これはOpenVPN Technologies, IncがiOS版を公開するために必要でした)。OpenVPN Technologies, Incの公式クライアントです。<p> 「OpenVPN Settings」は最も古いクライアントであり、オープンソースのOpenVPN用のUIです。「OpenVPN for Android」との大きな違いはroot権限を必要とし、かつVPNService APIを使用しないことです。Android 4.0以降に依存しません。</string> - <string name="faq_androids_clients_title">OpenVPN Androidクライアント間の違い</string> + <string name="faq_androids_clients_title">Android用OpenVPNクライアント間の違い</string> <string name="ignore_multicast_route">マルチキャストされた経路を無視します: %s</string> <string name="ab_only_cidr">AndroidはVPNへの経路としてCIDRのみサポートします。非CIDR経路はほとんど使用されないため、OpenVPN for Androidは非CIDR経路に/32を使用し、警告を発します。</string> <string name="ab_tethering_44">テザリングはVPNが接続中でも有効です。ただしテザリングした通信はVPNを使用できません。</string> @@ -394,7 +411,7 @@ OpenVPNの接続を保証するためには、アプリケーションを高い <string name="custom_connection_options">カスタムオプション</string> <string name="remove_connection_entry">接続エントリを削除します</string> <string name="ab_kitkat_reconnect_title">モバイルネットワークが突発的に切断される</string> - <string name="ab_vpn_reachability_44_title">リモートネットワークに到達できない</string> + <string name="ab_vpn_reachability_44_title">リモートネットワークに到達できません</string> <string name="ab_persist_tun_title">持続的なTUNモード</string> <string name="version_and_later">%s以降</string> <string name="tls_cipher_alert_title">SSL23_GET_SERVER_HELLO:sslv3 alert handshake failureで接続が失敗する</string> @@ -404,8 +421,10 @@ OpenVPNの接続を保証するためには、アプリケーションを高い <string name="service_restarted">OpenVPNを再起動しています(クラッシュしたか、メモリ不足により停止させられたため)</string> <string name="import_config_error">設定のインポートでエラーが発生したため、保存できません。</string> <string name="Search">検索</string> + <string name="lastdumpdate">(最後のダンプ %1$d:%2$d 経過 (%3$s))</string> <string name="clear_log_on_connect">新規接続時にログをクリアする</string> <string name="connect_timeout">接続タイムアウト</string> + <string name="no_allowed_app">許可されたアプリがありません。すべてのアプリを不許可にする場合は最低でも1つのアプリを許可する必要があるため、このアプリ (%s) を追加します。</string> <string name="query_permissions_sdcard">OpenVPN for Androidは見失ったファイルを自動でSDカードから再探索することができます。このメッセージをタップして権限のリクエストを行ってください。</string> <string name="protocol">プロトコル</string> <string name="enabled_connection_entry">有効</string> @@ -413,4 +432,10 @@ OpenVPNの接続を保証するためには、アプリケーションを高い <string name="months_left">残り %dヵ月</string> <string name="days_left">残り %d日</string> <string name="hours_left">残り %d時間</string> + <string name="permission_revoked">OSによりVPNの権限が取り消されました (ほかのVPNプログラムが動作した場合など)。VPNを停止します</string> + <string name="pushpeerinfo">ピア情報を送信する</string> + <string name="pushpeerinfosummary">追加の情報をサーバに送信する (SSLやAndroidのバージョン等)</string> + <string name="pw_request_dialog_title">%1$s </string> + <string name="pw_request_dialog_prompt">プロファイル %1$s のパスワードを入力してください</string> + <string name="menu_use_inline_data">インラインデータを使用する</string> </resources> diff --git a/app/src/main/res/values-ko/strings-icsopenvpn.xml b/app/src/main/res/values-ko/strings-icsopenvpn.xml index ce748cfa..640ee0f1 100755 --- a/app/src/main/res/values-ko/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ko/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -34,15 +34,15 @@ <string name="ipv4_dialog_title">CIDR 형식의 IPv4 주소/넷마스크를 입력 (예: 1.2.3.4/24)</string> <string name="ipv4_address">IPv4 주소</string> <string name="ipv6_address">IPv6 주소</string> - <string name="custom_option_warning">사용자 정의 OpenVPN 옵션을 입력하세요. 매우 조심하세요. 또한 많은 tun과 연관된 OpenVPN 설정은 VPN 설정의 설계로 인하여 지원 되지 않습니다. 중요한 옵션이 누락됐다고 생각되면 저자에게 연락하십시오</string> + <string name="custom_option_warning">사용자 정의 OpenVPN 옵션을 입력하십시오. 사용 시 유의하십시오. 또한 TUN과 연관된 많은 OpenVPN 설정은 안드로이드에서 지원하는 VPN 설정의 한계로 지원되지 않습니다. 중요한 옵션이 누락됐다고 생각되면 개발자에게 연락주십시오.</string> <string name="auth_username">계정</string> <string name="auth_pwquery">암호</string> <string name="static_keys_info">고정설정에는 TLS인증 키가 고정키로 사용됩니다</string> <string name="configure_the_vpn">VPN 설정</string> <string name="menu_add_profile">프로파일 추가</string> - <string name="add_profile_name_prompt">새 프로 파일을 식별 하는 이름을 입력 하십시오</string> + <string name="add_profile_name_prompt">새 프로파일에 사용할 이름을 입력하세요.</string> <string name="duplicate_profile_name">고유 프로필 이름을 입력 하십시오</string> - <string name="profilename">프로 파일 이름</string> + <string name="profilename">프로파일 이름</string> <string name="no_keystore_cert_selected">사용자 인증서를 선택 해야 합니다</string> <string name="no_error_found">오류 없음</string> <string name="config_error_found">설정 오류</string> @@ -51,7 +51,7 @@ <string name="pw_query_hint">(비워두면 요청시 쿼리됨)</string> <string name="vpn_shortcut">OpenVPN 바로 가기</string> <string name="vpn_launch_title">VPN에 연결 하기</string> - <string name="shortcut_profile_notfound">바로 가기에 지정 된 프로파일을 찾을 수 없습니다.</string> + <string name="shortcut_profile_notfound">바로가기에 지정 된 프로파일을 찾을 수 없습니다.</string> <string name="random_host_prefix">임의의 호스트 접두사</string> <string name="random_host_summary">6개 임의의 문자를 호스트 이름 앞에 추가</string> <string name="custom_config_title">사용자 지정 옵션을 사용 하도록 설정</string> @@ -72,7 +72,7 @@ <string name="tls_key_auth">TLS Key 인증 활성화</string> <string name="tls_auth_file">TLS 인증 파일</string> <string name="pull_on_summary">서버로부터 IP 주소, 라우트와 타이밍 옵션을 요구합니다.</string> - <string name="pull_off_summary">서버로부터 정보를 요구하지 않습니다. 설정은 아래에 지정되야 합니다.</string> + <string name="pull_off_summary">서버는 어떤 정보도 요구하지 않습니다. 아래에 세부 설정을 지정하십시오.</string> <string name="use_pull">설정 받기</string> <string name="dns">DNS</string> <string name="override_dns">서버에서 DNS 설정을 재정의합니다</string> @@ -95,7 +95,7 @@ <string name="float_title">플로팅 서버 허용</string> <string name="custom_options_title">사용자 지정 옵션</string> <string name="edit_vpn">VPN 설정 편집</string> - <string name="remove_vpn_query">VPN 프로 파일 \'%s\' 제거?</string> + <string name="remove_vpn_query">VPN 프로파일 \'%s\'을 삭제할까요?</string> <string name="tun_error_helpful">일부 사용자 지정 ICS 이미지에서는 /dev/tun에 대한 권한이 잘못 되어 있거나 tun 모듈 자체가 누락 될 수 있습니다. CM9 이미지는 일반 설정에 있는 소유권 고치기 옵션을 사용해 보십시오.</string> <string name="tun_open_error">Tun 인터페이스를 열지 못했습니다</string> <string name="error">"오류:"</string> @@ -135,9 +135,9 @@ <string name="import_error_message">파일 시스템에서 파일을 가져올 수 없습니다.</string> <string name="inline_file_data">[[인라인 파일 데이터]]</string> <string name="opentun_no_ipaddr">IP 정보가 없는 tun 장치 열기를 거부합니다</string> - <string name="menu_import">Ovpn 파일에서 프로파일 가져오기</string> + <string name="menu_import">ovpn 파일에서 프로파일 가져오기</string> <string name="menu_import_short">가져오기</string> - <string name="import_content_resolve_error">가져올 프로 파일을 읽을 수 없습니다.</string> + <string name="import_content_resolve_error">가져올 프로파일을 읽을 수 없습니다.</string> <string name="error_reading_config_file">설정 파일 읽기 오류</string> <string name="add_profile">프로파일 추가</string> <string name="import_could_not_open">가져온된 설정 파일에 언급 된 파일 %1$s를 찾을 수 없습니다.</string> @@ -148,7 +148,7 @@ <string name="no_bind">로컬 바인딩 안함</string> <string name="import_configuration_file">구성 파일 가져오기</string> <string name="faq_security_title">보안 고려 사항</string> - <string name="faq_security">"OpenVPN은 보안에 민감하기 때문에 보안에 관련된 부분을 알고가는것이 현명합니다. SD카드의 있는 데이터는 기본적으로 보안이 취약합니다. 모든 앱이 읽을 수 있기 때문입니다 (예로 이 프로그램 또한 SD카드의 읽기 권한이 필요없습니다). 본앱의 데이터는 본앱만이 읽을 수 있습니다. cacert/cert/key를 파일 탐색기의 가져오기 옵션을 사용하면 데이터는 VPN 프로파일 내에 저장됩니다. VPN 프로파일은 본앱만이 접근할 수 있습니다. (잊지말고 SD카드에 있는 것을 삭제하세요). 접근은 본앱만이 가능하더라도 데이터는 암호화가 되어있지 않습니다. 루팅을 비롯한 다른 방법을 악용하여 데이터를 빼낼 수 있습니다. 암호 또한 일반 텍스트로 저장되어 있습니다. pkcs12 파일은 안드로이드 keystore에 보관할것을 강력하게 추천합니다."</string> + <string name="faq_security">"OpenVPN은 보안에 민감하기 때문에 보안에 관련된 부분을 알고가는것이 현명합니다. SD 카드에 있는 데이터는 모든 앱이 읽을 수 있기 때문에 보안이 취약합니다. (이 OpenVPN 앱은 SD 카드 읽기 권한이 필요없습니다) 이 OpenVPN 앱의 데이터는 이 OpenVPN 앱만이 읽을 수 있습니다. cacert/cert/key를 파일 탐색기의 가져오기 옵션을 사용하면 데이터는 VPN 프로파일 내에 저장됩니다. 이 VPN 프로파일은 이 OpenVPN 앱만이 접근할 수 있습니다. (잊지 말고 SD 카드에 남아있는 파일들을 삭제하세요.) 접근은 이 OpenVPN 앱만 가능하더라도 데이터는 암호화가 되어 있지 않습니다. 루팅을 비롯한 다른 악의적인 방법으로 데이터를 빼낼 수 있습니다. 암호 또한 일반 텍스트로 저장되어 있습니다. pkcs12 파일은 안드로이드 keystore에 보관할 것을 강력하게 추천합니다."</string> <string name="import_vpn">가져오기</string> <string name="broken_image_cert_title">인증서 선택 표시 오류</string> <string name="broken_image_cert">안드로이드 4.0+의 인증서 선택창을 보여주려는 과정에서 예외가 발생됐습니다. 안드로이드 4.0+의 표준 기능임으로 이 같은 일은 일어나면 안됩니다. 어쩌면 인증서 저장소에 대한 귀하의 안드로이드 ROM 지원이 깨졌습니다.</string> @@ -182,7 +182,7 @@ <string name="error_rsa_sign">안드로이드 keystore 키 %1$s: %2$s과 싸이닝 오류</string> <string name="faq_system_dialogs">시스템에서는 VPN연결 경고를 통해 당신에게 본앱이 모든 트래픽을 가로챌수있다는 점을 알리게 되어 있는데 이는 VPNService API가 남용하는것을 막기 위함입니다.\nVPN 연결 알림 (키 아이콘) 또한 안드로이드 시스템에서 부과하는 부분이며 이는 VPN연결을 알리는 신호입니다. 어떤 버전에서는 소리를 알림으로 사용하는 경우도 있습니다.\n안드로이드는 이같은 방법을 당신의 안전을 위해 도입하였으며 사용은 필수적입니다. (어떤 버전에서는 유감스럽게도 소리 알림 또한 포함됩니다.)</string> <string name="faq_system_dialogs_title">연결 경고 및 알림 소리</string> - <string name="translationby">한국어 번역 (주)기가드 안규태<ktdann@gmail.com></string> + <string name="translationby">우리말 번역에 참여해주세요.</string> <string name="ipdns">IP 와 DNS</string> <string name="basic">기본</string> <string name="routing">라우팅</string> @@ -201,9 +201,9 @@ <string name="using_proxy">프록시 %1$s %2$d 을 사용</string> <string name="use_system_proxy">시스템 프록시를 사용</string> <string name="use_system_proxy_summary">연결시 전 시스템 설정에 있는 HTTP/HTTPS 프록시를 사용합니다.</string> - <string name="donatewithpaypal">당신은 <a href=\"https://www.paypal.com/cgi-bin/webscr?hosted_button_id=R2M6ZP9AF25LS&amp;cmd=_s-xclick\">PayPal을 사용하여 기부할 수 있습니다.</a> </string> + <string name="donatewithpaypal">당신은 <a href=\"https://www.paypal.com/cgi-bin/webscr?hosted_button_id=R2M6ZP9AF25LS&amp;cmd=_s-xclick\">PayPal을 통해 기부할 수 있습니다.</a> </string> <string name="onbootrestartsummary">OpenVPN은 시스템 재부팅/종료에 활성화 되었으면 VPN을 다시 연결합니다. 이 옵션을 사용 하기 전에 연결 경고 FAQ를 읽어 보시기 바랍니다.</string> - <string name="onbootrestart">재부팅시 다시 연결</string> + <string name="onbootrestart">재시작 후 다시 연결</string> <string name="ignore">무시</string> <string name="restart">다시 시작</string> <string name="restart_vpn_after_change">VPN을 다시 시작한 후 설정 변경 내용이 적용 됩니다. VPN을 지금 (재)시작?</string> @@ -211,13 +211,13 @@ <string name="log_no_last_vpn">편집을 위해 마지막으로 연결 된 프로파일을 확인할 수 없습니다.</string> <string name="faq_duplicate_notification_title">중복 알림</string> <string name="faq_duplicate_notification">안드로이드는 시스템의 메모리 (RAM) 가 부족한 경우, 현재 필요하지 않는 앱들과 서비스들을 활성화 메모리에서 삭제합니다. 이 과정에서 진행중인 VPN 연결이 끊어 집니다. 이렇게 되지 않기 위해서 OpenVPN 서비스는 우선순위가 높게 되어 실행됩니다. 높은 우선 순위로 실행되기 위해서는 응용프로그램에서 이를 알림으로 표시해야 합니다. 키 알림 아이콘은 이전 FAQ에서 설명된 대로 시스템에서 강요하기 때문입니다. 이것은 우선 순위가 높이 실행된다는 알림에 대한 알림이 아닙니다.</string> - <string name="no_vpn_profiles_defined">VPN 프로파일이 정의 않됐습니다.</string> + <string name="no_vpn_profiles_defined">VPN 프로파일이 없습니다.</string> <string name="add_new_vpn_hint">이 <img src=\"ic_menu_add\"/> 아이콘을 사용하여 VPN을 추가 하세요</string> <string name="vpn_import_hint">이 <img src=\"ic_menu_archive\"/> 아이콘을 사용하여 귀하의 sdcard에서 기존 (.ovpn 또는 .conf) 프로파일을 가져오세요.</string> <string name="faq_hint">꼭 FAQ를 확인 하세요. 빠른 시작 가이드가 있습니다.</string> <string name="faq_routing_title">라우팅/인터페이스 설정</string> <string name="persisttun_summary">OpenVPN을 다시 연결 하는 경우 VPN 연결 없음으로 표기하지 마십시오.</string> - <string name="persistent_tun_title">tun 유지</string> + <string name="persistent_tun_title">지속적인 TUN</string> <string name="openvpn_log">OpenVPN 로그</string> <string name="import_config">OpenVPN 설정 가져오기</string> <string name="battery_consumption_title">배터리 소모</string> @@ -311,8 +311,11 @@ <string name="unhandled_exception_context">%3$s: %1$s\n\n%2$s</string> <string name="full_licenses">전체 라이센스</string> <string name="userpw_file">사용자 이름/암호 파일</string> + <string name="imported_from_file">%s 에서 가져옴</string> <string name="mssfix_invalid_value">MSS override의 값은 0과 9000 사이의 정수이어야합니다</string> <string name="loading">로드 중...</string> + <string name="allowed_vpn_apps_info">VPN을 사용할 앱들: %1$s</string> + <string name="disallowed_vpn_apps_info">VPN을 사용하지 않을 앱들: %1$s</string> <string name="keep">유지</string> <string name="delete">삭제</string> <string name="payload_options">페이로드 옵션</string> diff --git a/app/src/main/res/values-nl/strings-icsopenvpn.xml b/app/src/main/res/values-nl/strings-icsopenvpn.xml index e05b9105..da57e5e0 100755 --- a/app/src/main/res/values-nl/strings-icsopenvpn.xml +++ b/app/src/main/res/values-nl/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-no/strings-icsopenvpn.xml b/app/src/main/res/values-no/strings-icsopenvpn.xml index d4fa66a4..b227c4b6 100755 --- a/app/src/main/res/values-no/strings-icsopenvpn.xml +++ b/app/src/main/res/values-no/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-pl/strings-icsopenvpn.xml b/app/src/main/res/values-pl/strings-icsopenvpn.xml index 0e76b956..04b8f56c 100755 --- a/app/src/main/res/values-pl/strings-icsopenvpn.xml +++ b/app/src/main/res/values-pl/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-pt/strings-icsopenvpn.xml b/app/src/main/res/values-pt/strings-icsopenvpn.xml index 155f9c8a..994c8cc2 100755 --- a/app/src/main/res/values-pt/strings-icsopenvpn.xml +++ b/app/src/main/res/values-pt/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-ro/strings-icsopenvpn.xml b/app/src/main/res/values-ro/strings-icsopenvpn.xml index ded69fb7..856ffb06 100755 --- a/app/src/main/res/values-ro/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ro/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-ru/strings-icsopenvpn.xml b/app/src/main/res/values-ru/strings-icsopenvpn.xml index 921b5342..f7419e2c 100755 --- a/app/src/main/res/values-ru/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ru/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -180,6 +180,7 @@ <string name="keychain_nocacert">Не удалось получить CA из хранилища ключей Android. Аутентификация не удалась.</string> <string name="show_log_summary">Показывает окно журнала при подключении. Окно журнала всегда может быть доступно из панели уведомлений.</string> <string name="show_log_window">Показать окно журнала</string> + <string name="mobile_info">%10$s %9$s работает на %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s)</string> <string name="error_rsa_sign">Ошибка подписи с использованием ключа из хранилища Android %1$s: %2$s</string> <string name="faq_system_dialogs">Предупреждение VPN соединения сообщает вам, что это приложение может перехватывать весь сетевой трафик, и сообщается системой предупреждений VPNService API.\nИзвещение о VPN соединении (символ \"Ключа\") также формируется системой Android для сигнализации исходящего VPN соединения. В некоторых прошивках это оповещение сопровождается сигналом.\nAndroid использует эти оповещения для вашей собственной безопасности и из нельзя обойти. (К сожалению, на некоторых прошивках также издается оповещение звуком)</string> <string name="faq_system_dialogs_title">Сообщение о подключении и звук уведомления</string> @@ -372,4 +373,19 @@ <string name="custom_connection_options_warng">Укажите особые пользовательские параметры подключения. Используйте с осторожностью</string> <string name="custom_connection_options">Пользовательские Параметры</string> <string name="remove_connection_entry">Удалить запись подключения</string> + <string name="ab_kitkat_reconnect_title">Случайные разъединения от мобильной сети</string> + <string name="ab_vpn_reachability_44_title">Удаленные сети недоступны</string> + <string name="ab_persist_tun_title">Принудительный режим tun</string> + <string name="version_and_later">%s и выше</string> + <string name="tls_cipher_alert_title">Неудачное соединение с SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure</string> + <string name="tls_cipher_alert">Новые версии OpenVPN для Android (0.6.29/Март 2015) используют более безопасные настройки по умолчанию для разрешенных наборов шифров (tls-шифрование \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\"). К сожалению, прекращение использования менее безопасных наборов шифров и экспортирование наборов шифров, а особенно прекращение использования наборов шифров, которые не поддерживают Perfect Forward Secrecy (Diffie-Hellman), приводит к возникновению некоторых проблем. Обычно это происходит из-за изначально полезной, но плохо реализованной попытки усиления безопасности TLS путем установки tls-шифрования на сервере или некоторых встроенных ОС с урезанным SSL (например, MikroTik).\nЧтобы решить эту проблему, установите настройки tls-шифрования на сервере на разумные по умолчанию, такие как tls-шифрование \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\". Чтобы обойти проблему на клиенте, добавьте отдельную настройку tls-шифрования tls-cipher DEFAULT в Android-клиент.</string> + <string name="Search">Поиск</string> + <string name="lastdumpdate">(Последний дамп создан %1$d ч. и %2$d м. назад (%3$s))</string> + <string name="clear_log_on_connect">Очищать журнал при новом соединении</string> + <string name="connect_timeout">Время ожидания соединения</string> + <string name="protocol">Протокол</string> + <string name="enabled_connection_entry">Включено</string> + <string name="months_left">%d мес. осталось</string> + <string name="days_left">%d д. осталось</string> + <string name="hours_left">%d ч. осталось</string> </resources> diff --git a/app/src/main/res/values-sl/strings-icsopenvpn.xml b/app/src/main/res/values-sl/strings-icsopenvpn.xml index fb14e67e..28634668 100755 --- a/app/src/main/res/values-sl/strings-icsopenvpn.xml +++ b/app/src/main/res/values-sl/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -395,4 +395,10 @@ <string name="months_left">Preostalih še %d mesecev</string> <string name="days_left">Preostalih še %d dni</string> <string name="hours_left">Preostalih še %d ur</string> + <string name="permission_revoked">OS je preklical dovoljenje VPN (npr. zagnan je bil drug program VPN), ustavljanje VPN-a</string> + <string name="pushpeerinfo">Potisni podatke o soležniku</string> + <string name="pushpeerinfosummary">Pošlji dodatne podatke na strežnik, npr. različico SSL in Android</string> + <string name="pw_request_dialog_title">Zahtevano %1$s</string> + <string name="pw_request_dialog_prompt">Vnesite geslo za profil %1$s</string> + <string name="menu_use_inline_data">Uporabi podatke v besedilu</string> </resources> diff --git a/app/src/main/res/values-sv/strings-icsopenvpn.xml b/app/src/main/res/values-sv/strings-icsopenvpn.xml index b7510ef1..075de908 100755 --- a/app/src/main/res/values-sv/strings-icsopenvpn.xml +++ b/app/src/main/res/values-sv/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> @@ -103,6 +103,9 @@ <string name="last_openvpn_tun_config">Öppnar tun gränssnittet:</string> <string name="local_ip_info">Lokal IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d</string> <string name="dns_server_info">DNS-Server: %1$s, Domän: %2$s</string> + <string name="routes_info_incl">Rutter: %1$s %2$s</string> + <string name="routes_info_excl">Rutter uteslutna: %1$s %2$s</string> + <string name="routes_debug">VpnService rutter installerade: %1$s %2$s</string> <string name="ip_not_cidr">Fick gränssnitts informationen %1$s och %2$s, förutsätter att andra adressen är peer adressen på fjärrservern. Använder nätmask /32 för lokal IP. Satus på OpenVPN är \"%3$s\".</string> <string name="route_not_cidr">Förstår inte %1$s och %2$s som IP rutt med CIDR netmask, där /32 används som nätmask.</string> <string name="route_not_netip">Korrigerad rutt %1$s/%2$s till %3$s/%2$s</string> @@ -124,6 +127,7 @@ <string name="no_vpn_support_image">Din ROM stöder inte VPNService API, ledsen :(</string> <string name="encryption">Kryptering</string> <string name="cipher_dialog_title">Ange krypteringsmetod</string> + <string name="chipher_dialog_message">Ange den krypteringsalogritm som skall användas av OpenVPN. Lämna tomt för att använda standardalgoritm.</string> <string name="auth_dialog_message">Ange den autentiserings digest som används för OpenVPN. Lämna tom för att använda standard digest.</string> <string name="settings_auth">Autentisering/kryptering</string> <string name="file_explorer_tab">Filutforskare</string> @@ -176,6 +180,7 @@ <string name="keychain_nocacert">Inget CA certifikat returnerades från Android Keystore. Autenticering kommer troligen att misslyckas.</string> <string name="show_log_summary">Visar loggfönstret vid anslutning. Loggfönstret kan alltid nås från statusgardinen.</string> <string name="show_log_window">Visa loggfönstret</string> + <string name="mobile_info">%10$s %9$s körs på %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s)</string> <string name="error_rsa_sign">Fel vid signering med Android keystore nyckeln %1$s: %2$s</string> <string name="faq_system_dialogs">Varningen vid VPN-anslutning som berättar att denna app kan avlyssna all trafik utfärdas av systemet för att förhindra missbruk av VPNService API.\nNotifieringen om VPN-anslutning (nyckelsymbolen) tillhandahålles också av Android-systemet för att signalera en pågående VPN-anslutning. På vissa ROM spelar denna notifiering ett ljud.\nAndroid har infört dessa dialogrutor och notifieringar för din egen säkerhet och kan inte undvikas. (På vissa ROM innehåller dessa tyvärr ljud)</string> <string name="faq_system_dialogs_title">Anslutnings varning och ljud</string> @@ -188,6 +193,7 @@ <string name="export_config_title">ICS OpenVPN konfiguration</string> <string name="warn_no_dns">Inga DNS-servrar används. Namnuppslag kommer kanske inte fungera. Överväg att namnge egna DNS-servrar. Observera även att Android kommer att fortsätta att använda dina proxyinställningar som anges för din mobildata/Wi-Fi-anslutning när inga DNS-servrar är konfigurerade.</string> <string name="dns_add_error">Kunde inte lägga till DNS-servern \"%1$s\", förkastades av systemet: %2$s</string> + <string name="ip_add_error">Det gick inte att konfigurera IP-adress \"%1$s\", avvisades av systemet: %2$s</string> <string name="faq_howto"><p>Hämta en fungerande konfiguration (testad på din dator eller nerladdad från din leverantör/organisation)</p><p>Om det är en enda fil utan extra pem/pks12 filer kan du maila den till dig själv och öppna den bifogade filen. Om du har flera filer lägg dem på ditt sd-kort.</p><p>Klicka på den i mailet bifogade filen/Användning mappikonen i VPN-listan för att importera konfigurationsfilen</p><p>Om det ger fel ang. saknade filer lägg dessa på ditt sd-kort.</p><p>Klicka på spara symbolen för att lägga till den importerade konfigurationen i VPN-listan</p><p>Anslut din VPN genom att klicka på konfigurationsnamnet</p><p>Om det finns fel eller varningar i loggen försöka förstå dessa varningar/fel och försök att åtgärda dem</p> </string> <string name="faq_howto_title">Snabbstart</string> <string name="setting_loadtun_summary">Prova att ladda kärnmodulen tun.ko innan du försöker ansluta. Kräver root.</string> @@ -266,12 +272,60 @@ <string name="tls_remote_deprecated">TLS-remote (ej längre i bruk)</string> <string name="help_translate">Du kan hjälpa till med översättningen genom att besöka http://crowdin.net/project/ics-openvpn/invite</string> <string name="prompt">%1$s försöker styra %2$s</string> + <string name="remote_warning">Genom att fortsätta ger du applikationen tilstånd att fullständigt styra OpenVPM för Android och att avlyssna all nätverkstrafik. <b>Acceptera INTE om du inte litar på applikationen.</b> Annars riskerar du att din data äventyras av skadlig programvara.\"</string> <string name="remote_trust">Jag litar på denna applikation.</string> <string name="no_external_app_allowed">Ingen app får använda externa API</string> <string name="allowed_apps">Tillåtna apps: %s</string> <string name="clearappsdialog">Rensa lista över tillåtna externa apps? \nNuvarande lista över tillåtna apps:\n\n%s</string> + <string name="screenoff_summary">\"Pause VPN när skärmen är avstängd och mindre än 64 kB överförda data i 60s. När \"Ihållande Tun\" är aktiverat kommer pausning av VPN att lämna enheten UTAN nätverksanslutning. Utan \"Ihållande Tun\" alternativet kommer enheten inte att ha någon VPN-anslutning / skydd.</string> <string name="screenoff_title">Pausa VPN-anslutningen efter att skärmen stängts av</string> <string name="screenoff_pause">Pausa anslutning när skärmen är avstängd: mindre än %1$s i %2$ss</string> <string name="screen_nopersistenttun">Varning: Permanent tun är inte aktiverat för denna VPN. Trafiken kommer att använda den normala Internet-anslutning när skärmen är avstängd.</string> <string name="save_password">Spara lösenord</string> + <string name="pauseVPN">Pausa VPN</string> + <string name="resumevpn">Återuppta VPN</string> + <string name="state_userpause">VPN paus begärs av användaren</string> + <string name="state_screenoff">VPN paus - skärmen av</string> + <string name="cannotparsecert">Kan inte visa certifikatinformation</string> + <string name="appbehaviour">Ansökan beteende</string> + <string name="vpnbehaviour">VPN beteende</string> + <string name="allow_vpn_changes">Tillåta ändringar av VPN profiler</string> + <string name="hwkeychain">Hårdvara Keystore:</string> + <string name="permission_icon_app">Ikonen för appen försöker använda OpenVPN för Android</string> + <string name="faq_vpndialog43_title">Vpn Bekräftelse Dialog</string> + <string name="donatePlayStore">Alternativt kan du skicka mig en donation med Play Store:</string> + <string name="logCleared">Log rensas.</string> + <string name="show_password">Visa lösenord</string> + <string name="timestamp_short">Kort</string> + <string name="timestamp_iso">ISO</string> + <string name="timestamps">Tidsstämplar</string> + <string name="timestamps_none">Ingen</string> + <string name="uploaded_data">Ladda upp</string> + <string name="downloaded_data">Hämta</string> + <string name="logview_options">Visa alternativ</string> + <string name="unhandled_exception_context">%3$s: %1$s\n\n%2$s</string> + <string name="blocklocal_title">Kringgå VPN för lokala nätverk</string> + <string name="userpw_file">Användarnamn / lösenord fil</string> + <string name="imported_from_file">[Importerad från: %s]</string> + <string name="import_log">Importloggen:</string> + <string name="client_behaviour">Klientens beteende</string> + <string name="loading">Laddar...</string> + <string name="keep">Ha kvar</string> + <string name="delete">Radera</string> + <string name="server_list">Serverlista</string> + <string name="vpn_allowed_apps">Tillåtna appar</string> + <string name="show_log">Visa logg</string> + <string name="faq_androids_clients_title">Skillnader mellan OpenVPN Android klienterna</string> + <string name="ignore_multicast_route">Ignorera multicast rutt: %s</string> + <string name="ab_kitkat_mss">Tidigt KitKat version anger fel MSS värdet på TCP-anslutningar (# 61.948). Försök att göra det möjligt för mssfix möjlighet att kringgå denna bugg.</string> + <string name="ab_lollipop_reinstall">VPN appar kan sluta fungera när avinstalleras och installeras igen. För mer information se # 80074</string> + <string name="ab_only_cidr_title">Icke CIDR rutter</string> + <string name="ab_lollipop_reinstall_title">Installera om VPN appar</string> + <string name="version_upto">%s och tidigare</string> + <string name="copy_of_profile">Kopia av %s</string> + <string name="Search">Sök</string> + <string name="protocol">Protokoll</string> + <string name="enabled_connection_entry">Aktiverad</string> + <string name="days_left">%d dagar kvar</string> + <string name="hours_left">%d timmar kvar</string> </resources> diff --git a/app/src/main/res/values-tr/strings-icsopenvpn.xml b/app/src/main/res/values-tr/strings-icsopenvpn.xml index a9622ff1..9c88acf0 100755 --- a/app/src/main/res/values-tr/strings-icsopenvpn.xml +++ b/app/src/main/res/values-tr/strings-icsopenvpn.xml @@ -1,312 +1,310 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> - <string name="address">Sunucu adresi:</string> - <string name="port">Sunucu Portu:</string> + <string name="address">Sunucu Adresi:</string> + <string name="port">Sunucu Bağlantı Noktası:</string> <string name="location">Konum</string> - <string name="cant_read_folder">Dizin Okunamıyor</string> + <string name="cant_read_folder">Dizin okunamıyor</string> <string name="select">Seç</string> <string name="cancel">İptal</string> <string name="no_data">Veri Yok</string> - <string name="useLZO">LZO sıkıştırma</string> - <string name="client_no_certificate">Sertifika yok</string> - <string name="client_certificate_title">İstemci sertifikası</string> + <string name="useLZO">LZO Sıkıştırma</string> + <string name="client_no_certificate">Sertifika Yok</string> + <string name="client_certificate_title">İstemci Sertifikası</string> <string name="client_key_title">İstemci Sertifika Anahtarı</string> <string name="client_pkcs12_title">PCKCS12 Dosyası</string> <string name="ca_title">CA Sertifikası</string> <string name="no_certificate">Bir sertifika seçmelisiniz</string> - <string name="copyright_guicode">Kaynak kodu ve sorun izcisine http://code.google.com/p/ics-openvpn/ buradan ulaşablirsiniz</string> - <string name="copyright_others">Bu program, aşağıdaki bileşenleri kullanır; tam bilgi için lisanslardaki kaynak koduna bakınız</string> - <string name="about">Hakkında -</string> + <string name="copyright_guicode">Kaynak kodu ve sorun takipçisine http://code.google.com/p/ics-openvpn/ adresinden ulaşabilirsiniz</string> + <string name="copyright_others">Bu program, aşağıdaki bileşenleri kullanır; tam bilgi için lisanslardaki kaynak koduna bakın</string> + <string name="about">Hakkında</string> <string name="vpn_list_title">Profiller</string> <string name="vpn_type">Tür</string> - <string name="pkcs12pwquery">PKCS12 Şifresi</string> - <string name="file_select">Seçiniz…</string> + <string name="pkcs12pwquery">PKCS12 Parolası</string> + <string name="file_select">Seç…</string> <string name="file_nothing_selected">Bir dosya seçmelisiniz</string> <string name="useTLSAuth">TLS Kimlik Doğrulamasını Kullan</string> - <string name="tls_direction">TLS yönü</string> - <string name="ipv6_dialog_tile">CIDR formatında IPv6 Adresi/Ağ maskesi girin (örneğin 2000:dd::23/64)</string> - <string name="ipv4_dialog_title">IPv4 adresi/ağ maskesi CIDR biçimi (örneğin 1.2.3.4/24) girin</string> + <string name="tls_direction">TLS Yönü</string> + <string name="ipv6_dialog_tile">CIDR biçiminde IPv6 adresi/ağ maskesi girin (örneğin 2000:dd::23 / 64)</string> + <string name="ipv4_dialog_title">CIDR biçiminde IPv4 Adresi/Ağ Maskesi girin (örneğin 1.2.3.4/24)</string> <string name="ipv4_address">IPv4 Adresi</string> - <string name="ipv6_address">IPv6 adresi</string> - <string name="custom_option_warning">Özel OpenVPN seçenekleri girin.Dikkatli kullanın.Ayrıca tun kullanan VPN ler tasarlanan bu program tarafından desteklenmiyor.Eğer özel bir seçenek eksikliği olduğunu düşünüyorsanız geliştirici ile iletişime geçin</string> + <string name="ipv6_address">IPv6 Adresi</string> + <string name="custom_option_warning">Özel OpenVPN seçeneklerini girin. Dikkatli kullanın. Ayrıca tun ile ilgili OpenVPN ayarları VPNSettings tasarımı nedeniyle program tarafından desteklenmiyor. Önemli bir seçeneğin eksik olduğunu düşünüyorsanız geliştirici ile iletişime geçin</string> <string name="auth_username">Kullanıcı Adı</string> - <string name="auth_pwquery">Şifre</string> - <string name="static_keys_info">Statik yapılandırma için TLS Auth Keys statik anahtar olarak kullanılacak</string> - <string name="configure_the_vpn">VPN\'i Yapılandırın</string> + <string name="auth_pwquery">Parola</string> + <string name="static_keys_info">Statik yapılandırma için TLS Kimlik Doğrulama Anahtarları statik anahtar olarak kullanılacak</string> + <string name="configure_the_vpn">VPN\'i Yapılandır</string> <string name="menu_add_profile">Profil Ekle</string> <string name="add_profile_name_prompt">Yeni profili tanımlayan bir isim girin</string> <string name="duplicate_profile_name">Benzersiz bir profil adı girin</string> <string name="profilename">Profil Adı</string> - <string name="no_keystore_cert_selected">Kullanıcı sertifikası seçmelisiniz</string> + <string name="no_keystore_cert_selected">Bir kullanıcı sertifikası seçmelisiniz</string> <string name="no_error_found">Hiçbir hata bulunamadı</string> - <string name="config_error_found">Yapılandırma hatası</string> + <string name="config_error_found">Yapılandırmada Hata</string> <string name="ipv4_format_error">IPv4 adresi ayrıştırma hatası</string> <string name="custom_route_format_error">Özel yolları ayrıştırma hatası</string> - <string name="pw_query_hint">(Talep üzerine sorgulamak için boş bırakın)</string> + <string name="pw_query_hint">(talep üzerine sorgulamak için boş bırakın)</string> <string name="vpn_shortcut">OpenVPN Kısayolu</string> <string name="vpn_launch_title">VPN\'e Bağlan</string> <string name="shortcut_profile_notfound">Kısayolu belirtilen profil bulunamadı</string> - <string name="random_host_prefix">Rastgele host ön eki</string> - <string name="random_host_summary">Host ismine 6 rasgele karakter ekler</string> - <string name="custom_config_title">Özel seçenekleri etkinleştir</string> - <string name="custom_config_summary">Özel seçenekleri belirleyin.Dikkatli kullanın!</string> + <string name="random_host_prefix">Rastgele Ana Makine Ön Eki</string> + <string name="random_host_summary">Makine ismine 6 rastgele karakter ekler</string> + <string name="custom_config_title">Özel Seçenekleri Etkinleştir</string> + <string name="custom_config_summary">Özel seçenekleri belirleyin. Dikkatli kullanın!</string> <string name="route_rejected">Yol Android tarafından reddedildi</string> - <string name="cancel_connection">Bağlantıyı kes</string> - <string name="cancel_connection_long">VPN bağlantısını kes</string> - <string name="clear_log">Kayıtları temizle</string> - <string name="title_cancel">Onayı İptal et</string> - <string name="cancel_connection_query">Bağlı VPN bağlantısını keseyim / bağlantı girişimini iptal edeyim mi?</string> - <string name="remove_vpn">VPN kaldırın</string> - <string name="check_remote_tlscert">(- Uzak-CERT-tls sunucu) sunucu TLS Sunucu uzantıları ile bir sertifika kullanır olmadığını kontrol eder</string> - <string name="check_remote_tlscert_title">TLS sunucu sertifikasını bekleyin</string> - <string name="remote_tlscn_check_summary">Uzak sunucu sertifika konusunu DN kontrol eder</string> - <string name="remote_tlscn_check_title">Sertifika sunucu adı kontrol</string> - <string name="enter_tlscn_dialog">Uzaktan sertifika DN doğrulamak için kullanılan onay belirtin (örneğin C = DE, L = Paderborn, OU = Kuş IP Taşıyıcılar, CN = openvpn.blinkt.de) \ n \ tam DN veya RDN (openvpn.blinkt.de nBuörnek) ya da doğrulama için bir RDN önek. \ n \ nWhen RDN önek \"Sunucu\" ile \"Sunucu-1\" ve \"Sunucu-2\" ile eşleşir \ n \ boş metin alanına ana bilgisayar adı, sunucu karşı RDN kontrol edecektir nLeaving. \ n \ nBu daha fazla bilgi OpenVPN 2.3.1 + man sayfasına altında-kontrol-x509-adını görmek</string> + <string name="cancel_connection">Bağlantıyı Kes</string> + <string name="cancel_connection_long">VPN Bağlantısını Kes</string> + <string name="clear_log">kayıtları temizle</string> + <string name="title_cancel">İptal Onayı</string> + <string name="cancel_connection_query">Bağlı VPN bağlantısını kesilsin veya bağlantı girişimini iptal edilsin mi?</string> + <string name="remove_vpn">VPN\'i Kaldır</string> + <string name="check_remote_tlscert">Sunucunun TLS Sunucu uzantıları ile bir sertifika kullanıp kullanmadığını denetler (--remote-cert-tls server)</string> + <string name="check_remote_tlscert_title">TLS sunucu sertifikası bekle</string> + <string name="remote_tlscn_check_summary">Uzak Sunucu Sertifika Konu DN\'sini denetler</string> + <string name="remote_tlscn_check_title">Sertifika Makine Adı Denetimi</string> + <string name="enter_tlscn_dialog">Uzak sertifika DN\'sini doğrulamak için kullanılan denetimi belirtin (örn. C=TR, L=Ankara, OU=IP Sağlayıcı, CN=openvpn.blinkt.de)\n\nTam DN veya RDN\'yi belirtin (örnekte openvpn.blinkt.de) veya doğrulama için bir RDP ön eki.\n\nRDN ön eki kullanıldığında \"Sunucu\" \"Sunucu-1\" ve \"Sunucu-2\" ile eşleşir\n\nMetin alanını boş bırakmak, RDN\'i sunucu makine adına karşı denetleyecektir.\n\nDaha fazla bilgi için bkz. OpenVPN 2.3.1+ man sayfası konusu —verify-x509-name</string> <string name="enter_tlscn_title">Uzak sertifika konusu</string> - <string name="tls_key_auth">TLS Anahtar Kimlik Doğrulaması sağlar</string> + <string name="tls_key_auth">TLS Anahtar Kimlik Doğrulamasını etkinleştirir</string> <string name="tls_auth_file">TLS Kimlik Doğrulama Dosyası</string> - <string name="pull_on_summary">İstekler IP adresleri, sunucudan yolları ve zamanlama seçenekleri.</string> - <string name="pull_off_summary">Herhangi bir bilgi sunucudan istenir. Ayarlar aşağıda belirtildiği gibidir.</string> - <string name="use_pull">Ayarlarını çekin</string> + <string name="pull_on_summary">Sunucudan IP adresleri, rotalar ve zamanlama seçeneklerini talep eder.</string> + <string name="pull_off_summary">Sunucudan hiçbir bilgi talep edilmez. Ayarlar aşağıda belirtilmelidir.</string> + <string name="use_pull">Ayarları Çek</string> <string name="dns">DNS</string> - <string name="override_dns">Sunucusu tarafından DNS ayarları geçersiz</string> - <string name="dns_override_summary">Kendi DNS Sunucularını kullanın</string> - <string name="searchdomain">Arama Etki Alanı</string> - <string name="dns1_summary">DNS Sunucusu kullanılacak.</string> - <string name="dns_server">DNS Serveri</string> - <string name="secondary_dns_message">Ikinci DNS Serveri Kullan Normal DNS Serveri Erişilmezse.</string> - <string name="backup_dns">DNS Sunucusunu Yedekle</string> - <string name="ignored_pushed_routes">Itilmiş rotalar göz ardı</string> - <string name="ignore_routes_summary">Yoksay sunucu tarafından itti yönlendirilir.</string> - <string name="default_route_summary">Tüm trafiği VPN üzerinden kullan</string> + <string name="override_dns">Sunucusu DNS ayarlarını geçersiz kıl</string> + <string name="dns_override_summary">Kendi DNS Sunucularınızı kullanın</string> + <string name="searchdomain">aramaEtkiAlanı</string> + <string name="dns1_summary">Kullanılacak DNS Sunucusu.</string> + <string name="dns_server">DNS Sunucusu</string> + <string name="secondary_dns_message">Normal DNS Sunucusu erişimi yapılamazsa ikincil DNS Sunucusunu kullan.</string> + <string name="backup_dns">Yedek DNS sunucusu</string> + <string name="ignored_pushed_routes">İtilmiş rotaları göz ardı et</string> + <string name="ignore_routes_summary">Sunucu tarafından itilmiş yolları yoksay.</string> + <string name="default_route_summary">Tüm trafiği VPN üzerinden yönlendirir</string> <string name="use_default_title">Varsayılan Yolu kullan</string> - <string name="custom_route_message">Özel yolları girin. CIDR biçimde tek hedef girin. \"10.0.0.0 / 8 2002 :: / 16\" ağlar VPN üzerinden 10.0.0.0 / 8 ve 2002 :: / 16 doğrudan.</string> - <string name="custom_route_message_excluded">VPN üzerinden yönlendirilir olmaMAlıdır Yolları. Dahil rotalar için aynı sözdizimini kullanın.</string> + <string name="custom_route_message">Özel yolları girin. Sadece CIDR biçimde hedef girin. \"10.0.0.0/8 2002::/16\", 10.0.0.0/8 ve 2002::/16 ağlarını VPN üzerinden yönlendirecek.</string> + <string name="custom_route_message_excluded">Rotalar VPN üzerinden YÖNLENDİRİLMEMELİDİR. Dahil edilen rotalarda olduğu gibi sözdizimi kullanın.</string> <string name="custom_routes_title">Özel Yollar</string> <string name="custom_routes_title_excluded">Dışlanan Ağlar</string> - <string name="log_verbosity_level">Ayrıntı düzeyi Log</string> - <string name="float_summary">Herhangi bir IP kimlik doğrulaması paketlerini sağlar</string> - <string name="float_title">Herhangi bir IP kimlik doğrulaması paketlerini sağlar</string> + <string name="log_verbosity_level">Günlük ayrıntı düzeyi</string> + <string name="float_summary">Herhangi bir IP\'den doğrulanmış paketlere izin verir</string> + <string name="float_title">Yüzen sunucuya izin ver</string> <string name="custom_options_title">Özel Seçenekler</string> - <string name="edit_vpn">VPN Ayarlarını düzenle</string> - <string name="remove_vpn_query">VPN profilleri kaldırılsın mı \'%s\'?</string> - <string name="tun_error_helpful">Bazı özel ICS görüntülerde / dev / tun üzerinde izni yanlış olabilir, ya da tun modülünü tamamen eksik olabilir. CM9 görüntüleri genel ayarlar altında düzeltme mülkiyet seçeneğini deneyin</string> + <string name="edit_vpn">VPN Ayarlarını Düzenle</string> + <string name="remove_vpn_query">VPN profili \'%s\' kaldırılsın mı?</string> + <string name="tun_error_helpful">Bazı özel ICS kalıplarında /dev/tun izni yanlış ya da tun modülü tamamen eksik olabilir. CM9 görüntüleri için genel ayarlar altında sahipliği düzeltme seçeneğini deneyin</string> <string name="tun_open_error">Tun arayüzü açılamadı</string> - <string name="error">"Hata:"</string> + <string name="error">"Hata: "</string> <string name="clear">Temizle</string> - <string name="last_openvpn_tun_config">Açılış tun arabirimi:</string> + <string name="last_openvpn_tun_config">Açılan tun arayüzü:</string> <string name="local_ip_info">Yerel IPv4: %1$s/%2$d IPv6: %3$s MTU: %4$d</string> - <string name="dns_server_info">DNS sunucusu: %1$s, etki alanı: %2$s</string> - <string name="routes_info_incl">Routes: %1$s %2$s</string> - <string name="routes_info_excl">Routes excluded: %1$s %2$s</string> - <string name="routes_debug">VPN Servis Yolları Yüklendi: %1$s %2$s</string> - <string name="ip_not_cidr">Arabirim bilgileri %1$s ve %2$s var, tabii ikinci eş adresi uzaktan adresidir. /32 Kullanarak için yerel IP ağ maskesi. OpenVPN tarafından verilen \"%3$s\" modudur.</string> - <string name="route_not_cidr">%1$s ve %2$s olarak IP yolu ile CIDR ağ maskesi, ağ maskesi /32 kullanarak yapamazsınız.</string> - <string name="route_not_netip">Rota %1$s/%2$s %3$s/%2$s için düzeltilmiş</string> - <string name="keychain_access">Android Anahtarlık sertifika erişemiyor. Bu bir yazılım yükseltmesi veya app/app ayarları bir yedeğini geri yükleme tarafından kaynaklanabilir. Lütfen VPN düzenlemek ve sertifikanın sertifika erişim izni yeniden oluşturmak için temel ayarları altında yeniden seçin.</string> + <string name="dns_server_info">DNS sunucusu: %1$s, Etki alanı: %2$s</string> + <string name="routes_info_incl">Yollar: %1$s %2$s</string> + <string name="routes_info_excl">Dışlanan yollar: %1$s %2$s</string> + <string name="routes_debug">Yüklenen Vpn Hizmet yolları: %1$s %2$s</string> + <string name="ip_not_cidr">Arayüz bilgisi %1$s ve %2$s alındı. İkinci adresin uzak adres eşi olduğu varsayılıyor. Yerel IP için /32 ağ maskesi kullanılıyor. OpenVPN tarafından belirtilmiş kip \"%3$s\".</string> + <string name="route_not_cidr">CIDR ağ maskesi ile %1$s ve %2$s IP rotası olarak anlam ifade etmiyor, ağ maskesi olarak /32 kullanılıyor.</string> + <string name="route_not_netip">Rota %1$s/%2$s, %3$s/%2$s olarak düzeltildi</string> + <string name="keychain_access">Android Anahtarlık Sertifikalarına erişemiyor. Bu bir donanım yazılım yükseltmesi veya bir uygulama/uygulama ayarlarının yedeğinin geri yüklenmesinden dolayı kaynaklanabilir. Lütfen VPN\'i düzenleyin ve sertifikanın sertifika erişim iznini yeniden oluşturmak üzere temel ayarları altında yeniden seçin.</string> <string name="version_info">%1$s %2$s</string> <string name="send_logfile">Günlük dosyasını gönder</string> <string name="send">Gönder</string> <string name="ics_openvpn_log_file">ICS OpenVPN günlük dosyası</string> - <string name="copied_entry">Panoya kopyalanan günlük girdisi</string> - <string name="tap_mode">Moda dokunun</string> - <string name="faq_tap_mode">Dokunun modu olmayan kök VPN API ile mümkün değildir. Bu nedenle bu uygulama dokunun destek sağlayamaz</string> - <string name="tap_faq2">Yine? Dalga mı geçiyorsun? Hayır, dokunun modu gerçekten desteklenmez ve bu desteklenecektir soran daha fazla posta gönderme değil yardımcı olacaktır.</string> - <string name="tap_faq3">Üçüncü kez? Aslında, bir yazabilirsiniz bir Katman2 bilgi göndermek eklemek ve şerit Katman2 bilgi tun dayalı bir dokunun emülatör alırsınız. Ama bu dokunun emülatör da ARP ve muhtemelen bir DHCP istemci uygulamak gerekir. Herkes bu yönde herhangi bir işi farkında değilim. Bu konuda kodlama başlatmak istiyorsanız bana ulaşın.</string> - <string name="faq">Sık Sorulan Sorular</string> - <string name="copying_log_entries">Günlük girdisi kopyalama</string> - <string name="faq_copying">Bir tek günlük girişi basın kopyalamak ve günlük girdisi üzerinde tutun. Tüm günlük kopyala ve gönderme göndermek günlük seçeneğini kullanın. Görünür değil Eğer GUI donanım menü düğmesini kullanın.</string> - <string name="faq_shortcut">Kısayolları başlatmak için</string> - <string name="faq_howto_shortcut">Masaüstünüzde OpenVPN başlatmak için bir kısayol yerleştirebilirsiniz. Homescreen programınıza bağlı olarak bir kısayol ya da bir widget eklemeniz gerekecek.</string> - <string name="no_vpn_support_image">Görüntü VPNService API desteklemiyor, özür :(</string> + <string name="copied_entry">Günlük girdisi panoya kopyalandı</string> + <string name="tap_mode">Tap Kipi</string> + <string name="faq_tap_mode">Tap Kipi kök olmayan VPN API\'si ile mümkün değil. Bu nedenle bu uygulama tap desteği sağlayamaz</string> + <string name="tap_faq2">Yine mi? Dalga mı geçiyorsun? Hayır, tap kipi gerçekten desteklenmiyor ve fazla posta göndererek desteklenip desteklenmeyeceğini sormak bir şeyi değiştirmeyecek.</string> + <string name="tap_faq3">Üçüncü kez? Aslında, biri tun tabanlı bir tap öykünücüsü yazabilir. Bu gönderirken layer2 bilgisi ekleyip, alırken layer2 bilgisini ayıklayabilir. Ancak bu tap öykünücüsü ARP\'yi ve muhtemelen DHCP istemcisini de sağlamalı. Bu yönde bir çalışma yapan birini tanımıyorum. Bu konuda kodlamaya başlamak istiyorsanız bana ulaşın.</string> + <string name="faq">SSS</string> + <string name="copying_log_entries">Günlük girdilerini kopyalama</string> + <string name="faq_copying">Bir tek günlük girişi kopyalamak için günlük girdisine basın ve tutun. Tüm günlüğü kopyalamak ve göndermek için Günlük Gönder seçeneğini kullanın. Bu menü arayüzde görünmüyorsa donanım menü tuşunu kullanın.</string> + <string name="faq_shortcut">Başlatma kısayolu</string> + <string name="faq_howto_shortcut">Masaüstünüzde OpenVPN başlatmak için bir kısayol yerleştirebilirsiniz. Ana sayfa programınıza bağlı olarak bir kısayol ya da bir widget eklemeniz gerekecek.</string> + <string name="no_vpn_support_image">Kalıbınız VPNService API\'sini desteklemiyor, üzgünüm :(</string> <string name="encryption">Şifreleme</string> - <string name="cipher_dialog_title">Şifreleme yöntemi girin</string> + <string name="cipher_dialog_title">Şifreleme yöntemini gir</string> <string name="chipher_dialog_message">OpenVPN tarafından kullanılan şifreleme algoritmasını girin. Varsayılan şifrelemeyi kullanmak için boş bırakın.</string> - <string name="auth_dialog_message">OpenVPN için kullanılan kimlik doğrulamasını özet girin. Varsayılan özeti kullanmak için boş bırakın.</string> - <string name="settings_auth">Kimlik doğrulama/şifreleme</string> + <string name="auth_dialog_message">OpenVPN için kullanılan kimlik doğrulama özetini girin. Varsayılan özeti kullanmak için boş bırakın.</string> + <string name="settings_auth">Kimlik Doğrulama/Şifreleme</string> <string name="file_explorer_tab">Dosya Gezgini</string> - <string name="inline_file_tab">Satır içi dosya</string> + <string name="inline_file_tab">Satır İçi Dosya</string> <string name="error_importing_file">Dosya alınırken hata oluştu</string> <string name="import_error_message">Dosya sistemindeki dosya içe aktarılamadı</string> - <string name="inline_file_data">[[Satır içi dosya veri]]</string> + <string name="inline_file_data">[[Satır içi dosya verisi]]</string> <string name="opentun_no_ipaddr">IP bilgisi olmadan tun cihazı açmayı reddediyor</string> - <string name="menu_import">Ovpn dosyası alma profili</string> - <string name="menu_import_short">Alma</string> - <string name="import_content_resolve_error">Profil alma için okunamadı</string> + <string name="menu_import">Profili ovpn dosyasından içe aktar</string> + <string name="menu_import_short">İçe Aktar</string> + <string name="import_content_resolve_error">Profil içe aktarmak için okunamadı</string> <string name="error_reading_config_file">Yapılandırma dosyası okuma hatası</string> <string name="add_profile">Profil ekle</string> - <string name="import_could_not_open">Alınan yapılandırma dosyasında belirtilen dosya %1$s bulunamadı</string> - <string name="importing_config">Kaynak %1$s yapılandırma dosyası alma</string> - <string name="import_warning_custom_options">Senin yapılandırma kullanıcı arabirimi yapılandırmaları için eşleştirilmemiş birkaç yapılandırma seçenekleri vardı. Bu seçenekler özel yapılandırma seçenekleri eklenmiştir. Özel yapılandırma aşağıda görüntülenir:</string> - <string name="import_done">Yapılandırma dosyası okuması bitmiş.</string> - <string name="nobind_summary">Yerel adresi ve bağlantı noktası için bağlama yapmak</string> - <string name="no_bind">Hiçbir yerel bağlama</string> + <string name="import_could_not_open">Alınan yapılandırma dosyasında belirtilen %1$s dosyası bulunamadı</string> + <string name="importing_config">%1$s kaynağından yapılandırma dosyası alınıyor</string> + <string name="import_warning_custom_options">Yapılandırmanızın arayüz yapılandırmalarına eşlenmemiş birkaç ayarı bulunuyordu. Bu seçenekler özel yapılandırma seçenekleri olarak eklendi. Özel yapılandırma aşağıda görüntüleniyor:</string> + <string name="import_done">Yapılandırma dosyası okuması bitti.</string> + <string name="nobind_summary">Yerel adrese ve bağlantı noktasına bağlama</string> + <string name="no_bind">Hiçbir yerel bağlama yok</string> <string name="import_configuration_file">Yapılandırma dosyası al</string> <string name="faq_security_title">Güvenlik konuları</string> - <string name="faq_security">OpenVPN güvenlik duyarlı olduğu gibi güvenlik hakkında birkaç not mantıklı bulunmaktadır. Sdcard üzerindeki tüm verileri doğal olarak güvensiz. Her app (örneğin bu program herhangi özel bir sd kartı hak gerektirir) okuyabilirsiniz. Bu uygulama verileri yalnızca uygulama tarafından okunabilir. Cacert/cert/anahtarında dosya iletişim kutusu için içe aktarma seçeneğini kullanarak verileri VPN profilinizde saklanır. VPN profilleri yalnızca bu uygulama tarafından erişilebilir. (Daha sonra sd kartta kopyaları sil unutmayın). Bile erişilebilir rağmen bu uygulama tarafından yalnızca verileri hala şifreli değildir. Telefon veya diğer olağanüstü köklenme tarafından veri almak mümkün olabilir. Kurtarmak parola düz metin olarak depolanır. Pkcs12 dosyaları için onları android deposunun almak önerilir.</string> - <string name="import_vpn">Alma</string> + <string name="faq_security">"OpenVPN\'de güvenlik hassas bir konu olduğundan, güvenlikle ilgili birkaç not yerinde olacak. SD kart üzerindeki tüm veriler başlangıcından beri güvensizdir. Her uygulama okuyabilir (örneğin bu uygulama özel SD kart hakları gerektirmiyor). Bu uygulamanın verisi sadece uygulama tarafından okunabilir. cacert/cert/key için içe aktarma seçeneğini kullanmak, veriyi VPN profilinde saklar. VPN profilleri sadece bu uygulama tarafından okunabilir (ardından SD karttaki kopyalarını silmeyi unutmayın). Sadece bu uygulama tarafından erişilebilir olmasına rağmen, veri hala şifrelenmeden saklanır. Telefonu root\'lamak veya diğer açıklar verinin ele geçirilmesine yol açabilir. Kaydedilen parolalar da düz metin olarak saklanır. PKCS12 dosyalarını Android anahtar deposuna içe aktarmanız şiddetle önerilir."</string> + <string name="import_vpn">İçe Aktar</string> <string name="broken_image_cert_title">Hata gösteren sertifika seçimi</string> - <string name="broken_image_cert">Android 4.0 + göstermeye çalışıyor bir istisna var sertifika seçimi iletişim. Bu hiç bu kadar standart bir özellik olarak Android 4.0 + gerçekleşmesi gerekir. Belki sertifika depolama ortamı için Android ROM destek bozuldu</string> + <string name="broken_image_cert">Android 4.0+ sertifika seçim penceresi göstermeye çalışılırken bir istisna durum oluştu. Bu durum, Android 4.0+ sürümlerinde standart bir özellik olduğundan asla olmamalı. Sertifika depolamasını destekleyen Android ROM\'unuz bozuk olabilir</string> <string name="ipv4">IPv4</string> <string name="ipv6">IPv6</string> <string name="speed_waiting">Durum iletisi bekleniyor…</string> <string name="converted_profile">içe aktarılan profil</string> - <string name="converted_profile_i">İçe aktarılan profil %d</string> - <string name="broken_images">Kırık görüntüleri</string> - <string name="broken_images_faq"><p> Resmi HTC görüntüleri tünelden değil trafiğe neden garip bir yönlendirme sorunu var için bilinen (Ayrıca bkz: < bir href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=18\" > sorunu 18 </a> hata izci içinde.)</p> <p> büyük resmi SONY Xperia Arc S ve görüntüleri Xperia Ray VPNService tamamen görüntüden eksik bildirilmiştir. (Ayrıca bkz: < bir href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=29\" > sayı 29 </a> hata izci içinde.)</p> <p> ya da eksik/dev haklarını tun modülü olabilir görüntüleri üzerinde özel yapı/tun-ebilmek var olmak yanlış. Bazı CM9 görüntü \"etkin aygıt belirli kesmek\" altında \"mülkiyet saptamak\" seçeneği gerek. </p> <p> en önemlisi: cihazınızda kopuk Android resmi varsa, senin satıcısına bildirin. Daha fazla kişi kim daha onlar bunu </p> düzeltmek için olabilir satıcıya, sorun bildir</string> - <string name="pkcs12_file_encryption_key">PKCS12 Dosya şifreleme anahtarı</string> - <string name="private_key_password">Özel Anahtar Şifresi</string> - <string name="password">Şifre</string> - <string name="file_icon">Dosya simgesi</string> - <string name="tls_authentication">TLS kimlik doğrulama</string> - <string name="generated_config">Oluşturulan yapılandırma</string> + <string name="converted_profile_i">%d profili içe aktarıldı</string> + <string name="broken_images">Bozuk Kalıplar</string> + <string name="broken_images_faq"><p>Resmi HTC kalıpları, trafiğin tünelden geçmesini engelleyen garip yönlendirme sorunlarına sahip (Ayrıca hata izleyicisinde bkz. <a href=\"https://github.com/schwabe/ics-openvpn/issues/18\">Issue 18</a>.)</p><p>Daha eski resmi Xperia Arc S ve Xperia Ray SONY kalıpları, VPNService\'in kalıplardan tamamen kaldırdığı bildirildi (Ayrıca hata izleyicisinde bkz. <a href=\"https://github.com/schwabe/ics-openvpn/issues/29\">Issue 29</a>.)</p><p>Özel derleme kalıplarında, tun modülü eksik veya /dev/tun yetkileri hatalı olabilir. Bazı CM9 kalıplarının \"Aygıta bağlı ayarlar (Device specific hacks)\" altında \"İzinleri düzelt (Fix ownership)\" seçeneğini kullanmaları gereklidir.</p><p>En önemlisi: Cihazınızda bozuk bir Android kalıbı varsa, üreticinize bildirin. Ne kadar çok kişi bu sorunu üreticiye bildirirse, o kadar düzeltilme şansı olur.</p></string> + <string name="pkcs12_file_encryption_key">PKCS12 Dosya Şifreleme Anahtarı</string> + <string name="private_key_password">Özel Anahtar Parolası</string> + <string name="password">Parola</string> + <string name="file_icon">dosya simgesi</string> + <string name="tls_authentication">TLS Kimlik Doğrulama</string> + <string name="generated_config">Oluşturulan Yapılandırma</string> <string name="generalsettings">Ayarlar</string> - <string name="owner_fix_summary">Sisteme /dev/tun sahibi çalışır. Bazı CM9 görüntüleri bu işe VPNService API yapmak gerekir. Kök gerektirir.</string> - <string name="owner_fix">/ Dev / tun sahipliğini düzeltmek</string> - <string name="generated_config_summary">Oluşturulan OpenVPN yapılandırma dosyası göster</string> + <string name="owner_fix_summary">/dev/tun sahipliğini sisteme vermeye çalışır. Bazı CM9 kalıpları VPNService API\'sinin çalışabilmesi için buna ihtiyaç duyar. Root gerektirir.</string> + <string name="owner_fix">/dev/tun sahipliğini düzeltmek</string> + <string name="generated_config_summary">Oluşturulan OpenVPN Yapılandırma Dosyasını gösterir</string> <string name="edit_profile_title">\"%s\" düzenleme</string> - <string name="building_configration">Yapılandırma binası…</string> - <string name="netchange_summary">Ağ durumu (örneğin WiFi üzerinden cep telefonlarına/cep) değiştirdiyseniz bu seçeneği açmak yeniden bağlantı zorlar</string> - <string name="netchange">Ağ değişikliği üzerinde yeniden bağlan</string> + <string name="building_configration">Yapılandırma derleniyor…</string> + <string name="netchange_summary">Bu seçeneği açmak, bir ağ durumu değiştiğinde yeniden bağlanmaya zorlayacaktır (örn. Kablosuz / Mobil ağ geçişi)</string> + <string name="netchange">Ağ değişikliği durumunda yeniden bağlan</string> <string name="netstatus">Ağ Durumu: %s</string> - <string name="extracahint">Sertifika yetkilisi sertifikası genellikle Android deposunun döndürülür. Sertifika doğrulama hataları alırsanız ayrı bir sertifika belirtin.</string> - <string name="select_file">Seçin</string> - <string name="keychain_nocacert">Hayır CA sertifikasını okurken Android deposunu döndürdü. Kimlik doğrulama muhtemelen başarısız olur.</string> - <string name="show_log_summary">Bağlama kütüğü penceresi üzerinde gösterir. Kütüğü penceresi her zaman bildirim durumu erişilebilir.</string> - <string name="show_log_window">Günlüğü penceresini göster</string> + <string name="extracahint">Sertifika yetkilisi sertifikası genellikle Android anahtar deposundan döndürülür. Sertifika doğrulama hataları alırsanız ayrı bir sertifika belirtin.</string> + <string name="select_file">Seç</string> + <string name="keychain_nocacert">Android anahtar deposundan okunurken hiçbir CA Sertifikası döndürülmedi. Kimlik doğrulama muhtemelen başarısız olacak.</string> + <string name="show_log_summary">Bağlantıda günlük penceresini gösterir. Günlük, her zaman bildirim durumundan erişilebilir.</string> + <string name="show_log_window">Günlük penceresini göster</string> <string name="mobile_info">%10$s %9$s %3$s %1$s (%2$s), Android %6$s (%7$s) API %4$d, ABI %5$s, (%8$s) üzerinde çalışıyor</string> - <string name="error_rsa_sign">Android deposunun anahtarı %1$s %2$s ile imzalama hatası</string> - <string name="faq_system_dialogs">Bu app tüm trafiği geçirebilir belirten VPN bağlantısı uyarı dayatılan VPNService API.\nThe VPN bağlantısının istismarını önlemek için sistem tarafından bildirim (anahtar simgesi) da devam eden bir VPN bağlantısı sinyal için Android sistem tarafından uygulanmaktadır. Bu bildirim çalış bazı görüntülerde ses. \nAndroid kendi güvenliğiniz için bu sistem diyaloglar tanıttı ve circumenvented olamaz emin oldum. (Bazı görüntülerde bu unfortunely notifciation ses içerir)</string> - <string name="faq_system_dialogs_title">Bağlantı uyarı ve bildirim sesi</string> - <string name="translationby">İngilizce Çeviri: Arne</string> + <string name="error_rsa_sign">Android deposu anahtarını %1$s %2$s ile imzalama hatası</string> + <string name="faq_system_dialogs">VPN bağlantı uyarısı, VPNService API\'sinin kötüye kullanımını önlemek için bu uygulamanın sistem tarafından oluşturulan tüm trafiği izleyebileceğini söylüyor.\nVPN bağlantı bildirimi (anahtar simgesi) ayrıca giden bir VPN bağlantısı olduğunu belirtmek için Android sistemi tarafından gösteriliyor. Bazı kalıplarda bu bildirim bir ses çalar.\nAndroid bu sistem pencerelerini kendi güvenliğiniz için koydu ve aşılmasını engelledi.</string> + <string name="faq_system_dialogs_title">Bağlantı uyarısı ve bildirim sesi</string> + <string name="translationby">Türkçe Çeviri: Volkan Gezer <volkangezer@gmail.com></string> <string name="ipdns">IP ve DNS</string> <string name="basic">Temel</string> - <string name="routing">Yönlendiriliyor</string> - <string name="obscure">OpenVPN ayarları belirsiz. Normalde gerekmez.</string> + <string name="routing">Yönlendirme</string> + <string name="obscure">Belirsiz OpenVPN ayarları. Normalde gerekmez.</string> <string name="advanced">Gelişmiş</string> - <string name="export_config_title">ICS Opnvpn Yapılandırma</string> - <string name="warn_no_dns">Kullanılan DNS sunucusu yok. Ad çözümlemesi çalışmıyor olabilir. Özel DNS sunucularını ayarlamayı düşünün. Ayrıca Android cep/Wi-Fi bağlantınız için DNS sunucusu ayarlandığında belirtilen proxy ayarlarını kullanmaya devam unutmayın.</string> - <string name="dns_add_error">DNS sunucusu sistem tarafından reddedilen %1$s, eklenemedi: %2$s</string> - <string name="ip_add_error">IP adresi \"%1$s\"yapılandırılamadı ,sistem tarafından reddedildi: %2$s</string> - <string name="faq_howto">(bilgisayarınızdaki veya sağlayıcı/organizasyon yüklenebilir test) bir çalışma config <p> olsun </p> <p> Hayır hiçbir ilave pem/pks12 ile tek bir dosya dosyaları ise dosyayı kendiniz e-posta ve eki açın. Birden çok dosya varsa koymak onları üstünde senin sd kartı </p> <p> e-posta eki/kullanım üzerinde klasör simgesini tıklatın, sd eksik dosyaları koyun dosyaları eksik hakkında hatalar varsa config dosyasının </p> <p> almak için vpn listedeki kayıt tıklayın kartı </p> <p> sembol alınan VPN </p> VPN listenize eklemek için <p > VPN varsa hata veya uyarılar günlüğüne uyarı/hata anlamak ve onları </p> gidermek çalışın VPN </p> <p> adını tıklatarak bağlanmak </string> + <string name="export_config_title">ICS Opnvpn Yapılandırması</string> + <string name="warn_no_dns">Kullanılan DNS sunucusu yok. Ad çözümlemesi çalışmıyor olabilir. Özel DNS sunucularını ayarlamayı düşünün. Ayrıca Android mobil/kablosuz bağlantınız için DNS sunucusu ayarlanmadığında belirtilen vekil sunucu ayarlarını kullanmaya devam ettiğini unutmayın.</string> + <string name="dns_add_error">DNS sunucusu \"%1$s\" sistem tarafından reddedildi, eklenemedi: %2$s</string> + <string name="ip_add_error">IP adresi \"%1$s\" sistem tarafından reddedildi, yapılandırılamadı: %2$s</string> + <string name="faq_howto"><p>Çalışan bir yapılandırma edinin (bilgisayarınızda test edilmiş veya kurumunuzdan alınmış)</p><p>Ek pem/pkcs12 dosyaları bulunmayan tek bir dosya ise, dosyayı kendinize e-posta olarak gönderebilir ve eki açabilirsiniz. Birden fazla dosya varsa, SD kartınıza koyun.</p><p>Yapılandırma dosyasını içe aktarmak için e-posta ekine tıklayın/VPN listesindeki klasör simgesini kullanın</p><p>Eksik dosyalar ile ilgili hata mesajı varsa, eksik dosyaları SD kartınıza koyun.</p><p>İçe aktarılan VPN\'yi VPN listenize eklemek için kaydet simgesine tıklayın.</p><p>VPN\'ye, adına tıklayarak bağlanın</p><p>Günlükte hata veya uyarı varsa, uyarı/hataları anlamaya ve düzeltmeye çalışın</p> </string> <string name="faq_howto_title">Hızlı Başlangıç</string> - <string name="setting_loadtun_summary">Bağlanmadan önce tun.ko yüklemeyi deneyin.Root edilmiş cihazlar gerekli.</string> + <string name="setting_loadtun_summary">Bağlanmadan önce tun.ko çekirek modülünü yüklemeyi deneyin. Root edilmiş cihazlar gerekli.</string> <string name="setting_loadtun">Tun modülünü yükle</string> - <string name="importpkcs12fromconfig">PKCS12 yapılandırma Android deposunun içine alma</string> - <string name="getproxy_error">Proxy ayarları alınırken hata oluştu: %s</string> - <string name="using_proxy">Proxy %1$s %2$d kullanarak</string> - <string name="use_system_proxy">Sistem proxy kullan</string> - <string name="use_system_proxy_summary">Sistem geniş yapılandırma HTTP/HTTPS proxy için bağlanmak için kullanın.</string> - <string name="donatewithpaypal">Şunları yapabilirsiniz <a href=\"https://www.paypal.com/cgi-bin/webscr?hosted_button_id=R2M6ZP9AF25LS&amp;cmd=_s-xclick\">PayPal ile bağış </a> </string> - <string name="onbootrestartsummary">Sistem yeniden başlatma/kapatma üzerinde etkin OpenVPN bir VPN yeniden bağlanır. Bu seçeneği kullanmadan önce bağlantı uyarı SSS okuyun.</string> + <string name="importpkcs12fromconfig">PKCS12 yapılandırmasını Android anahtar deposuna alma</string> + <string name="getproxy_error">Vekil sunucu ayarları alınırken hata oluştu: %s</string> + <string name="using_proxy">%1$s %2$d vekil sunucusu kullanarak</string> + <string name="use_system_proxy">Sistem vekil sunucusunu kullan</string> + <string name="use_system_proxy_summary">Bağlanmak için sistem çapındaki HTTP/HTTPS vekil sunucularını kullan.</string> + <string name="donatewithpaypal"><a href=\"https://www.paypal.com/cgi-bin/webscr?hosted_button_id=R2M6ZP9AF25LS&amp;cmd=_s-xclick\">PayPal ile bağış</a> yapabilirsiniz; </string> + <string name="onbootrestartsummary">OpenVPN, sistem yeniden başlatma/kapatma sırasında etkinse, tekrar bir VPN\'ye bağlanacak. Lütfen bu seçeneği kullanmadan önce Bağlantı uyarı SSS\'sini okuyun.</string> <string name="onbootrestart">Yeniden başlatmada tekrar bağlan</string> <string name="ignore">Yoksay</string> <string name="restart">Yeniden Başlat</string> - <string name="restart_vpn_after_change">Yapılandırma değişiklikleri, VPN yeniden başlattıktan sonra geçerli olur. (Yeniden) VPN şimdi başlıyorsun?</string> + <string name="restart_vpn_after_change">Yapılandırma değişiklikleri, VPN yeniden başlattıktan sonra geçerli olur. VPN (yeniden) başlatılsın mı?</string> <string name="configuration_changed">Yapılandırma değişti</string> <string name="log_no_last_vpn">Düzenleme için son bağlı profil belirlenemedi</string> <string name="faq_duplicate_notification_title">Yinelenen bildirimler</string> - <string name="faq_duplicate_notification">Android sistem belleği (RAM) basınç altında ise, apps ve hizmet hangi anda gerekli değildir aktif bellekten kaldırılır. Bu devam eden bir VPN bağlantısını sonlandırır. Bağlantı/OpenVPN ile daha yüksek öncelikli hizmet çalışır hayatta emin olmak için. Daha yüksek öncelik ile çalıştırmak için uygulama bir bildirim görüntülemeniz gerekir. Anahtar bildirim simgesini, önceki SSS girdisi içinde açıklandığı gibi sistem tarafından uygulanmaktadır. Daha yüksek öncelik ile çalışan amaç için app bildirim olarak sayılmaz.</string> + <string name="faq_duplicate_notification">Android sistem belleği (RAM) altında ise, o anda gerekli olmayan uygulama ve hizmetler etkin bellekten kaldırılır. Bu, süregelen bir VPN bağlantısını durdurur. Bağlantının/OpenVPN\'nin hayatta kalabilmesi için daha yüksek öncelik gerekir. Daha yüksek öncelikte çalışabilmesi için, uygulama bir bildirim görüntülemelidir. Bir önceki SSS girdisinde belirtilen anahtar bildirim simgesi, sistem tarafından gösterilmektedir. Bu, uygulamanın daha yüksek öncelikte çalışmasını sağlayan bildirim niteliği taşımaz.</string> <string name="no_vpn_profiles_defined">Tanımlanan VPN profili yok.</string> - <string name="add_new_vpn_hint">Kullanım < img src = \"ic_menu_add\" / > yeni bir VPN eklemek için simge</string> - <string name="vpn_import_hint">Kullanım < img src = \"ic_menu_archive\" / > simgesi sdcard (.ovpn veya .conf) bir profili almak için.</string> - <string name="faq_hint">Ayrıca SSS kontrol etmeyi unutmayın. Hızlı Başlangıç Kılavuzu vardır.</string> - <string name="faq_routing_title">Yönlendirme/arabirimi yapılandırması</string> - <string name="faq_routing">Yönlendirme ve arayüz konfigürasyonu klasik ifconfig / rota komutlarıyla değil VPNService API kullanarak yapılmaktadır. Bu diğer işletim sistemlerindekinden farklı bir yönlendirme konfigürasyonu gerektirmektedir.\n VPN tünelinin konfigürasyonu IP adresleri ve bu adreslerin bu arayüz üstünden yönlendirileceği ağlardan oluşur. Özellikle hiçbir eş ortak adresi ya da ağ geçidi adresi gerekli degildir. VPN sunucusuna ulaşmak için özel yollar (redirect-gateway kullanıldığında eklenenler gibi) da gerekli değildir. Bu sebepten dolayı uygulama, bir konfigurasyon alırken bu ayarları yoksayar. App, VPN Servis API\'sı ile sunucuyla olan bağlantının VPN tüneline yönlendirilmesini engeller.\n VPN servisi APIsı VPN üstünden yönlendirilmemesi gereken ağların belirtilmesine izin vermemektedir. Çözüm olarak program tünel üstünden yönlendirilmemesi gereken ağları (örneğin x.x.x.x y.y.y.y net_gateway rotası) bulmaya çalışıp bu rotaları içermeyen bir rota grubu oluşturarak diğer işletim sistemlerindeki davranışı oluşturur. Kütük penceresi VPN servisinin bağlantı sonucu oluşan konfigürasyonunu gösterir.\n Arka planda Android 4.4+ kural tabanlı yönlendirme kullanır. route/ifconfig komutları kullanılan rotaları göstermeyecektir. Bu komutlar yerine ip rule, iptables -t mangle -L komutlarını kullanın</string> - <string name="persisttun_summary">OpenVPN yeniden bağlamadan zaman VPN bağlantısı değil geri dönüş yap</string> + <string name="add_new_vpn_hint">Yeni VPN eklemek için <img src=\"ic_menu_add\"/> simgesini kullanın</string> + <string name="vpn_import_hint">SD kartınızdan mevcut bir (.ovpn veya .conf) profili almak için <img src=\"ic_menu_archive\"/> simgesini kullanın.</string> + <string name="faq_hint">Ayrıca SSS\'yi kontrol etmeyi unutmayın. Hızlı Başlangıç Kılavuzu içerir.</string> + <string name="faq_routing_title">Yönlendirme/Arayüz Yapılandırması</string> + <string name="faq_routing">Yönlendirme ve arayüz yapılandırması klasik ifconfig/rota komutlarıyla değil VPNService API kullanarak yapılmaktadır. Bu, diğer işletim sistemlerindekinden farklı bir yönlendirme yapılandırması gerektirmektedir.\nVPN tünelinin yapılandırması, IP adresleri ve bu adreslerin bu arayüz üstünden yönlendirileceği ağlardan oluşur. Özellikle hiçbir eş ortak adresi ya da ağ geçidi adresi gerekli degildir. VPN sunucusuna ulaşmak için özel yollar (redirect-gateway kullanıldığında eklenenler gibi) da gerekli değildir. Bu sebepten dolayı uygulama, bir yapılandırma alırken bu ayarları yoksayar. Uygulama, VPN Servis API\'si ile sunucuyla olan bağlantının VPN tüneline yönlendirilmesini engeller.\nVPNService API\'si VPN üstünden yönlendirilmemesi gereken ağların belirtilmesine izin vermemektedir. Geçici çözüm olarak program, tünel üstünden yönlendirilmemesi gereken ağları (örneğin x.x.x.x y.y.y.y net_gateway rotası) bulmaya çalışıp bu rotaları içermeyen bir rota grubu oluşturarak diğer işletim sistemlerindeki davranışı oluşturur. Günlük penceresi VPNService\'in bağlantı sonucu oluşan yapılandırmasını gösterir.\nKamera Arkası: Android 4.4+ kural tabanlı yönlendirme kullanır. route/ifconfig komutları kullanılan rotaları göstermeyecektir. Bu komutlar yerine ip rule, iptables -t mangle -L komutlarını kullanın</string> + <string name="persisttun_summary">OpenVPN yeniden bağlanırken \"VPN bağlantısı yok\" durumuna dönme.</string> <string name="persistent_tun_title">Kalıcı tun</string> - <string name="openvpn_log">OpenVPN kayıtları</string> - <string name="import_config">OpenVPN yapılandırması aktar</string> + <string name="openvpn_log">OpenVPN Günlüğü</string> + <string name="import_config">OpenVPN yapılandırmasını içe aktar</string> <string name="battery_consumption_title">Pil tüketimi</string> - <string name="baterry_consumption">Benim kişisel testlerinde yüksek pil tüketimi OpenVPN ana sebebi canlı tutma paketleri var. Bir yapılandırma yönergesi gibi çoğu OpenVPN sunucusu var \' keepalive 10 60 istemci ve sunucu 10 saniyede canlı tutma paketleri alışverişi neden \'. <p> Bunlar süre paketleri küçük ve çok trafik kullanmayın, mobil radyo ağ meşgul ve enerji tüketimini artırır. (Ayrıca bkz: < bir href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\" > Radyo durum makinesi | Android geliştiriciler </a>) <p> Bu canlı tutma ayarı istemcide değiştirilemez. Yalnızca sistem yöneticisinin OpenVPN in ayarı değiştirebilirsiniz. <p> Ne yazık ki 60 saniyeden daha büyük bir canlı tutma ile UDP kullanarak bazı NAT ağ geçitleri işlem zaman aşımı nedeniyle bağlantıyı kesmek neden olabilir. TCP kullanarak uzun canlı tutma zaman aşımı ile çalışır, ancak TCP TCP üzerinden tünel son derece kötü bağlantılarında yüksek paket kaybı ile gerçekleştirir. (Bkz: < bir href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\" > neden TCP üzerinden TCP A kötü düşünce </a>)</string> - <string name="faq_tethering">Android hayvan zinciri özelliğin (üzerindeki, WiFi, USB veya Bluetooth) ve VPNService (Bu program tarafından kullanılan) API birlikte çalışmayabilir. Daha fazla ayrıntı için bkz: < bir href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=34\" > #34 </a> yayın</string> + <string name="baterry_consumption">Şahsi testlerimde, OpenVPN\'in yüksek pil tüketiminin sebebi canlı tutma (keepalive) paketleri. Çoğu OpenVPN sunucuları, istemci ve sunucu arasında canlı tutma paketlerini her on saniyede değiştiren \'keepalive 10 60\' benzeri yönergeler bulundurur.<p> Bu paketler çok küçük olduğundan ve çok trafik kullanmadıklarından mobil anten ağını meşgul tutar ve enerji tüketimini arttırırlar. (ayrıca bkz. <a href=\"http://developer.android.com/training/efficient-downloads/efficient-network-access.html#RadioStateMachine\">The Radio State Machine | Android Developers</a>) <p> Bu canlı tutma ayarı istemci tarafından değiştirilemez. Ayarı sadece OpenVPN sistem yöneticisi değiştirebilir. <p> Ne yazık ki, canlı tutma ayarını 60 saniyeden daha fazla tutmak UDP\'nin durağan durum zaman aşımına takıldığından bazı NAT ağ geçitlerinde bağlantıyı bırakmalarına sebep olmaktadır. Uzun canlı tutma zaman aşımları TCP kullanarak mümkün, ancak TCP üzerinden TCP tünelleme, yüksek paket kaybı ile bağlantılarda düşük kalitededir (Bkz. <a href=\"http://sites.inka.de/bigred/devel/tcp-tcp.html\">Why TCP Over TCP Is A Bad Idea</a>)</string> + <string name="faq_tethering">Android Bağlantı Paylaşma özelliği (WiFi, USB veya Bluetooth üzerinden) ve VPNService API\'si (bu program tarafından kullanılan) birlikte çalışamaz. Daha fazla bilgi için bkz. <a href=\"https://github.com/schwabe/ics-openvpn/issues/34\">issue #34</a></string> <string name="vpn_tethering_title">VPN ve Paylaşım</string> <string name="connection_retries">Yeniden bağlantı denemesi</string> - <string name="reconnection_settings">Yeniden Bağlanma ayarları</string> + <string name="reconnection_settings">Yeniden bağlanma ayarları</string> <string name="connectretrymessage">Bağlantı girişimleri arasında beklenecek saniye sayısı.</string> - <string name="connectretrywait">Bağlantılar arasındaki Saniye</string> - <string name="minidump_generated">OpenVPN beklenmedik biçimde düştü. Lütfen ana menüde gönder mini döküm seçeneği kullanmayı düşünün</string> + <string name="connectretrywait">Bağlantılar arasındaki saniye</string> + <string name="minidump_generated">OpenVPN beklenmedik biçimde çöktü. Lütfen ana menüdedeki mini döküm gönder seçeneğini kullanmayı düşünün</string> <string name="send_minidump">Geliştiriciye mini döküm gönder</string> - <string name="send_minidump_summary">Hata ayıklama bilgisini son hatayı geliştiriciye gönder</string> + <string name="send_minidump_summary">Son çökme hakkındaki hata ayıklama bilgisini geliştiriciye gönder</string> <string name="notifcation_title">OpenVPN - %s</string> <string name="session_ipv4string">%1$s - %2$s</string> <string name="session_ipv6string">%1$s - %3$s, %2$s</string> <string name="state_connecting">Bağlanıyor</string> <string name="state_wait">Sunucudan yanıt bekleniyor</string> <string name="state_auth">Kimlik Doğrulanıyor</string> - <string name="state_get_config">İstemci yapılandırma alınıyor</string> - <string name="state_assign_ip">IP Adresleri Atanıyor</string> + <string name="state_get_config">İstemci yapılandırması alınıyor</string> + <string name="state_assign_ip">IP adresleri atanıyor</string> <string name="state_add_routes">Yollar ekleniyor</string> <string name="state_connected">Bağlanıldı</string> - <string name="state_disconnected">Bağlantıyı kes</string> + <string name="state_disconnected">Bağlantıyı Kes</string> <string name="state_reconnecting">Yeniden bağlanıyor</string> <string name="state_exiting">Çıkılıyor</string> <string name="state_noprocess">Çalışmıyor</string> <string name="state_resolve">Ana bilgisayar adları çözümleniyor</string> - <string name="state_tcp_connect">(TCP) Bağlanıyor</string> + <string name="state_tcp_connect">Bağlanıyor (TCP)</string> <string name="state_auth_failed">Kimlik doğrulaması başarısız</string> <string name="state_nonetwork">Kullanılabilir ağ için bekleniyor</string> <string name="statusline_bytecount">↓%2$s/s %1$s - ↑%4$s/s %3$s</string> <string name="notifcation_title_notconnect">Bağlı değil</string> - <string name="start_vpn_title">%s VPN bağlanıyor</string> - <string name="start_vpn_ticker">%s VPN bağlanıyor</string> - <string name="jelly_keystore_alphanumeric_bug">Sertifika deposunun adını (gibi alanlarda, alt çizgi veya tire) sigara alfasayısal karakterler içeriyorsa, bazı yorum-in Android 4.1 sorunları var. Özel karakter içermeyen sertifika yeniden ithalat çalışın</string> + <string name="start_vpn_title">VPN %s bağlanıyor</string> + <string name="start_vpn_ticker">VPN %s bağlanıyor</string> + <string name="jelly_keystore_alphanumeric_bug">Android 4.1\'in bazı sürümleri anahtar deposu alfanümerik olmayan karakterler içeriyorsa (boşluk, alt çizgi veya eksi işareti) sorunlar yaşamaktadır. Sertifikayı özel karakterler olmadan yeniden içe aktarmayı deneyin</string> <string name="encryption_cipher">Şifre şifresi</string> - <string name="packet_auth">Paket kimlik doğrulama</string> + <string name="packet_auth">Paket kimlik doğrulaması</string> <string name="auth_dialog_title">Paket kimlik doğrulama yöntemini girin</string> - <string name="built_by">%s tarafından inşa</string> - <string name="debug_build">hata ayıklama yapı</string> + <string name="built_by">%s tarafından derlendi</string> + <string name="debug_build">hata ayıklama yapısı</string> <string name="official_build">resmi yapı</string> - <string name="make_selection_inline">Profili kopyalayın</string> - <string name="crashdump">Crashdump</string> + <string name="make_selection_inline">Profile kopyala</string> + <string name="crashdump">Çökme dökümü</string> <string name="add">Ekle</string> - <string name="send_config">Yapılandırma dosyasını gönderin</string> + <string name="send_config">Yapılandırma dosyasını gönder</string> <string name="complete_dn">Tam DN</string> - <string name="remotetlsnote">Alınan yapılandırmanızı farklı bir DN biçimini kullanan eski kullanım dışı tls-uzaktan seçeneği kullanılır.</string> + <string name="remotetlsnote">İçe aktardığınız yapılandırma, farklı bir DN biçimi kullanan KULLANIM DIŞI bir tls-remote seçeneği kullanıyor.</string> <string name="rdn">RDN (ortak ad)</string> <string name="rdn_prefix">RDN öneki</string> - <string name="tls_remote_deprecated">TLS-uzaktan (kullanım dışı)</string> - <string name="help_translate">Http://crowdin.net/project/ics-openvpn/invite ziyaret ederek çeviri yardımcı olabilir</string> - <string name="prompt">%2$s denetlemek %1$s çalışır</string> - <string name="remote_warning">Devam, tamamen OpenVPN Android için kontrol etmek ve tüm ağ trafiğini kesişmek üzere uygulama izin veriyorsunuz. <b>Yapmak değil uygulama güvenmediğiniz sürece kabul.</b> Aksi takdirde, verilerinizi kötü amaçlı yazılım tarafından tehlikeye sahip riski çalıştırılır.\"</string> + <string name="tls_remote_deprecated">tls-remote (KULLANIM DIŞI)</string> + <string name="help_translate">http://crowdin.net/project/ics-openvpn/invite ziyaret ederek çevirilere yardımcı olabilirsiniz</string> + <string name="prompt">%1$s, %2$s kontrolünü almaya çalışıyor</string> + <string name="remote_warning">Devam ederek, uygulamaya tamamen Android için OpenVPN üzerinde denetleme ve tüm ağ trafiğini izleme yetkisini veriyorsunuz. <b>Uygulamaya güvenmiyorsanız kabul ETMEYİN.</b> Aksi takdirde, verilerinizin zararlı bir yazılım tarafından ele geçirilme riskini taşıyorsunuz.\"</string> <string name="remote_trust">Bu uygulamaya güveniyorum.</string> - <string name="no_external_app_allowed">Harici API\'yi kullanma izniniz yok</string> - <string name="allowed_apps">Uygulamalar izni: %s</string> - <string name="clearappsdialog">Açıkça izin verilen dış uygulamalar listesini? \nCurrent listesi izin verilen apps:\n\n%s</string> - <string name="screenoff_summary">\"Ekran kapalı iken VPN ve 60\'lar daha az 64 kB transfer verilerde duraklatın. VPN duraklatma \"Kalıcı Tun\" seçeneği etkinleştirildiğinde aygıtınız ağ bağlantısı sayesinde bırakacaktır. \"Kalıcı Tun\" seçeneği olmadan aygıt yok VPN bağlantısı/koruma olacak.</string> + <string name="no_external_app_allowed">Hiçbir uygulamanın harici API\'yi kullanma izni yok</string> + <string name="allowed_apps">İzin verilen uygulamalar: %s</string> + <string name="clearappsdialog">İzin verilen harici uygulama listesi temizlensin mi?\nİzin verilen uygulamaların geçerli listesi:\n\n%s</string> + <string name="screenoff_summary">Ekran kapalıyken ve 60 sn.\'de 64 kB\'dan daha az veri aktarılmışsa VPN\'i duraklat. \"Kalıcı Tun\" seçeneği etkin iken, VPN\'i duraklatmak cihazınızı SIFIR ağ bağlanabilirliğiyle bırakacak. \"Kalıcı Tun\" seçeneği olmadığında, cihaz VPN bağlantısı/koruması almayacak.</string> <string name="screenoff_title">Ekran kapandıktan sonra VPN bağlantısını duraklat</string> - <string name="screenoff_pause">Duraklatma bağlantı durumu devre dışı ekran: %1$s %2$ss içinde daha az</string> - <string name="screen_nopersistenttun">Uyarı: kalıcı tun bu VPN için etkin değil. Ekran kapalı iken trafik normal Internet bağlantınızı kullanacak.</string> + <string name="screenoff_pause">Ekran kapalı durumunda bağlantıyı duraklatıyor: %2$s sn. içinde %1$s\'den daha az veri</string> + <string name="screen_nopersistenttun">Uyarı: Kalıcı tun bu VPN için etkin değil. Ekran kapalı iken trafik normal İnternet bağlantınızı kullanacak.</string> <string name="save_password">Parolayı Kaydet</string> - <string name="pauseVPN">VPN duraklatın</string> - <string name="resumevpn">VPN yi çalıştırmaya devam edin</string> + <string name="pauseVPN">VPN\'i Duraklat</string> + <string name="resumevpn">VPN\'i Devam Ettir</string> <string name="state_userpause">Kullanıcı isteğiyle VPN duraklatıldı</string> - <string name="state_screenoff">Ekran kapalıyken VPN duraklat</string> - <string name="device_specific">Aygıt özellikleri kesmek</string> - <string name="cannotparsecert">Sertifika bilgilerini görüntüleyemiyor</string> - <string name="appbehaviour">Uygulama davranış</string> - <string name="vpnbehaviour">VPN davranış</string> - <string name="allow_vpn_changes">VPN Profillerinin değiştirilmesine izin ver -</string> - <string name="hwkeychain">Donanım deposu:</string> + <string name="state_screenoff">VPN duraklatıldı - ekran kapalı</string> + <string name="device_specific">Aygıta özel Ayarlar</string> + <string name="cannotparsecert">Sertifika bilgileri görüntülenemiyor</string> + <string name="appbehaviour">Uygulama davranışı</string> + <string name="vpnbehaviour">VPN davranışı</string> + <string name="allow_vpn_changes">VPN Profillerinin değiştirilmesine izin ver</string> + <string name="hwkeychain">Donanım Anahtar Deposu:</string> <string name="permission_icon_app">Uygulama simgesi Android için OpenVPN kullanmaya çalışıyor</string> - <string name="faq_vpndialog43">"Android 4.3 ile VPN onay başlayan\"overlaying apps\"karşı korunuyor. Bu giriş dokunmaya tepki değil iletişim kutusunda olur. Bindirmeleri kullanan bir uygulama varsa, bu davranışa neden olabilir. Kusurlu bir app temas yazar app bulursanız. Bu sorun tüm VPN uygulamaları Android 4.3 ve daha sonra etkiler. Ayrıca bkz: < bir href=\"http://code.google.com/p/ics-openvpn/issues/detail?id=185\" > sayı 185 <a> ek ayrıntılar için "</string> - <string name="faq_vpndialog43_title">VPN Onayla iletişim Android 4.3 ve üstü</string> - <string name="donatePlayStore">Alternatif olarak Play Store den bağış yapabilirsiniz.</string> - <string name="thanks_for_donation">Bağış için teşekkürler%s!</string> - <string name="logCleared">Kayıtlar temizlendi.</string> - <string name="show_password">Şifreyi göster</string> + <string name="faq_vpndialog43">"Android 4.3\'ten itibaren, VPN onayları \"kaplayan uygulamalara\" karşı güven altına alındı. Bu da pencerenin dokunma girdisine yanıt vermemesiyle sonuçlanır. Kaplamaları kullanan bir uygulamanız varsa, bu davranışa bu uygulama sebep olmuş olabilir. Saldırgan bir uygulama bulursanız, uygulamanın geliştiricisine ulaşın. Bu sorun Android 4.3 ve sonrasındaki tüm VPN uygulamalarını etkilemektedir. Ayrıca ayrıntılar için bkz. <a href=\"https://github.com/schwabe/ics-openvpn/issues/185\">Issue 185<a>"</string> + <string name="faq_vpndialog43_title">VPN Onay Penceresi</string> + <string name="donatePlayStore">Alternatif olarak Play Store\'dan bağış yapabilirsiniz:</string> + <string name="thanks_for_donation">%s bağış için teşekkürler!</string> + <string name="logCleared">Günlük temizlendi.</string> + <string name="show_password">Parolayı göster</string> <string name="keyChainAccessError">Anahtarlık erişim hatası: %s</string> <string name="timestamp_short">Kısa</string> <string name="timestamp_iso">ISO</string> - <string name="timestamps">Zaman damgaları</string> + <string name="timestamps">Zaman Damgaları</string> <string name="timestamps_none">Hiçbiri</string> <string name="uploaded_data">Yükleme</string> <string name="downloaded_data">İndirme</string> @@ -314,14 +312,20 @@ <string name="logview_options">Görünüm seçenekleri</string> <string name="unhandled_exception">Kural dışı durum: %1$s\n\n%2$s</string> <string name="unhandled_exception_context">%3$s: %1$s\n\n%2$s</string> - <string name="faq_system_dialog_xposed">Eğer android cihazınızı rootladıysanız <a href=\"http://xposed.info/\">Xposed </a> ve <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog confirm modülünü</a> sorumluluğunu kendiniz alarak yükleyebilirsiniz</string> - <string name="full_licenses">Lisanslar</string> - <string name="blocklocal_title">Yerel ağlar için Bypass VPN</string> - <string name="userpw_file">Kullanıcı adı / Şifre dosyası</string> - <string name="imported_from_file">[Buradan içeri aktar: %s]</string> - <string name="files_missing_hint">Bazı dosyalar bulunamadı. Lütfen profile aktarılacak dosyaları seçiniz:</string> - <string name="import_log">Kaydı içe aktar:</string> - <string name="mssfix_invalid_value">MSS değeri 0 ile 9000 arasında bir tamsayı olmak zorundadır</string> + <string name="faq_system_dialog_xposed"> Android cihazınız root\'lu ise <a href=\"http://xposed.info/\">Xposed çalışma çerçevesini</a> ve <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Pencere onay modülünü</a> kendi sorumluluğunuzda yükleyebilirsiniz\"</string> + <string name="full_licenses">Tam lisanslar</string> + <string name="blocklocal_summary">Doğrudan yerel arabirimlere bağlı ağlar VPN üzerinden yönlendirilmez. Bu seçenekteki işaretin kaldırılması, yerel ağlar için amaçlanmış tüm trafiği VPN\'e yönlendirir.</string> + <string name="blocklocal_title">Yerel ağlar için VPN\'i yoksay</string> + <string name="userpw_file">Kullanıcı adı/Parola dosyası</string> + <string name="imported_from_file">[Buradan içeri aktarıldı: %s]</string> + <string name="files_missing_hint">Bazı dosyalar bulunamadı. Lütfen profile aktarılacak dosyaları seçin:</string> + <string name="openvpn_is_no_free_vpn">Bu uygulamayı kullanabilmeniz için OpenVPN destekleyen bir VPN sağlayıcısı/VPN ağ geçidine (genellikle işvereniniz tarafından sağlanır) ihtiyacınız var. OpenVPN hakkında daha fazla bilgi ve kendi OpenVPN sunucunuzu nasıl yapılandıracağınızı öğrenmek için http://community.openvpn.net/ adresine bakın.</string> + <string name="import_log">Alma günlüğü:</string> + <string name="ip_looks_like_subnet">Vpn topolojisi \"%3$s\" belirtildi ancak ifconfig %1$s %2$s daha çok bir ağ maskesi içeren bir IP adresi gibi görünüyor. \"subnet\" topolojisi olarak varsayılacak.</string> + <string name="mssfix_invalid_value">MSS geçersiz kılma değeri 0 ile 9000 arasında bir tamsayı olmak zorundadır</string> + <string name="mssfix_value_dialog">Tünel üzerinden çalışan TCP oturumlarına, gönderi paket boyutlarını OpenVPN kapladıktan sonra sınırlamalarını, OpenVPN\'nin eşine gönderdiği dönen UDP paket boyutunun bu bayt sayısını aşmayacağını bildir (öntanımlı 1450).</string> + <string name="mssfix_checkbox">TCP yükünün MSS değerini geçersiz kıl</string> + <string name="mssfix_dialogtitle">TCP yükünün MSS değerini ayarla</string> <string name="client_behaviour">İstemci davranışı</string> <string name="clear_external_apps">İzin verilmiş harici uygulamaları temizle</string> <string name="loading">Yükleniyor…</string> @@ -329,43 +333,72 @@ <string name="disallowed_vpn_apps_info">İzin verilmeyen VPN uygulamaları: %1$s</string> <string name="app_no_longer_exists">%s adlı paket artık yüklü değil, izin listesinden çıkarılıyor</string> <string name="vpn_disallow_radio">Seçilen uygulamar dışındaki tüm uygulamalar için VPN kullanılır</string> - <string name="vpn_allow_radio">Sadece seçilen uygulamar için VPN kullanılır</string> + <string name="vpn_allow_radio">Sadece seçilen uygulamalar için VPN kullanılır</string> <string name="query_delete_remote">Uzak sunucu girişi kaldırılsın mı?</string> <string name="keep">Sakla</string> <string name="delete">Sil</string> - <string name="add_remote">Yenı uzak sunucu ekle</string> - <string name="remote_random">Bağlanmak için bağlantı girişlerini rasgele bir sırada kullan</string> + <string name="add_remote">Yeni uzak sunucu ekle</string> + <string name="remote_random">Bağlanmak için bağlantı girişlerini rastgele bir sırada kullan</string> <string name="remote_no_server_selected">En az bir uzak sunucu tanımlamalı ve etkinleştirmelisiniz.</string> <string name="server_list">Sunucu Listesi</string> - <string name="vpn_allowed_apps">İzin verilen uygulamalar</string> + <string name="vpn_allowed_apps">İzin Verilen Uygulamalar</string> <string name="advanced_settings">Gelişmiş Ayarlar</string> <string name="payload_options">Yük seçenekleri</string> <string name="tls_settings">TLS Ayarları</string> - <string name="duplicate_vpn">VPN profilini kopyala</string> - <string name="duplicate_profile_title">Profil kopyalama: %s</string> + <string name="no_remote_defined">Tanımlanmış uzak makine yok</string> + <string name="duplicate_vpn">VPN profilini çoğalt</string> + <string name="duplicate_profile_title">Çoğaltılan profil: %s</string> <string name="show_log">Günlüğü göster</string> + <string name="faq_android_clients">Android için birçok OpenVPN istemcisi mevcut. En çok kullanılanlar Android için OpenVPN (bu istemci), OpenVPN Connect ve OpenVPN Settings\'tir.<p>Bu istemciler iki gruba ayrılabilir. Android için OpenVPN ve OpenVPN Connect, resmi VPNService API (Android 4.0+) kullanır ve root erişimi gerektirmez. Ancak OpenVPN Settings, root gerektirir.<p>Android için OpenVPN açık kaynaklı bir yazılımdır ve Arne Schwabe tarafından geliştirilmiştir. Daha çok gelişmiş kullanıcılar hedef alınmıştır ve birçok seçenek sunar. Ayrıca uygulama içerisinde profilleri içeri aktarma ve profilleri yapılandırma/değiştirme imkanı sunar. İstemci OpenVPN\'in topluluk sürümü baz alınarak geliştirilmiştir ve OpenVPN 2.x kaynak kodu tabanlıdır. Bu istemci topluluğun yarı resmi istemcisi olarak görülebilir. <p>OpenVPN Connect, OpenVPN Technologies, Inc. tarafından geliştirilmiş kapalı kaynak istemcidir. İstemci genel kullanım istemcisi olup, daha genel kullanıcılara hitap ederek OpenVPN profillerini içe aktarmayı sağlar. Bu istemci OpenVPN protokolünün OpenVPN C++ tekrar geliştirilmiş sürümü tabanlıdır (Bu OpenVPN Technologies, Inc.\'in iOS OpenVPN uygulaması sunabilmesi için gerekliydi). Bu istemci OpenVPN teknolojilerinin resmi istemcisidir <p> OpenVPN Settings ise istemcilerin en eskisi olup, açık kaynak OpenVPN için bir arayüzüdür. Android için OpenVPN\'nin aksine root erişimi gerektirir ve VPNService API\'i kullanmaz. Android 4.0+ gereksinimi yoktur</string> <string name="faq_androids_clients_title">Android için OpenVPN uygulamaları aralarındaki farklar</string> - <string name="ignore_multicast_route">Multicast rotasını yoksayma:%s</string> - <string name="ab_proxy_title">VPN\'ler için Proxy davranışı</string> - <string name="ab_lollipop_reinstall_title">VPN uygulamaları yeniden yükleme</string> + <string name="ignore_multicast_route">Multicast yolu yoksayılıyor: %s</string> + <string name="ab_only_cidr">Android, VPN\'e sadece CIDR rotalarını destekler. CIDR olmayan rotalar neredeyse hiç kullanılmadığından, Android için OpenVPN, rotalar için CIDR olmayan bir /32 kullanacak ve bir uyarı gösterecektir.</string> + <string name="ab_tethering_44">Paylaşım sadece VPN etkinken çalışır. Paylaşılan bağlantı VPN\'i KULLANMAYACAKTIR.</string> + <string name="ab_kitkat_mss">Önceki KitKat sürümü TCP bağlantılarında MSS değerini yanlış ayarladı (#61948). Bu sorunu geçici olarak çözebilmek için mssfix seçeneğini etkinleştirmeyi deneyin.</string> + <string name="ab_proxy">Hiçbir DNS sunucusu ayarlanmadığında Android mobil/kablosuz bağlantı için belirtilmiş vekil sunucu ayarlarını kullanmaya devam edecek. Android için OpenVPN, günlüğünde bunu size gösterecek.<p>VPN bir DNS sunucusu ayarladığında, Android vekil sunucuyu kullanmayacak. Bir VPN bağlantısı için vekil sunucu ayarlamak üzere bir API bulunmamaktadır.</p></string> + <string name="ab_lollipop_reinstall">VPN uygulamaları kaldırılıp tekrar yüklendiklerinde çalışmayabilirler. Ayrıntılar için bkz. #80074</string> + <string name="ab_not_route_to_vpn">Yapılandırılan istemci IP ve ağ maskesindeki IP adresleri VPN\'e yönlendirilmemektedir. OpenVPN bu sorunu istemci IP ve ağ maskesine çözümlenen bir rote ekleyerek çözmektedir</string> + <string name="ab_persist_tun">Persist-tun desteği için kullanılmak üzere bir tun aygıtı etkin iken başka bir tun aygını açmak cihazdaki VPN hizmetlerinin çökmesine neden olur. VPN\'in tekrar çalışması için yeniden başlatma gereklidir. Android için OpenVPN, tun aygıtını yeniden açmayı önlemeye çalışır, ancak gerçekten gerekli olduğunda çökmeyi önlemek için yeni TUN aygıtı açmadan önce geçerli TUN aygıtını kapatır. Bu VPN olmayan bağlantılar üzerinde paketlerin gönderildiği kısa bir aralığa sebep olabilir. Bu çözüme rağmen VPN hizmetleri hala çökmekte ve aygıtınızın yeniden başlatılmasını gerektirir.</string> + <string name="ab_secondary_users">VPN ikincil kullanıcılar için hiç çalışmamaktadır.</string> + <string name="ab_kitkat_reconnect">"Birçok kullanıcı mobil bağlantı/mobil veri bağlantısının VPN uygulaması kullanırken koptuğunu bildiriyor. Bu davranış bazı mobil operatörü/cihaz kombinasyonunu etkiliyor gibi görünüyor ve şimdiye kadar bu soruna bir çözüm bulunamadı."</string> + <string name="ab_vpn_reachability_44">VPN\'siz ulaşılabilen hedefe sadece VPN üzerinde ulaşılabilir. IPv6 VPN\'leri hiç çalışmıyor.</string> + <string name="ab_only_cidr_title">CIDR Olmayan Rotalar</string> + <string name="ab_proxy_title">VPN\'ler için Vekil Sunucu davranışı</string> + <string name="ab_lollipop_reinstall_title">VPN uygulamalarını yeniden yükleme</string> <string name="version_upto">%s ve önceki</string> <string name="copy_of_profile">%s kopyası</string> <string name="ab_not_route_to_vpn_title">Yapılandırılmış IP adresine yönlendir</string> <string name="ab_kitkat_mss_title">VPN bağlantısı için yanlış MSS değeri</string> <string name="ab_secondary_users_title">İkincil tablet kullanıcıları</string> - <string name="custom_connection_options_warng">Özel bağlantı seçenekleri belirtin. Dikkatli kullanın</string> + <string name="custom_connection_options_warng">Özel bağlantı seçeneklerini belirtin. Dikkatli kullanın</string> <string name="custom_connection_options">Özel Seçenekler</string> - <string name="remove_connection_entry">Bağlantı girdisini kaldırın</string> - <string name="ab_vpn_reachability_44_title">Uzak ağlar ulaşılamıyor</string> - <string name="ab_persist_tun_title">Sürekli tun modu</string> - <string name="version_and_later">%s ve daha sonra</string> - <string name="crl_file">Sertifika iptal listesi</string> + <string name="remove_connection_entry">Bağlantı girdisini kaldır</string> + <string name="ab_kitkat_reconnect_title">Mobil ağda rastgele bağlantı kesilmeleri</string> + <string name="ab_vpn_reachability_44_title">Uzak ağlara ulaşılamıyor</string> + <string name="ab_persist_tun_title">Kalıcı tun kipi</string> + <string name="version_and_later">%s ve daha sonrası</string> + <string name="tls_cipher_alert_title">Bağlantı SSL23_GET_SERVER_HELLO:sslv3 uyarı el sıkışma hatası ile başarısız oluyor</string> + <string name="tls_cipher_alert">Daha yeni Android için OpenVPN sürümleri (0.6.29/Mart 2015) izin verilen şifreleyici takımları için (tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\") daha güvenli varsayılanı kullanıyor. Ancak, Perfect Forward Secrecy (Diffie-Hellman) desteklemeyen daha az güvenli şifreleyici ve dışa aktarıcı şifreleyici takımlarını yoksaymak bazı sorunlara yol açmaktadır. Bu, genellikle TSL güvenliğini sunucuda veya bazı gömülü işletim sistemlerinde arttırmak için tls-cipher ayarlayarak düşürülen SSL (örn. MikroTik) girişiminin iyi amaçlanması ancak zayıf uygulanmasından dolayı meydana gelir. \nBu sorunu çözmek için sunucuda, kullanışlı bir varsayılan değer yapın. Örneğin: tls-cipher \"DEFAULT:!EXP:!PSK:!SRP:!kRSA\". İstemcide bu sorunun geçici çözümü için, Android istemcide tls-cipher DEFAULT özel seçeneğini ekleyin.</string> + <string name="message_no_user_edit">Bu profil harici bir uygulama tarafından eklenmiş (%s) ve kullanıcı tarafından düzenlenemez işaretlenmiş.</string> + <string name="crl_file">Sertifika İptal Listesi</string> + <string name="service_restarted">OpenVPN Hizmeti yeniden başlatılıyor (Uygulama, çöktü veya bellek altında sonlandırıldı)</string> + <string name="import_config_error">İçe aktarılan yapılandırma hata bildirdi, kaydedilemez</string> <string name="Search">Arama</string> + <string name="lastdumpdate">(Son döküm %1$d:%2$dh eski (%3$s))</string> <string name="clear_log_on_connect">Yeni bağlantıda günlüğü temizle</string> - <string name="connect_timeout">Bağlantı zaman aşımına uğradı</string> + <string name="connect_timeout">Bağlantı Zaman Aşımı</string> + <string name="no_allowed_app">İzin verilmeyen uygulama eklendi. Tüm uygulamalara izin vermemek için izin verilen uygulama listesine en az bir uygulama eklemek üzere kendimizi (%s) ekliyoruz</string> + <string name="query_permissions_sdcard">Android için OpenVPN SD kart üzerinde eksik dosyaları bulmayı deneyebilir. İzin talebini başlatmak için bu iletiye dokunun.</string> <string name="protocol">Protokol</string> <string name="enabled_connection_entry">Etkin</string> + <string name="abi_mismatch">Tercih edilen bu cihazın yerli ABI önceliği (%1$s) ile yerli kütüphanelerden bildirilen ABI (%2$s) uyuşmuyor</string> <string name="months_left">%d ay kaldı</string> <string name="days_left">%d gün kaldı</string> <string name="hours_left">%d saat kaldı</string> + <string name="permission_revoked">VPN izni işletim sistemi tarafından (örn. başlatılan diğer VPN programı) reddedildi, VPN durduruluyor</string> + <string name="pushpeerinfo">Eş bilgisini it</string> + <string name="pushpeerinfosummary">Sunucuya ek bilgi gönder, örn. SSL sürümü ve Android sürümü</string> + <string name="pw_request_dialog_title">%1$s gerekli</string> + <string name="pw_request_dialog_prompt">Lütfen %1$s profili için parola girin</string> + <string name="menu_use_inline_data">Satır içi veri kullan</string> </resources> diff --git a/app/src/main/res/values-uk/strings-icsopenvpn.xml b/app/src/main/res/values-uk/strings-icsopenvpn.xml index f715bf77..d97ced06 100755 --- a/app/src/main/res/values-uk/strings-icsopenvpn.xml +++ b/app/src/main/res/values-uk/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-v21/refs.xml b/app/src/main/res/values-v21/refs.xml index 510f128b..f3f43692 100644 --- a/app/src/main/res/values-v21/refs.xml +++ b/app/src/main/res/values-v21/refs.xml @@ -5,13 +5,13 @@ --> <resources> - <drawable name="ic_menu_close_clear_cancel">@drawable/ic_close_white_24dp</drawable> - <drawable name="ic_menu_play">@drawable/ic_play_arrow_white_24dp</drawable> - <drawable name="ic_menu_pause">@drawable/ic_pause_white_24dp</drawable> - <drawable name="ic_menu_share">@drawable/ic_share_white_24dp </drawable> - <drawable name="ic_menu_save">@drawable/ic_check_white_24dp</drawable> - <drawable name="ic_menu_view">@drawable/ic_filter_list_white_24dp</drawable> - <drawable name="ic_menu_delete">@drawable/ic_delete_white_24dp</drawable> - <drawable name="ic_menu_delete_grey">@drawable/ic_delete_grey600_24dp</drawable> - + <drawable name="ic_menu_close_clear_cancel">@drawable/ic_close_white_24dp</drawable> + <drawable name="ic_menu_play">@drawable/ic_play_arrow_white_24dp</drawable> + <drawable name="ic_menu_pause">@drawable/ic_pause_white_24dp</drawable> + <drawable name="ic_menu_share">@drawable/ic_share_white_24dp </drawable> + <drawable name="ic_menu_save">@drawable/ic_check_white_24dp</drawable> + <drawable name="ic_menu_view">@drawable/ic_filter_list_white_24dp</drawable> + <drawable name="ic_menu_delete">@drawable/ic_delete_white_24dp</drawable> + <drawable name="ic_menu_delete_grey">@drawable/ic_delete_grey600_24dp</drawable> </resources> + diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml index 83a693f1..fa27ebe8 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-v21/styles.xml @@ -25,4 +25,5 @@ <item name="android:colorPrimaryDark">@color/primary_dark</item> <item name="android:colorAccent">@color/accent</item> </style> + </resources> diff --git a/app/src/main/res/values-vi/strings-icsopenvpn.xml b/app/src/main/res/values-vi/strings-icsopenvpn.xml index 87d040ab..625ab34f 100755 --- a/app/src/main/res/values-vi/strings-icsopenvpn.xml +++ b/app/src/main/res/values-vi/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-zh-rCN/strings-icsopenvpn.xml b/app/src/main/res/values-zh-rCN/strings-icsopenvpn.xml index efd8a669..2a3aac46 100755 --- a/app/src/main/res/values-zh-rCN/strings-icsopenvpn.xml +++ b/app/src/main/res/values-zh-rCN/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values-zh-rTW/strings-icsopenvpn.xml b/app/src/main/res/values-zh-rTW/strings-icsopenvpn.xml index 179396b8..c9dfeee5 100755 --- a/app/src/main/res/values-zh-rTW/strings-icsopenvpn.xml +++ b/app/src/main/res/values-zh-rTW/strings-icsopenvpn.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <!--Generated by crowdin.com--> <!-- - ~ Copyright (c) 2012-2014 Arne Schwabe + ~ Copyright (c) 2012-2016 Arne Schwabe ~ Distributed under the GNU GPL v2 with additional terms. For full terms see the file doc/LICENSE.txt --> <resources> diff --git a/app/src/main/res/values/refs.xml b/app/src/main/res/values/refs.xml index dce39385..4d3c257a 100644 --- a/app/src/main/res/values/refs.xml +++ b/app/src/main/res/values/refs.xml @@ -5,10 +5,12 @@ --> <resources> - <drawable name="ic_menu_close_clear_cancel">@android:drawable/ic_menu_close_clear_cancel</drawable> - <drawable name="ic_menu_share">@android:drawable/ic_menu_share </drawable> - <drawable name="ic_menu_save">@android:drawable/ic_menu_save</drawable> - <drawable name="ic_menu_view">@android:drawable/ic_menu_view</drawable> - <drawable name="ic_menu_delete">@android:drawable/ic_menu_delete</drawable> - <drawable name="ic_menu_edit">@android:drawable/ic_menu_edit</drawable> + <drawable name="ic_menu_close_clear_cancel">@android:drawable/ic_menu_close_clear_cancel</drawable> + <drawable name="ic_menu_play">@android:drawable/ic_media_play</drawable> + <drawable name="ic_menu_pause">@android:drawable/ic_media_pause</drawable> + <drawable name="ic_menu_share">@android:drawable/ic_menu_share </drawable> + <drawable name="ic_menu_save">@android:drawable/ic_menu_save</drawable> + <drawable name="ic_menu_view">@android:drawable/ic_menu_view</drawable> + <drawable name="ic_menu_delete">@android:drawable/ic_menu_delete</drawable> + <drawable name="ic_menu_edit">@android:drawable/ic_menu_edit</drawable> </resources> diff --git a/app/src/main/res/values/strings-icsopenvpn.xml b/app/src/main/res/values/strings-icsopenvpn.xml index aa65a14d..3956604e 100755 --- a/app/src/main/res/values/strings-icsopenvpn.xml +++ b/app/src/main/res/values/strings-icsopenvpn.xml @@ -136,7 +136,7 @@ <string name="opentun_no_ipaddr">Refusing to open tun device without IP information</string> <string name="menu_import">Import Profile from ovpn file</string> <string name="menu_import_short">Import</string> - <string name="import_content_resolve_error">Could not read Profile to import</string> + <string name="import_content_resolve_error">Could not read profile to import</string> <string name="error_reading_config_file">Error reading config file</string> <string name="add_profile">add Profile</string> <string name="import_could_not_open">Could not find file %1$s mentioned in the imported config file</string> @@ -312,7 +312,7 @@ <string name="unhandled_exception_context">%3$s: %1$s\n\n%2$s</string> <string name="faq_system_dialog_xposed">If you have rooted your Android device you can install the <a href=\"http://xposed.info/\">Xposed framework</a> and a the <a href=\"http://repo.xposed.info/module/de.blinkt.vpndialogxposed\">VPN Dialog confirm module</a> at your own risk"</string> <string name="full_licenses">Full licenses</string> - <string name="blocklocal_summary">Networks directly connected to the local interfaces will not be routed over the VPN. Deselecting this option will redirect all traffic indented for local networks to the VPN.</string> + <string name="blocklocal_summary">Networks directly connected to the local interfaces will not be routed over the VPN. Deselecting this option will redirect all traffic intented for local networks to the VPN.</string> <string name="blocklocal_title">Bypass VPN for local networks</string> <string name="userpw_file">Username/Password file</string> <string name="imported_from_file">[Imported from: %s]</string> @@ -347,13 +347,13 @@ <string name="duplicate_vpn">Duplicate VPN profile</string> <string name="duplicate_profile_title">Duplicating profile: %s</string> <string name="show_log">Show log</string> - <string name="faq_android_clients">Multiple OpenVPN clients for Android exist. The most common ones are OpenVPN for Android (this client), OpenVPN Connect and OpenVPN Settings.<p>The clients can be grouped into two groups: OpenVPN for Android and OpenVPN Connect use the official VPNService API (Android 4.0+) and require no root and OpenVPN Settings which uses root.<p>OpenVPN for Android is an open source client and developed by Arne Schwabe. It is targeted at more advanced users and offers many settings and the ability to import profiles from files and to configure/change profiles inside the app. The client is based on the community version of OpenVPN. It is based on the OpenVPN 2.x source code. This client can be seen as the semi officially client of the community. <p>OpenVPN Connect is non open source client that is developed by OpenVPN Technologies, Inc. The client is indented to be general use client and moree targeted at the average user and allows the import of OpenVPN profiles. This client is based on the OpenVPN C++ reimplementation of the OpenVPN protocol (This was required to allow OpenVPN Technologies, Inc to publish an iOS OpenVPN app). This client is the official client of the OpenVPN technologies <p> OpenVPN Settings is the oldest of the clients and also a UI for the open source OpenVPN. In contrast to OpenVPN for Android it requires root and does not use the VPNService API. It does not depend on Android 4.0+</string> + <string name="faq_android_clients">Multiple OpenVPN clients for Android exist. The most common ones are OpenVPN for Android (this client), OpenVPN Connect and OpenVPN Settings.<p>The clients can be grouped into two groups: OpenVPN for Android and OpenVPN Connect use the official VPNService API (Android 4.0+) and require no root and OpenVPN Settings which uses root.<p>OpenVPN for Android is an open source client and developed by Arne Schwabe. It is targeted at more advanced users and offers many settings and the ability to import profiles from files and to configure/change profiles inside the app. The client is based on the community version of OpenVPN. It is based on the OpenVPN 2.x source code. This client can be seen as the semi officially client of the community. <p>OpenVPN Connect is non open source client that is developed by OpenVPN Technologies, Inc. The client is indented to be general use client and more targeted at the average user and allows the import of OpenVPN profiles. This client is based on the OpenVPN C++ reimplementation of the OpenVPN protocol (This was required to allow OpenVPN Technologies, Inc to publish an iOS OpenVPN app). This client is the official client of the OpenVPN technologies <p> OpenVPN Settings is the oldest of the clients and also a UI for the open source OpenVPN. In contrast to OpenVPN for Android it requires root and does not use the VPNService API. It does not depend on Android 4.0+</string> <string name="faq_androids_clients_title">Differences between the OpenVPN Android clients</string> <string name="ignore_multicast_route">Ignoring multicast route: %s</string> <string name="ab_only_cidr">Android supports only CIDR routes to the VPN. Since non-CIDR routes are almost never used, OpenVPN for Android will use a /32 for routes that are not CIDR and issue a warning.</string> <string name="ab_tethering_44">Tethering works while the VPN is active. The tethered connection will NOT use the VPN.</string> <string name="ab_kitkat_mss">Early KitKat version set the wrong MSS value on TCP connections (#61948). Try to enable the mssfix option to workaround this bug.</string> - <string name="ab_proxy">Android will keep using your proxy settings specified for the mobile/Wi-Fi connection when no DNS servers are set. OpenVPN for Android will warn you about this in the log.<p>When a VPN sets a DNS server Android will not a proxy. There is no API to set a proxy for a VPN connection.</p></string> + <string name="ab_proxy">Android will keep using your proxy settings specified for the mobile/Wi-Fi connection when no DNS servers are set. OpenVPN for Android will warn you about this in the log.<p>When a VPN sets a DNS server Android will not use a proxy. There is no API to set a proxy for a VPN connection.</p></string> <string name="ab_lollipop_reinstall">VPN apps may stop working when uninstalled and reinstalled again. For details see #80074</string> <string name="ab_not_route_to_vpn">The configured client IP and the IPs in its network mask are not routed to the VPN. OpenVPN works around this bug by explicitly adding a route that corrosponds to the client IP and its netmask</string> <string name="ab_persist_tun">Opening a tun device while another tun device is active, which is used for persist-tun support, crashes the VPNServices on the device. A reboot is required to make VPN work again. OpenVPN for Android tries to avoid reopening the tun device and if really needed first closes the current TUN before opening the new TUN device to avoid to crash. This may lead to a short window where packets are sent over the non-VPN connection. Even with this workaround the VPNServices sometimes crashes and requires a reboot of the device.</string> @@ -400,4 +400,9 @@ <string name="pw_request_dialog_prompt">Please enter the password for profile %1$s</string> <string name="menu_use_inline_data">Use inline data</string> <string name="export_config_chooser_title">Export configuration file</string> + <string name="missing_tlsauth">tls-auth file is missing</string> + <string name="missing_certificates">Missing user certificate or user certifcate key file</string> + <string name="missing_ca_certificate">Missing CA certificate</string> + <string name="crl_title">Certifcate Revoke List (optional)</string> + <string name="reread_log">Reread (%d) log items from log cache file</string> </resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 13d5e0b1..4cdf2c00 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -53,4 +53,10 @@ </style> + <style name="blinkt.translucent" parent="blinkt.dialog"> + <item name="android:windowNoTitle">true</item> + <item name="android:windowActionBar">false</item> + <item name="android:windowFullscreen">true</item> + <item name="android:windowContentOverlay">@null</item> + </style> </resources>
\ No newline at end of file |