diff options
author | Parménides GV <parmegv@sdf.org> | 2014-05-28 17:15:44 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-05-28 17:15:44 +0200 |
commit | 6fcd101fcbc7779ffd7239cc35e5c3359ae38fcf (patch) | |
tree | 190d57ad5785b1397d6a8346726136b83d0aa870 /app/src/main | |
parent | a0a7be518a758ad3c17111e8a5f3694d1a711d73 (diff) |
Resources merge correctly.
Diffstat (limited to 'app/src/main')
27 files changed, 72 insertions, 282 deletions
diff --git a/app/src/main/java/de/blinkt/openvpn/FileProvider.java b/app/src/main/java/de/blinkt/openvpn/FileProvider.java deleted file mode 100644 index f9fedd02..00000000 --- a/app/src/main/java/de/blinkt/openvpn/FileProvider.java +++ /dev/null @@ -1,142 +0,0 @@ -package de.blinkt.openvpn; - -import se.leap.bitmaskclient.R; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; - -import android.content.ContentProvider; -import android.content.ContentProvider.PipeDataWriter; -import android.content.ContentValues; -import android.content.res.AssetFileDescriptor; -import android.database.Cursor; -import android.database.MatrixCursor; -import android.net.Uri; -import android.os.Bundle; -import android.os.ParcelFileDescriptor; -import android.provider.OpenableColumns; -import android.util.Log; -import de.blinkt.openvpn.core.VpnStatus; - -/** - * A very simple content provider that can serve arbitrary asset files from - * our .apk. - */ -public class FileProvider extends ContentProvider -implements PipeDataWriter<InputStream> { - @Override - public boolean onCreate() { - return true; - } - - @Override - public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, - String sortOrder) { - try { - File dumpfile = getFileFromURI(uri); - - - MatrixCursor c = new MatrixCursor(projection); - - Object[] row = new Object[projection.length]; - int i=0; - for (String r:projection) { - if(r.equals(OpenableColumns.SIZE)) - row[i] = dumpfile.length(); - if(r.equals(OpenableColumns.DISPLAY_NAME)) - row[i] = dumpfile.getName(); - i++; - } - c.addRow(row); - return c; - } catch (FileNotFoundException e) { - VpnStatus.logException(e); - return null; - } - - - } - - @Override - public Uri insert(Uri uri, ContentValues values) { - // Don't support inserts. - return null; - } - - @Override - public int delete(Uri uri, String selection, String[] selectionArgs) { - // Don't support deletes. - return 0; - } - - @Override - public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { - // Don't support updates. - return 0; - } - - @Override - public String getType(Uri uri) { - // For this sample, assume all files are .apks. - return "application/octet-stream"; - } - - @Override - public AssetFileDescriptor openAssetFile(Uri uri, String mode) throws FileNotFoundException { - File dumpfile = getFileFromURI(uri); - - try { - - InputStream is = new FileInputStream(dumpfile); - // Start a new thread that pipes the stream data back to the caller. - return new AssetFileDescriptor( - openPipeHelper(uri, null, null, is, this), 0, - dumpfile.length()); - } catch (IOException e) { - throw new FileNotFoundException("Unable to open minidump " + uri); - } - } - - private File getFileFromURI(Uri uri) throws FileNotFoundException { - // Try to open an asset with the given name. - String path = uri.getPath(); - if(path.startsWith("/")) - path = path.replaceFirst("/", ""); - - // I think this already random enough, no need for magic secure cookies - // 1f9563a4-a1f5-2165-255f2219-111823ef.dmp - if (!path.matches("^[0-9a-z-.]*(dmp|dmp.log)$")) - throw new FileNotFoundException("url not in expect format " + uri); - File cachedir = getContext().getCacheDir(); - return new File(cachedir,path); - } - - @Override - public void writeDataToPipe(ParcelFileDescriptor output, Uri uri, String mimeType, - Bundle opts, InputStream args) { - // Transfer data from the asset to the pipe the client is reading. - byte[] buffer = new byte[8192]; - int n; - FileOutputStream fout = new FileOutputStream(output.getFileDescriptor()); - try { - while ((n=args.read(buffer)) >= 0) { - fout.write(buffer, 0, n); - } - } catch (IOException e) { - Log.i("OpenVPNFileProvider", "Failed transferring", e); - } finally { - try { - args.close(); - } catch (IOException e) { - } - try { - fout.close(); - } catch (IOException e) { - } - } - } -} diff --git a/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java b/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java index cfd0efb0..6b4addb3 100644 --- a/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java +++ b/app/src/main/java/de/blinkt/openvpn/LaunchVPN.java @@ -2,6 +2,8 @@ package de.blinkt.openvpn; import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.R; + import java.io.IOException; import android.app.Activity; @@ -108,75 +110,7 @@ public class LaunchVPN extends Activity { } } - - private void askForPW(final int type) { - - final EditText entry = new EditText(this); - final View userpwlayout = getLayoutInflater().inflate(R.layout.userpass, null); - - entry.setSingleLine(); - entry.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); - entry.setTransformationMethod(new PasswordTransformationMethod()); - - AlertDialog.Builder dialog = new AlertDialog.Builder(this); - dialog.setTitle("Need " + getString(type)); - dialog.setMessage("Enter the password for profile " + mSelectedProfile.mName); - - if (type == R.string.password) { - ((EditText)userpwlayout.findViewById(R.id.username)).setText(mSelectedProfile.mUsername); - ((EditText)userpwlayout.findViewById(R.id.password)).setText(mSelectedProfile.mPassword); - ((CheckBox)userpwlayout.findViewById(R.id.save_password)).setChecked(!TextUtils.isEmpty(mSelectedProfile.mPassword)); - ((CheckBox)userpwlayout.findViewById(R.id.show_password)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (isChecked) - ((EditText)userpwlayout.findViewById(R.id.password)).setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); - else - ((EditText)userpwlayout.findViewById(R.id.password)).setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); - } - }); - - dialog.setView(userpwlayout); - } else { - dialog.setView(entry); - } - - AlertDialog.Builder builder = dialog.setPositiveButton(android.R.string.ok, - new OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - - if (type == R.string.password) { - mSelectedProfile.mUsername = ((EditText) userpwlayout.findViewById(R.id.username)).getText().toString(); - - String pw = ((EditText) userpwlayout.findViewById(R.id.password)).getText().toString(); - if (((CheckBox) userpwlayout.findViewById(R.id.save_password)).isChecked()) { - mSelectedProfile.mPassword=pw; - } else { - mSelectedProfile.mPassword=null; - mSelectedProfile.mTransientPW = pw; - } - } else { - mSelectedProfile.mTransientPCKS12PW = entry.getText().toString(); - } - onActivityResult(START_VPN_PROFILE, Activity.RESULT_OK, null); - - } - - }); - dialog.setNegativeButton(android.R.string.cancel, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - VpnStatus.updateStateString("USER_VPN_PASSWORD_CANCELLED", "", R.string.state_user_vpn_password_cancelled, - ConnectionStatus.LEVEL_NOTCONNECTED); - finish(); - } - }); - - dialog.create().show(); - - } + @Override protected void onActivityResult (int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); diff --git a/app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java b/app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java deleted file mode 100644 index 129d8d1c..00000000 --- a/app/src/main/java/de/blinkt/openvpn/OnBootReceiver.java +++ /dev/null @@ -1,36 +0,0 @@ -package de.blinkt.openvpn; - -import se.leap.bitmaskclient.R; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import de.blinkt.openvpn.core.ProfileManager; - - -public class OnBootReceiver extends BroadcastReceiver { - - // Debug: am broadcast -a android.intent.action.BOOT_COMPLETED - @Override - public void onReceive(Context context, Intent intent) { - - final String action = intent.getAction(); - - if(Intent.ACTION_BOOT_COMPLETED.equals(action)) { - VpnProfile bootProfile = ProfileManager.getOnBootProfile(context); - if(bootProfile != null) { - launchVPN(bootProfile, context); - } - } - } - - void launchVPN(VpnProfile profile, Context context) { - Intent startVpnIntent = new Intent(Intent.ACTION_MAIN); - startVpnIntent.setClass(context, LaunchVPN.class); - startVpnIntent.putExtra(LaunchVPN.EXTRA_KEY,profile.getUUIDString()); - startVpnIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startVpnIntent.putExtra(LaunchVPN.EXTRA_HIDELOG, true); - - context.startActivity(startVpnIntent); - } -} diff --git a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java index afa70100..000fc47c 100644 --- a/app/src/main/java/de/blinkt/openvpn/VpnProfile.java +++ b/app/src/main/java/de/blinkt/openvpn/VpnProfile.java @@ -2,6 +2,8 @@ package de.blinkt.openvpn; import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.R; + import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; 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 fe7a8bd3..2f04d235 100644 --- a/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java +++ b/app/src/main/java/de/blinkt/openvpn/fragments/LogFragment.java @@ -2,6 +2,8 @@ package de.blinkt.openvpn.fragments; import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.R; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; @@ -22,8 +24,7 @@ import android.widget.*; import android.widget.AdapterView.OnItemLongClickListener; import de.blinkt.openvpn.*; import de.blinkt.openvpn.activities.DisconnectVPN; -import de.blinkt.openvpn.activities.MainActivity; -import de.blinkt.openvpn.activities.VPNPreferences; +import se.leap.bitmaskclient.Dashboard; import de.blinkt.openvpn.core.OpenVPNManagement; import de.blinkt.openvpn.core.VpnStatus; import de.blinkt.openvpn.core.VpnStatus.ConnectionStatus; @@ -424,24 +425,14 @@ 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) { + } 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(),VPNPreferences.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(), MainActivity.class); + Intent parentActivityIntent = new Intent(getActivity(), Dashboard.class); parentActivityIntent.addFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/res/values-ca/strings-icsopenvpn.xml b/app/src/main/res/values-ca/strings-icsopenvpn.xml index 554b4816..67db8022 100755 --- a/app/src/main/res/values-ca/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ca/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN per Android</string> + <string name="address">Adreá del servidor:</string> <string name="port">Port del servidor:</string> <string name="location">Lloc</string> diff --git a/app/src/main/res/values-cs/strings-icsopenvpn.xml b/app/src/main/res/values-cs/strings-icsopenvpn.xml index 2377062e..179f81f1 100755 --- a/app/src/main/res/values-cs/strings-icsopenvpn.xml +++ b/app/src/main/res/values-cs/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN pro Android</string> + <string name="address">Adresa serveru:</string> <string name="port">Port serveru:</string> <string name="location">Lokace</string> diff --git a/app/src/main/res/values-de/strings-icsopenvpn.xml b/app/src/main/res/values-de/strings-icsopenvpn.xml index ef9fb9d6..9bf58685 100755 --- a/app/src/main/res/values-de/strings-icsopenvpn.xml +++ b/app/src/main/res/values-de/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN für Android</string> + <string name="address">Server:</string> <string name="port">Server Port:</string> <string name="location">Ort</string> diff --git a/app/src/main/res/values-es/strings-icsopenvpn.xml b/app/src/main/res/values-es/strings-icsopenvpn.xml index 5ad33bbd..e9b6ed81 100755 --- a/app/src/main/res/values-es/strings-icsopenvpn.xml +++ b/app/src/main/res/values-es/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN para Android</string> + <string name="address">Dirección del servidor:</string> <string name="port">Puerto del servidor:</string> <string name="location">Ubicación</string> diff --git a/app/src/main/res/values-et/strings-icsopenvpn.xml b/app/src/main/res/values-et/strings-icsopenvpn.xml index 61f8556c..f8e219f3 100755 --- a/app/src/main/res/values-et/strings-icsopenvpn.xml +++ b/app/src/main/res/values-et/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN Androidile</string> + <string name="address">Serveri aadress:</string> <string name="port">Serveri port:</string> <string name="location">Asukoht</string> diff --git a/app/src/main/res/values-fr/strings-icsopenvpn.xml b/app/src/main/res/values-fr/strings-icsopenvpn.xml index 140ac977..e84f8cb8 100755 --- a/app/src/main/res/values-fr/strings-icsopenvpn.xml +++ b/app/src/main/res/values-fr/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">"OpenVPN pour Android"</string> + <string name="address">"Adresse du serveur:"</string> <string name="port">"Port du serveur:"</string> <string name="location">"Emplacement"</string> diff --git a/app/src/main/res/values-id/strings-icsopenvpn.xml b/app/src/main/res/values-id/strings-icsopenvpn.xml index 0a7d32b0..ccb60754 100755 --- a/app/src/main/res/values-id/strings-icsopenvpn.xml +++ b/app/src/main/res/values-id/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN untuk Android</string> + <string name="address">Alamat Server:</string> <string name="port">Port server:</string> <string name="location">Lokasi</string> diff --git a/app/src/main/res/values-it/strings-icsopenvpn.xml b/app/src/main/res/values-it/strings-icsopenvpn.xml index b35fa480..aaa18afa 100755 --- a/app/src/main/res/values-it/strings-icsopenvpn.xml +++ b/app/src/main/res/values-it/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN per Android</string> + <string name="address">Indirizzo server:</string> <string name="port">Porta del server:</string> <string name="location">Posizione</string> diff --git a/app/src/main/res/values-ja/strings-icsopenvpn.xml b/app/src/main/res/values-ja/strings-icsopenvpn.xml index 162d56f0..2ce290a3 100755 --- a/app/src/main/res/values-ja/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ja/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN for Android</string> + <string name="address">サーバアドレス</string> <string name="port">ポート番号</string> <string name="location">場所</string> diff --git a/app/src/main/res/values-ko/strings-icsopenvpn.xml b/app/src/main/res/values-ko/strings-icsopenvpn.xml index 61504764..cd8bc176 100755 --- a/app/src/main/res/values-ko/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ko/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">안드로이드용 OpenVPN</string> + <string name="address">서버 주소:</string> <string name="port">서버 포트:</string> <string name="location">위치</string> diff --git a/app/src/main/res/values-nl/strings-icsopenvpn.xml b/app/src/main/res/values-nl/strings-icsopenvpn.xml index a7ae78fd..f553449b 100755 --- a/app/src/main/res/values-nl/strings-icsopenvpn.xml +++ b/app/src/main/res/values-nl/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN voor Android</string> + <string name="address">Server Adres:</string> <string name="port">Server Poort:</string> <string name="location">Locatie</string> diff --git a/app/src/main/res/values-no/strings-icsopenvpn.xml b/app/src/main/res/values-no/strings-icsopenvpn.xml index 23af8c31..7a7dd124 100755 --- a/app/src/main/res/values-no/strings-icsopenvpn.xml +++ b/app/src/main/res/values-no/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN for Android</string> + <string name="address">Server adresse:</string> <string name="port">Server port:</string> <string name="location">Plassering</string> diff --git a/app/src/main/res/values-pl/strings-icsopenvpn.xml b/app/src/main/res/values-pl/strings-icsopenvpn.xml index 5c96d94c..d628da6c 100755 --- a/app/src/main/res/values-pl/strings-icsopenvpn.xml +++ b/app/src/main/res/values-pl/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN dla Androida</string> + <string name="address">Adres serwera:</string> <string name="port">Port serwera:</string> <string name="location">Lokalizacja</string> diff --git a/app/src/main/res/values-ro/strings-icsopenvpn.xml b/app/src/main/res/values-ro/strings-icsopenvpn.xml index 7e00ba96..8ae2770e 100755 --- a/app/src/main/res/values-ro/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ro/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN pentru Android</string> + <string name="address">Adresa server:</string> <string name="port">Port server:</string> <string name="location">Locaţie</string> diff --git a/app/src/main/res/values-ru/strings-icsopenvpn.xml b/app/src/main/res/values-ru/strings-icsopenvpn.xml index 9cc95a5a..292ddf46 100755 --- a/app/src/main/res/values-ru/strings-icsopenvpn.xml +++ b/app/src/main/res/values-ru/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN для Android</string> + <string name="address">Адрес сервера:</string> <string name="port">Порт сервера:</string> <string name="location">Расположение</string> diff --git a/app/src/main/res/values-sv/strings-icsopenvpn.xml b/app/src/main/res/values-sv/strings-icsopenvpn.xml index 12a94cc9..1e4f3635 100755 --- a/app/src/main/res/values-sv/strings-icsopenvpn.xml +++ b/app/src/main/res/values-sv/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN för Android</string> + <string name="address">Serveradress:</string> <string name="port">Serverport:</string> <string name="location">Plats</string> diff --git a/app/src/main/res/values-tr/strings-icsopenvpn.xml b/app/src/main/res/values-tr/strings-icsopenvpn.xml index 85f1740f..903c358a 100755 --- a/app/src/main/res/values-tr/strings-icsopenvpn.xml +++ b/app/src/main/res/values-tr/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">Android için OpenVPN</string> + <string name="address">Sunucu adresi:</string> <string name="port">Sunucu Portu:</string> <string name="location">Konum</string> diff --git a/app/src/main/res/values-uk/strings-icsopenvpn.xml b/app/src/main/res/values-uk/strings-icsopenvpn.xml index 3418ece1..173ae0d4 100755 --- a/app/src/main/res/values-uk/strings-icsopenvpn.xml +++ b/app/src/main/res/values-uk/strings-icsopenvpn.xml @@ -2,7 +2,7 @@ <!--Generated by crowdin.net--> <!-- Generated by crowdin.net --> <resources> - <string name="app">OpenVPN для Android</string> + <string name="address">Адреса сервера:</string> <string name="port">Порт сервера:</string> <string name="location">Розташування</string> 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 a2fb95ce..0ffb5d6b 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.net--> <resources> - <string name="app">OpenVPN for Android</string> + <string name="address">服务器地址:</string> <string name="port">服务器端口:</string> <string name="location">地点</string> 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 75f72ecb..e467dd5b 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.net--> <resources> - <string name="app">OpenVPN for Android</string> + <string name="address">伺服器地址:</string> <string name="port">伺服器端口:</string> <string name="location">位置</string> diff --git a/app/src/main/res/values/strings-icsopenvpn.xml b/app/src/main/res/values/strings-icsopenvpn.xml index a5424c39..6ab41787 100755 --- a/app/src/main/res/values/strings-icsopenvpn.xml +++ b/app/src/main/res/values/strings-icsopenvpn.xml @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> <!-- Generated by crowdin.net --> <resources> + + <string name="address">Server Address:</string> <string name="port">Server Port:</string> <string name="location">Location</string> <string name="cant_read_folder">Unable to read directory</string> diff --git a/app/src/main/res/values/untranslatable.xml b/app/src/main/res/values/untranslatable.xml index 6435bfbf..4c652f20 100644 --- a/app/src/main/res/values/untranslatable.xml +++ b/app/src/main/res/values/untranslatable.xml @@ -16,4 +16,43 @@ <string name="lzo" translatable="false">LZO</string> <string name="openssl" translatable="false">OpenSSL</string> <string name="unknown_state" translatable="false">Unknown state</string> -</resources> + + <string name="copyright_blinktgui" translatable="false">Copyright 2012–2014 Arne Schwabe <arne@rfc2549.org></string> + + <string name="defaultserver" translatable="false">openvpn.uni-paderborn.de</string> + <string name="defaultport" translatable="false">1194</string> + <string name="copyright_file_dialog" translatable="false">File Dialog based on work by Alexander Ponomarev</string> + + + + <string name="file_dialog" translatable="false">File Dialog</string> + + + + <string name="permission_description">Allows another app to control OpenVPN</string> + <string name="bouncy_castle" translatable="false">Bouncy Castle Crypto APIs</string> + <string name="copyright_bouncycastle" translatable="false">Copyright © 2000–2012 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)</string> + <string name="state_user_vpn_permission" translatable="false">Waiting for user permission to use VPN API</string> + <string name="state_user_vpn_password" translatable="false">Waiting for user VPN password</string> + <string name="state_user_vpn_password_cancelled" translatable="false">VPN password input dialog cancelled</string> + <string name="state_user_vpn_permission_cancelled" translatable="false">VPN API permission dialog cancelled</string> + + + + + + + + + + + + + + + + + + + +</resources>
\ No newline at end of file |