ImportKeys: Add creation date and more check on keys's data

This commit is contained in:
Andrea Torlaschi
2016-08-04 17:03:03 +02:00
parent 8c6c97d932
commit ebe7b6293d
25 changed files with 113 additions and 48 deletions

View File

@@ -83,13 +83,21 @@ public abstract class CanonicalizedKeyRing extends KeyRing {
return getRing().getPublicKey().isRevoked(); return getRing().getPublicKey().isRevoked();
} }
public Date getCreationDate() {
return getPublicKey().getCreationTime();
}
public Date getExpirationDate() {
return getPublicKey().getExpiryTime();
}
public boolean isExpired() { public boolean isExpired() {
// Is the master key expired? // Is the master key expired?
Date creationDate = getPublicKey().getCreationTime(); Date creationDate = getCreationDate();
Date expiryDate = getPublicKey().getExpiryTime(); Date expirationDate = getExpirationDate();
Date now = new Date(); Date now = new Date();
return creationDate.after(now) || (expiryDate != null && expiryDate.before(now)); return creationDate.after(now) || (expirationDate != null && expirationDate.before(now));
} }
public boolean canCertify() throws PgpKeyNotFoundException { public boolean canCertify() throws PgpKeyNotFoundException {

View File

@@ -236,6 +236,7 @@ public class ImportKeysAdapter extends RecyclerView.Adapter<ImportKeysAdapter.Vi
ImportKeysListEntry entry = mData.get(mCurrent); ImportKeysListEntry entry = mData.get(mCurrent);
entry.setDate(keyRing.getCreationDate());
entry.setKeyId(keyRing.getMasterKeyId()); entry.setKeyId(keyRing.getMasterKeyId());
ArrayList<String> realUserIdsPlusKeybase = keyRing.getUnorderedUserIds(); ArrayList<String> realUserIdsPlusKeybase = keyRing.getUnorderedUserIds();

View File

@@ -1,7 +1,9 @@
package org.sufficientlysecure.keychain.ui.bindings; package org.sufficientlysecure.keychain.ui.bindings;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.databinding.BindingAdapter; import android.databinding.BindingAdapter;
import android.text.format.DateFormat;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
@@ -12,17 +14,36 @@ import org.sufficientlysecure.keychain.ui.util.Highlighter;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.Map; import java.util.Map;
public class ImportKeysExtraBindings { public class ImportKeysExtraBindings {
@BindingAdapter({"app:keyCreation"})
public static void setCreation(TextView textView, Date creationDate) {
Context context = textView.getContext();
String text;
if (creationDate != null) {
text = DateFormat.getDateFormat(context).format(creationDate);
} else {
Resources resources = context.getResources();
text = resources.getString(R.string.unknown);
}
textView.setText(text);
}
@BindingAdapter({"app:keyId"}) @BindingAdapter({"app:keyId"})
public static void setKeyId(TextView textView, String keyId) { public static void setKeyId(TextView textView, String keyId) {
if (keyId == null) Context context = textView.getContext();
keyId = ""; String text;
if (keyId != null){
textView.setText(KeyFormattingUtils.beautifyKeyIdWithPrefix(keyId)); text = KeyFormattingUtils.beautifyKeyId(keyId);
} else {
Resources resources = context.getResources();
text = resources.getString(R.string.unknown);
}
textView.setText(text);
} }
@BindingAdapter({"app:keyUserIds", "app:query"}) @BindingAdapter({"app:keyUserIds", "app:query"})

View File

@@ -99,7 +99,7 @@ public class KeyFormattingUtils {
default: { default: {
if (context != null) { if (context != null) {
algorithmStr = context.getResources().getString(R.string.unknown_algorithm); algorithmStr = context.getResources().getString(R.string.unknown);
} else { } else {
algorithmStr = "unknown"; algorithmStr = "unknown";
} }
@@ -154,7 +154,7 @@ public class KeyFormattingUtils {
default: { default: {
if (context != null) { if (context != null) {
algorithmStr = context.getResources().getString(R.string.unknown_algorithm); algorithmStr = context.getResources().getString(R.string.unknown);
} else { } else {
algorithmStr = "unknown"; algorithmStr = "unknown";
} }
@@ -189,7 +189,7 @@ public class KeyFormattingUtils {
*/ */
} }
if (context != null) { if (context != null) {
return context.getResources().getString(R.string.unknown_algorithm); return context.getResources().getString(R.string.unknown);
} else { } else {
return "unknown"; return "unknown";
} }
@@ -208,7 +208,7 @@ public class KeyFormattingUtils {
return name; return name;
} }
if (context != null) { if (context != null) {
return context.getResources().getString(R.string.unknown_algorithm); return context.getResources().getString(R.string.unknown);
} else { } else {
return "unknown"; return "unknown";
} }

View File

@@ -12,25 +12,30 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<TextView <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?attr/colorText" <TextView
app:keyId="@{entry.keyIdHex}" /> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_key_id_colon"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?attr/colorText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?attr/colorText"
app:keyId="@{entry.keyIdHex}" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content">
android:layout_marginTop="4dp"
android:orientation="vertical"
app:keyUserIds="@{entry.sortedUserIds}"
app:query="@{entry.query}" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -43,12 +48,41 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="8dp" android:layout_marginLeft="8dp"
android:text="@{entry.algorithm}" android:text="@{entry.algorithm ?? @string/unknown}"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?attr/colorText" /> android:textColor="?attr/colorText" />
</LinearLayout> </LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_creation_colon"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?attr/colorText" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?attr/colorText"
app:keyCreation="@{entry.date}" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="vertical"
app:keyUserIds="@{entry.sortedUserIds}"
app:query="@{entry.query}" />
</LinearLayout> </LinearLayout>
</layout> </layout>

View File

@@ -909,7 +909,7 @@
<string name="key_unavailable">nedostupný</string> <string name="key_unavailable">nedostupný</string>
<string name="secret_cannot_multiple">Vaše vlastní klíče lze mazat pouze jednotlivě!</string> <string name="secret_cannot_multiple">Vaše vlastní klíče lze mazat pouze jednotlivě!</string>
<string name="title_view_cert">Zobrazit detaily certifikátu</string> <string name="title_view_cert">Zobrazit detaily certifikátu</string>
<string name="unknown_algorithm">neznámý</string> <string name="unknown">neznámý</string>
<string name="can_sign_not">nelze podepsat</string> <string name="can_sign_not">nelze podepsat</string>
<string name="error_no_encrypt_subkey">Není dostupný šifrovací podklíč!</string> <string name="error_no_encrypt_subkey">Není dostupný šifrovací podklíč!</string>
<string name="contact_show_key">Zobrazit klíč (%s)</string> <string name="contact_show_key">Zobrazit klíč (%s)</string>

View File

@@ -1384,7 +1384,7 @@
<string name="key_unavailable">nicht verfügbar</string> <string name="key_unavailable">nicht verfügbar</string>
<string name="secret_cannot_multiple">Deine eigenen Schlüssel können nur einzeln gelöscht werden!</string> <string name="secret_cannot_multiple">Deine eigenen Schlüssel können nur einzeln gelöscht werden!</string>
<string name="title_view_cert">Beglaubigungsdetails anzeigen</string> <string name="title_view_cert">Beglaubigungsdetails anzeigen</string>
<string name="unknown_algorithm">unbekannt</string> <string name="unknown">unbekannt</string>
<string name="can_sign_not">kann nicht signieren</string> <string name="can_sign_not">kann nicht signieren</string>
<string name="error_no_encrypt_subkey">Kein Verschlüsselungs-Unterschlüssel verfügbar!</string> <string name="error_no_encrypt_subkey">Kein Verschlüsselungs-Unterschlüssel verfügbar!</string>
<string name="contact_show_key">Schlüssel anzeigen (%s)</string> <string name="contact_show_key">Schlüssel anzeigen (%s)</string>

View File

@@ -1266,7 +1266,7 @@
<string name="key_unavailable">no disponible</string> <string name="key_unavailable">no disponible</string>
<string name="secret_cannot_multiple">¡Sus claves propias sólo pueden ser borradas individualmente!</string> <string name="secret_cannot_multiple">¡Sus claves propias sólo pueden ser borradas individualmente!</string>
<string name="title_view_cert">Ver detalles del certificado</string> <string name="title_view_cert">Ver detalles del certificado</string>
<string name="unknown_algorithm">desconocido</string> <string name="unknown">desconocido</string>
<string name="can_sign_not">no puede firmarse</string> <string name="can_sign_not">no puede firmarse</string>
<string name="error_no_encrypt_subkey">¡No hay subclave de cifrado disponible!</string> <string name="error_no_encrypt_subkey">¡No hay subclave de cifrado disponible!</string>
<string name="contact_show_key">Mostrar clave (%s)</string> <string name="contact_show_key">Mostrar clave (%s)</string>

View File

@@ -1281,7 +1281,7 @@
<string name="key_unavailable">eskuraezina</string> <string name="key_unavailable">eskuraezina</string>
<string name="secret_cannot_multiple">Zure jabetzako giltzak banaka bakarrik ezabatu daitezke!</string> <string name="secret_cannot_multiple">Zure jabetzako giltzak banaka bakarrik ezabatu daitezke!</string>
<string name="title_view_cert">Ikusi Egiaztagiriaren Xehetasunak</string> <string name="title_view_cert">Ikusi Egiaztagiriaren Xehetasunak</string>
<string name="unknown_algorithm">ezezaguna</string> <string name="unknown">ezezaguna</string>
<string name="can_sign_not">ezin da sinatu</string> <string name="can_sign_not">ezin da sinatu</string>
<string name="error_no_encrypt_subkey">Ez dago enkriptaketa azpigiltzarik eskuragarri!</string> <string name="error_no_encrypt_subkey">Ez dago enkriptaketa azpigiltzarik eskuragarri!</string>
<string name="contact_show_key">Erakutsi (%s) giltza</string> <string name="contact_show_key">Erakutsi (%s) giltza</string>

View File

@@ -253,7 +253,7 @@
<string name="label_cert_type">Tyyppi</string> <string name="label_cert_type">Tyyppi</string>
<string name="key_no_passphrase">ei salasanaa</string> <string name="key_no_passphrase">ei salasanaa</string>
<string name="key_unavailable">ei saatavilla</string> <string name="key_unavailable">ei saatavilla</string>
<string name="unknown_algorithm">tunnistamaton</string> <string name="unknown">tunnistamaton</string>
<string name="contact_show_key">Näytä avain (%s)</string> <string name="contact_show_key">Näytä avain (%s)</string>
<string name="key_colon">Avain:</string> <string name="key_colon">Avain:</string>
<!--Android Account--> <!--Android Account-->

View File

@@ -1384,7 +1384,7 @@
<string name="key_unavailable">non disponible</string> <string name="key_unavailable">non disponible</string>
<string name="secret_cannot_multiple">Vos propres clefs ne peuvent être supprimées qu\'individuellement !</string> <string name="secret_cannot_multiple">Vos propres clefs ne peuvent être supprimées qu\'individuellement !</string>
<string name="title_view_cert">Voir les détails du certificat</string> <string name="title_view_cert">Voir les détails du certificat</string>
<string name="unknown_algorithm">inconnu</string> <string name="unknown">inconnu</string>
<string name="can_sign_not">impossible de signer</string> <string name="can_sign_not">impossible de signer</string>
<string name="error_no_encrypt_subkey">Aucune sous-clef de chiffrement n\'est proposée !</string> <string name="error_no_encrypt_subkey">Aucune sous-clef de chiffrement n\'est proposée !</string>
<string name="contact_show_key">Montrer la clef (%s)</string> <string name="contact_show_key">Montrer la clef (%s)</string>

View File

@@ -1009,7 +1009,7 @@ Permetti accesso?\n\nATTENZIONE: Se non sai perche\' questo schermata e\' appars
<string name="key_unavailable">non disponibile</string> <string name="key_unavailable">non disponibile</string>
<string name="secret_cannot_multiple">Le vostre chiavi possono essere eliminate solo singolarmente!</string> <string name="secret_cannot_multiple">Le vostre chiavi possono essere eliminate solo singolarmente!</string>
<string name="title_view_cert">Visualizza Dettagli Certificati</string> <string name="title_view_cert">Visualizza Dettagli Certificati</string>
<string name="unknown_algorithm">sconosciuto</string> <string name="unknown">sconosciuto</string>
<string name="can_sign_not">non può firmare</string> <string name="can_sign_not">non può firmare</string>
<string name="error_no_encrypt_subkey">Nessuna sottochiave di codifica disponibile!</string> <string name="error_no_encrypt_subkey">Nessuna sottochiave di codifica disponibile!</string>
<string name="contact_show_key">Mostra chiave (%s)</string> <string name="contact_show_key">Mostra chiave (%s)</string>

View File

@@ -1360,7 +1360,7 @@
<string name="key_unavailable">存在しない</string> <string name="key_unavailable">存在しない</string>
<string name="secret_cannot_multiple">あなたが所有者の鍵は個別にしか削除できません!</string> <string name="secret_cannot_multiple">あなたが所有者の鍵は個別にしか削除できません!</string>
<string name="title_view_cert">証明の詳細を見る</string> <string name="title_view_cert">証明の詳細を見る</string>
<string name="unknown_algorithm">不明</string> <string name="unknown">不明</string>
<string name="can_sign_not">署名不可</string> <string name="can_sign_not">署名不可</string>
<string name="error_no_encrypt_subkey">暗号化の副鍵がありません!</string> <string name="error_no_encrypt_subkey">暗号化の副鍵がありません!</string>
<string name="contact_show_key">鍵 (%s) を表示</string> <string name="contact_show_key">鍵 (%s) を表示</string>

View File

@@ -1161,7 +1161,7 @@
<string name="key_unavailable">niet beschikbaar</string> <string name="key_unavailable">niet beschikbaar</string>
<string name="secret_cannot_multiple">Je eigen sleutels kunnen enkel individueel verwijderd worden!</string> <string name="secret_cannot_multiple">Je eigen sleutels kunnen enkel individueel verwijderd worden!</string>
<string name="title_view_cert">Toon Certificaat Details</string> <string name="title_view_cert">Toon Certificaat Details</string>
<string name="unknown_algorithm">onbekend</string> <string name="unknown">onbekend</string>
<string name="can_sign_not">kan niet ondertekenen</string> <string name="can_sign_not">kan niet ondertekenen</string>
<string name="error_no_encrypt_subkey">Geen codeer-subsleutel beschikbaar!</string> <string name="error_no_encrypt_subkey">Geen codeer-subsleutel beschikbaar!</string>
<string name="contact_show_key">Toon sleutel (%s)</string> <string name="contact_show_key">Toon sleutel (%s)</string>

View File

@@ -527,7 +527,7 @@ OSTRZEŻENIE: Jeżeli nie wiesz, czemu wyświetlił się ten komunikat, nie zezw
<string name="key_unavailable">niedostepne</string> <string name="key_unavailable">niedostepne</string>
<string name="secret_cannot_multiple">Twoje klucze mogą być usuwane tylko pojedynczo!</string> <string name="secret_cannot_multiple">Twoje klucze mogą być usuwane tylko pojedynczo!</string>
<string name="title_view_cert">Zweryfikuj szczegóły certyfikatu</string> <string name="title_view_cert">Zweryfikuj szczegóły certyfikatu</string>
<string name="unknown_algorithm">nieznany</string> <string name="unknown">nieznany</string>
<string name="can_sign_not">nie może podpisać</string> <string name="can_sign_not">nie może podpisać</string>
<string name="error_no_encrypt_subkey">Brak pod-klucza szyfrowania!</string> <string name="error_no_encrypt_subkey">Brak pod-klucza szyfrowania!</string>
<string name="contact_show_key">Pokaż klucz (%s)</string> <string name="contact_show_key">Pokaż klucz (%s)</string>

View File

@@ -1384,7 +1384,7 @@
<string name="key_unavailable">indisponível</string> <string name="key_unavailable">indisponível</string>
<string name="secret_cannot_multiple">Suas próprias chaves só podem ser excluídas individualmente!</string> <string name="secret_cannot_multiple">Suas próprias chaves só podem ser excluídas individualmente!</string>
<string name="title_view_cert">Exibir Detalhes do Certificado</string> <string name="title_view_cert">Exibir Detalhes do Certificado</string>
<string name="unknown_algorithm">desconhecido</string> <string name="unknown">desconhecido</string>
<string name="can_sign_not">não pode assinar</string> <string name="can_sign_not">não pode assinar</string>
<string name="error_no_encrypt_subkey">Nenhuma sub-chave de encriptação disponível!</string> <string name="error_no_encrypt_subkey">Nenhuma sub-chave de encriptação disponível!</string>
<string name="contact_show_key">Exibir chave (%s)</string> <string name="contact_show_key">Exibir chave (%s)</string>

View File

@@ -1433,7 +1433,7 @@
<string name="key_unavailable">недоступно</string> <string name="key_unavailable">недоступно</string>
<string name="secret_cannot_multiple">Ваши собственные ключи можно удалять только по одному!</string> <string name="secret_cannot_multiple">Ваши собственные ключи можно удалять только по одному!</string>
<string name="title_view_cert">Просмотреть детали сертификации</string> <string name="title_view_cert">Просмотреть детали сертификации</string>
<string name="unknown_algorithm">неизв.</string> <string name="unknown">неизв.</string>
<string name="can_sign_not">не для подписания</string> <string name="can_sign_not">не для подписания</string>
<string name="error_no_encrypt_subkey">Нет доп. ключа для шифрования!</string> <string name="error_no_encrypt_subkey">Нет доп. ключа для шифрования!</string>
<string name="contact_show_key">Показать ключ (%s)</string> <string name="contact_show_key">Показать ключ (%s)</string>

View File

@@ -751,7 +751,7 @@
<string name="key_stripped">slečen</string> <string name="key_stripped">slečen</string>
<string name="key_unavailable">ni na voljo</string> <string name="key_unavailable">ni na voljo</string>
<string name="title_view_cert">Preglej podrobosti potrdila</string> <string name="title_view_cert">Preglej podrobosti potrdila</string>
<string name="unknown_algorithm">neznan</string> <string name="unknown">neznan</string>
<string name="can_sign_not">ne more podpisati</string> <string name="can_sign_not">ne more podpisati</string>
<string name="error_no_encrypt_subkey">Ni nobenega podključa za šifriranje!</string> <string name="error_no_encrypt_subkey">Ni nobenega podključa za šifriranje!</string>
<string name="contact_show_key">Prikaži ključ (%s)</string> <string name="contact_show_key">Prikaži ključ (%s)</string>

View File

@@ -1389,7 +1389,7 @@
<string name="key_unavailable">недоступан</string> <string name="key_unavailable">недоступан</string>
<string name="secret_cannot_multiple">Сопствене кључеве можете брисати само појединачно!</string> <string name="secret_cannot_multiple">Сопствене кључеве можете брисати само појединачно!</string>
<string name="title_view_cert">Прикажи детаље сертификата</string> <string name="title_view_cert">Прикажи детаље сертификата</string>
<string name="unknown_algorithm">непознат</string> <string name="unknown">непознат</string>
<string name="can_sign_not">не може да потпише</string> <string name="can_sign_not">не може да потпише</string>
<string name="error_no_encrypt_subkey">Поткључ за шифровање није доступан!</string> <string name="error_no_encrypt_subkey">Поткључ за шифровање није доступан!</string>
<string name="contact_show_key">Прикажи кључ (%s)</string> <string name="contact_show_key">Прикажи кључ (%s)</string>

View File

@@ -958,7 +958,7 @@
<string name="key_unavailable">otillgänglig</string> <string name="key_unavailable">otillgänglig</string>
<string name="secret_cannot_multiple">Dina egna nycklar kan bara raderas var för sig!</string> <string name="secret_cannot_multiple">Dina egna nycklar kan bara raderas var för sig!</string>
<string name="title_view_cert">Visa certifikatinformation</string> <string name="title_view_cert">Visa certifikatinformation</string>
<string name="unknown_algorithm">okänd</string> <string name="unknown">okänd</string>
<string name="can_sign_not">kan inte signera</string> <string name="can_sign_not">kan inte signera</string>
<string name="error_no_encrypt_subkey">Ingen krypteringsundernyckel tillgänglig!</string> <string name="error_no_encrypt_subkey">Ingen krypteringsundernyckel tillgänglig!</string>
<string name="contact_show_key">Visa nyckel (%s)</string> <string name="contact_show_key">Visa nyckel (%s)</string>

View File

@@ -395,7 +395,7 @@
<string name="key_unavailable">mevcut değil</string> <string name="key_unavailable">mevcut değil</string>
<string name="secret_cannot_multiple">Kendi anahtarlarınız yalnızca teker teker silinebilir!</string> <string name="secret_cannot_multiple">Kendi anahtarlarınız yalnızca teker teker silinebilir!</string>
<string name="title_view_cert">Sertifika Ayrıntılarını Görüntüle</string> <string name="title_view_cert">Sertifika Ayrıntılarını Görüntüle</string>
<string name="unknown_algorithm">bilinmeyen</string> <string name="unknown">bilinmeyen</string>
<string name="can_sign_not">imzalanamadı</string> <string name="can_sign_not">imzalanamadı</string>
<string name="error_no_encrypt_subkey">Şifreleme için kullanılabilecek altanahtar mevcut değil!</string> <string name="error_no_encrypt_subkey">Şifreleme için kullanılabilecek altanahtar mevcut değil!</string>
<string name="contact_show_key">Anahtarı göster (%s)</string> <string name="contact_show_key">Anahtarı göster (%s)</string>

View File

@@ -483,7 +483,7 @@
<string name="key_stripped">голий</string> <string name="key_stripped">голий</string>
<string name="secret_cannot_multiple">Ваші власні ключі можна вилучити лише окремо!</string> <string name="secret_cannot_multiple">Ваші власні ключі можна вилучити лише окремо!</string>
<string name="title_view_cert">Переглянути дані сертифікату</string> <string name="title_view_cert">Переглянути дані сертифікату</string>
<string name="unknown_algorithm">невідомий</string> <string name="unknown">невідомий</string>
<string name="can_sign_not">не можна підписати</string> <string name="can_sign_not">не можна підписати</string>
<string name="error_no_encrypt_subkey">Жодний підключ шифрування недоступний!</string> <string name="error_no_encrypt_subkey">Жодний підключ шифрування недоступний!</string>
<string name="contact_show_key">Показати ключ (%s)</string> <string name="contact_show_key">Показати ключ (%s)</string>

View File

@@ -666,7 +666,7 @@
<string name="key_unavailable">無法使用</string> <string name="key_unavailable">無法使用</string>
<string name="secret_cannot_multiple">您的金鑰只能個別地刪除!</string> <string name="secret_cannot_multiple">您的金鑰只能個別地刪除!</string>
<string name="title_view_cert">查看認證內容</string> <string name="title_view_cert">查看認證內容</string>
<string name="unknown_algorithm">未知</string> <string name="unknown">未知</string>
<string name="error_no_encrypt_subkey">沒有可供加密的子金鑰!</string> <string name="error_no_encrypt_subkey">沒有可供加密的子金鑰!</string>
<string name="exchange_description">要發起金鑰交換,先在右邊選擇與會人數,然後點選〝開始交換〞。\n\n接下來會詢問你兩個問題以確保會議成員與交換的指紋是正確的。</string> <string name="exchange_description">要發起金鑰交換,先在右邊選擇與會人數,然後點選〝開始交換〞。\n\n接下來會詢問你兩個問題以確保會議成員與交換的指紋是正確的。</string>
<string name="btn_start_exchange">開始交換</string> <string name="btn_start_exchange">開始交換</string>

View File

@@ -1095,7 +1095,7 @@
<string name="key_unavailable">不可用</string> <string name="key_unavailable">不可用</string>
<string name="secret_cannot_multiple">只能逐个删除您的密钥!</string> <string name="secret_cannot_multiple">只能逐个删除您的密钥!</string>
<string name="title_view_cert">查看认证详情</string> <string name="title_view_cert">查看认证详情</string>
<string name="unknown_algorithm">未知</string> <string name="unknown">未知</string>
<string name="can_sign_not">无法签署</string> <string name="can_sign_not">无法签署</string>
<string name="exchange_description">在开始密钥交换之前,在右侧指定参与者的数量,然后点击“开始交换”按钮。\n\n您将被要求回答两个问题以确认由正确的参与者参与交换过程并且他们的指纹是正确的。</string> <string name="exchange_description">在开始密钥交换之前,在右侧指定参与者的数量,然后点击“开始交换”按钮。\n\n您将被要求回答两个问题以确认由正确的参与者参与交换过程并且他们的指纹是正确的。</string>
<string name="btn_start_exchange">开始交换</string> <string name="btn_start_exchange">开始交换</string>

View File

@@ -167,9 +167,11 @@
<string name="label_file_compression">"File compression"</string> <string name="label_file_compression">"File compression"</string>
<string name="label_keyservers">"Manage OpenPGP keyservers"</string> <string name="label_keyservers">"Manage OpenPGP keyservers"</string>
<string name="label_key_id">"Key ID"</string> <string name="label_key_id">"Key ID"</string>
<string name="label_key_id_colon">"Key ID:"</string>
<string name="label_key_created">"Key created %s"</string> <string name="label_key_created">"Key created %s"</string>
<string name="label_key_type">"Type"</string> <string name="label_key_type">"Type"</string>
<string name="label_creation">"Creation"</string> <string name="label_creation">"Creation"</string>
<string name="label_creation_colon">"Creation:"</string>
<string name="label_expiry">"Expiry"</string> <string name="label_expiry">"Expiry"</string>
<string name="label_usage">"Usage"</string> <string name="label_usage">"Usage"</string>
<string name="label_key_size">"Key Size"</string> <string name="label_key_size">"Key Size"</string>
@@ -255,7 +257,6 @@
<string name="orbot_start_dialog_cancel">"Cancel"</string> <string name="orbot_start_dialog_cancel">"Cancel"</string>
<string name="orbot_start_dialog_ignore_tor">"Don't use Tor"</string> <string name="orbot_start_dialog_ignore_tor">"Don't use Tor"</string>
<string name="user_id_no_name"><![CDATA[<no name>]]></string> <string name="user_id_no_name"><![CDATA[<no name>]]></string>
<string name="none"><![CDATA[<none>]]></string> <string name="none"><![CDATA[<none>]]></string>
@@ -1512,7 +1513,7 @@
<string name="key_unavailable">"unavailable"</string> <string name="key_unavailable">"unavailable"</string>
<string name="secret_cannot_multiple">"Your own keys can only be deleted individually!"</string> <string name="secret_cannot_multiple">"Your own keys can only be deleted individually!"</string>
<string name="title_view_cert">"View Certificate Details"</string> <string name="title_view_cert">"View Certificate Details"</string>
<string name="unknown_algorithm">"unknown"</string> <string name="unknown">"unknown"</string>
<string name="can_sign_not">"cannot sign"</string> <string name="can_sign_not">"cannot sign"</string>
<string name="error_no_encrypt_subkey">"No encryption subkey available!"</string> <string name="error_no_encrypt_subkey">"No encryption subkey available!"</string>
<string name="contact_show_key">"Show key (%s)"</string> <string name="contact_show_key">"Show key (%s)"</string>