diff options
Diffstat (limited to 'OpenKeychain')
42 files changed, 256 insertions, 134 deletions
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml index 672b3e2bf..e14fb44ba 100644 --- a/OpenKeychain/src/main/AndroidManifest.xml +++ b/OpenKeychain/src/main/AndroidManifest.xml @@ -3,8 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" package="org.sufficientlysecure.keychain" android:installLocation="auto" - android:versionCode="27003" - android:versionName="2.8 beta3"> + android:versionCode="28000" + android:versionName="2.8"> <!-- General remarks diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java index 37af95e28..57d74967b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java @@ -120,6 +120,7 @@ public class KeychainApplication extends Application { Account account = new Account(Constants.ACCOUNT_NAME, Constants.ACCOUNT_TYPE); if (manager.addAccountExplicitly(account, null, null)) { ContentResolver.setIsSyncable(account, ContactsContract.AUTHORITY, 1); + ContentResolver.setSyncAutomatically(account, ContactsContract.AUTHORITY, true); } else { Log.e(Constants.TAG, "Adding account failed!"); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java index b7c4dcb80..016d6dc14 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/helper/ContactHelper.java @@ -343,7 +343,7 @@ public class ContactHelper { // Delete fingerprints that are no longer present in OK for (String fingerprint : contactFingerprints) { resolver.delete(ContactsContract.RawContacts.CONTENT_URI, ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, - new String[]{Constants.PACKAGE_NAME, fingerprint}); + new String[]{Constants.ACCOUNT_TYPE, fingerprint}); } } @@ -354,7 +354,7 @@ public class ContactHelper { private static Set<String> getRawContactFingerprints(ContentResolver resolver) { HashSet<String> result = new HashSet<String>(); Cursor fingerprints = resolver.query(ContactsContract.RawContacts.CONTENT_URI, SOURCE_ID_PROJECTION, - ACCOUNT_TYPE_SELECTION, new String[]{Constants.PACKAGE_NAME}, null); + ACCOUNT_TYPE_SELECTION, new String[]{Constants.ACCOUNT_TYPE}, null); if (fingerprints != null) { while (fingerprints.moveToNext()) { result.add(fingerprints.getString(0)); @@ -373,7 +373,7 @@ public class ContactHelper { private static int findRawContactId(ContentResolver resolver, String fingerprint) { int rawContactId = -1; Cursor raw = resolver.query(ContactsContract.RawContacts.CONTENT_URI, ID_PROJECTION, - ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, new String[]{Constants.PACKAGE_NAME, fingerprint}, null, null); + ACCOUNT_TYPE_AND_SOURCE_ID_SELECTION, new String[]{Constants.ACCOUNT_TYPE, fingerprint}, null, null); if (raw != null) { if (raw.moveToNext()) { rawContactId = raw.getInt(0); @@ -388,8 +388,8 @@ public class ContactHelper { */ private static void insertContact(ArrayList<ContentProviderOperation> ops, Context context, String fingerprint) { ops.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI) - .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, context.getString(R.string.app_name)) - .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, Constants.PACKAGE_NAME) + .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, Constants.ACCOUNT_NAME) + .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, Constants.ACCOUNT_TYPE) .withValue(ContactsContract.RawContacts.SOURCE_ID, fingerprint) .build()); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java index 9effe4e67..f00383e0f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/UncachedKeyRing.java @@ -45,6 +45,7 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Date; @@ -339,7 +340,17 @@ public class UncachedKeyRing { } } + ArrayList<String> processedUserIds = new ArrayList<String>(); for (String userId : new IterableIterator<String>(masterKey.getUserIDs())) { + // check for duplicate user ids + if (processedUserIds.contains(userId)) { + log.add(LogLevel.WARN, LogType.MSG_KC_UID_DUP, + indent, userId); + // strip out the first found user id with this name + modified = PGPPublicKey.removeCertification(modified, userId); + } + processedUserIds.add(userId); + PGPSignature selfCert = null; revocation = null; @@ -416,13 +427,13 @@ public class UncachedKeyRing { if (selfCert == null) { selfCert = zert; } else if (selfCert.getCreationTime().before(cert.getCreationTime())) { - log.add(LogLevel.DEBUG, LogType.MSG_KC_UID_DUP, + log.add(LogLevel.DEBUG, LogType.MSG_KC_UID_CERT_DUP, indent, userId); modified = PGPPublicKey.removeCertification(modified, userId, selfCert); redundantCerts += 1; selfCert = zert; } else { - log.add(LogLevel.DEBUG, LogType.MSG_KC_UID_DUP, + log.add(LogLevel.DEBUG, LogType.MSG_KC_UID_CERT_DUP, indent, userId); modified = PGPPublicKey.removeCertification(modified, userId, zert); redundantCerts += 1; @@ -485,6 +496,10 @@ public class UncachedKeyRing { // Replace modified key in the keyring ring = replacePublicKey(ring, modified); + if (ring == null) { + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_SECRET_DUMMY, indent); + return null; + } indent -= 1; } @@ -652,6 +667,10 @@ public class UncachedKeyRing { } // replace pubkey in keyring ring = replacePublicKey(ring, modified); + if (ring == null) { + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_SECRET_DUMMY, indent); + return null; + } indent -= 1; } @@ -694,7 +713,7 @@ public class UncachedKeyRing { if (getMasterKeyId() != masterKeyId || !Arrays.equals(getFingerprint(), other.getFingerprint())) { - log.add(LogLevel.ERROR, LogType.MSG_MG_HETEROGENEOUS, indent); + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_HETEROGENEOUS, indent); return null; } @@ -741,6 +760,10 @@ public class UncachedKeyRing { } else { // otherwise, just insert the public key result = replacePublicKey(result, key); + if (result == null) { + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_SECRET_DUMMY, indent); + return null; + } } continue; } @@ -769,6 +792,10 @@ public class UncachedKeyRing { if (!key.isMasterKey()) { if (modified != resultKey) { result = replacePublicKey(result, modified); + if (result == null) { + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_SECRET_DUMMY, indent); + return null; + } } continue; } @@ -793,6 +820,10 @@ public class UncachedKeyRing { // If anything changed, save the updated (sub)key if (modified != resultKey) { result = replacePublicKey(result, modified); + if (result == null) { + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_SECRET_DUMMY, indent); + return null; + } } } @@ -807,7 +838,7 @@ public class UncachedKeyRing { return new UncachedKeyRing(result); } catch (IOException e) { - log.add(LogLevel.ERROR, LogType.MSG_MG_FATAL_ENCODE, indent); + log.add(LogLevel.ERROR, LogType.MSG_MG_ERROR_ENCODE, indent); return null; } @@ -838,16 +869,19 @@ public class UncachedKeyRing { */ private static PGPKeyRing replacePublicKey(PGPKeyRing ring, PGPPublicKey key) { if (ring instanceof PGPPublicKeyRing) { - return PGPPublicKeyRing.insertPublicKey((PGPPublicKeyRing) ring, key); - } - PGPSecretKeyRing secRing = (PGPSecretKeyRing) ring; - PGPSecretKey sKey = secRing.getSecretKey(key.getKeyID()); - // TODO generate secret key with S2K dummy, if none exists! for now, just die. - if (sKey == null) { - throw new RuntimeException("dummy secret key generation not yet implemented"); + PGPPublicKeyRing pubRing = (PGPPublicKeyRing) ring; + return PGPPublicKeyRing.insertPublicKey(pubRing, key); + } else { + PGPSecretKeyRing secRing = (PGPSecretKeyRing) ring; + PGPSecretKey sKey = secRing.getSecretKey(key.getKeyID()); + // TODO generate secret key with S2K dummy, if none exists! + if (sKey == null) { + Log.e(Constants.TAG, "dummy secret key generation not yet implemented"); + return null; + } + sKey = PGPSecretKey.replacePublicKey(sKey, key); + return PGPSecretKeyRing.insertSecretKey(secRing, sKey); } - sKey = PGPSecretKey.replacePublicKey(sKey, key); - return PGPSecretKeyRing.insertSecretKey(secRing, sKey); } /** This method removes a subkey in a keyring. diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index 6e9f2fad6..5340222d3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -23,6 +23,7 @@ import android.database.Cursor; import android.net.Uri; import android.os.IBinder; import android.os.ParcelFileDescriptor; +import android.text.TextUtils; import org.openintents.openpgp.IOpenPgpService; import org.openintents.openpgp.OpenPgpMetadata; @@ -185,7 +186,7 @@ public class OpenPgpService extends RemoteService { } catch (PassphraseCacheService.KeyNotFoundException e) { // secret key that is set for this account is deleted? // show account config again! - return getCreateAccountIntent(data, data.getStringExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME)); + return getCreateAccountIntent(data, getAccountName(data)); } } if (passphrase == null) { @@ -564,6 +565,16 @@ public class OpenPgpService extends RemoteService { return null; } + private String getAccountName(Intent data) { + String accName = data.getStringExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME); + // if no account name is given use name "default" + if (TextUtils.isEmpty(accName)) { + accName = "default"; + } + Log.d(Constants.TAG, "accName: " + accName); + return accName; + } + // TODO: multi-threading private final IOpenPgpService.Stub mBinder = new IOpenPgpService.Stub() { @@ -574,12 +585,7 @@ public class OpenPgpService extends RemoteService { return errorResult; } - String accName; - if (data.getStringExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME) != null) { - accName = data.getStringExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME); - } else { - accName = "default"; - } + String accName = getAccountName(data); final AccountSettings accSettings = getAccSettings(accName); if (accSettings == null) { return getCreateAccountIntent(data, accName); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/RemoteService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/RemoteService.java index f70324e2c..e71b52ccd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/RemoteService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/RemoteService.java @@ -27,6 +27,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.Signature; import android.net.Uri; import android.os.Binder; +import android.text.TextUtils; import org.openintents.openpgp.OpenPgpError; import org.openintents.openpgp.util.OpenPgpApi; @@ -160,7 +161,7 @@ public abstract class RemoteService extends Service { */ protected AccountSettings getAccSettings(String accountName) { String currentPkg = getCurrentCallingPackage(); - Log.d(Constants.TAG, "accountName: " + accountName); + Log.d(Constants.TAG, "getAccSettings accountName: "+ accountName); Uri uri = KeychainContract.ApiAccounts.buildByPackageAndAccountUri(currentPkg, accountName); @@ -171,7 +172,7 @@ public abstract class RemoteService extends Service { protected Intent getCreateAccountIntent(Intent data, String accountName) { String packageName = getCurrentCallingPackage(); - Log.d(Constants.TAG, "accountName: " + accountName); + Log.d(Constants.TAG, "getCreateAccountIntent accountName: " + accountName); Intent intent = new Intent(getBaseContext(), RemoteServiceActivity.class); intent.setAction(RemoteServiceActivity.ACTION_CREATE_ACCOUNT); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java index b69ecef34..142bf65cc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/OperationResultParcel.java @@ -323,6 +323,7 @@ public class OperationResultParcel implements Parcelable { MSG_KC_UID_BAD_TIME (R.string.msg_kc_uid_bad_time), MSG_KC_UID_BAD_TYPE (R.string.msg_kc_uid_bad_type), MSG_KC_UID_BAD (R.string.msg_kc_uid_bad), + MSG_KC_UID_CERT_DUP (R.string.msg_kc_uid_cert_dup), MSG_KC_UID_DUP (R.string.msg_kc_uid_dup), MSG_KC_UID_FOREIGN (R.string.msg_kc_uid_foreign), MSG_KC_UID_NO_CERT (R.string.msg_kc_uid_no_cert), @@ -332,10 +333,11 @@ public class OperationResultParcel implements Parcelable { // keyring consolidation + MSG_MG_ERROR_SECRET_DUMMY(R.string.msg_mg_error_secret_dummy), + MSG_MG_ERROR_ENCODE(R.string.msg_mg_error_encode), + MSG_MG_ERROR_HETEROGENEOUS(R.string.msg_mg_error_heterogeneous), MSG_MG_PUBLIC (R.string.msg_mg_public), MSG_MG_SECRET (R.string.msg_mg_secret), - MSG_MG_FATAL_ENCODE (R.string.msg_mg_fatal_encode), - MSG_MG_HETEROGENEOUS (R.string.msg_mg_heterogeneous), MSG_MG_NEW_SUBKEY (R.string.msg_mg_new_subkey), MSG_MG_FOUND_NEW (R.string.msg_mg_found_new), MSG_MG_UNCHANGED (R.string.msg_mg_unchanged), diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java index 26df5cd26..4cd694d48 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java @@ -309,7 +309,7 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn String title = isContentMessage() ? getString(R.string.title_share_message) : getString(R.string.title_share_file); - // Disabled, produced an empty list on Sony (model will be inserted here) + // Disabled, produced an empty list on Huawei U8860 with Android Version 4.0.3 // // fallback on Android 2.3, otherwise we would get weird results // if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { // return Intent.createChooser(prototype, title); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java index 18f805360..96fa11363 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java @@ -288,7 +288,9 @@ public class ImportKeysActivity extends ActionBarActivity { @Override public void onPageSelected(int position) { // cancel loader and clear list - mListFragment.destroyLoader(); + if (mListFragment != null) { + mListFragment.destroyLoader(); + } } @Override diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FoldableLinearLayout.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FoldableLinearLayout.java index 31e01a7fb..b456b61ab 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FoldableLinearLayout.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/FoldableLinearLayout.java @@ -24,7 +24,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.animation.AlphaAnimation; import android.view.animation.Animation; -import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -38,9 +38,7 @@ import org.sufficientlysecure.keychain.R; android:layout_width="wrap_content" android:layout_height="wrap_content" custom:foldedLabel="@string/TEXT_TO_DISPLAY_WHEN_FOLDED" - custom:unFoldedLabel="@string/TEXT_TO_DISPLAY_WHEN_UNFOLDED" - custom:foldedIcon="ICON_NAME_FROM_FontAwesomeText_TO_USE_WHEN_FOLDED" - custom:unFoldedIcon="ICON_NAME_FROM_FontAwesomeText_TO_USE_WHEN_UNFOLDED"> + custom:unFoldedLabel="@string/TEXT_TO_DISPLAY_WHEN_UNFOLDED"> <include layout="@layout/ELEMENTS_TO_BE_FOLDED"/> @@ -49,7 +47,7 @@ import org.sufficientlysecure.keychain.R; */ public class FoldableLinearLayout extends LinearLayout { - private ImageButton mFoldableIcon; + private ImageView mFoldableIcon; private boolean mFolded; private boolean mHasMigrated = false; private Integer mShortAnimationDuration = null; @@ -139,7 +137,7 @@ public class FoldableLinearLayout extends LinearLayout { } private void initialiseInnerViews() { - mFoldableIcon = (ImageButton) mFoldableLayout.findViewById(R.id.foldableIcon); + mFoldableIcon = (ImageView) mFoldableLayout.findViewById(R.id.foldableIcon); mFoldableIcon.setImageResource(R.drawable.ic_action_expand); mFoldableTextView = (TextView) mFoldableLayout.findViewById(R.id.foldableText); mFoldableTextView.setText(mFoldedLabel); diff --git a/OpenKeychain/src/main/res/layout-large/api_apps_list_activity.xml b/OpenKeychain/src/main/res/layout-large/api_apps_list_activity.xml index 88686bbbc..af06614b9 100644 --- a/OpenKeychain/src/main/res/layout-large/api_apps_list_activity.xml +++ b/OpenKeychain/src/main/res/layout-large/api_apps_list_activity.xml @@ -1,20 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="horizontal" > - <android.support.v4.widget.FixedDrawerLayout - android:id="@+id/drawer_layout" - - android:layout_width="match_parent" - android:layout_height="match_parent"> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="horizontal"> + <android.support.v4.widget.FixedDrawerLayout + android:id="@+id/drawer_layout" + android:layout_width="match_parent" + android:layout_height="match_parent"> - <include layout="@layout/drawer_list"/> + <include layout="@layout/drawer_list" /> </android.support.v4.widget.FixedDrawerLayout> - <include layout="@layout/api_apps_list_content"/> + <include layout="@layout/api_apps_list_content" /> </FrameLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout-large/decrypt_activity.xml b/OpenKeychain/src/main/res/layout-large/decrypt_activity.xml index 9e9f37391..06487a982 100644 --- a/OpenKeychain/src/main/res/layout-large/decrypt_activity.xml +++ b/OpenKeychain/src/main/res/layout-large/decrypt_activity.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <android.support.v4.widget.FixedDrawerLayout + android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> - <android.support.v4.widget.FixedDrawerLayout - xmlns:bootstrapbutton="http://schemas.android.com/apk/res-auto" - android:id="@+id/drawer_layout" - android:layout_width="match_parent" - android:layout_height="match_parent"> - <include layout="@layout/drawer_list"/> + <include layout="@layout/drawer_list" /> </android.support.v4.widget.FixedDrawerLayout> - <include layout="@layout/decrypt_content"/> + <include layout="@layout/decrypt_content" /> </FrameLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout-large/encrypt_activity.xml b/OpenKeychain/src/main/res/layout-large/encrypt_activity.xml index 355580fad..84b2891e3 100644 --- a/OpenKeychain/src/main/res/layout-large/encrypt_activity.xml +++ b/OpenKeychain/src/main/res/layout-large/encrypt_activity.xml @@ -1,19 +1,17 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="match_parent"> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <android.support.v4.widget.FixedDrawerLayout - xmlns:bootstrapbutton="http://schemas.android.com/apk/res-auto" - xmlns:fontawesometext="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> - <include layout="@layout/drawer_list"/> + <include layout="@layout/drawer_list" /> </android.support.v4.widget.FixedDrawerLayout> - <include layout="@layout/encrypt_content"/> + <include layout="@layout/encrypt_content" /> </FrameLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout-large/key_list_activity.xml b/OpenKeychain/src/main/res/layout-large/key_list_activity.xml index 6abbea13f..039081cd7 100644 --- a/OpenKeychain/src/main/res/layout-large/key_list_activity.xml +++ b/OpenKeychain/src/main/res/layout-large/key_list_activity.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="match_parent"> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="match_parent"> + <android.support.v4.widget.FixedDrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> - <include layout="@layout/drawer_list"/> + <include layout="@layout/drawer_list" /> </android.support.v4.widget.FixedDrawerLayout> - <include layout="@layout/key_list_content"/> + <include layout="@layout/key_list_content" /> </FrameLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml index aaeae78e0..d8e1d9ad8 100644 --- a/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml +++ b/OpenKeychain/src/main/res/layout/api_account_settings_fragment.xml @@ -59,9 +59,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" custom:foldedLabel="@string/api_settings_show_advanced" - custom:unFoldedLabel="@string/api_settings_hide_advanced" - custom:foldedIcon="fa-chevron-right" - custom:unFoldedIcon="fa-chevron-down"> + custom:unFoldedLabel="@string/api_settings_hide_advanced"> <TextView android:layout_width="match_parent" diff --git a/OpenKeychain/src/main/res/layout/api_app_settings_fragment.xml b/OpenKeychain/src/main/res/layout/api_app_settings_fragment.xml index ceea1d8a6..6ef31913a 100644 --- a/OpenKeychain/src/main/res/layout/api_app_settings_fragment.xml +++ b/OpenKeychain/src/main/res/layout/api_app_settings_fragment.xml @@ -40,9 +40,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" custom:foldedLabel="@string/api_settings_show_info" - custom:unFoldedLabel="@string/api_settings_hide_info" - custom:foldedIcon="fa-chevron-right" - custom:unFoldedIcon="fa-chevron-down"> + custom:unFoldedLabel="@string/api_settings_hide_info"> <TextView android:layout_width="match_parent" @@ -67,7 +65,7 @@ android:id="@+id/api_app_settings_package_signature" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="Base64 encoded signature" + android:text="Base64 encoded hash of signature" android:textAppearance="?android:attr/textAppearanceSmall" /> </org.sufficientlysecure.keychain.ui.widget.FoldableLinearLayout> diff --git a/OpenKeychain/src/main/res/layout/foldable_linearlayout.xml b/OpenKeychain/src/main/res/layout/foldable_linearlayout.xml index 3d2fb688b..13cf7c225 100644 --- a/OpenKeychain/src/main/res/layout/foldable_linearlayout.xml +++ b/OpenKeychain/src/main/res/layout/foldable_linearlayout.xml @@ -11,14 +11,13 @@ android:orientation="horizontal" android:clickable="true"> - <ImageButton + <ImageView android:id="@+id/foldableIcon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginRight="10dp" - android:src="@drawable/ic_action_expand" - android:background="@drawable/button_no_style"/> + android:src="@drawable/ic_action_expand"/> <TextView android:id="@+id/foldableText" diff --git a/OpenKeychain/src/main/res/layout/key_list_activity.xml b/OpenKeychain/src/main/res/layout/key_list_activity.xml index 297fc526e..03ef85381 100644 --- a/OpenKeychain/src/main/res/layout/key_list_activity.xml +++ b/OpenKeychain/src/main/res/layout/key_list_activity.xml @@ -4,16 +4,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <LinearLayout - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <include layout="@layout/notify_area" /> - - <include layout="@layout/key_list_content" /> - - </LinearLayout> + <include layout="@layout/key_list_content" /> <include layout="@layout/drawer_list" /> diff --git a/OpenKeychain/src/main/res/layout/key_list_content.xml b/OpenKeychain/src/main/res/layout/key_list_content.xml index e58e42961..66b009c78 100644 --- a/OpenKeychain/src/main/res/layout/key_list_content.xml +++ b/OpenKeychain/src/main/res/layout/key_list_content.xml @@ -1,14 +1,22 @@ <?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <include layout="@layout/notify_area" /> + + <FrameLayout android:id="@+id/content_frame" android:layout_marginLeft="@dimen/drawer_content_padding" android:layout_width="match_parent" android:layout_height="match_parent"> - <fragment + <fragment android:id="@+id/key_list_fragment" android:name="org.sufficientlysecure.keychain.ui.KeyListFragment" android:layout_width="match_parent" - android:layout_height="match_parent"/> -</FrameLayout>
\ No newline at end of file + android:layout_height="match_parent" /> + </FrameLayout> + +</LinearLayout>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/raw-cs/help_changelog.html b/OpenKeychain/src/main/res/raw-cs/help_changelog.html index 687fd99b9..41ec2cad6 100644 --- a/OpenKeychain/src/main/res/raw-cs/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-cs/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-de/help_changelog.html b/OpenKeychain/src/main/res/raw-de/help_changelog.html index a706b92d4..0a8f95e83 100644 --- a/OpenKeychain/src/main/res/raw-de/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-de/help_changelog.html @@ -12,6 +12,7 @@ <li>Neue Icons zum Anzeigen des Schlüsselstatus' (von Brennan Novak)</li> <li>Wichtige Ausbesserung eines Bugs: Importieren größerer Schlüsselsammlungen aus einer Datei ist nun möglich </li> <li>Benachrichtigung, die die Passphrasen im Cache anzeigt </li> +<li>Keys are connected to Android's contacts</li> </ul> <p>Dieser Release wäre ohne die Arbeit von Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray und Thialfihar nicht möglich </p> diff --git a/OpenKeychain/src/main/res/raw-es/help_changelog.html b/OpenKeychain/src/main/res/raw-es/help_changelog.html index 0530f3999..cf778141a 100644 --- a/OpenKeychain/src/main/res/raw-es/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-es/help_changelog.html @@ -12,6 +12,7 @@ <li>Nuevos iconos para mostrar el estado de la clave (por Brennan Novak)</li> <li>Importante reparacion de fallo: Ahora es posible la importación de grandes colecciones de claves desde un fichero</li> <li>Notificación que muestra las frases contraseña almacenadas en caché</li> +<li>Las claves están conectadas con los contactos de Android</li> </ul> <p>Esta versión no sería posible sin el trabajo de Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-et/help_changelog.html b/OpenKeychain/src/main/res/raw-et/help_changelog.html index 687fd99b9..41ec2cad6 100644 --- a/OpenKeychain/src/main/res/raw-et/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-et/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-fr/help_changelog.html b/OpenKeychain/src/main/res/raw-fr/help_changelog.html index 309d7ce76..9d58256a7 100644 --- a/OpenKeychain/src/main/res/raw-fr/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-fr/help_changelog.html @@ -12,6 +12,7 @@ <li>Nouvelles icônes d'état des clefs (par Brennan Novak)</li> <li>Correctif important de bogue : l'importation de grandes collections de clefs à partir d'un fichier est maintenant possible</li> <li>Notification montrant les phrases de passe en cache</li> +<li>Les clefs sont connectées aux contacts d'Android</li> </ul> <p>Cette version ne serait pas possible sans le travail de Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-it/help_changelog.html b/OpenKeychain/src/main/res/raw-it/help_changelog.html index 9134bc4a2..c4cae4d47 100644 --- a/OpenKeychain/src/main/res/raw-it/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-it/help_changelog.html @@ -12,6 +12,7 @@ <li>Nuove icone per mostrare lo stato delle chiavi (di Brennan Novak)</li> <li>Correzione bug importante: Importazione di grandi collezioni di chiavi da un file ora è possibile</li> <li>Notifiche mostrando la frase di accesso nella cache</li> +<li>Le chiavi sono connesse ai contatti di Android</li> </ul> <p>Questo rilascio non sarebbe stato possibile senza il lavoro di Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-ja/help_changelog.html b/OpenKeychain/src/main/res/raw-ja/help_changelog.html index 207c9d895..0f467c407 100644 --- a/OpenKeychain/src/main/res/raw-ja/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-ja/help_changelog.html @@ -12,6 +12,7 @@ <li>鍵のステータス表示の新しいアイコン(Brennan Novak提供)</li> <li>重要なバグ修正: 巨大な鍵コレクションをファイルからインポートするのが可能になりました</li> <li>キャッシュしたパスフレーズの通知表示</li> +<li>鍵のアドレスをAndroidの連絡先と連携するようにした</li> </ul> <p> Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfiharの働きなくしてはこのリリースはありませんでした</p> diff --git a/OpenKeychain/src/main/res/raw-nl/help_changelog.html b/OpenKeychain/src/main/res/raw-nl/help_changelog.html index 0b6fabc24..9edbb718e 100644 --- a/OpenKeychain/src/main/res/raw-nl/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-nl/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-pl/help_changelog.html b/OpenKeychain/src/main/res/raw-pl/help_changelog.html index eb2dc26c1..2fb953cd2 100644 --- a/OpenKeychain/src/main/res/raw-pl/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-pl/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-pt/help_changelog.html b/OpenKeychain/src/main/res/raw-pt/help_changelog.html index 687fd99b9..41ec2cad6 100644 --- a/OpenKeychain/src/main/res/raw-pt/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-pt/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-ru/help_changelog.html b/OpenKeychain/src/main/res/raw-ru/help_changelog.html index 6d9c92e9b..6f33e8e01 100644 --- a/OpenKeychain/src/main/res/raw-ru/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-ru/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-sl/help_changelog.html b/OpenKeychain/src/main/res/raw-sl/help_changelog.html index 635d02780..d9da74e00 100644 --- a/OpenKeychain/src/main/res/raw-sl/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-sl/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-tr/help_changelog.html b/OpenKeychain/src/main/res/raw-tr/help_changelog.html index 687fd99b9..41ec2cad6 100644 --- a/OpenKeychain/src/main/res/raw-tr/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-tr/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-uk/help_changelog.html b/OpenKeychain/src/main/res/raw-uk/help_changelog.html index f28210fd0..1837a243e 100644 --- a/OpenKeychain/src/main/res/raw-uk/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-uk/help_changelog.html @@ -12,6 +12,7 @@ <li>Нові піктограми для показу стану ключа (від Бренана Новака)</li> <li>Виправлення важливої вади: зараз став можливим імпорт великих збірок ключів із файлу</li> <li>Сповіщення для показу кешованих парольних фраз</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>Ця версія була б неможливою без роботи Вінсента Брейтмозера (GSoC 2014), mar-v-in (GSoC 2014), Даніеля Альберта, Арт О'Катен, Даніеля Хасс, Тіма Брея, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/raw-zh/help_changelog.html b/OpenKeychain/src/main/res/raw-zh/help_changelog.html index 687fd99b9..41ec2cad6 100644 --- a/OpenKeychain/src/main/res/raw-zh/help_changelog.html +++ b/OpenKeychain/src/main/res/raw-zh/help_changelog.html @@ -12,6 +12,7 @@ <li>New icons to show status of key (by Brennan Novak)</li> <li>Important bug fix: Importing of large key collections from a file is now possible</li> <li>Notification showing cached passphrases</li> +<li>Keys are connected to Android's contacts</li> </ul> <p>This release wouldn't be possible without the work of Vincent Breitmoser (GSoC 2014), mar-v-in (GSoC 2014), Daniel Albert, Art O Cathain, Daniel Haß, Tim Bray, Thialfihar</p> diff --git a/OpenKeychain/src/main/res/values-de/strings.xml b/OpenKeychain/src/main/res/values-de/strings.xml index 3b8fe1e36..6c5e12266 100644 --- a/OpenKeychain/src/main/res/values-de/strings.xml +++ b/OpenKeychain/src/main/res/values-de/strings.xml @@ -10,7 +10,7 @@ <string name="title_edit_key">Schlüssel bearbeiten</string> <string name="title_preferences">Einstellungen</string> <string name="title_api_registered_apps">Apps</string> - <string name="title_key_server_preference">Schlüsselserver Einstellungen</string> + <string name="title_key_server_preference">Schlüsselserver</string> <string name="title_change_passphrase">Passwort ändern</string> <string name="title_share_fingerprint_with">Teile Fingerabdruck über…</string> <string name="title_share_key">Teile Schlüssel über...</string> @@ -49,13 +49,13 @@ <string name="btn_save">Speichern</string> <string name="btn_do_not_save">Abbrechen</string> <string name="btn_delete">Löschen</string> - <string name="btn_no_date">verfällt nie</string> + <string name="btn_no_date">Kein Ablaufdatum</string> <string name="btn_okay">Okay</string> <string name="btn_export_to_server">Auf Schlüsselserver hochladen</string> <string name="btn_next">Weiter</string> <string name="btn_back">Zurück</string> <string name="btn_lookup_key">Schlüssel nachschlagen</string> - <string name="btn_share_encrypted_signed">Entschlüsseln und teilen</string> + <string name="btn_share_encrypted_signed">Verschlüsseln und teilen</string> <string name="btn_view_cert_key">Beglaubigungsschlüssel anzeigen</string> <string name="btn_create_key">Schlüssel erzeugen</string> <string name="btn_add_files">Datei(en) hinzufügen</string> @@ -73,7 +73,7 @@ <string name="menu_select_all">Alles auswählen</string> <string name="menu_add_keys">Schlüssel hinzufügen</string> <string name="menu_export_all_keys">Alle Schlüssel exportieren</string> - <string name="menu_advanced">Erweiterte Info anzeigen</string> + <string name="menu_advanced">Erweiterte Infos anzeigen</string> <!--label--> <string name="label_message">Nachricht</string> <string name="label_file">Datei</string> @@ -83,7 +83,7 @@ <string name="label_passphrase">Passwort</string> <string name="label_passphrase_again">Passwort wiederholen</string> <string name="label_algorithm">Algorithmus</string> - <string name="label_ascii_armor">ASCII Armor Datei</string> + <string name="label_ascii_armor">Datei: ASCII Armor</string> <string name="label_file_ascii_armor">Datei: ASCII Armor</string> <string name="label_write_version_header">Lass andere wissen dass du OpenKeychain nutzt</string> <string name="label_write_version_header_summary">Fügt \'OpenKeychain v2.7\' zu OpenPGP Signaturen, DAten und exportierten Schlüsseln hinzu</string> @@ -116,8 +116,8 @@ <string name="no_key"><kein Schlüssel></string> <string name="can_encrypt">kann verschlüsseln</string> <string name="can_sign">kann signieren</string> - <string name="can_certify">kann bestätigen</string> - <string name="can_certify_not">kann nicht bestätigen</string> + <string name="can_certify">kann beglaubigen</string> + <string name="can_certify_not">kann nicht beglaubigen</string> <string name="expired">abgelaufen</string> <string name="revoked">widerrufen</string> <plurals name="n_keys"> @@ -170,9 +170,9 @@ <string name="enter_passphrase_twice">Das Passwort bitte zweimal eingeben.</string> <string name="select_encryption_key">Mindestens einen Schlüssel zum Verschlüsseln auswählen.</string> <string name="select_encryption_or_signature_key">Mindestens einen Schlüssel zum Verschlüsseln oder einen zum Signieren auswählen.</string> - <string name="specify_file_to_encrypt_to">Bitte angeben, in welche Datei verschlüsselt werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. </string> - <string name="specify_file_to_decrypt_to">Bitte angeben, in welche Datei entschlüsselt werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. </string> - <string name="specify_file_to_export_to">Bitte angeben, in welche Datei exportiert werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. </string> + <string name="specify_file_to_encrypt_to">Bitte angeben in welche Datei verschlüsselt werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. </string> + <string name="specify_file_to_decrypt_to">Bitte angeben,in welche Datei entschlüsselt werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. </string> + <string name="specify_file_to_export_to">Bitte angeben in welche Datei exportiert werden soll.\nWARNUNG: Datei wird überschrieben, wenn sie bereits existiert. </string> <string name="key_deletion_confirmation_multi">Möchtest du wirklich alle ausgewählten öffentlichen Schlüssel löschen?\nDies kann nicht rückgängig gemacht werden!</string> <string name="secret_key_deletion_confirmation">Soll der PRIVATE Schlüssel \'%s\' wirklich gelöscht werden?\nDies kann nicht rückgängig gemacht werden!</string> <string name="public_key_deletetion_confirmation">Soll der öffentliche Schlüssel \'%s\' wirklich gelöscht werden?\nDies kann nicht rückgängig gemacht werden! </string> diff --git a/OpenKeychain/src/main/res/values-es/strings.xml b/OpenKeychain/src/main/res/values-es/strings.xml index cc1a29c34..16d60dc82 100644 --- a/OpenKeychain/src/main/res/values-es/strings.xml +++ b/OpenKeychain/src/main/res/values-es/strings.xml @@ -275,6 +275,9 @@ <string name="progress_decompressing_data">descomprimiendo los datos...</string> <string name="progress_verifying_integrity">verificando la integridad...</string> <string name="progress_deleting_securely">borrando \'%s\' de forma segura…</string> + <string name="progress_deleting">borrando claves...</string> + <string name="progress_con_saving">consolidación: guardando en caché...</string> + <string name="progress_con_reimport">consolidación: reimportando</string> <!--action strings--> <string name="hint_keyserver_search_hint">Nombre/Correo electrónico/Identidad de clave...</string> <string name="hint_keybase_search_hint">Nombre/Correo electrónico/Prueba/Clave...</string> @@ -560,7 +563,7 @@ <string name="msg_kc_uid_bad_time">Eliminando identidad de usuario con marca de tiempo futura</string> <string name="msg_kc_uid_bad_type">Eliminando certificado de identidad de usuario, de tipo desconocido (%s)</string> <string name="msg_kc_uid_bad">Eliminando auto-certificado defectuoso para la identidad de usuario \"%s\"</string> - <string name="msg_kc_uid_dup">Eliminando auto-certificado desactualizado para el identificador de usuario \"%s\"</string> + <string name="msg_kc_uid_cert_dup">Eliminando auto-certificado desactualizado para el identificador de usuario \"%s\"</string> <string name="msg_kc_uid_foreign">Eliminando certificado ajeno de identidad de usuario por %s</string> <string name="msg_kc_uid_revoke_dup">Eliminando certificado redundate de revocación para la identidad de usuario \"%s\"</string> <string name="msg_kc_uid_revoke_old">Eliminando certificado desactualizado de revocación para la identidad de usuario \"%s\"</string> @@ -569,8 +572,8 @@ <!--Keyring merging log entries--> <string name="msg_mg_public">Incorporándolas en el juego de claves públicas %s</string> <string name="msg_mg_secret">Incorporándolas en el juego de claves secretas (privadas) %s</string> - <string name="msg_mg_fatal_encode">Error fatal codificando la firma</string> - <string name="msg_mg_heterogeneous">¡Se intentaron fusionar juegos de claves con diferentes huellas de validación de claves!</string> + <string name="msg_mg_error_encode">Error fatal codificando la firma</string> + <string name="msg_mg_error_heterogeneous">¡Se intentaron fusionar juegos de claves con diferentes huellas de validación de claves!</string> <string name="msg_mg_new_subkey">Añadiendo nueva subclave %s</string> <string name="msg_mg_found_new">Se encontraron %s nuevos certificados en el juego de claves</string> <string name="msg_mg_unchanged">No hay nuevos certificados</string> @@ -600,12 +603,14 @@ <string name="msg_mf_error_sig">¡Excepción con la firma!</string> <string name="msg_mf_master">Modificando certificaciones maestras</string> <string name="msg_mf_passphrase">Cambiando frase contraseña para el juego de claves (keyring)...</string> + <string name="msg_mf_passphrase_key">Re-cifrando subclave %s con nueva frase contraseña</string> <string name="msg_mf_passphrase_empty_retry">Fallo al establecer nueva frase contraseña, intentándolo de nuevo con una antigua frase contraseña vacía</string> <string name="msg_mf_passphrase_fail">¡La frase contraseña para la subclave no pudo cambiarse! (¿Tiene la subclave una diferente de la de las otras claves?)</string> <string name="msg_mf_primary_replace_old">Reemplazando certificado de la anterior identidad de usuario primaria </string> <string name="msg_mf_primary_new">Generando nuevo certificado para nueva identidad de usuario primaria</string> <string name="msg_mf_subkey_change">Modificando subclave %s</string> <string name="msg_mf_error_subkey_missing">¡Se intentó operar sobre una subclave desaparecida %s!</string> + <string name="msg_mf_subkey_new">Añadiendo nueva subclave de tipo %2$s (%1$s bits)</string> <string name="msg_mf_subkey_new_id">Nueva identidad de subclave: %s</string> <string name="msg_mf_error_past_expiry">¡La fecha de expiración no puede ser del pasado!</string> <string name="msg_mf_subkey_revoke">Revocando subclave %s</string> @@ -615,9 +620,11 @@ <string name="msg_mf_uid_revoke">Revocando identidad de usuario %s</string> <string name="msg_mf_uid_error_empty">¡La identidad de usuario no debe estar vacía!</string> <string name="msg_mf_unlock_error">¡Error desbloqueando juego de claves!</string> - <string name="msg_mf_unlock">Desbloqueando juego de claves</string> + <string name="msg_mf_unlock">Desbloqueando juego de claves (keyring)</string> <!--Consolidate--> <string name="msg_con">Consolidando base de datos</string> + <string name="msg_con_error_bad_state">¡La consolidación se inició cuando ninguna base de datos estaba cacheada! Probablemente esto es un error de programación, por favor consigne un informe de fallo.</string> + <string name="msg_con_error_concurrent">¡Consolidación abortada, ejecutándose ya en otro hilo!</string> <string name="msg_con_save_secret">Guardando juegos de claves secretas (privadas)</string> <string name="msg_con_save_public">Guardando juegos de claves públicas</string> <string name="msg_con_db_clear">Limpiando base de datos</string> @@ -646,7 +653,8 @@ <item quantity="other">Reimportando %d claves secretas (privadas)</item> </plurals> <string name="msg_con_reimport_secret_skip">No hay claves públicas a reimportar, omitiendo...</string> - <string name="msg_con_warn_delete_public">Excepción borrando fichero de caché público</string> + <string name="msg_con_warn_delete_public">Excepción borrando fichero de caché de claves públicas</string> + <string name="msg_con_warn_delete_secret">Excepción al borrar fichero de caché de claves secretas (privadas)</string> <!--PassphraseCache--> <string name="passp_cache_notif_click_to_clear">Haga clic para limpiar las frases contraseña almacenadas en caché</string> <string name="passp_cache_notif_n_keys">OpenKeychain ha almacenado en caché %d frases contraseña</string> @@ -660,6 +668,7 @@ <string name="label_user_id">Identidad</string> <string name="unknown_uid"><desconocido></string> <string name="empty_certs">No hay certificados para esta clave</string> + <string name="certs_text">Sólo los auto-certificados y los certificados creados con las claves de usted se muestran aquí.</string> <string name="section_uids_to_certify">Identidades a certificar</string> <string name="label_revocation">Razón de la revocación</string> <string name="label_verify_status">Estado de la verificación</string> diff --git a/OpenKeychain/src/main/res/values-fr/strings.xml b/OpenKeychain/src/main/res/values-fr/strings.xml index e25f4cd05..f383ac40b 100644 --- a/OpenKeychain/src/main/res/values-fr/strings.xml +++ b/OpenKeychain/src/main/res/values-fr/strings.xml @@ -275,6 +275,9 @@ <string name="progress_decompressing_data">décompression des données...</string> <string name="progress_verifying_integrity">vérification de l\'intégrité...</string> <string name="progress_deleting_securely">suppression sûre de « %s »...</string> + <string name="progress_deleting">suppression des clefs...</string> + <string name="progress_con_saving">consolider : enregistrement dans le cache...</string> + <string name="progress_con_reimport">consolider : réimportation...</string> <!--action strings--> <string name="hint_keyserver_search_hint">Nom/courriel/ID de clef...</string> <string name="hint_keybase_search_hint">Nom/courriel/preuve/clef...</string> @@ -560,7 +563,7 @@ <string name="msg_kc_uid_bad_time">Suppression de l\'ID d\'utilisateur ayant une estampille temporelle dans le futur</string> <string name="msg_kc_uid_bad_type">Suppression du certificat d\'ID d\'utilisateur de type inconnu (%s)</string> <string name="msg_kc_uid_bad">Suppression du mauvais auto-certificat pour l\'ID d\'utilisateur « %s »</string> - <string name="msg_kc_uid_dup">Suppression de l\'auto-certificat périmé pour l\'ID d\'utilisateur « %s »</string> + <string name="msg_kc_uid_cert_dup">Suppression de l\'auto-certificat périmé pour l\'ID d\'utilisateur « %s »</string> <string name="msg_kc_uid_foreign">Suppression du certificat étranger d\'ID d\'utilisateur par %s</string> <string name="msg_kc_uid_revoke_dup">Suppression du certificat de révocation redondant pour l\'ID d\'utilisateur « %s »</string> <string name="msg_kc_uid_revoke_old">Suppression du certificat de révocation périmé pour l\'ID d\'utilisateur « %s »</string> @@ -569,8 +572,8 @@ <!--Keyring merging log entries--> <string name="msg_mg_public">Fusion vers le trousseau public %s</string> <string name="msg_mg_secret">Fusion vers le trousseau secret %s</string> - <string name="msg_mg_fatal_encode">Erreur fatale lors de l\'encodage de la signature</string> - <string name="msg_mg_heterogeneous">Il a été tenté de fusionner des trousseaux avec des empreintes différentes !</string> + <string name="msg_mg_error_encode">Erreur fatale lors de l\'encodage de la signature</string> + <string name="msg_mg_error_heterogeneous">Il a été tenté de fusionner des trousseaux avec des empreintes différentes !</string> <string name="msg_mg_new_subkey">Ajout de la nouvelle sous-clef %s</string> <string name="msg_mg_found_new">%s nouveaux certificats trouvés dans le trousseau</string> <string name="msg_mg_unchanged">Aucun nouveau certificat</string> @@ -600,12 +603,14 @@ <string name="msg_mf_error_sig">Exception de signature !</string> <string name="msg_mf_master">Modification des certifications maîtresses</string> <string name="msg_mf_passphrase">Changement de la phrase de passe pour le trousseau...</string> + <string name="msg_mf_passphrase_key">Rechiffrement de la sous-clef %s avec la nouvelle phrase de passe</string> <string name="msg_mf_passphrase_empty_retry">Échec lors de la définition de la nouvelle phrase de passe, nouvel essai avec une ancienne phrase de passe vide</string> <string name="msg_mf_passphrase_fail">La phrase de passe de la sous-clef n\'a pas pu être changée ! (Est-elle différente des autres clefs ?)</string> <string name="msg_mf_primary_replace_old">Remplacement du certificat de l\'ID d\'utilisateur principal précédent</string> <string name="msg_mf_primary_new">Génération d\'un nouveau certificat pour le nouvel ID d\'utilisateur principal</string> <string name="msg_mf_subkey_change">Modification de la sous-clef %s</string> <string name="msg_mf_error_subkey_missing">Une action a été tentée sur la sous-clef manquante %s !</string> + <string name="msg_mf_subkey_new">Ajout de la nouvelle sous-clef de type %2$s (%1$s bit)</string> <string name="msg_mf_subkey_new_id">Nouvelle ID de sous-clef : %s</string> <string name="msg_mf_error_past_expiry">La date d\'expiration ne peut pas être dans le passé !</string> <string name="msg_mf_subkey_revoke">Révocation de la sous-clef %s</string> @@ -618,6 +623,8 @@ <string name="msg_mf_unlock">Déverrouillage du trousseau</string> <!--Consolidate--> <string name="msg_con">Consolidation de la base de données</string> + <string name="msg_con_error_bad_state">La consolidation a été commencée alors qu\'aucune base de données n\'était en cache ! Ceci est probablement une erreur de programmation, veuillez remplir un rapport de bogue !</string> + <string name="msg_con_error_concurrent">La consolidation a été abandonnée, elle est déjà en cours sur un autre exétron !</string> <string name="msg_con_save_secret">Enregistrement des trousseaux secrets</string> <string name="msg_con_save_public">Enregistrement des trousseaux publiques</string> <string name="msg_con_db_clear">Nettoyage de la base de données</string> @@ -646,7 +653,8 @@ <item quantity="other">Réimportation de %d clefs secrètes</item> </plurals> <string name="msg_con_reimport_secret_skip">Aucune clef secrète à réimporter, étape ignorée...</string> - <string name="msg_con_warn_delete_public">Une exception a eu lieu lors de la suppression du fichier de cache publique</string> + <string name="msg_con_warn_delete_public">Une exception a eu lieu lors de la suppression du fichier de cache public</string> + <string name="msg_con_warn_delete_secret">Une exception a eu lieu lors de la suppression du fichier de cache secret</string> <!--PassphraseCache--> <string name="passp_cache_notif_click_to_clear">Cliquer ici pour effacer les phrases de passe mises en cache</string> <string name="passp_cache_notif_n_keys">OpenKeychain a mis en cache %d phrases de passe</string> @@ -660,6 +668,7 @@ <string name="label_user_id">identité</string> <string name="unknown_uid"><inconnu></string> <string name="empty_certs">Aucun certificat pour cette clef</string> + <string name="certs_text">Seuls les auto-certificats et les certificats créés avec vos clefs sont affichés ici.</string> <string name="section_uids_to_certify">Identités à certifier</string> <string name="label_revocation">Raison de la révocation</string> <string name="label_verify_status">État de vérification</string> diff --git a/OpenKeychain/src/main/res/values-it/strings.xml b/OpenKeychain/src/main/res/values-it/strings.xml index 4cb029508..e4e08ca78 100644 --- a/OpenKeychain/src/main/res/values-it/strings.xml +++ b/OpenKeychain/src/main/res/values-it/strings.xml @@ -275,6 +275,9 @@ <string name="progress_decompressing_data">decompressione dati...</string> <string name="progress_verifying_integrity">verifica integrita\'...</string> <string name="progress_deleting_securely">eliminazione sicura di \'%s\'...</string> + <string name="progress_deleting">cancellazione chiavi...</string> + <string name="progress_con_saving">consolidazione: salvataggio della cache...</string> + <string name="progress_con_reimport">consolidazione: reimportazione...</string> <!--action strings--> <string name="hint_keyserver_search_hint">Nome/Email/ID Chiave...</string> <string name="hint_keybase_search_hint">Nome/Email/Certificato/Chiave...</string> @@ -361,7 +364,10 @@ <string name="api_register_allow">Permetti accesso</string> <string name="api_register_disallow">Nega accesso</string> <string name="api_register_error_select_key">Per favore selezionare una chiave!</string> + <string name="api_select_pub_keys_missing_text">Nessuna chiave trovata per queste identità:</string> + <string name="api_select_pub_keys_dublicates_text">Esistono piu\' di una chiave per queste identità:</string> <string name="api_select_pub_keys_text">Per favore ricontrolla la lista destinatari!</string> + <string name="api_select_pub_keys_text_no_user_ids">Per favore seleziona i destinatari!</string> <string name="api_error_wrong_signature">Controllo della firma fallito! Hai installato questa app da una fonte diversa? Se sei sicuro che non sia un attacco, revoca la registrazione di questa app in OpenKeychain e dopo registra di nuovo l\'app.</string> <!--Share--> <string name="share_qr_code_dialog_title">Condividi tramite Codice QR</string> @@ -415,6 +421,7 @@ <item>Revoca Sottochiave</item> </string-array> <string name="edit_key_new_subkey">nuovo</string> + <string name="edit_key_select_flag">Per favore seleziona almeno una spunta!</string> <!--Create key--> <string name="create_key_upload">Carica chiave nel server delle chiavi</string> <string name="create_key_empty">Questo campo è necessario</string> @@ -556,7 +563,7 @@ <string name="msg_kc_uid_bad_time">Rimozione ID utente con marca temporale futura</string> <string name="msg_kc_uid_bad_type">Rimozione certificato ID utente di tipo sconosciuto (%s)</string> <string name="msg_kc_uid_bad">Rimozione autocertificazione corrotta per ID utente \"%s\"</string> - <string name="msg_kc_uid_dup">Rimozione autocertificazione scaduta per ID utente \"%s\"</string> + <string name="msg_kc_uid_cert_dup">Rimozione autocertificazione scaduta per ID utente \"%s\"</string> <string name="msg_kc_uid_foreign">Rimozione certificato ID utente estraneo di %s</string> <string name="msg_kc_uid_revoke_dup">Rimozione certificato di revoca ridondante per ID utente \"%s\"</string> <string name="msg_kc_uid_revoke_old">Rimozione certificato di revoca scaduto per ID utente \"%s\"</string> @@ -565,8 +572,8 @@ <!--Keyring merging log entries--> <string name="msg_mg_public">Fusione nel portachiavi pubblico %s</string> <string name="msg_mg_secret">Fusione nel portachiavi privato %s</string> - <string name="msg_mg_fatal_encode">Errore fatale nella codifica della firma</string> - <string name="msg_mg_heterogeneous">Tentativo di unire portachiavi con impronte digitali diverse!</string> + <string name="msg_mg_error_encode">Errore fatale nella codifica della firma</string> + <string name="msg_mg_error_heterogeneous">Tentativo di unire portachiavi con impronte digitali diverse!</string> <string name="msg_mg_new_subkey">Aggiunta nuova sottochiave %s</string> <string name="msg_mg_found_new">Trovati %s nuovi certificati nel portachiavi</string> <string name="msg_mg_unchanged">Nessun nuovo certificato</string> @@ -575,6 +582,7 @@ <string name="msg_cr_error_no_master">Nessuna opzione della chiave principale specificata!</string> <string name="msg_cr_error_no_user_id">I portachiavi devono essere creati con almeno un ID utente!</string> <string name="msg_cr_error_no_certify">La chiave principale deve avere la caratteristica di certificazione!</string> + <string name="msg_cr_error_null_expiry">La data di scadenza non può essere \"come prima\" sulla creazione di chiavi. Questo è un errore di programmazione, si prega di inviare una segnalazione di bug!</string> <string name="msg_cr_error_keysize_512">La grandezza della chiave deve essere di 512bit o maggiore</string> <string name="msg_cr_error_internal_pgp">Errore PGP interno!</string> <string name="msg_cr_error_unknown_algo">Pessima opzione di algortimo!</string> @@ -585,14 +593,26 @@ <string name="msg_mf_error_fingerprint">Impronta chiave attuale non corrispondente!</string> <string name="msg_mf_error_keyid">Nessun ID chiave. Questo è un errore di programmazione, per favore invia una segnalazione!</string> <string name="msg_mf_error_integrity">Errore interno, controllo di integrità fallito!</string> + <string name="msg_mf_error_master_none">Nessun certificato principale trovato su cui operare! (Tutti revocati?)</string> <string name="msg_mf_error_noexist_primary">ID utente primario specificato non valido!</string> + <string name="msg_mf_error_noexist_revoke">ID utente specificato non valido per la revoca!</string> <string name="msg_mf_error_revoked_primary">ID utente revocato non può essere primario!</string> + <string name="msg_mf_error_null_expiry">La data di scadenza non può essere \"come prima\" sulla creazione di sottochiavi. Questo è un errore di programmazione, si prega di inviare una segnalazione di bug!</string> + <string name="msg_mf_error_passphrase_master">Errore irreversibile nella decodifica della chiave principale! Questo è probabilmente un errore di programmazione, si prega di inviare una segnalazione di bug!</string> <string name="msg_mf_error_pgp">Eccezione interna di PGP!</string> <string name="msg_mf_error_sig">Eccezione di firma!</string> + <string name="msg_mf_master">Modifica delle certificazioni principali</string> + <string name="msg_mf_passphrase">Cambio frase di accesso del portachiavi...</string> + <string name="msg_mf_passphrase_key">Ri-codifica sottochiave %s con nuova frase di accesso</string> + <string name="msg_mf_passphrase_empty_retry">Impostazione nuova frase di accesso fallita, provo di nuovo con frase precedente di accesso vuota</string> + <string name="msg_mf_passphrase_fail">La frase di accesso per la sottochiave non può essere modificata! (Ne ha una diversa dalle altre chiavi?)</string> <string name="msg_mf_primary_replace_old">Sostituzione certificato del ID utente primario precedente</string> <string name="msg_mf_primary_new">Generazione di un nuovo certificato per il nuovo ID utente primario</string> <string name="msg_mf_subkey_change">Modifica sottochiave %s</string> + <string name="msg_mf_error_subkey_missing">Tentativo di operare su sottochiave %s mancante!</string> + <string name="msg_mf_subkey_new">Aggiunta nuova sottochiave di tipo %2$s (%1$s bit)</string> <string name="msg_mf_subkey_new_id">Nuovo ID sottochiave: %s</string> + <string name="msg_mf_error_past_expiry">La data di scadenza non può essere nel passato!</string> <string name="msg_mf_subkey_revoke">Revoca sottochiave %s</string> <string name="msg_mf_success">Portachiavi modificato con successo</string> <string name="msg_mf_uid_add">Aggiunta id utente %s</string> @@ -602,6 +622,39 @@ <string name="msg_mf_unlock_error">Errore di apertura portachiavi!</string> <string name="msg_mf_unlock">Apertura portachiavi</string> <!--Consolidate--> + <string name="msg_con">Consolidazione database</string> + <string name="msg_con_error_bad_state">Il consolidamento è stato avviato mentre nessun database è stato memorizzato nella cache! Questo è probabilmente un errore di programmazione, si prega di aprire un bug report.</string> + <string name="msg_con_error_concurrent">Consolidamento interrotto, già in esecuzione su un altro processo!</string> + <string name="msg_con_save_secret">Salvataggio portachiavi privati</string> + <string name="msg_con_save_public">Salvataggio portachiavi pubblico</string> + <string name="msg_con_db_clear">Pulizia database</string> + <string name="msg_con_success">Consolidamento database con successo</string> + <string name="msg_con_critical_in">Ingresso fase critica</string> + <string name="msg_con_critical_out">Uscita fase critica</string> + <string name="msg_con_delete_public">Eliminazione del file di cache del portachiavi pubblico</string> + <string name="msg_con_delete_secret">Eliminazione del file di cache del portachiavi privato</string> + <string name="msg_con_error_db">Errore nell\'apertura del database</string> + <string name="msg_con_error_io_public">Errore di IO durante la scrittura delle chiavi pubbliche nella cache!</string> + <string name="msg_con_error_io_secret">Errore di IO durante la scrittura delle chiavi private nella cache!</string> + <string name="msg_con_error_public">Errore nella re-importazione delle chiavi pubbliche!</string> + <string name="msg_con_error_secret">Errore nella re-importazione delle chiavi private!</string> + <plurals name="msg_con_recover"> + <item quantity="one">Recupero consolidamento con %1$d chiavi segrete e %2$d chiavi pubbliche</item> + <item quantity="other">Recupero consolidamento con %1$d chiavi segrete e %2$d chiavi pubbliche</item> + </plurals> + <string name="msg_con_recover_unknown">Recupero da situazione ignota</string> + <plurals name="msg_con_reimport_public"> + <item quantity="one">Reimportazione di una chiave pubblica</item> + <item quantity="other">Reimportazione di %d chiavi pubbliche</item> + </plurals> + <string name="msg_con_reimport_public_skip">Nessuna chiave pubblica da reimportare, proseguo...</string> + <plurals name="msg_con_reimport_secret"> + <item quantity="one">Reimportazione di una chiave privata</item> + <item quantity="other">Reimportazione di %d chiavi private</item> + </plurals> + <string name="msg_con_reimport_secret_skip">Nessuna chiave privata da reimportare, proseguo...</string> + <string name="msg_con_warn_delete_public">Eccezione durante la eliminazione del file di cache pubblico</string> + <string name="msg_con_warn_delete_secret">Eccezione durante la eliminazione del file di cache privato</string> <!--PassphraseCache--> <string name="passp_cache_notif_click_to_clear">Clicca per rimuovere la frase di accesso nella cache</string> <string name="passp_cache_notif_n_keys">OpenKeychain ha memorizzato nella cache %d frasi di accesso</string> @@ -615,6 +668,7 @@ <string name="label_user_id">Identit</string> <string name="unknown_uid"><sconosciuto></string> <string name="empty_certs">Nessun certificato per questa chiave</string> + <string name="certs_text">Solo le autocertificazioni e i certificati creati con le tue chiavi vengono visualizzati qui.</string> <string name="section_uids_to_certify">Identità da certificare</string> <string name="label_revocation">Ragione della Revoca</string> <string name="label_verify_status">Stato Verifica</string> diff --git a/OpenKeychain/src/main/res/values-ja/strings.xml b/OpenKeychain/src/main/res/values-ja/strings.xml index 724abeab4..36cbe64b5 100644 --- a/OpenKeychain/src/main/res/values-ja/strings.xml +++ b/OpenKeychain/src/main/res/values-ja/strings.xml @@ -546,7 +546,7 @@ <string name="msg_kc_uid_bad_time">未来にタイムスタンプがあるユーザIDを破棄中</string> <string name="msg_kc_uid_bad_type">不明な型 (%s) でのユーザID検証を破棄中</string> <string name="msg_kc_uid_bad">ユーザID \"%s\" による問題のある自己検証を破棄中</string> - <string name="msg_kc_uid_dup">期限の切れたユーザID \"%s\" による自己検証を破棄中</string> + <string name="msg_kc_uid_cert_dup">期限の切れたユーザID \"%s\" による自己検証を破棄中</string> <string name="msg_kc_uid_foreign">%s によって検証されている外部ユーザIDを破棄中</string> <string name="msg_kc_uid_revoke_dup">ユーザID \"%s\" による重複した破棄証明を破棄中</string> <string name="msg_kc_uid_revoke_old">ユーザID \"%s\" による期限切れ破棄証明を破棄中</string> @@ -555,8 +555,8 @@ <!--Keyring merging log entries--> <string name="msg_mg_public">公開鍵の鍵輪 %s にマージ中</string> <string name="msg_mg_secret">秘密鍵の鍵輪 %s にマージ中</string> - <string name="msg_mg_fatal_encode">署名のエンコードでの致命的なエラー</string> - <string name="msg_mg_heterogeneous">指紋が異なる鍵輪をマージしようとしています!</string> + <string name="msg_mg_error_encode">署名のエンコードでの致命的なエラー</string> + <string name="msg_mg_error_heterogeneous">指紋が異なる鍵輪をマージしようとしています!</string> <string name="msg_mg_new_subkey">新しい副鍵 %s を追加中</string> <string name="msg_mg_found_new">鍵輪に新しい検証を %s 発見</string> <string name="msg_mg_unchanged">新しい証明がない</string> diff --git a/OpenKeychain/src/main/res/values-uk/strings.xml b/OpenKeychain/src/main/res/values-uk/strings.xml index 77458e93f..f1533f4f2 100644 --- a/OpenKeychain/src/main/res/values-uk/strings.xml +++ b/OpenKeychain/src/main/res/values-uk/strings.xml @@ -552,8 +552,8 @@ <!--Keyring merging log entries--> <string name="msg_mg_public">Злиття у публічну в\'язку %s</string> <string name="msg_mg_secret">Злиття у секретну в\'язку %s</string> - <string name="msg_mg_fatal_encode">Фатальна помилка шифрування підпису</string> - <string name="msg_mg_heterogeneous">Спробували злити в\'язки із різними відбитками!</string> + <string name="msg_mg_error_encode">Фатальна помилка шифрування підпису</string> + <string name="msg_mg_error_heterogeneous">Спробували злити в\'язки із різними відбитками!</string> <string name="msg_mg_new_subkey">Додається новий підключ %s</string> <string name="msg_mg_found_new">Знайдено %s нових сертифікатів у в\'язці</string> <string name="msg_mg_unchanged">Немає нових сертифікатів</string> diff --git a/OpenKeychain/src/main/res/values/attr.xml b/OpenKeychain/src/main/res/values/attr.xml index 86622b3e0..5dfa03987 100644 --- a/OpenKeychain/src/main/res/values/attr.xml +++ b/OpenKeychain/src/main/res/values/attr.xml @@ -4,8 +4,6 @@ <declare-styleable name="FoldableLinearLayout"> <attr name="foldedLabel" format="string" /> <attr name="unFoldedLabel" format="string" /> - <attr name="foldedIcon" format="string" /> - <attr name="unFoldedIcon" format="string" /> </declare-styleable> </resources>
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index d9996c0d7..d31a08081 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -515,6 +515,8 @@ <string name="cert_verify_error">error!</string> <string name="cert_verify_unavailable">key unavailable</string> + <!-- LogType log messages. Errors should have _ERROR_ in their name and end with a ! --> + <!-- Import Public log entries --> <string name="msg_ip_apply_batch">Applying insert batch operation.</string> <string name="msg_ip_bad_type_secret">Tried to import secret keyring as public. This is a bug, please file a report!</string> @@ -626,18 +628,20 @@ <string name="msg_kc_uid_bad_time">Removing user id with future timestamp</string> <string name="msg_kc_uid_bad_type">Removing user id certificate of unknown type (%s)</string> <string name="msg_kc_uid_bad">Removing bad self certificate for user id "%s"</string> - <string name="msg_kc_uid_dup">Removing outdated self certificate for user id "%s"</string> + <string name="msg_kc_uid_cert_dup">Removing outdated self certificate for user id "%s"</string> <string name="msg_kc_uid_foreign">Removing foreign user id certificate by %s</string> <string name="msg_kc_uid_revoke_dup">Removing redundant revocation certificate for user id "%s"</string> <string name="msg_kc_uid_revoke_old">Removing outdated revocation certificate for user id "%s"</string> <string name="msg_kc_uid_no_cert">No valid self-certificate found for user id %s, removing from ring</string> <string name="msg_kc_uid_remove">Removing invalid user id %s</string> + <string name="msg_kc_uid_dup">Removing duplicate user id "%s". The secret key contained two of them. This may result in missing certifications!</string> <!-- Keyring merging log entries --> + <string name="msg_mg_error_secret_dummy">New public subkey found, but secret subkey dummy generation is not supported!</string> + <string name="msg_mg_error_heterogeneous">Tried to merge keyrings with differing fingerprints!</string> + <string name="msg_mg_error_encode">Fatal error encoding signature!</string> <string name="msg_mg_public">Merging into public keyring %s</string> <string name="msg_mg_secret">Merging into secret keyring %s</string> - <string name="msg_mg_fatal_encode">Fatal error encoding signature</string> - <string name="msg_mg_heterogeneous">Tried to merge keyrings with differing fingerprints!</string> <string name="msg_mg_new_subkey">Adding new subkey %s</string> <string name="msg_mg_found_new">Found %s new certificates in keyring</string> <string name="msg_mg_unchanged">No new certificates</string> |