diff --git a/app/build.gradle b/app/build.gradle index 107efa52e..8085df9d2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -80,8 +80,8 @@ protobuf { } } -def canonicalVersionCode = 668 -def canonicalVersionName = "4.66.0" +def canonicalVersionCode = 670 +def canonicalVersionName = "4.66.2" def postFixSize = 10 def abiPostFix = ['universal' : 0, diff --git a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java index 40b16a3e7..acd5e510b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -20,10 +20,12 @@ import android.Manifest; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; +import android.database.ContentObserver; import android.database.Cursor; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; +import android.os.Handler; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -73,6 +75,7 @@ import org.thoughtcrime.securesms.util.SaveAttachmentTask.Attachment; import java.util.HashMap; import java.util.Locale; import java.util.Map; +import java.util.Objects; /** * Activity for displaying media attachments in-app @@ -117,17 +120,20 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity private boolean showThread; private MediaDatabase.Sorting sorting; + private @Nullable Cursor cursor = null; + public static @NonNull Intent intentFromMediaRecord(@NonNull Context context, @NonNull MediaRecord mediaRecord, boolean leftIsRecent) { + DatabaseAttachment attachment = Objects.requireNonNull(mediaRecord.getAttachment()); Intent intent = new Intent(context, MediaPreviewActivity.class); intent.putExtra(MediaPreviewActivity.THREAD_ID_EXTRA, mediaRecord.getThreadId()); intent.putExtra(MediaPreviewActivity.DATE_EXTRA, mediaRecord.getDate()); - intent.putExtra(MediaPreviewActivity.SIZE_EXTRA, mediaRecord.getAttachment().getSize()); - intent.putExtra(MediaPreviewActivity.CAPTION_EXTRA, mediaRecord.getAttachment().getCaption()); + intent.putExtra(MediaPreviewActivity.SIZE_EXTRA, attachment.getSize()); + intent.putExtra(MediaPreviewActivity.CAPTION_EXTRA, attachment.getCaption()); intent.putExtra(MediaPreviewActivity.LEFT_IS_RECENT_EXTRA, leftIsRecent); - intent.setDataAndType(mediaRecord.getAttachment().getDataUri(), mediaRecord.getContentType()); + intent.setDataAndType(attachment.getDataUri(), mediaRecord.getContentType()); return intent; } @@ -228,6 +234,15 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity restartItem = cleanupMedia(); } + @Override + protected void onDestroy() { + if (cursor != null) { + cursor.close(); + cursor = null; + } + super.onDestroy(); + } + @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); @@ -344,6 +359,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity mediaPager.removeAllViews(); mediaPager.setAdapter(null); + viewModel.setCursor(this, null, leftIsRecent); return restartItem; } @@ -475,19 +491,46 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity @Override public void onLoadFinished(@NonNull Loader> loader, @Nullable Pair data) { if (data != null) { - @SuppressWarnings("ConstantConditions") - CursorPagerAdapter adapter = new CursorPagerAdapter(getSupportFragmentManager(),this, data.first, data.second, leftIsRecent); + if (data.first == cursor) { + return; + } + + if (cursor != null) { + cursor.close(); + } + cursor = Objects.requireNonNull(data.first); + + int mediaPosition = Objects.requireNonNull(data.second); + + CursorPagerAdapter adapter = new CursorPagerAdapter(getSupportFragmentManager(),this, cursor, mediaPosition, leftIsRecent); mediaPager.setAdapter(adapter); adapter.setActive(true); - viewModel.setCursor(this, data.first, leftIsRecent); + viewModel.setCursor(this, cursor, leftIsRecent); - int item = restartItem >= 0 ? restartItem : data.second; + int item = restartItem >= 0 ? restartItem : mediaPosition; mediaPager.setCurrentItem(item); if (item == 0) { viewPagerListener.onPageSelected(0); } + + cursor.registerContentObserver(new ContentObserver(new Handler(getMainLooper())) { + @Override + public void onChange(boolean selfChange) { + onMediaChange(); + } + }); + } else { + mediaNotAvailable(); + } + } + + private void onMediaChange() { + MediaItemAdapter adapter = (MediaItemAdapter) mediaPager.getAdapter(); + + if (adapter != null) { + adapter.checkMedia(mediaPager.getCurrentItem()); } } @@ -502,6 +545,12 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity return true; } + @Override + public void mediaNotAvailable() { + Toast.makeText(this, R.string.MediaPreviewActivity_media_no_longer_available, Toast.LENGTH_LONG).show(); + finish(); + } + private void toggleUiVisibility() { int systemUiVisibility = getWindow().getDecorView().getSystemUiVisibility(); if ((systemUiVisibility & View.SYSTEM_UI_FLAG_FULLSCREEN) != 0) { @@ -621,6 +670,11 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity public boolean hasFragmentFor(int position) { return mediaPreviewFragment != null; } + + @Override + public void checkMedia(int currentItem) { + + } } private static void anchorMarginsToBottomInsets(@NonNull View viewToAnchor) { @@ -712,7 +766,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity cursor.moveToPosition(cursorPosition); MediaDatabase.MediaRecord mediaRecord = MediaDatabase.MediaRecord.from(context, cursor); - DatabaseAttachment attachment = mediaRecord.getAttachment(); + DatabaseAttachment attachment = Objects.requireNonNull(mediaRecord.getAttachment()); MediaPreviewFragment fragment = MediaPreviewFragment.newInstance(attachment, autoPlay); mediaFragments.put(position, fragment); @@ -734,16 +788,15 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity public MediaItem getMediaItemFor(int position) { cursor.moveToPosition(getCursorPosition(position)); - MediaRecord mediaRecord = MediaRecord.from(context, cursor); - RecipientId recipientId = mediaRecord.getRecipientId(); - RecipientId threadRecipientId = mediaRecord.getThreadRecipientId(); - - if (mediaRecord.getAttachment().getDataUri() == null) throw new AssertionError(); + MediaRecord mediaRecord = MediaRecord.from(context, cursor); + DatabaseAttachment attachment = Objects.requireNonNull(mediaRecord.getAttachment()); + RecipientId recipientId = mediaRecord.getRecipientId(); + RecipientId threadRecipientId = mediaRecord.getThreadRecipientId(); return new MediaItem(Recipient.live(recipientId).get(), Recipient.live(threadRecipientId).get(), - mediaRecord.getAttachment(), - mediaRecord.getAttachment().getDataUri(), + attachment, + Objects.requireNonNull(attachment.getDataUri()), mediaRecord.getContentType(), mediaRecord.getDate(), mediaRecord.isOutgoing()); @@ -767,6 +820,14 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity return mediaFragments.containsKey(position); } + @Override + public void checkMedia(int position) { + MediaPreviewFragment fragment = mediaFragments.get(position); + if (fragment != null) { + fragment.checkMediaStillAvailable(); + } + } + private int getCursorPosition(int position) { if (leftIsRecent) return position; else return cursor.getCount() - 1 - position; @@ -805,5 +866,6 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity void pause(int position); @Nullable View getPlaybackControls(int position); boolean hasFragmentFor(int position); + void checkMedia(int currentItem); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java index 4312bd7ef..dea984158 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/WebRtcCallActivity.java @@ -505,7 +505,6 @@ public class WebRtcCallActivity extends AppCompatActivity { private boolean isSystemPipEnabledAndAvailable() { return Build.VERSION.SDK_INT >= 26 && - FeatureFlags.callingPip() && getPackageManager().hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 208ec9161..d0b6df505 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -179,6 +179,7 @@ import org.thoughtcrime.securesms.messagerequests.MessageRequestsBottomView; import org.thoughtcrime.securesms.mms.AttachmentManager; import org.thoughtcrime.securesms.mms.AttachmentManager.MediaType; import org.thoughtcrime.securesms.mms.AudioSlide; +import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; import org.thoughtcrime.securesms.mms.GifSlide; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.GlideRequests; @@ -292,6 +293,7 @@ public class ConversationActivity extends PassphraseRequiredActivity public static final String TEXT_EXTRA = "draft_text"; public static final String MEDIA_EXTRA = "media_list"; public static final String STICKER_EXTRA = "sticker_extra"; + public static final String BORDERLESS_EXTRA = "borderless_extra"; public static final String DISTRIBUTION_TYPE_EXTRA = "distribution_type"; public static final String STARTING_POSITION_EXTRA = "starting_position"; @@ -1369,11 +1371,13 @@ public class ConversationActivity extends PassphraseRequiredActivity private ListenableFuture initializeDraft() { final SettableFuture result = new SettableFuture<>(); - final String draftText = getIntent().getStringExtra(TEXT_EXTRA); - final Uri draftMedia = getIntent().getData(); - final MediaType draftMediaType = MediaType.from(getIntent().getType()); - final List mediaList = getIntent().getParcelableArrayListExtra(MEDIA_EXTRA); - final StickerLocator stickerLocator = getIntent().getParcelableExtra(STICKER_EXTRA); + final String draftText = getIntent().getStringExtra(TEXT_EXTRA); + final Uri draftMedia = getIntent().getData(); + final String draftContentType = getIntent().getType(); + final MediaType draftMediaType = MediaType.from(draftContentType); + final List mediaList = getIntent().getParcelableArrayListExtra(MEDIA_EXTRA); + final StickerLocator stickerLocator = getIntent().getParcelableExtra(STICKER_EXTRA); + final boolean borderless = getIntent().getBooleanExtra(BORDERLESS_EXTRA, false); if (stickerLocator != null && draftMedia != null) { Log.d(TAG, "Handling shared sticker."); @@ -1381,6 +1385,13 @@ public class ConversationActivity extends PassphraseRequiredActivity return new SettableFuture<>(false); } + if (draftMedia != null && draftContentType != null && borderless) { + SimpleTask.run(getLifecycle(), + () -> getKeyboardImageDetails(draftMedia), + details -> sendKeyboardImage(draftMedia, draftContentType, details)); + return new SettableFuture<>(false); + } + if (!Util.isEmpty(mediaList)) { Log.d(TAG, "Handling shared Media."); Intent sendIntent = MediaSendActivity.buildEditorIntent(this, mediaList, recipient.get(), draftText, sendButton.getSelectedTransport()); @@ -3079,7 +3090,7 @@ public class ConversationActivity extends PassphraseRequiredActivity private @Nullable KeyboardImageDetails getKeyboardImageDetails(@NonNull Uri uri) { try { Bitmap bitmap = glideRequests.asBitmap() - .load(uri) + .load(new DecryptableStreamUriLoader.DecryptableUri(uri)) .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .submit() diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index c40261c47..42ad0835e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -287,7 +287,7 @@ public class ConversationFragment extends LoggingFragment { int firstVisiblePosition = getListLayoutManager().findFirstCompletelyVisibleItemPosition(); final long lastVisibleMessageTimestamp; - if (firstVisiblePosition != 0 && lastVisiblePosition != RecyclerView.NO_POSITION) { + if (firstVisiblePosition > 0 && lastVisiblePosition != RecyclerView.NO_POSITION) { MessageRecord message = getListAdapter().getLastVisibleMessageRecord(lastVisiblePosition); lastVisibleMessageTimestamp = message != null ? message.getDateReceived() : 0; @@ -780,6 +780,7 @@ public class ConversationFragment extends LoggingFragment { Slide slide = mediaMessage.getSlideDeck().getSlides().get(0); composeIntent.putExtra(Intent.EXTRA_STREAM, slide.getUri()); composeIntent.setType(slide.getContentType()); + composeIntent.putExtra(ConversationActivity.BORDERLESS_EXTRA, slide.isBorderless()); if (slide.hasSticker()) { composeIntent.putExtra(ConversationActivity.STICKER_EXTRA, slide.asAttachment().getSticker()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index fac90c524..c66e64837 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -100,6 +100,7 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.events.ReminderUpdateEvent; import org.thoughtcrime.securesms.insights.InsightsLauncher; import org.thoughtcrime.securesms.jobs.ServiceOutageDetectionJob; +import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.lock.v2.CreateKbsPinActivity; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mediasend.MediaSendActivity; @@ -330,7 +331,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode } if (requestCode == CreateKbsPinActivity.REQUEST_NEW_PIN) { - Snackbar.make(fab, R.string.ConfirmKbsPinFragment__pin_created, Snackbar.LENGTH_LONG).show(); + Snackbar.make(fab, R.string.ConfirmKbsPinFragment__pin_created, Snackbar.LENGTH_LONG).setTextColor(Color.WHITE).show(); viewModel.onMegaphoneCompleted(Megaphones.Event.PINS_FOR_ALL); } } @@ -388,7 +389,9 @@ public class ConversationListFragment extends MainFragment implements ActionMode @Override public void onMegaphoneToastRequested(@NonNull String string) { - Snackbar.make(fab, string, Snackbar.LENGTH_LONG).show(); + Snackbar.make(fab, string, Snackbar.LENGTH_LONG) + .setTextColor(Color.WHITE) + .show(); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java index f20c6cc0c..e51a4bb8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/AttachmentDatabase.java @@ -309,6 +309,23 @@ public class AttachmentDatabase extends Database { } } + public boolean hasAttachment(@NonNull AttachmentId id) { + SQLiteDatabase database = databaseHelper.getReadableDatabase(); + + try (Cursor cursor = database.query(TABLE_NAME, + new String[]{ROW_ID, UNIQUE_ID}, + PART_ID_WHERE, + id.toStrings(), + null, + null, + null)) { + if (cursor != null && cursor.getCount() > 0) { + return true; + } + } + return false; + } + public boolean hasAttachmentFilesForMessage(long mmsId) { String selection = MMS_ID + " = ? AND (" + DATA + " NOT NULL OR " + TRANSFER_STATE + " != ?)"; String[] args = new String[] { String.valueOf(mmsId), String.valueOf(TRANSFER_PROGRESS_DONE) }; diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Database.java b/app/src/main/java/org/thoughtcrime/securesms/database/Database.java index b5f04dbaf..68cf0c761 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Database.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Database.java @@ -67,6 +67,10 @@ public abstract class Database { cursor.setNotificationUri(context.getContentResolver(), DatabaseContentProviders.Conversation.getUriForThread(threadId)); } + protected void setNotifyConversationListeners(Cursor cursor) { + cursor.setNotificationUri(context.getContentResolver(), DatabaseContentProviders.Conversation.getUriForAllThreads()); + } + protected void setNotifyVerboseConversationListeners(Cursor cursor, long threadId) { cursor.setNotificationUri(context.getContentResolver(), DatabaseContentProviders.Conversation.getVerboseUriForThread(threadId)); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseContentProviders.java b/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseContentProviders.java index 422a455fe..da62f5fd2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseContentProviders.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/DatabaseContentProviders.java @@ -27,6 +27,10 @@ public class DatabaseContentProviders { public static Uri getVerboseUriForThread(long threadId) { return Uri.parse(CONTENT_URI_STRING + "verbose/" + threadId); } + + public static Uri getUriForAllThreads() { + return Uri.parse(CONTENT_URI_STRING); + } } public static class Attachment extends NoopContentProvider { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java index 82bca9494..172ab8f0f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/GroupDatabase.java @@ -251,6 +251,20 @@ public final class GroupDatabase extends Database { return new Reader(cursor); } + public int getActiveGroupCount() { + SQLiteDatabase db = databaseHelper.getReadableDatabase(); + String[] cols = { "COUNT(*)" }; + String query = ACTIVE + " = 1"; + + try (Cursor cursor = db.query(TABLE_NAME, cols, query, null, null, null, null)) { + if (cursor != null && cursor.moveToFirst()) { + return cursor.getInt(0); + } + } + + return 0; + } + @WorkerThread public @NonNull List getGroupMembers(@NonNull GroupId groupId, @NonNull MemberSet memberSet) { if (groupId.isV2()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MediaDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/MediaDatabase.java index f68b1758d..bde1c063a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MediaDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MediaDatabase.java @@ -89,11 +89,19 @@ public class MediaDatabase extends Database { } public @NonNull Cursor getGalleryMediaForThread(long threadId, @NonNull Sorting sorting) { + return getGalleryMediaForThread(threadId, sorting, false); + } + + public @NonNull Cursor getGalleryMediaForThread(long threadId, @NonNull Sorting sorting, boolean listenToAllThreads) { SQLiteDatabase database = databaseHelper.getReadableDatabase(); String query = sorting.applyToQuery(applyEqualityOperator(threadId, GALLERY_MEDIA_QUERY)); String[] args = {threadId + ""}; Cursor cursor = database.rawQuery(query, args); - setNotifyConversationListeners(cursor, threadId); + if (listenToAllThreads) { + setNotifyConversationListeners(cursor); + } else { + setNotifyConversationListeners(cursor, threadId); + } return cursor; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java index 91680ff43..4820fd794 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java @@ -51,7 +51,6 @@ import org.thoughtcrime.securesms.util.CursorUtil; import org.thoughtcrime.securesms.util.JsonUtils; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; -import org.whispersystems.libsignal.util.Pair; import org.whispersystems.libsignal.util.guava.Optional; import org.whispersystems.signalservice.api.groupsv2.DecryptedGroupUtil; @@ -193,6 +192,10 @@ public class ThreadDatabase extends Database { contentValues.put(ARCHIVED, 0); } + if (count != getConversationMessageCount(threadId)) { + contentValues.put(LAST_SCROLLED, 0); + } + SQLiteDatabase db = databaseHelper.getWritableDatabase(); db.update(TABLE_NAME, contentValues, ID + " = ?", new String[] {threadId + ""}); notifyConversationListListeners(); @@ -666,6 +669,17 @@ public class ThreadDatabase extends Database { } } + public int getConversationMessageCount(long threadId) { + SQLiteDatabase db = databaseHelper.getReadableDatabase(); + + try (Cursor cursor = db.query(TABLE_NAME, new String[]{MESSAGE_COUNT}, ID_WHERE, new String[]{String.valueOf(threadId)}, null, null, null)) { + if (cursor != null && cursor.moveToFirst()) { + return CursorUtil.requireInt(cursor, MESSAGE_COUNT); + } + } + return 0; + } + public void deleteConversation(long threadId) { DatabaseFactory.getSmsDatabase(context).deleteThread(threadId); DatabaseFactory.getMmsDatabase(context).deleteThread(threadId); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/PagingMediaLoader.java b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/PagingMediaLoader.java index d01e12bad..8f7664b23 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/loaders/PagingMediaLoader.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/loaders/PagingMediaLoader.java @@ -11,6 +11,7 @@ import androidx.core.util.Pair; import org.thoughtcrime.securesms.attachments.AttachmentId; import org.thoughtcrime.securesms.database.AttachmentDatabase; import org.thoughtcrime.securesms.database.DatabaseFactory; +import org.thoughtcrime.securesms.database.MediaDatabase; import org.thoughtcrime.securesms.database.MediaDatabase.Sorting; import org.thoughtcrime.securesms.mms.PartAuthority; import org.thoughtcrime.securesms.util.AsyncLoader; @@ -35,7 +36,7 @@ public final class PagingMediaLoader extends AsyncLoader> @Override public @Nullable Pair loadInBackground() { - Cursor cursor = DatabaseFactory.getMediaDatabase(getContext()).getGalleryMediaForThread(threadId, sorting); + Cursor cursor = DatabaseFactory.getMediaDatabase(getContext()).getGalleryMediaForThread(threadId, sorting, threadId == MediaDatabase.ALL_THREADS); while (cursor.moveToNext()) { AttachmentId attachmentId = new AttachmentId(cursor.getLong(cursor.getColumnIndexOrThrow(AttachmentDatabase.ROW_ID)), cursor.getLong(cursor.getColumnIndexOrThrow(AttachmentDatabase.UNIQUE_ID))); diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java index 6c6c3750f..4d7a0361f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2.java @@ -26,6 +26,7 @@ import org.thoughtcrime.securesms.database.model.databaseprotos.DecryptedGroupV2 import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.groups.v2.GroupCandidateHelper; import org.thoughtcrime.securesms.groups.v2.processing.GroupsV2StateProcessor; +import org.thoughtcrime.securesms.jobs.PushGroupSilentUpdateSendJob; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.mms.OutgoingGroupUpdateMessage; @@ -482,9 +483,13 @@ final class GroupManagerV2 { Collections.emptyList(), Collections.emptyList()); - long threadId = MessageSender.send(context, outgoingMessage, -1, false, null); - - return new GroupManager.GroupActionResult(groupRecipient, threadId); + if (plainGroupChange != null && DecryptedGroupUtil.changeIsEmptyExceptForProfileKeyChanges(plainGroupChange)) { + ApplicationDependencies.getJobManager().add(PushGroupSilentUpdateSendJob.create(context, groupId, decryptedGroup, outgoingMessage)); + return new GroupManager.GroupActionResult(groupRecipient, -1); + } else { + long threadId = MessageSender.send(context, outgoingMessage, -1, false, null); + return new GroupManager.GroupActionResult(groupRecipient, threadId); + } } private static @NonNull AccessControl.AccessRequired rightsToAccessControl(@NonNull GroupAccessControl rights) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java index 404605ed5..0f476f7f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/managegroup/ManageGroupFragment.java @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.groups.ui.managegroup; import android.content.Context; import android.content.Intent; import android.database.Cursor; +import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.MenuItem; @@ -362,7 +363,7 @@ public class ManageGroupFragment extends LoggingFragment { } private void handleSnackbarEvent(@NonNull ManageGroupViewModel.SnackbarEvent snackbarEvent) { - Snackbar.make(requireView(), buildSnackbarString(snackbarEvent), Snackbar.LENGTH_SHORT).show(); + Snackbar.make(requireView(), buildSnackbarString(snackbarEvent), Snackbar.LENGTH_SHORT).setTextColor(Color.WHITE).show(); } private @NonNull String buildSnackbarString(@NonNull ManageGroupViewModel.SnackbarEvent snackbarEvent) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java b/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java index 96f467994..088db9536 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java @@ -437,8 +437,9 @@ public final class ImageEditorView extends FrameLayout { } else { tapListener.onEntitySingleTap(null); } + return true; } - return true; + return false; } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupSendJobHelper.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupSendJobHelper.java new file mode 100644 index 000000000..2cb5a8abe --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/GroupSendJobHelper.java @@ -0,0 +1,46 @@ +package org.thoughtcrime.securesms.jobs; + +import android.content.Context; + +import androidx.annotation.NonNull; + +import org.thoughtcrime.securesms.logging.Log; +import org.thoughtcrime.securesms.recipients.Recipient; +import org.whispersystems.signalservice.api.messages.SendMessageResult; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +final class GroupSendJobHelper { + + private static final String TAG = Log.tag(GroupSendJobHelper.class); + + private GroupSendJobHelper() { + } + + static List getCompletedSends(@NonNull Context context, @NonNull Collection results) { + List completions = new ArrayList<>(results.size()); + + for (SendMessageResult sendMessageResult : results) { + Recipient recipient = Recipient.externalPush(context, sendMessageResult.getAddress()); + + if (sendMessageResult.getIdentityFailure() != null) { + Log.w(TAG, "Identity failure for " + recipient.getId()); + } + + if (sendMessageResult.isUnregisteredFailure()) { + Log.w(TAG, "Unregistered failure for " + recipient.getId()); + } + + if (sendMessageResult.getSuccess() != null || + sendMessageResult.getIdentityFailure() != null || + sendMessageResult.isUnregisteredFailure()) + { + completions.add(recipient); + } + } + + return completions; + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java index a5674d14e..bef611766 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java @@ -83,6 +83,7 @@ public final class JobManagerFactories { put(PushDecryptMessageJob.KEY, new PushDecryptMessageJob.Factory()); put(PushProcessMessageJob.KEY, new PushProcessMessageJob.Factory()); put(PushGroupSendJob.KEY, new PushGroupSendJob.Factory()); + put(PushGroupSilentUpdateSendJob.KEY, new PushGroupSilentUpdateSendJob.Factory()); put(PushGroupUpdateJob.KEY, new PushGroupUpdateJob.Factory()); put(PushMediaSendJob.KEY, new PushMediaSendJob.Factory()); put(PushNotificationReceiveJob.KEY, new PushNotificationReceiveJob.Factory()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupJob.java index 686accaaa..7ea59f6ba 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/LeaveGroupJob.java @@ -143,24 +143,7 @@ public class LeaveGroupJob extends BaseJob { List results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build()); - Stream.of(results) - .filter(r -> r.getIdentityFailure() != null) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Identity failure for " + r.getId())); - - Stream.of(results) - .filter(SendMessageResult::isUnregisteredFailure) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId())); - - - return Stream.of(results) - .filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure()) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .toList(); + return GroupSendJobHelper.getCompletedSends(context, results); } public static class Factory implements Job.Factory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileKeySendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileKeySendJob.java index 7423d2f11..1b819ce3f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileKeySendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileKeySendJob.java @@ -137,24 +137,7 @@ public class ProfileKeySendJob extends BaseJob { List results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build()); - Stream.of(results) - .filter(r -> r.getIdentityFailure() != null) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Identity failure for " + r.getId())); - - Stream.of(results) - .filter(SendMessageResult::isUnregisteredFailure) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId())); - - - return Stream.of(results) - .filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure()) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .toList(); + return GroupSendJobHelper.getCompletedSends(context, results); } public static class Factory implements Job.Factory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java index c62e3362c..78259b157 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ProfileUploadJob.java @@ -11,14 +11,18 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobmanager.Data; import org.thoughtcrime.securesms.jobmanager.Job; import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; +import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.profiles.AvatarHelper; import org.thoughtcrime.securesms.profiles.ProfileName; import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.whispersystems.signalservice.api.SignalServiceAccountManager; import org.whispersystems.signalservice.api.util.StreamDetails; public final class ProfileUploadJob extends BaseJob { + private static final String TAG = Log.tag(ProfileUploadJob.class); + public static final String KEY = "ProfileUploadJob"; public static final String QUEUE = "ProfileAlteration"; @@ -45,6 +49,11 @@ public final class ProfileUploadJob extends BaseJob { @Override protected void onRun() throws Exception { + if (!TextSecurePreferences.isPushRegistered(context)) { + Log.w(TAG, "Not registered. Skipping."); + return; + } + ProfileKey profileKey = ProfileKeyUtil.getSelfProfileKey(); ProfileName profileName = Recipient.self().getProfileName(); String avatarPath; diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSilentUpdateSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSilentUpdateSendJob.java new file mode 100644 index 000000000..8f4d6a1fe --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushGroupSilentUpdateSendJob.java @@ -0,0 +1,190 @@ +package org.thoughtcrime.securesms.jobs; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.WorkerThread; + +import com.annimon.stream.Collectors; +import com.annimon.stream.Stream; +import com.google.protobuf.InvalidProtocolBufferException; + +import org.signal.storageservice.protos.groups.local.DecryptedGroup; +import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; +import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.groups.GroupId; +import org.thoughtcrime.securesms.jobmanager.Data; +import org.thoughtcrime.securesms.jobmanager.Job; +import org.thoughtcrime.securesms.logging.Log; +import org.thoughtcrime.securesms.mms.MessageGroupContext; +import org.thoughtcrime.securesms.mms.OutgoingGroupUpdateMessage; +import org.thoughtcrime.securesms.recipients.Recipient; +import org.thoughtcrime.securesms.recipients.RecipientId; +import org.thoughtcrime.securesms.recipients.RecipientUtil; +import org.thoughtcrime.securesms.transport.RetryLaterException; +import org.thoughtcrime.securesms.util.Base64; +import org.whispersystems.libsignal.util.guava.Optional; +import org.whispersystems.signalservice.api.SignalServiceMessageSender; +import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; +import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; +import org.whispersystems.signalservice.api.groupsv2.DecryptedGroupUtil; +import org.whispersystems.signalservice.api.messages.SendMessageResult; +import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; +import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2; +import org.whispersystems.signalservice.api.push.SignalServiceAddress; +import org.whispersystems.signalservice.api.util.UuidUtil; +import org.whispersystems.signalservice.internal.push.SignalServiceProtos; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +/** + * Sends an update to a group without inserting a change message locally. + *

+ * An example usage would be to update a group with a profile key change. + */ +public final class PushGroupSilentUpdateSendJob extends BaseJob { + + public static final String KEY = "PushGroupSilentSendJob"; + + private static final String TAG = Log.tag(PushGroupSilentUpdateSendJob.class); + + private static final String KEY_RECIPIENTS = "recipients"; + private static final String KEY_INITIAL_RECIPIENT_COUNT = "initial_recipient_count"; + private static final String KEY_TIMESTAMP = "timestamp"; + private static final String KEY_GROUP_CONTEXT_V2 = "group_context_v2"; + + private final List recipients; + private final int initialRecipientCount; + private final SignalServiceProtos.GroupContextV2 groupContextV2; + private final long timestamp; + + @WorkerThread + public static @NonNull Job create(@NonNull Context context, + @NonNull GroupId.V2 groupId, + @NonNull DecryptedGroup decryptedGroup, + @NonNull OutgoingGroupUpdateMessage groupMessage) + { + List memberUuids = DecryptedGroupUtil.toUuidList(decryptedGroup.getMembersList()); + List pendingUuids = DecryptedGroupUtil.pendingToUuidList(decryptedGroup.getPendingMembersList()); + + Set recipients = Stream.concat(Stream.of(memberUuids), Stream.of(pendingUuids)) + .filter(uuid -> !UuidUtil.UNKNOWN_UUID.equals(uuid)) + .filter(uuid -> !Recipient.self().getUuid().get().equals(uuid)) + .map(uuid -> RecipientId.from(uuid, null)) + .collect(Collectors.toSet()); + + MessageGroupContext.GroupV2Properties properties = groupMessage.requireGroupV2Properties(); + SignalServiceProtos.GroupContextV2 groupContext = properties.getGroupContext(); + + String queue = Recipient.externalGroup(context, groupId).getId().toQueueKey(); + + return new PushGroupSilentUpdateSendJob(new ArrayList<>(recipients), + recipients.size(), + groupMessage.getSentTimeMillis(), + groupContext, + new Parameters.Builder() + .setQueue(queue) + .setLifespan(TimeUnit.DAYS.toMillis(1)) + .setMaxAttempts(Parameters.UNLIMITED) + .build()); + } + + private PushGroupSilentUpdateSendJob(@NonNull List recipients, + int initialRecipientCount, + long timestamp, + @NonNull SignalServiceProtos.GroupContextV2 groupContextV2, + @NonNull Parameters parameters) + { + super(parameters); + + this.recipients = recipients; + this.initialRecipientCount = initialRecipientCount; + this.groupContextV2 = groupContextV2; + this.timestamp = timestamp; + } + + @Override + public @NonNull Data serialize() { + return new Data.Builder().putString(KEY_RECIPIENTS, RecipientId.toSerializedList(recipients)) + .putInt(KEY_INITIAL_RECIPIENT_COUNT, initialRecipientCount) + .putLong(KEY_TIMESTAMP, timestamp) + .putString(KEY_GROUP_CONTEXT_V2, Base64.encodeBytes(groupContextV2.toByteArray())) + .build(); + } + + @Override + public @NonNull String getFactoryKey() { + return KEY; + } + + @Override + protected void onRun() throws Exception { + List destinations = Stream.of(recipients).map(Recipient::resolved).toList(); + List completions = deliver(destinations); + + for (Recipient completion : completions) { + recipients.remove(completion.getId()); + } + + Log.i(TAG, "Completed now: " + completions.size() + ", Remaining: " + recipients.size()); + + if (!recipients.isEmpty()) { + Log.w(TAG, "Still need to send to " + recipients.size() + " recipients. Retrying."); + throw new RetryLaterException(); + } + } + + @Override + protected boolean onShouldRetry(@NonNull Exception e) { + return e instanceof IOException || + e instanceof RetryLaterException; + } + + @Override + public void onFailure() { + Log.w(TAG, "Failed to send remote delete to all recipients! (" + (initialRecipientCount - recipients.size() + "/" + initialRecipientCount + ")") ); + } + + private @NonNull List deliver(@NonNull List destinations) + throws IOException, UntrustedIdentityException + { + SignalServiceMessageSender messageSender = ApplicationDependencies.getSignalServiceMessageSender(); + List addresses = Stream.of(destinations).map(t -> RecipientUtil.toSignalServiceAddress(context, t)).toList(); + List> unidentifiedAccess = Stream.of(destinations).map(recipient -> UnidentifiedAccessUtil.getAccessFor(context, recipient)).toList(); + + SignalServiceGroupV2 group = SignalServiceGroupV2.fromProtobuf(groupContextV2); + SignalServiceDataMessage groupDataMessage = SignalServiceDataMessage.newBuilder() + .withTimestamp(timestamp) + .asGroupMessage(group) + .build(); + + List results = messageSender.sendMessage(addresses, unidentifiedAccess, false, groupDataMessage); + + return GroupSendJobHelper.getCompletedSends(context, results); + } + + public static class Factory implements Job.Factory { + @Override + public @NonNull + PushGroupSilentUpdateSendJob create(@NonNull Parameters parameters, @NonNull Data data) { + List recipients = RecipientId.fromSerializedList(data.getString(KEY_RECIPIENTS)); + int initialRecipientCount = data.getInt(KEY_INITIAL_RECIPIENT_COUNT); + long timestamp = data.getLong(KEY_TIMESTAMP); + byte[] contextBytes = Base64.decodeOrThrow(data.getString(KEY_GROUP_CONTEXT_V2)); + + SignalServiceProtos.GroupContextV2 groupContextV2; + try { + groupContextV2 = SignalServiceProtos.GroupContextV2.parseFrom(contextBytes); + } catch (InvalidProtocolBufferException e) { + throw new AssertionError(e); + } + + return new PushGroupSilentUpdateSendJob(recipients, initialRecipientCount, timestamp, groupContextV2, parameters); + } + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java index 7cb13110c..1571fa23f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReactionSendJob.java @@ -222,24 +222,7 @@ public class ReactionSendJob extends BaseJob { List results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build()); - Stream.of(results) - .filter(r -> r.getIdentityFailure() != null) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Identity failure for " + r.getId())); - - Stream.of(results) - .filter(SendMessageResult::isUnregisteredFailure) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId())); - - - return Stream.of(results) - .filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure()) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .toList(); + return GroupSendJobHelper.getCompletedSends(context, results); } private static SignalServiceDataMessage.Reaction buildReaction(@NonNull Context context, diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java index f27310ea2..a9f05a572 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RefreshAttributesJob.java @@ -70,7 +70,7 @@ public class RefreshAttributesJob extends BaseJob { registrationLockV1 = TextSecurePreferences.getDeprecatedV1RegistrationLockPin(context); } - SignalServiceProfile.Capabilities capabilities = AppCapabilities.getCapabilities(kbsValues.hasPin()); + SignalServiceProfile.Capabilities capabilities = AppCapabilities.getCapabilities(kbsValues.hasPin() && !kbsValues.hasOptedOut()); Log.i(TAG, "Calling setAccountAttributes() reglockV1? " + !TextUtils.isEmpty(registrationLockV1) + ", reglockV2? " + !TextUtils.isEmpty(registrationLockV2) + ", pin? " + kbsValues.hasPin() + "\n Capabilities:" + "\n Storage? " + capabilities.isStorage() + diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java index 5954c9f7b..e3c127304 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/RemoteDeleteSendJob.java @@ -177,23 +177,7 @@ public class RemoteDeleteSendJob extends BaseJob { List results = messageSender.sendMessage(addresses, unidentifiedAccess, false, dataMessage.build()); - Stream.of(results) - .filter(r -> r.getIdentityFailure() != null) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Identity failure for " + r.getId())); - - Stream.of(results) - .filter(SendMessageResult::isUnregisteredFailure) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .forEach(r -> Log.w(TAG, "Unregistered failure for " + r.getId())); - - return Stream.of(results) - .filter(r -> r.getSuccess() != null || r.getIdentityFailure() != null || r.isUnregisteredFailure()) - .map(SendMessageResult::getAddress) - .map(a -> Recipient.externalPush(context, a)) - .toList(); + return GroupSendJobHelper.getCompletedSends(context, results); } public static class Factory implements Job.Factory { diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/WakeGroupV2Job.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/WakeGroupV2Job.java index fb82d7f87..31ca4bd09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/WakeGroupV2Job.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/WakeGroupV2Job.java @@ -73,11 +73,6 @@ public final class WakeGroupV2Job extends BaseJob { @Override public void onRun() throws IOException, GroupNotAMemberException, GroupChangeBusyException { - if (!FeatureFlags.groupsV2()) { - Log.w(TAG, "Group wake skipped due to feature flag"); - return; - } - Log.i(TAG, "Waking group"); GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context); diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/KbsValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/KbsValues.java index ca5ebb295..94ce5112c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/KbsValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/KbsValues.java @@ -20,6 +20,7 @@ public final class KbsValues extends SignalStoreValues { private static final String PIN = "kbs.pin"; private static final String LOCK_LOCAL_PIN_HASH = "kbs.registration_lock_local_pin_hash"; private static final String LAST_CREATE_FAILED_TIMESTAMP = "kbs.last_create_failed_timestamp"; + public static final String OPTED_OUT = "kbs.opted_out"; KbsValues(KeyValueStore store) { super(store); @@ -41,6 +42,7 @@ public final class KbsValues extends SignalStoreValues { .remove(LOCK_LOCAL_PIN_HASH) .remove(PIN) .remove(LAST_CREATE_FAILED_TIMESTAMP) + .remove(OPTED_OUT) .commit(); } @@ -142,6 +144,33 @@ public final class KbsValues extends SignalStoreValues { return getLocalPinHash() != null; } + /** + * Should only be called by {@link org.thoughtcrime.securesms.pin.PinState}. + */ + public synchronized void optIn() { + putBoolean(OPTED_OUT, false); + } + + /** + * Should only be called by {@link org.thoughtcrime.securesms.pin.PinState}. + */ + public synchronized void optOut() { + putBoolean(OPTED_OUT, true); + } + + /** + * Should only be called by {@link org.thoughtcrime.securesms.pin.PinState}. + */ + public synchronized void resetMasterKey() { + getStore().beginWrite() + .remove(MASTER_KEY) + .apply(); + } + + public synchronized boolean hasOptedOut() { + return getBoolean(OPTED_OUT, false); + } + public synchronized @Nullable TokenResponse getRegistrationLockTokenResponse() { String token = getStore().getString(TOKEN_RESPONSE, null); diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseKbsPinFragment.java b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseKbsPinFragment.java index 0af0b2409..7d16bfc22 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseKbsPinFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/BaseKbsPinFragment.java @@ -1,9 +1,13 @@ package org.thoughtcrime.securesms.lock.v2; +import android.content.Intent; import android.os.Bundle; import android.text.InputType; import android.view.KeyEvent; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; @@ -13,11 +17,16 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.StringRes; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; import com.airbnb.lottie.LottieAnimationView; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.pin.PinOptOutDialog; +import org.thoughtcrime.securesms.pin.PinState; import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.text.AfterTextChanged; import org.thoughtcrime.securesms.util.views.LearnMoreTextView; @@ -34,6 +43,12 @@ abstract class BaseKbsPinFragment extends private LottieAnimationView lottieEnd; private ViewModel viewModel; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setHasOptionsMenu(true); + } + @Override public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @@ -63,6 +78,10 @@ abstract class BaseKbsPinFragment extends CommunicationActions.openBrowserLink(requireContext(), getString(R.string.BaseKbsPinFragment__learn_more_url)); }); + Toolbar toolbar = view.findViewById(R.id.kbs_pin_toolbar); + ((AppCompatActivity) requireActivity()).setSupportActionBar(toolbar); + ((AppCompatActivity) requireActivity()).getSupportActionBar().setTitle(null); + initializeListeners(); } @@ -73,6 +92,34 @@ abstract class BaseKbsPinFragment extends input.requestFocus(); } + @Override + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { + inflater.inflate(R.menu.pin_skip, menu); + } + + @Override + public void onPrepareOptionsMenu(@NonNull Menu menu) { + if (RegistrationLockUtil.userHasRegistrationLock(requireContext()) || + SignalStore.kbsValues().hasPin()) + { + menu.clear(); + } + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_pin_learn_more: + onLearnMore(); + return true; + case R.id.menu_pin_skip: + onPinSkipped(); + return true; + } + + return false; + } + protected abstract ViewModel initializeViewModel(); protected abstract void initializeViewStates(); @@ -109,6 +156,15 @@ abstract class BaseKbsPinFragment extends return confirm; } + protected void closeNavGraphBranch() { + Intent activityIntent = requireActivity().getIntent(); + if (activityIntent != null && activityIntent.hasExtra("next_intent")) { + startActivity(activityIntent.getParcelableExtra("next_intent")); + } + + requireActivity().finish(); + } + private void initializeViews(@NonNull View view) { title = view.findViewById(R.id.edit_kbs_pin_title); description = view.findViewById(R.id.edit_kbs_pin_description); @@ -152,4 +208,17 @@ abstract class BaseKbsPinFragment extends return R.string.BaseKbsPinFragment__create_alphanumeric_pin; } } + + private void onLearnMore() { + CommunicationActions.openBrowserLink(requireContext(), getString(R.string.KbsSplashFragment__learn_more_link)); + } + + private void onPinSkipped() { + PinOptOutDialog.showForSkip(requireContext(), + this::closeNavGraphBranch, + () -> { + PinState.onPinCreateFailure(); + closeNavGraphBranch(); + }); + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java index 7b60f959e..d7f44a986 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/lock/v2/ConfirmKbsPinFragment.java @@ -186,15 +186,6 @@ public class ConfirmKbsPinFragment extends BaseKbsPinFragment requireActivity().finish(), + () -> { + PinState.onPinCreateFailure(); + requireActivity().finish(); + }); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.java index 867bb8cb6..16e213998 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/MediaPreviewFragment.java @@ -10,7 +10,13 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import org.thoughtcrime.securesms.attachments.Attachment; +import org.thoughtcrime.securesms.attachments.AttachmentId; +import org.thoughtcrime.securesms.database.DatabaseFactory; +import org.thoughtcrime.securesms.mms.PartUriParser; import org.thoughtcrime.securesms.util.MediaUtil; +import org.thoughtcrime.securesms.util.concurrent.SimpleTask; + +import java.util.Objects; public abstract class MediaPreviewFragment extends Fragment { @@ -19,7 +25,8 @@ public abstract class MediaPreviewFragment extends Fragment { static final String DATA_CONTENT_TYPE = "DATA_CONTENT_TYPE"; static final String AUTO_PLAY = "AUTO_PLAY"; - protected Events events; + private AttachmentId attachmentId; + protected Events events; public static MediaPreviewFragment newInstance(@NonNull Attachment attachment, boolean autoPlay) { return newInstance(attachment.getDataUri(), attachment.getContentType(), attachment.getSize(), autoPlay); @@ -60,6 +67,12 @@ public abstract class MediaPreviewFragment extends Fragment { events = (Events) context; } + @Override + public void onResume() { + super.onResume(); + checkMediaStillAvailable(); + } + public void cleanUp() { } @@ -70,8 +83,18 @@ public abstract class MediaPreviewFragment extends Fragment { return null; } - public interface Events { + public void checkMediaStillAvailable() { + if (attachmentId == null) { + attachmentId = new PartUriParser(Objects.requireNonNull(requireArguments().getParcelable(DATA_URI))).getPartId(); + } + SimpleTask.run(getViewLifecycleOwner().getLifecycle(), + () -> DatabaseFactory.getAttachmentDatabase(requireContext()).hasAttachment(attachmentId), + hasAttachment -> { if (!hasAttachment) events.mediaNotAvailable(); }); + } + + public interface Events { boolean singleTapOnMedia(); + void mediaNotAvailable(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/PinsForAllSchedule.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/PinsForAllSchedule.java index 3dba83d35..12cac35b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/PinsForAllSchedule.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/PinsForAllSchedule.java @@ -44,6 +44,10 @@ class PinsForAllSchedule implements MegaphoneSchedule { } private static boolean isEnabled() { + if (SignalStore.kbsValues().hasOptedOut()) { + return false; + } + if (SignalStore.kbsValues().hasPin()) { return false; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SignalPinReminderSchedule.java b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SignalPinReminderSchedule.java index 50f6269ad..9ad7a6b3c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/megaphone/SignalPinReminderSchedule.java +++ b/app/src/main/java/org/thoughtcrime/securesms/megaphone/SignalPinReminderSchedule.java @@ -9,6 +9,10 @@ final class SignalPinReminderSchedule implements MegaphoneSchedule { @Override public boolean shouldDisplay(int seenCount, long lastSeen, long firstVisible, long currentTime) { + if (SignalStore.kbsValues().hasOptedOut()) { + return false; + } + if (!SignalStore.kbsValues().hasPin()) { return false; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java new file mode 100644 index 000000000..ae0014ff1 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinOptOutDialog.java @@ -0,0 +1,79 @@ +package org.thoughtcrime.securesms.pin; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.appcompat.app.AlertDialog; + +import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.logging.Log; +import org.thoughtcrime.securesms.util.ThemeUtil; +import org.thoughtcrime.securesms.util.concurrent.SimpleTask; +import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; +import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException; + +import java.io.IOException; + +public final class PinOptOutDialog { + + private static final String TAG = Log.tag(PinOptOutDialog.class); + + public static void showForSkip(@NonNull Context context, @NonNull Runnable onSuccess, @NonNull Runnable onFailed) { + show(context, + true, + onSuccess, + onFailed); + } + + public static void showForOptOut(@NonNull Context context, @NonNull Runnable onSuccess, @NonNull Runnable onFailed) { + show(context, + false, + onSuccess, + onFailed); + } + + private static void show(@NonNull Context context, + boolean skip, + @NonNull Runnable onSuccess, + @NonNull Runnable onFailed) + { + AlertDialog dialog = new AlertDialog.Builder(context) + .setTitle(R.string.PinOptOutDialog_warning) + .setMessage(R.string.PinOptOutDialog_disabling_pins_will_create_a_hidden_high_entropy_pin) + .setCancelable(true) + .setPositiveButton(R.string.PinOptOutDialog_disable_pin, (d, which) -> { + d.dismiss(); + AlertDialog progress = SimpleProgressDialog.show(context); + + SimpleTask.run(() -> { + try { + if (skip) { + PinState.onPinCreationSkipped(context); + } else { + PinState.onPinOptOut(context); + } + return true; + } catch (IOException | UnauthenticatedResponseException e) { + Log.w(TAG, e); + return false; + } + }, success -> { + if (success) { + onSuccess.run(); + } else { + onFailed.run(); + } + progress.dismiss(); + }); + }) + .setNegativeButton(android.R.string.cancel, (d, which) -> d.dismiss()) + .create(); + + dialog.setOnShowListener(dialogInterface -> { + dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtil.getThemedColor(context, R.attr.dangerous_button_color)); + }); + + dialog.show(); + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java index e7dcb6132..8529844d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinRestoreEntryFragment.java @@ -127,7 +127,6 @@ public class PinRestoreEntryFragment extends LoggingFragment { errorLabel.setText(R.string.PinRestoreEntryFragment_incorrect_pin); helpButton.setVisibility(View.VISIBLE); - skipButton.setVisibility(View.VISIBLE); } else { if (triesRemaining.getCount() == 1) { helpButton.setVisibility(View.VISIBLE); @@ -174,7 +173,6 @@ public class PinRestoreEntryFragment extends LoggingFragment { cancelSpinning(pinButton); pinEntry.setEnabled(true); enableAndFocusPinEntry(); - skipButton.setVisibility(View.VISIBLE); break; } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/pin/PinState.java b/app/src/main/java/org/thoughtcrime/securesms/pin/PinState.java index a5bc26b24..7f055b551 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/pin/PinState.java +++ b/app/src/main/java/org/thoughtcrime/securesms/pin/PinState.java @@ -9,6 +9,7 @@ import androidx.annotation.WorkerThread; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobmanager.JobTracker; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; +import org.thoughtcrime.securesms.jobs.StorageForcePushJob; import org.thoughtcrime.securesms.keyvalue.KbsValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.lock.PinHashing; @@ -17,7 +18,9 @@ import org.thoughtcrime.securesms.lock.v2.PinKeyboardType; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.megaphone.Megaphones; import org.thoughtcrime.securesms.registration.service.KeyBackupSystemWrongPinException; +import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.util.TextSecurePreferences; +import org.thoughtcrime.securesms.util.Util; import org.whispersystems.libsignal.util.guava.Optional; import org.whispersystems.signalservice.api.KbsPinData; import org.whispersystems.signalservice.api.KeyBackupService; @@ -27,7 +30,6 @@ import org.whispersystems.signalservice.api.kbs.HashedPin; import org.whispersystems.signalservice.api.kbs.MasterKey; import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException; import org.whispersystems.signalservice.internal.contacts.entities.TokenResponse; -import org.whispersystems.signalservice.internal.storage.protos.SignalStorage; import java.io.IOException; import java.util.Arrays; @@ -124,6 +126,8 @@ public final class PinState { * Invoked when the user is going through the PIN restoration flow (which is separate from reglock). */ public static synchronized void onSignalPinRestore(@NonNull Context context, @NonNull KbsPinData kbsData, @NonNull String pin) { + Log.i(TAG, "onSignalPinRestore()"); + SignalStore.kbsValues().setKbsMasterKey(kbsData, pin); SignalStore.kbsValues().setV2RegistrationLockEnabled(false); SignalStore.pinValues().resetPinReminders(); @@ -152,19 +156,10 @@ public final class PinState { { Log.i(TAG, "onPinChangedOrCreated()"); - KbsValues kbsValues = SignalStore.kbsValues(); - boolean isFirstPin = !kbsValues.hasPin(); - MasterKey masterKey = kbsValues.getOrCreateMasterKey(); - KeyBackupService keyBackupService = ApplicationDependencies.getKeyBackupService(); - KeyBackupService.PinChangeSession pinChangeSession = keyBackupService.newPinChangeSession(); - HashedPin hashedPin = PinHashing.hashPin(pin, pinChangeSession); - KbsPinData kbsData = pinChangeSession.setPin(hashedPin, masterKey); + boolean isFirstPin = !SignalStore.kbsValues().hasPin() || SignalStore.kbsValues().hasOptedOut(); - kbsValues.setKbsMasterKey(kbsData, pin); - TextSecurePreferences.clearRegistrationLockV1(context); - SignalStore.pinValues().setKeyboardType(keyboard); - SignalStore.pinValues().resetPinReminders(); - ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.PINS_FOR_ALL); + setPin(context, pin, keyboard); + SignalStore.kbsValues().optIn(); if (isFirstPin) { Log.i(TAG, "First time setting a PIN. Refreshing attributes to set the 'storage' capability."); @@ -180,11 +175,42 @@ public final class PinState { * Invoked when PIN creation fails. */ public static synchronized void onPinCreateFailure() { + Log.i(TAG, "onPinCreateFailure()"); if (getState() == State.NO_REGISTRATION_LOCK) { SignalStore.kbsValues().onPinCreateFailure(); } } + /** + * Invoked when the user has enabled the "PIN opt out" setting. + */ + @WorkerThread + public static synchronized void onPinOptOut(@NonNull Context context) + throws IOException, UnauthenticatedResponseException + { + Log.i(TAG, "onPinOptOutEnabled()"); + assertState(State.PIN_WITH_REGISTRATION_LOCK_DISABLED, State.NO_REGISTRATION_LOCK); + + optOutOfPin(context); + + updateState(buildInferredStateFromOtherFields()); + } + + /** + * Invoked when the user has chosen to skip PIN creation. + */ + @WorkerThread + public static synchronized void onPinCreationSkipped(@NonNull Context context) + throws IOException, UnauthenticatedResponseException + { + Log.i(TAG, "onPinCreationSkipped()"); + assertState(State.NO_REGISTRATION_LOCK); + + optOutOfPin(context); + + updateState(buildInferredStateFromOtherFields()); + } + /** * Invoked whenever a Signal PIN user enables registration lock. */ @@ -231,53 +257,6 @@ public final class PinState { updateState(State.PIN_WITH_REGISTRATION_LOCK_DISABLED); } - /** - * Called when registration lock is disabled in the settings using the old UI (i.e. no mention of - * Signal PINs). - */ - @WorkerThread - public static synchronized void onDisableLegacyRegistrationLockPreference(@NonNull Context context) - throws IOException, UnauthenticatedResponseException - { - Log.i(TAG, "onDisableRegistrationLockV1()"); - assertState(State.REGISTRATION_LOCK_V1); - - Log.i(TAG, "Removing v1 registration lock pin from server"); - ApplicationDependencies.getSignalServiceAccountManager().removeRegistrationLockV1(); - TextSecurePreferences.clearRegistrationLockV1(context); - - updateState(State.NO_REGISTRATION_LOCK); - } - - /** - * Called when registration lock is enabled in the settings using the old UI (i.e. no mention of - * Signal PINs). - */ - @WorkerThread - public static synchronized void onEnableLegacyRegistrationLockPreference(@NonNull Context context, @NonNull String pin) - throws IOException, UnauthenticatedResponseException - { - Log.i(TAG, "onCompleteRegistrationLockV1Reminder()"); - assertState(State.NO_REGISTRATION_LOCK); - - KbsValues kbsValues = SignalStore.kbsValues(); - MasterKey masterKey = kbsValues.getOrCreateMasterKey(); - KeyBackupService keyBackupService = ApplicationDependencies.getKeyBackupService(); - KeyBackupService.PinChangeSession pinChangeSession = keyBackupService.newPinChangeSession(); - HashedPin hashedPin = PinHashing.hashPin(pin, pinChangeSession); - KbsPinData kbsData = pinChangeSession.setPin(hashedPin, masterKey); - - pinChangeSession.enableRegistrationLock(masterKey); - - kbsValues.setKbsMasterKey(kbsData, pin); - kbsValues.setV2RegistrationLockEnabled(true); - TextSecurePreferences.clearRegistrationLockV1(context); - TextSecurePreferences.setRegistrationLockLastReminderTime(context, System.currentTimeMillis()); - TextSecurePreferences.setRegistrationLockNextReminderInterval(context, RegistrationLockReminders.INITIAL_INTERVAL); - - updateState(buildInferredStateFromOtherFields()); - } - /** * Should only be called by {@link org.thoughtcrime.securesms.migrations.RegistrationPinV2MigrationJob}. */ @@ -285,6 +264,8 @@ public final class PinState { public static synchronized void onMigrateToRegistrationLockV2(@NonNull Context context, @NonNull String pin) throws IOException, UnauthenticatedResponseException { + Log.i(TAG, "onMigrateToRegistrationLockV2()"); + KbsValues kbsValues = SignalStore.kbsValues(); MasterKey masterKey = kbsValues.getOrCreateMasterKey(); KeyBackupService keyBackupService = ApplicationDependencies.getKeyBackupService(); @@ -300,16 +281,12 @@ public final class PinState { updateState(buildInferredStateFromOtherFields()); } - public static synchronized boolean shouldShowRegistrationLockV1Reminder() { - return getState() == State.REGISTRATION_LOCK_V1; - } - @WorkerThread private static void bestEffortRefreshAttributes() { Optional result = ApplicationDependencies.getJobManager().runSynchronously(new RefreshAttributesJob(), TimeUnit.SECONDS.toMillis(10)); if (result.isPresent() && result.get() == JobTracker.JobState.SUCCESS) { - Log.w(TAG, "Attributes were refreshed successfully."); + Log.i(TAG, "Attributes were refreshed successfully."); } else if (result.isPresent()) { Log.w(TAG, "Attribute refresh finished, but was not successful. Enqueuing one for later. (Result: " + result.get() + ")"); ApplicationDependencies.getJobManager().add(new RefreshAttributesJob()); @@ -344,6 +321,37 @@ public final class PinState { } } + @WorkerThread + private static void setPin(@NonNull Context context, @NonNull String pin, @NonNull PinKeyboardType keyboard) + throws IOException, UnauthenticatedResponseException + { + KbsValues kbsValues = SignalStore.kbsValues(); + MasterKey masterKey = kbsValues.getOrCreateMasterKey(); + KeyBackupService keyBackupService = ApplicationDependencies.getKeyBackupService(); + KeyBackupService.PinChangeSession pinChangeSession = keyBackupService.newPinChangeSession(); + HashedPin hashedPin = PinHashing.hashPin(pin, pinChangeSession); + KbsPinData kbsData = pinChangeSession.setPin(hashedPin, masterKey); + + kbsValues.setKbsMasterKey(kbsData, pin); + TextSecurePreferences.clearRegistrationLockV1(context); + SignalStore.pinValues().setKeyboardType(keyboard); + SignalStore.pinValues().resetPinReminders(); + ApplicationDependencies.getMegaphoneRepository().markFinished(Megaphones.Event.PINS_FOR_ALL); + } + + @WorkerThread + private static void optOutOfPin(@NonNull Context context) + throws IOException, UnauthenticatedResponseException + { + SignalStore.kbsValues().resetMasterKey(); + + setPin(context, Hex.toStringCondensed(Util.getSecretBytes(32)), PinKeyboardType.ALPHA_NUMERIC); + SignalStore.kbsValues().optOut(); + + ApplicationDependencies.getJobManager().add(new StorageForcePushJob()); + bestEffortRefreshAttributes(); + } + private static @NonNull State assertState(State... allowed) { State currentState = getState(); @@ -358,6 +366,7 @@ public final class PinState { case REGISTRATION_LOCK_V1: throw new InvalidState_RegistrationLockV1(); case PIN_WITH_REGISTRATION_LOCK_ENABLED: throw new InvalidState_PinWithRegistrationLockEnabled(); case PIN_WITH_REGISTRATION_LOCK_DISABLED: throw new InvalidState_PinWithRegistrationLockDisabled(); + case PIN_OPT_OUT: throw new InvalidState_PinOptOut(); default: throw new IllegalStateException("Expected: " + Arrays.toString(allowed) + ", Actual: " + currentState); } } @@ -386,6 +395,11 @@ public final class PinState { boolean v1Enabled = TextSecurePreferences.isV1RegistrationLockEnabled(context); boolean v2Enabled = kbsValues.isV2RegistrationLockEnabled(); boolean hasPin = kbsValues.hasPin(); + boolean optedOut = kbsValues.hasOptedOut(); + + if (optedOut && !v2Enabled && !v1Enabled) { + return State.PIN_OPT_OUT; + } if (!v1Enabled && !v2Enabled && !hasPin) { return State.NO_REGISTRATION_LOCK; @@ -427,7 +441,13 @@ public final class PinState { /** * User has a PIN, but registration lock is disabled. */ - PIN_WITH_REGISTRATION_LOCK_DISABLED("pin_with_registration_lock_disabled"); + PIN_WITH_REGISTRATION_LOCK_DISABLED("pin_with_registration_lock_disabled"), + + /** + * The user has opted out of creating a PIN. In this case, we will generate a high-entropy PIN + * on their behalf. + */ + PIN_OPT_OUT("pin_opt_out"); /** * Using a string key so that people can rename/reorder values in the future without breaking @@ -463,4 +483,5 @@ public final class PinState { private static class InvalidState_RegistrationLockV1 extends IllegalStateException {} private static class InvalidState_PinWithRegistrationLockEnabled extends IllegalStateException {} private static class InvalidState_PinWithRegistrationLockDisabled extends IllegalStateException {} + private static class InvalidState_PinOptOut extends IllegalStateException {} } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java new file mode 100644 index 000000000..3ca195cd9 --- /dev/null +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPinPreferenceFragment.java @@ -0,0 +1,95 @@ +package org.thoughtcrime.securesms.preferences; + +import android.content.Intent; +import android.graphics.Color; +import android.os.Bundle; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AlertDialog; +import androidx.preference.Preference; + +import com.google.android.material.snackbar.Snackbar; + +import org.thoughtcrime.securesms.ApplicationPreferencesActivity; +import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.lock.v2.CreateKbsPinActivity; +import org.thoughtcrime.securesms.pin.PinOptOutDialog; +import org.thoughtcrime.securesms.util.TextSecurePreferences; + +public class AdvancedPinPreferenceFragment extends ListSummaryPreferenceFragment { + + private static final String PREF_ENABLE = "pref_pin_enable"; + private static final String PREF_DISABLE = "pref_pin_disable"; + + @Override + public void onCreate(Bundle paramBundle) { + super.onCreate(paramBundle); + } + + @Override + public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) { + addPreferencesFromResource(R.xml.preferences_advanced_pin); + } + + @Override + public void onResume() { + super.onResume(); + updatePreferenceState(); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + if (requestCode == CreateKbsPinActivity.REQUEST_NEW_PIN && resultCode == CreateKbsPinActivity.RESULT_OK) { + Snackbar.make(requireView(), R.string.ApplicationPreferencesActivity_pin_created, Snackbar.LENGTH_LONG).setTextColor(Color.WHITE).show(); + } + } + + private void updatePreferenceState() { + Preference enable = this.findPreference(PREF_ENABLE); + Preference disable = this.findPreference(PREF_DISABLE); + + if (SignalStore.kbsValues().hasOptedOut()) { + enable.setVisible(true); + disable.setVisible(false); + + enable.setOnPreferenceClickListener(preference -> { + onPreferenceChanged(true); + return true; + }); + } else { + enable.setVisible(false); + disable.setVisible(true); + + disable.setOnPreferenceClickListener(preference -> { + onPreferenceChanged(false); + return true; + }); + } + + ((ApplicationPreferencesActivity) getActivity()).getSupportActionBar().setTitle(R.string.preferences__advanced_pin_settings); + } + + private void onPreferenceChanged(boolean enabled) { + boolean hasRegistrationLock = TextSecurePreferences.isV1RegistrationLockEnabled(requireContext()) || + SignalStore.kbsValues().isV2RegistrationLockEnabled(); + + if (!enabled && hasRegistrationLock) { + new AlertDialog.Builder(requireContext()) + .setMessage(R.string.ApplicationPreferencesActivity_pins_are_required_for_registration_lock) + .setCancelable(true) + .setPositiveButton(android.R.string.ok, (d, which) -> d.dismiss()) + .show(); + } else if (!enabled) { + PinOptOutDialog.showForOptOut(requireContext(), + () -> { + updatePreferenceState(); + Snackbar.make(requireView(), R.string.ApplicationPreferencesActivity_pin_disabled, Snackbar.LENGTH_SHORT).setTextColor(Color.WHITE).show(); + }, + () -> Toast.makeText(requireContext(), R.string.ApplicationPreferencesActivity_failed_to_disable_pins_try_again_later, Toast.LENGTH_LONG).show()); + } else { + startActivityForResult(CreateKbsPinActivity.getIntentForPinCreate(requireContext()), CreateKbsPinActivity.REQUEST_NEW_PIN); + } + } +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java index 1093a45d2..62b7d1ee1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java @@ -24,16 +24,23 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.contacts.ContactAccessor; import org.thoughtcrime.securesms.contacts.ContactIdentityManager; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; +import org.thoughtcrime.securesms.keyvalue.KbsValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; +import org.thoughtcrime.securesms.lock.v2.CreateKbsPinActivity; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.logsubmit.SubmitDebugLogActivity; +import org.thoughtcrime.securesms.pin.PinOptOutDialog; +import org.thoughtcrime.securesms.pin.PinState; import org.thoughtcrime.securesms.registration.RegistrationNavigationActivity; import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.TextSecurePreferences; +import org.thoughtcrime.securesms.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask; +import org.thoughtcrime.securesms.util.views.SimpleProgressDialog; import org.whispersystems.libsignal.util.guava.Optional; import org.whispersystems.signalservice.api.SignalServiceAccountManager; import org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException; +import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException; import java.io.IOException; @@ -43,6 +50,7 @@ public class AdvancedPreferenceFragment extends CorrectedPreferenceFragment { private static final String PUSH_MESSAGING_PREF = "pref_toggle_push_messaging"; private static final String SUBMIT_DEBUG_LOG_PREF = "pref_submit_debug_logs"; private static final String INTERNAL_PREF = "pref_internal"; + private static final String ADVANCED_PIN_PREF = "pref_advanced_pin_settings"; private static final int PICK_IDENTITY_CONTACT = 1; @@ -56,6 +64,17 @@ public class AdvancedPreferenceFragment extends CorrectedPreferenceFragment { submitDebugLog.setOnPreferenceClickListener(new SubmitDebugLogListener()); submitDebugLog.setSummary(getVersion(getActivity())); + Preference pinSettings = this.findPreference(ADVANCED_PIN_PREF); + pinSettings.setOnPreferenceClickListener(preference -> { + requireActivity().getSupportFragmentManager() + .beginTransaction() + .setCustomAnimations(R.anim.slide_from_end, R.anim.slide_to_start, R.anim.slide_from_start, R.anim.slide_to_end) + .replace(android.R.id.content, new AdvancedPinPreferenceFragment()) + .addToBackStack(null) + .commit(); + return false; + }); + Preference internalPreference = this.findPreference(INTERNAL_PREF); internalPreference.setVisible(FeatureFlags.internalUser()); internalPreference.setOnPreferenceClickListener(preference -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java index fe79bc43a..6bb68c486 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/AppProtectionPreferenceFragment.java @@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.preferences; import android.app.KeyguardManager; import android.content.Context; import android.content.Intent; +import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.text.InputType; @@ -118,9 +119,10 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment SwitchPreferenceCompat signalPinReminders = (SwitchPreferenceCompat) this.findPreference(PinValues.PIN_REMINDERS_ENABLED); SwitchPreferenceCompat registrationLockV2 = (SwitchPreferenceCompat) this.findPreference(KbsValues.V2_LOCK_ENABLED); - if (SignalStore.kbsValues().hasPin()) { + if (SignalStore.kbsValues().hasPin() && !SignalStore.kbsValues().hasOptedOut()) { signalPinCreateChange.setOnPreferenceClickListener(new KbsPinUpdateListener()); signalPinCreateChange.setTitle(R.string.preferences_app_protection__change_your_pin); + signalPinReminders.setEnabled(true); registrationLockV2.setEnabled(true); } else { signalPinCreateChange.setOnPreferenceClickListener(new KbsPinCreateListener()); @@ -133,7 +135,7 @@ public class AppProtectionPreferenceFragment extends CorrectedPreferenceFragment @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { if (requestCode == CreateKbsPinActivity.REQUEST_NEW_PIN && resultCode == CreateKbsPinActivity.RESULT_OK) { - Snackbar.make(requireView(), R.string.ConfirmKbsPinFragment__pin_created, Snackbar.LENGTH_LONG).show(); + Snackbar.make(requireView(), R.string.ConfirmKbsPinFragment__pin_created, Snackbar.LENGTH_LONG).setTextColor(Color.WHITE).show(); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/InternalOptionsPreferenceFragment.java b/app/src/main/java/org/thoughtcrime/securesms/preferences/InternalOptionsPreferenceFragment.java index f743cc40a..5c2e72a85 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/InternalOptionsPreferenceFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/InternalOptionsPreferenceFragment.java @@ -14,6 +14,7 @@ import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; import org.thoughtcrime.securesms.jobs.RefreshAttributesJob; import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob; import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob; +import org.thoughtcrime.securesms.jobs.StorageForcePushJob; import org.thoughtcrime.securesms.keyvalue.InternalValues; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.logging.Log; @@ -50,6 +51,12 @@ public class InternalOptionsPreferenceFragment extends CorrectedPreferenceFragme Toast.makeText(getContext(), "Scheduled profile key rotation", Toast.LENGTH_SHORT).show(); return true; }); + + findPreference("pref_force_send").setOnPreferenceClickListener(preference -> { + ApplicationDependencies.getJobManager().add(new StorageForcePushJob()); + Toast.makeText(getContext(), "Scheduled storage force push", Toast.LENGTH_SHORT).show(); + return true; + }); } private void initializeSwitchPreference(@NonNull PreferenceDataStore preferenceDataStore, diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java index f922dd4d4..ddc0cbd92 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientBottomSheetDialogFragment.java @@ -29,7 +29,6 @@ import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientExporter; import org.thoughtcrime.securesms.recipients.RecipientId; -import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.ThemeUtil; import org.thoughtcrime.securesms.util.Util; @@ -179,9 +178,11 @@ public final class RecipientBottomSheetDialogFragment extends BottomSheetDialogF startActivityForResult(RecipientExporter.export(recipient).asAddContactIntent(), REQUEST_CODE_ADD_CONTACT); }); } + }); + viewModel.getCanAddToAGroup().observe(getViewLifecycleOwner(), canAdd -> { addToGroupButton.setText(groupId == null ? R.string.RecipientBottomSheet_add_to_a_group : R.string.RecipientBottomSheet_add_to_another_group); - addToGroupButton.setVisibility(recipient.isRegistered() && !recipient.isGroup() && !recipient.isLocalNumber() ? View.VISIBLE : View.GONE); + addToGroupButton.setVisibility(canAdd ? View.VISIBLE : View.GONE); }); viewModel.getAdminActionStatus().observe(getViewLifecycleOwner(), adminStatus -> { diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java index 96377e0aa..f0e180a55 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogRepository.java @@ -135,6 +135,10 @@ final class RecipientDialogRepository { onComplete::accept); } + public void getActiveGroupCount(@NonNull Consumer onComplete) { + SignalExecutors.BOUNDED.execute(() -> onComplete.accept(DatabaseFactory.getGroupDatabase(context).getActiveGroupCount())); + } + interface RecipientCallback { void onRecipient(@NonNull Recipient recipient); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java index 3b99be723..66a1e989e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/bottomsheet/RecipientDialogViewModel.java @@ -40,6 +40,7 @@ final class RecipientDialogViewModel extends ViewModel { private final LiveData recipient; private final MutableLiveData identity; private final LiveData adminActionStatus; + private final LiveData canAddToAGroup; private final MutableLiveData adminActionBusy; private RecipientDialogViewModel(@NonNull Context context, @@ -73,12 +74,23 @@ final class RecipientDialogViewModel extends ViewModel { if (!isSelf) { recipientDialogRepository.getIdentity(identity::postValue); } + + MutableLiveData localGroupCount = new MutableLiveData<>(0); + + canAddToAGroup = LiveDataUtil.combineLatest(recipient, localGroupCount, + (r, count) -> count > 0 && r.isRegistered() && !r.isGroup() && !r.isLocalNumber()); + + recipientDialogRepository.getActiveGroupCount(localGroupCount::postValue); } LiveData getRecipient() { return recipient; } + public LiveData getCanAddToAGroup() { + return canAddToAGroup; + } + LiveData getAdminActionStatus() { return adminActionStatus; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientFragment.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientFragment.java index de04e33af..2d0135888 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientFragment.java @@ -202,6 +202,7 @@ public class ManageRecipientFragment extends LoggingFragment { viewModel.getRecipient().observe(getViewLifecycleOwner(), this::presentRecipient); viewModel.getMediaCursor().observe(getViewLifecycleOwner(), this::presentMediaCursor); viewModel.getMuteState().observe(getViewLifecycleOwner(), this::presentMuteState); + viewModel.getCanAddToAGroup().observe(getViewLifecycleOwner(), canAdd -> addToAGroup.setVisibility(canAdd ? View.VISIBLE : View.GONE)); disappearingMessagesRow.setOnClickListener(v -> viewModel.handleExpirationSelection(requireContext())); block.setOnClickListener(v -> viewModel.onBlockClicked(requireActivity())); diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java index 73fae6eff..fe0b4f6a4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientRepository.java @@ -105,4 +105,8 @@ final class ManageRecipientRepository { .sortBy(gr -> gr.getDisplayName(context)) .toList(); } + + void getActiveGroupCount(@NonNull Consumer onComplete) { + SignalExecutors.BOUNDED.execute(() -> onComplete.accept(DatabaseFactory.getGroupDatabase(context).getActiveGroupCount())); + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientViewModel.java index e91a31c99..5b228b6c9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/ui/managerecipient/ManageRecipientViewModel.java @@ -58,6 +58,7 @@ public final class ManageRecipientViewModel extends ViewModel { private final LiveData canBlock; private final LiveData> visibleSharedGroups; private final LiveData sharedGroupsCountSummary; + private final LiveData canAddToAGroup; private ManageRecipientViewModel(@NonNull Context context, @NonNull ManageRecipientRepository manageRecipientRepository) { this.context = context; @@ -95,6 +96,13 @@ public final class ManageRecipientViewModel extends ViewModel { if (!isSelf) { manageRecipientRepository.getIdentity(identity::postValue); } + + MutableLiveData localGroupCount = new MutableLiveData<>(0); + + canAddToAGroup = LiveDataUtil.combineLatest(recipient, localGroupCount, + (r, count) -> count > 0 && r.isRegistered() && !r.isGroup() && !r.isLocalNumber()); + + manageRecipientRepository.getActiveGroupCount(localGroupCount::postValue); } private static @NonNull String getDisplayTitle(@NonNull Recipient recipient, @NonNull Context context) { @@ -132,6 +140,10 @@ public final class ManageRecipientViewModel extends ViewModel { return recipient; } + LiveData getCanAddToAGroup() { + return canAddToAGroup; + } + LiveData getMediaCursor() { return mediaCursor; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java b/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java index 12524d65a..d906bd526 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/sharing/ShareActivity.java @@ -292,14 +292,16 @@ public class ShareActivity extends PassphraseRequiredActivity } private void openConversation(long threadId, @NonNull RecipientId recipientId, @Nullable ShareData shareData) { - Intent intent = new Intent(this, ConversationActivity.class); - String textExtra = getIntent().getStringExtra(Intent.EXTRA_TEXT); - ArrayList mediaExtra = getIntent().getParcelableArrayListExtra(ConversationActivity.MEDIA_EXTRA); - StickerLocator stickerExtra = getIntent().getParcelableExtra(ConversationActivity.STICKER_EXTRA); + Intent intent = new Intent(this, ConversationActivity.class); + String textExtra = getIntent().getStringExtra(Intent.EXTRA_TEXT); + ArrayList mediaExtra = getIntent().getParcelableArrayListExtra(ConversationActivity.MEDIA_EXTRA); + StickerLocator stickerExtra = getIntent().getParcelableExtra(ConversationActivity.STICKER_EXTRA); + boolean borderlessExtra = getIntent().getBooleanExtra(ConversationActivity.BORDERLESS_EXTRA, false); intent.putExtra(ConversationActivity.TEXT_EXTRA, textExtra); intent.putExtra(ConversationActivity.MEDIA_EXTRA, mediaExtra); intent.putExtra(ConversationActivity.STICKER_EXTRA, stickerExtra); + intent.putExtra(ConversationActivity.BORDERLESS_EXTRA, borderlessExtra); if (shareData != null && shareData.isForIntent()) { Log.i(TAG, "Shared data is a single file."); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index 918444ed7..ef36d3d3c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -46,14 +46,13 @@ public final class FeatureFlags { private static final String TAG = Log.tag(FeatureFlags.class); - private static final long FETCH_INTERVAL = TimeUnit.HOURS.toMillis(2); + private static final long FETCH_INTERVAL = TimeUnit.HOURS.toMillis(0); private static final String UUIDS = "android.uuids"; private static final String USERNAMES = "android.usernames"; private static final String ATTACHMENTS_V3 = "android.attachmentsV3"; private static final String REMOTE_DELETE = "android.remoteDelete"; private static final String PROFILE_FOR_CALLING = "android.profileForCalling.2"; - private static final String CALLING_PIP = "android.callingPip"; private static final String GROUPS_V2 = "android.groupsv2"; private static final String GROUPS_V2_CREATE = "android.groupsv2.create"; private static final String GROUPS_V2_CAPACITY = "android.groupsv2.capacity"; @@ -69,7 +68,6 @@ public final class FeatureFlags { ATTACHMENTS_V3, REMOTE_DELETE, PROFILE_FOR_CALLING, - CALLING_PIP, GROUPS_V2, GROUPS_V2_CREATE, GROUPS_V2_CAPACITY, @@ -197,11 +195,6 @@ public final class FeatureFlags { return getBoolean(PROFILE_FOR_CALLING, false); } - /** Whether or not to display Calling PIP */ - public static boolean callingPip() { - return getBoolean(CALLING_PIP, false); - } - /** Groups v2 send and receive. */ public static boolean groupsV2() { return getBoolean(GROUPS_V2, false); diff --git a/app/src/main/res/layout/base_kbs_pin_fragment.xml b/app/src/main/res/layout/base_kbs_pin_fragment.xml index 87e0e7cdf..0f0717096 100644 --- a/app/src/main/res/layout/base_kbs_pin_fragment.xml +++ b/app/src/main/res/layout/base_kbs_pin_fragment.xml @@ -11,6 +11,13 @@ android:layout_width="match_parent" android:layout_height="wrap_content"> + + + + +

+ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 48f399c67..a9ebfd470 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -184,6 +184,7 @@   تحميل المزيد   معلّق تم حذف هذه الرسالة. + لقد حذفت هذه الرسالة. إعادة ضبط جلسة آمنة؟ سوف يتم الاحتفاظ برسائلك. هذا قد يساعد في حال وجود مشاكل في التشفير بهذه المحادثة. @@ -311,6 +312,7 @@ حذف الرسائل جارٍ… إحذف بالنسبة لي إحذف بالنسبة للجميع + سيتم حذف هذه الرسالة لجميع الأعضاء في هذه المحادثة. الجميع سيرى أنك حذفت رسالة. لم يتم العثور على الرسالة الأصلية الرسالة الأصلية لم تعد متوفرة فشل في فتح الرسالة @@ -761,6 +763,7 @@ لقد قمت بسحب امتيازات المشرف من %1$s . قام %1$s بإلغاء امتيازات المشرف الخاصة بك. \" قام %1$s بإلغاء امتيازات المشرف من %2$s. + أنت الآن هو المشرف. لقد دعوت %1$s إلى المجموعة. دعاك %1$s إلى المجموعة. @@ -772,6 +775,7 @@ دعا%1$s%2$dأشخاص للمجموعة. دعا %1$s%2$dأشخاص للمجموعة. + لقد دُعيت إلى المجموعة. لقد أبطلت %1$d دعوات للمجموعة. @@ -783,6 +787,7 @@ رفض شخص ما دعوة إلى المجموعة. لقد رفضت الدعوة إلى المجموعة. + لقد أُبطلَت دعوتك إلى المجموعة. لقد قبلت الدعوة إلى المجموعة. قبل %1$s دعوة إلى المجموعة. @@ -899,6 +904,8 @@ لقد نفذت تخميناتك لكلمة المرور الرقمية، لكن مازال بوسعك الوصول إلى حسابك على Signal من خلال إنشاء كلمة مرور رقمية جديدة. للحفاظ على خصوصيتك وأمن معلوماتك، سيتم استرجاع حسابك لكن بدون أية معلومات شخصية عن الحساب أو الإعدادات. إنشاء رقم تعريف شخصي جديد + + تحذير تقييم التطبيق إذا كنت مستمتع باستخدام التطبيق رجاء مساعدتنا بتقييمه @@ -1083,6 +1090,7 @@ فيديو لمشاهدة لمرة واحدة وسيط لمشاهدة لمرة واحدة تم حذف هذه الرسالة. + لقد حذفت هذه الرسالة. %sمتواجد على Signal ! الرسائل المختفية غير مفعّلة ضبط توقيت إخفاء الرسائل إلى %s @@ -1770,6 +1778,7 @@ السماح من أي شخص تفعيل استقبال الرّسائل من جهة غير معروفة أي ليست من ضمن جهات اتصالك أو لم تشاركها ملفّك الشخصي. لمعرفة المزيد + @@ -1923,7 +1932,6 @@ إنشاء رقم تعريفي شخصي جديد يمكنك تغيير الرقم التعريفي الشخصي في أي وقت طالما بقي هذا الجهاز مسجلا. إنشاء الرقم التعريفي الشخصي الخاص بك - يمكنك الرقم التعريفي الشخصي من حفظ معلوماتك بشكل مُعمَّى في Signal بحيث يمكنك الوصول إليها وحدك. سوف تتم استعادة حسابك وإعداداتك و جهات اتصالك عند إعادة تثبيت Signal. اختر رقما تعريفيا شخصيا أمتن. الأرقام التعريفية الشخصية غير متطابقة. يرجى المحاولة ثانية. @@ -1935,13 +1943,13 @@ جاري إنشاء الرقم التعريفي الشخصي نقدم لكم الأرقام التعريفية الشخصية أو PINs - يمكنك الرقم التعريفي الشخصي من حفظ معلوماتك بشكل مُعمَّى في Signal بحيث يمكنك الوصول إليها وحدك. سوف تتم استعادة حسابك وإعداداتك و جهات اتصالك عند إعادة تثبيت Signal. أعرف أكثر قفل التسجيل = الرقم التعريفي الشخصي قفل التسجيل يسمى الآن رقم التعريف الشخصي، وهو مسؤول عن أشياء أخرى. حدِّثه الآن. اقرأ المزيد عن الأرقام التعريفية الشخصية. تحديث الرقم التعريفي الشخصي إنشاء الرقم التعريفي الشخصي الخاص بك + تعرف أكثر على الرقم التعريفي الشخصي أدخل الرقم التعريفي الشخصي ل Signal لمساعدتك على حفظ رقم التعريف الشخصي الخاص بك سنطلب منك إعادة إدخاله من حين لآخر. مع مرور الوقت سنطلبه منك مرات أقل. diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 5cacfe321..f42a5beed 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -645,6 +645,7 @@ আপনি %1$s এর প্রশাসকীয় ক্ষমতাগুলি বাতিল করেছেন। %1$s আপনার এর প্রশাসকীয় ক্ষমতাগুলি বাতিল করেছে। %1$s %2$s এর প্রশাসকীয় ক্ষমতাগুলি বাতিল করেছে। + আপনি এখন প্রশাসক আপনি %1$s কে এই গ্রুপে আমন্ত্রণ জানিয়েছেন। %1$s আপনাকে গ্রুপটিতে আমন্ত্রণ জানিয়েছেন। @@ -652,6 +653,7 @@ %1$s ১ জনকে গ্রুপে আমন্ত্রণ জানিয়েছে। %1$s %2$d জনকে গ্রুপে আমন্ত্রণ জানিয়েছে। + আপনাকে এই গ্রুপে আমন্ত্রিত করা হয়েছিল। আপনি গ্রুপেটির জন্য কৃত একটি আমন্ত্রণ বাতিল করেছেন। @@ -663,6 +665,7 @@ কেউ একজন এই গ্রুপের আমন্ত্রণ প্রত্যাখ্যান করেছে। আপনি গ্রুপটির নিমন্ত্রণ প্রত্যাখ্যান করেছেন। + গ্রুপে আপনার আমন্ত্রণ বাতিল করা হয়েছিল। আপনি গ্রুপটির নিমন্ত্রণ গ্রহণ করেছেন। %1$s গ্রুপটির নিমন্ত্রণ গ্রহণ করেছেন। @@ -762,6 +765,7 @@ আপনার পিন তৈরি করুন PIN তৈরি করুন + এই এপটিকে রেটিং দিন আপনি যদি এই অ্যাপ ব্যবহার করে উপভোগ করেন, তবে দয়া করে এটি রেটিং দিতে কিছুক্ষণ সময় দিয়ে আমাদের সহায়তা করুন। @@ -1567,6 +1571,7 @@ যে কারও কাছ থেকে অনুমতি দিন পরিচিতিতে নেই এবং যাদের সাথে আপনি নিজের প্রোফাইল শেয়ার করেন নি তাদের কাছ থেকে আগত বার্তাগুলির জন্য সিলযুক্ত প্রেরককে সক্ষম করুন। আরও জানুন + @@ -1724,7 +1729,6 @@ একটি নতুন পিন তৈরি করুন এই ডিভাইসটি নিবন্ধিত থাকা অবধি আপনি আপনার পিন পরিবর্তন করতে পারবেন। আপনার পিন তৈরি করুন - পিনগুলি Signal-এ সঞ্চিত তথ্য এনক্রিপ্ট করে রাখে যাতে কেবল আপনি এটি অ্যাক্সেস করতে পারবেন। আপনি যখন Signal পুনরায় ইনস্টল করবেন তখন আপনার প্রোফাইল, সেটিংস এবং পরিচিতিগুলি পুনরুদ্ধার করবে। একটি শক্তিশালী পিন চয়ন করুন পিনগুলি মেলে না। আবার চেষ্টা করুন| @@ -1736,12 +1740,12 @@ পিন তৈরি করা হচ্ছে … পিনের সাথে পরিচিত হন - পিনগুলি Signal-এ সঞ্চিত তথ্য এনক্রিপ্ট করে রাখে যাতে কেবল আপনি এটি অ্যাক্সেস করতে পারবেন। আপনি যখন Signal পুনরায় ইনস্টল করবেন তখন আপনার প্রোফাইল, সেটিংস এবং পরিচিতিগুলি পুনরুদ্ধার করবে। আরও জানুন রেজিস্ট্রেশন লক = পিন পিন সম্পর্কে আরও পড়ুন। পিন আপডেট করুন আপনার পিন তৈরি করুন + পিনগুলি সম্পর্কে আরও জানুন আপনার Signal পিন প্রবেশ করান আপনাকে আপনার পিন মুখস্ত করতে সহায়তা করতে আমরা আপনাকে মাঝে মাঝে এটি প্রবেশ করাতে বলব। আমরা সময়ের সাথে সাথে জিজ্ঞাসা করা কমিয়ে দেব। diff --git a/app/src/main/res/values-bs/strings.xml b/app/src/main/res/values-bs/strings.xml index c1cd042fb..c9b9611ea 100644 --- a/app/src/main/res/values-bs/strings.xml +++ b/app/src/main/res/values-bs/strings.xml @@ -46,6 +46,10 @@ Zaključavanje ekrana %1$s, registracija broja %2$s Zaključavanje ekrana %1$s %1$s tema. %2$s jezik + PIN je neophodan za zaključavanje registracije. Da biste isključili PIN, prvo isključite zaključavanje registracije. + Neuspjelo deaktiviranje PIN-a. Pokušajte kasnije. + PIN je kreiran. + PIN je isključen. %d minuta @@ -177,6 +181,7 @@   Preuzmi više   U obradi Ova je poruka izbrisana. + Izbrisali ste ovu poruku. Ponoviti zaštićenu sesiju? Ovo može biti korisno ukoliko imate problema sa šifriranjem konverzacija. Vaše će poruke ostati sačuvane. @@ -283,6 +288,7 @@ Brišem poruke… Izbriši za mene Izbriši za svakoga + Ova će poruka biti bespovratno izbrisana za sve učesnike u konverzaciji. Oni će moći vidjeti da ste Vi izbrisali poruku. Originalna poruka nije pronađena Originalna poruka više nije dostupna Neuspjelo otvaranje poruke @@ -659,6 +665,7 @@ Primljena je poruka koja je šifrirana u starijoj verziji Signala koja više nije podržana. Molimo zatražite od pošiljaoca da instalira najnoviju verziju i ponovo pošalje poruku. Napustili ste grupu. Ažurirali ste grupu. + Grupa je ažurirana. Vi ste zvali Kontakt nazvan Propušten poziv @@ -671,6 +678,7 @@ %1$s je onemogućio/la nestajuće poruke. Vrijeme za nestajanje poruka postavili ste na %1$s. %1$s je postavio/la vrijeme za nestajanje poruka na %2$s. + Vrijeme za nestajanje poruka podešeno je na %1$s. Kreirali ste grupu. Grupa je ažurirana. @@ -686,6 +694,8 @@ %1$s Vas je odstranio/la iz grupe. Napustili ste grupu. %1$s je napustio grupu. + Više niste član grupe. + %1$s više nije član grupe. Odredili ste da %1$s bude administrator. %1$s je odredio/la da %2$s bude administrator. @@ -693,6 +703,10 @@ Opozvali ste administratorske privilegije za %1$s. %1$s opozvao/la je Vaše administratorske privilegije.\" %1$s je opozvao/la administratorske privilegije za %2$s. + %1$s sada je administrator. + Sada ste administrator. + %1$s više nije administrator. + Više niste administrator. Pozvali ste %1$s u grupu. %1$s Vas je pozvao/la u grupu. @@ -701,6 +715,12 @@ %1$s je pozvao/la %2$d osobe u grupu. %1$s je pozvao/la %2$d osoba u grupu. + Pozvani ste u grupu. + + Jedna osoba pozvana je u grupu. + %1$d osobe pozvane su u grupu. + %1$d osoba pozvano je u grupu. + Povukli ste pozivnicu u grupu. @@ -714,6 +734,12 @@ Neko je odbio pozivnicu u grupu. Odbili ste pozivnicu u grupu. + Poništena je Vaša pozivnica u grupu. + + Poništena je pozivnica u grupu. + Poništene su %1$d pozivnice u grupu. + Poništeno je %1$d pozivnica u grupu. + Prihvatili ste pozivnicu u grupu. %1$s je prihvatio/la pozivnicu u grupu. @@ -722,15 +748,19 @@ Promijenili ste naziv grupe u \"%1$s\". %1$s je promijenio/la naziv grupe u \"%2$s\". + Naziv grupe promijenjen je u \"%1$s\". Promijenili ste sliku grupe. %1$s je promijenio/la sliku grupe. + Promijenjena je slika grupe. Promijenili ste ovlasti za uređivanje informacija o grupi na \"%1$s\". %1$s je promijenio/la ovlasti za uređivanje informacija o grupi na \"%2$s\". + Ko može mijenjati informacije o grupi promijenjeno je u \"%1$s\". Promijenili ste ovlasti za upravljanje članstvom u grupi na \"%1$s\". %1$s je promijenio/la ovlasti za upravljanje članstvom u grupi na \"%2$s\". + Ko može upravljati članstvom u grupi promijenjeno je u \"%1$s\". Vaš je sigurnosni broj sa %s promijenjen. Označili ste svoj sigurnosni broj sa %s kao potvrđen @@ -828,6 +858,13 @@ Kreirajte svoj PIN Iskoristili ste sve pokušaje za unošenje PIN-a, ali i dalje možete pristupiti svom Signal računu kreiranjem novog PIN-a. Radi zaštite privatnosti i sigurnosti, Vaš će račun biti obnovljen, ali neće sadržavati stare informacije o profilu ili podešavanja. Kreiraj novi PIN + + Upozorenje + + + + Ako isključite PIN, za Vaš će se račun kreirati skriveni bespovratni PIN visoke entropije. Kada se ponovo registrujete na Signal, svi Vaši podaci bit će izbrisani izuzev ako ručno kreirate rezervnu kopiju i koristite je za povrat podataka. Nećete moći aktivirati zaključavanje registracije dok god je PIN isključen. + Isključi PIN Ocijenite ovu aplikaciju Ako sa zadovoljstvom koristite ovu aplikaciju, molimo izdvojite trenutak da nam pomognete tako što ćete je ocijeniti. @@ -946,6 +983,7 @@ Podsjetit ćemo Vas za nekoliko dana. Podsjetit ćemo Vas za sedam dana. Podsjetit ćemo Vas za nekoliko sedmica. + Podsjetit ćemo Vas za mjesec dana. Slika Naljepnica @@ -1014,6 +1052,7 @@ Jednokratni videozapis Jednokratni medij Ova je poruka izbrisana. + Obrisali ste ovu poruku. %s je na Signalu! Onemogućene su nestajuće poruke Vrijeme za nestajanje poruka: %s @@ -1102,6 +1141,7 @@ Izbrisati poruku? Ovo će bespovratno izbrisati poruku. %1$s do %2$s + Datoteka više nije dostupna. %1$d novih poruka u %2$d konverzacija Zadnje od: %1$s @@ -1246,6 +1286,7 @@ \"%1$s\" ne koristi Signal. Provjerite korisničko ime i pokušajte ponovo. Uredu Grupa je popunjena + Nema potrebe da sebe uvrštavate u grupu Nema blokiranih lica @@ -1623,10 +1664,15 @@ Tamna Izgled Tema + Isključi PIN + Uključi PIN + Ako isključite PIN, za Vaš će se račun kreirati skriveni bespovratni PIN visoke entropije. Kada se ponovo registrujete na Signal, svi Vaši podaci bit će izbrisani izuzev ako ručno kreirate rezervnu kopiju i koristite je za povrat podataka. Nećete moći aktivirati zaključavanje registracije dok god je PIN isključen. + PIN služi za šifriranje informacija na Signalu tako da im samo Vi možete pristupiti. Vaš profil, podešavanja i kontakti bit će sačuvani i učitani kad ponovo instalirate Signal. PIN Vam neće trebati da otvorite aplikaciju. Sistemske postavke Standardno Jezik Signal poruke i pozivi + Napredna podešavanja PIN-a Besplatne privatne poruke i pozivi za korisnike Signala Pošaljite zapis za ispravljanje grešaka \'WiFi pozivanje\' kompatibilni način rada @@ -1673,6 +1719,7 @@ Dopusti svakom Aktivira opciju zapečaćenog pošiljaoca za poruke koje dolaze od osoba koje nisu među Vašim kontaktima i s kojima niste razmijenili profile. Saznajte više + @@ -1833,7 +1880,7 @@ Kreiraj novi PIN Možete promijeniti PIN sve dok je ovaj uređaj registrovan. Kreirajte svoj PIN - PIN služi za šifriranje informacija na Signalu tako da im samo Vi možete pristupiti. Vaš profil, podešavanja i kontakti bit će sačuvani i učitani kad ponovo instalirate Signal. + PIN služi za šifriranje informacija na Signalu tako da im samo Vi možete pristupiti. Vaš profil, podešavanja i kontakti bit će sačuvani i učitani kad ponovo instalirate Signal. PIN Vam neće trebati da otvorite aplikaciju. Izaberite snažniji PIN PIN-ovi se ne podudaraju. Pokušajte ponovo. @@ -1845,13 +1892,15 @@ Kreiram PIN… Novo: PIN-ovi - PIN služi za šifriranje informacija na Signalu tako da im samo Vi možete pristupiti. Vaš profil, podešavanja i kontakti bit će sačuvani i učitani kad ponovo instalirate Signal. + PIN služi za šifriranje informacija na Signalu tako da im samo Vi možete pristupiti. Vaš profil, podešavanja i kontakti bit će sačuvani i učitani kad ponovo instalirate Signal. PIN Vam neće trebati da otvorite aplikaciju. Saznaj više Zaključavanje registracije = PIN Vaš ključ za zaključavanje registracije sada se naziva PIN i on vrši dodatne funkcije. Izvršite nadogradnju odmah. Pročitajte više o PIN-ovima. Ažurirajte PIN Kreirajte svoj PIN + Saznajte više o PIN-ovima + Unesite svoj Signal PIN Kako bismo Vam pomogli da upamtite svoj PIN, povremeno ćemo od Vas tražiti da ga ponovo unesete. Vremenom ćemo Vas rjeđe podsjećati. diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index fbc738085..f4a023e6d 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -44,6 +44,10 @@ Bloqueig de pantalla %1$s, bloqueig del registre %2$s Bloqueig de pantalla %1$s Tema: %1$s, Llengua: %2$s + Els PIN són necessaris per al bloqueig de registre. Per desactivar-los, primer desactiveu el bloqueig de registre. + Ha fallat desactivar els PIN. Torneu-ho a provar més tard. + PIN creat. + PIN desactivat. %d minute @@ -174,6 +178,7 @@   Baixa\'n més   Pendent Aquest missatge s\'ha suprimit. + Heu suprimit aquest missatge. Voleu restablir la sessió segura? Això pot ajudar si teniu problemes d\'encriptació en aquesta conversa. Els missatges es mantindran. @@ -273,6 +278,7 @@ Se suprimeixen missatges… Suprimeix per a mi Suprimeix per a tothom + Aquest missatge se suprimirà permanentment per a tothom que sigui a la conversa. Els membres podran veure que heu suprimit un missatge. No s\'ha trobat el missatge original. El missatge original ja no està disponible. Ha fallat obrir el missatge. @@ -630,6 +636,7 @@ S\'ha rebut un missatge encriptat amb una versió antiga del Signal que ja no s\'admet. Digueu-li a l\'emissor que l\'actualitzi a la versió més recent i torni a enviar el missatge. Heu abandonat el grup. Heu actualitzat el grup. + S\'ha actualitzat el grup. Heu trucat Trucada del contacte Trucada perduda @@ -642,6 +649,7 @@ %1$s ha desactivat els missatges efímers. Heu establert el temporitzador dels missatges efímers a %1$s. %1$s ha establert el temporitzador dels missatges efímers a %2$s. + S\'ha establert el temporitzador dels missatges efímers a %1$s. Heu creat el grup. Grup actualitzat @@ -657,6 +665,8 @@ %1$s us ha suprimit del grup. Heu abandonat el grup. %1$s ha abandonat el grup. + Ja no sou al grup. + %1$s ja no és al grup. Heu fet que %1$s sigui administrador/a. %1$s ha fet que %2$s sigui administrador/a. @@ -664,6 +674,10 @@ Heu rebutjat els privilegis d\'administrador/a de %1$s. %1$s us ha revocat els privilegis d\'administrador/a. %1$s ha rebutjat els privilegis d\'administrador/a de %2$s. + %1$s ara és un administrador/a. + Ara sou un administrador. + %1$s ja no és un administrador/a. + Ja no sou un administrador/a. Heu convidat %1$s al grup. %1$s us ha convidat al grup. @@ -671,6 +685,11 @@ %1$s ha convidat 1 persona al grup. %1$s ha convidat %2$d persones al grup. + Heu estat convidat al grup. + + 1 persona s\'ha convidat al grup. + %1$d persones s\'han convidat al grup. + Heu rebutjat una invitació al grup. @@ -682,6 +701,11 @@ Algú ha rebutjat una invitació al grup. Heu rebutjat la invitació al grup. + La invitació al grup s\'ha rebutjat. + + Una invitació al grup s\'ha rebutjat. + %1$d invitacions al grup s\'han rebutjat. + Heu acceptat la invitació al grup. %1$s ha acceptat una invitació al grup. @@ -690,15 +714,19 @@ Heu canviat el nom del grup a \"%1$s\". %1$s ha canviat el nom del grup a \"%2$s\". + S\'ha canviat el nom del grup a \"%1$s\". Heu canviat l\'avatar del grup. %1$s ha canviat l\'avatar del grup. + S\'ha canviat l\'avatar del grup. Heu canviat qui pot editar la informació del grup a \"%1$s\". %1$s ha canviat qui pot editar la informació del grup a \"%2$s\". + S\'ha canviat qui pot editar la informació del grup a \"%1$s\". Heu canviat qui pot editar els membres del grup a \"%1$s\". %1$s ha canviat qui pot editar els membres del grup a \"%2$s\". + S\'ha canviat qui pot editar els membres del grup a \"%1$s\". El número de seguretat amb %s ha canviat. Heu verificat el número de seguretat amb %s @@ -791,6 +819,13 @@ Creeu el PIN Se us han acabat els intents del PIN, però encara podeu accedir al compte del Signal creant un PIN nou. Per a la vostra privadesa i seguretat, el compte es restaurarà sense cap tipus d\'informació ni configuració de perfil. Crea un PIN nou + + Advertiment + + + + Desactivar la creació del PIN crearà un PIN ocult i d’alta entropia associat al compte que no es podrà recuperar. Quan torneu a registrar el Signal, perdreu totes les dades tret que en feu una còpia de seguretat i una restauració manual. No podeu activar el bloqueig de registre mentre el PIN estigui desactivat. + Desactiva el PIN Valoreu l\'aplicació Si gaudiu usant aquesta aplicació, podeu ajudar-nos valorant-la. @@ -905,6 +940,7 @@ especificat (%s) no és vàlid. Us ho recordarem d\'aquí a uns dies. Us ho recordarem d\'aquí a una setmana. Us ho recordarem d\'aquí a un parell de setmanes. + Us ho recordarem d\'aquí a un mes. Imatge Adhesiu @@ -971,6 +1007,7 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no Vídeo d\'una sola visualització Contingut d\'una sola visualització Aquest missatge s\'ha suprimit. + Heu suprimit aquest missatge. %s és al Signal! Missatges efímers desactivats El temps del missatge efímer s\'ha establit a %s @@ -1059,6 +1096,7 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no Voleu suprimir el missatge? Aquest missatge se suprimirà permanentment. %1$s a %2$s + El contingut ja no està disponible. %1$d missatges nous a %2$d converses Més recent de %1$s @@ -1202,6 +1240,7 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no %1$s no és un usuari del Signal. Si us plau, comproveu-ne el nom i torneu-ho a provar. D\'acord El grup és ple. + No cal que us afegiu al grup. No hi ha cap contacte blocat @@ -1570,10 +1609,15 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no Fosc Aparença Tema + Desactiva el PIN + Activa el PIN + Desactivar la creació del PIN crearà un PIN ocult i d’alta entropia associat al compte que no es podrà recuperar. Quan torneu a registrar el Signal, perdreu totes les dades tret que en feu una còpia de seguretat i una restauració manual. No podeu activar el bloqueig de registre mentre el PIN estigui desactivat. + Els PIN mantenen encriptada la informació desada amb el Signal de manera que no hi pugui accedir ningú més. El perfil, la configuració i els contactes es restauraran quan el reinstal·leu. No necessitareu el PIN per obrir l\'aplicació. Per defecte del sistema Per defecte Llengua Missatges i trucades del Signal + Configuració avançada del PIN Missatges i trucades privades gratuïtes per als usuaris del Signal Envia un registre de depuració Compatibilitat «Trucada per WiFi» @@ -1620,6 +1664,7 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no Permet-ho per a tothom Activa el remitent segellat per a missatges rebuts de persones que no teniu als contactes o de persones amb qui no heu compartit el vostre perfil. Més informació + @@ -1777,7 +1822,7 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no Crea un PIN nou Podeu canviar el PIN sempre que aquest dispositiu estigui registrat. Creeu el PIN - Els PIN mantenen encriptada la informació desada amb el Signal de manera que no hi pugui accedir ningú més. El perfil, la configuració i els contactes es restauraran quan el reinstal·leu. + Els PIN mantenen encriptada la informació desada amb el Signal de manera que no hi pugui accedir ningú més. El perfil, la configuració i els contactes es restauraran quan el reinstal·leu. No necessitareu el PIN per obrir l\'aplicació. Trieu un PIN més segur. Els codis no coincideixen. Torneu-ho a provar. @@ -1789,13 +1834,15 @@ S\'ha rebut un missatge d\'intercanvi de claus per a una versió del protocol no Es crea un PIN… S\'introdueixen els PIN - Els PIN mantenen encriptada la informació desada amb el Signal de manera que no hi pugui accedir ningú més. El perfil, la configuració i els contactes es restauraran quan el reinstal·leu. + Els PIN mantenen encriptada la informació desada amb el Signal de manera que no hi pugui accedir ningú més. El perfil, la configuració i els contactes es restauraran quan el reinstal·leu. No necessitareu el PIN per obrir l\'aplicació. Més informació Bloqueig de registre = PIN El bloqueig de registre ara s\'anomena PIN i serveix per a molt més. Actualitzeu-lo ara. Llegiu més informació sobre els PIN. Actualitza el PIN Creeu el PIN + Apreneu més coses sobre els PIN + Marqueu el PIN del Signal Per ajudar-vos a recordar el PIN, us el demanarem periòdicament. Amb el temps, ho farem menys. diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 88964f904..1ed99c7ea 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -48,6 +48,10 @@ Zámek obrazovky %1$s, Zámek registrace %2$s Zámek obrazovky %1$s Motiv %1$s, Jazyk %2$s + PIN je vyžadován pro zámek registrace. Nejprve prosím zakažte zámek registrace, aby bylo možné PIN deaktivovat. + Nepodařilo se deaktivovat PIN. Zkuste to později znovu. + PIN vytvořen. + PIN deaktivován. %d minuta @@ -180,6 +184,7 @@ Stáhnout další Probíhá Tato zpráva byla smazána. + Smazali jste tuto zprávu. Resetovat zabezpečenou konverzaci? Může to pomoct, pokud máte problém s šifrováním této konverzace. Vaše zprávy zůstanou zachovány. @@ -293,6 +298,7 @@ Mažu zprávy… Smazat pro mne Smazat pro všechny + Tato zpráva bude trvale smazána pro všechny členy konverzace. Členové konverzace budou moci vidět, ze jste zprávu smazali. Původní zpráva nebyla nalezena Původní zpráva již není dostupná Zprávu se nepovedlo otevřít @@ -544,8 +550,8 @@ Chcete zrušit %2$d pozvánek, které poslal %1$s? - Obrázek skupiny - Obrázek + Skupinový avatar + Avatar Rozostřit tváře Nové: Rozostřit tváře nebo kreslením cokoli @@ -688,6 +694,7 @@ Přijata zpráva šifrovaná starou verzí Signal, která již není podporována. Prosím požádejte odesílatele, aby si zaktualizoval aplikaci na nejnovější verzi a poté poslal zprávu znovu. Opustili jste skupinu Upravili jste skupinu. + Skupina byla aktualizována. Vy jste volal Volal vám kontakt Zmeškaný hovor @@ -700,6 +707,7 @@ %1$szakázal(a) zmizení zpráv. Nastavili jste časovač pro zmizení zpráv na %1$s. %1$s nastavil(a) časovač pro zmizení zpráv na %2$s. + Časovač pro zmizení zprávy byl nastaven na %1$s. Vytvořili jste skupinu. Skupina aktualizována. @@ -715,6 +723,8 @@ %1$s vás odstranil ze skupiny. Opustili jste skupinu. %1$s opustil skupinu. + Už nejste členem skupiny. + %1$s už není členem skupiny. Udělali jste %1$s správcem. %1$s udělal %2$s správcem. @@ -722,6 +732,10 @@ Odebrali jste správcovská oprávnění %1$s. %1$s odebral vaše správcovská oprávnění. %1$s odebral správcovská oprávnění %2$s. + %1$s je nyní správcem. + Stali jste se administrátorem + %1$s už není správcem. + Už nejste správcem. Pozvali jste %1$s do skupiny. %1$s vás pozval do skupiny. @@ -731,6 +745,13 @@ %1$s pozval %2$d osob do skupiny. %1$s pozval %2$d osob do skupiny. + Byii jste pozváni do skupiny. + + 1 člověk byl pozván do skupiny. + %1$d lidi byli pozváni do skupiny. + %1$d lidí bylo pozváno do skupiny. + %1$d lidí bylo pozváno do skupiny. + Odvolali jste pozvánku do skupiny. @@ -746,6 +767,13 @@ Někdo odmítl pozvánku do skupiny. Odmítli jste pozvánku do skupiny. + Vaše pozvánka do skupiny byla zrušena. + + Pozvánka do skupiny byla odvolána. + %1$d pozvánky do skupiny byly odvolány. + %1$d pozvánek do skupiny bylo odvoláno. + %1$d pozvánek do skupiny bylo odvoláno. + Přijali jste pozvánku do skupiny. %1$s přijal pozvánku do skupiny. @@ -754,15 +782,19 @@ Změnili jste název skupiny na \"%1$s\". %1$s změnil název skupiny na \"%2$s\". + Skupina byla přejmenována na \"%1$s\". - Změnili jste avatar skupiny. - %1$s změnil avatar skupiny. + Změnili jste skupinový avatar. + %1$s změnil skupinový avatar. + Skupinový avatar byl změněn. Změnili jste, kdo může upravovat informace o skupině, na \"%1$s\". %1$s změnil, kdo může upravovat informace o skupině, na \"%2$s\". + Osoba oprávněná upravovat informace o skupině byla změněna na \"%1$s\". Změnili jste, kdo může upravovat členství ve skupině, na \"%1$s\". %1$s změnil, kdo může upravovat členství ve skupině, na \"%2$s\". + Osoba oprávněná upravovat členství ve skupině byla změněna na \"%1$s\". Váš bezpečnostní kód s %s se změnil. Označili jste vaše bezpečnostní kódy pro komunikaci s %s jako ověřené. @@ -863,6 +895,13 @@ Vytvořit váš PIN Došly vám pokusy pro uhodnutí PIN, ale stále můžete ke svému účtu Signal přistupovat, pokud si vytvoříte nový PIN. Z důvodu ochrany vašeho soukromí a bezpečnosti bude váš účet obnoven bez uložených profilových informací a nastavení. Vytvořit nový PIN? + + Varování + + + + Deaktivace PIN vytvoří skrytý PIN s vysokou entropií, který bude přiřazen k vašemu účtu, jenž je neobnovitelný. Když se pak znovu zaregistrujete u Signalu, budou veškerá vaše data ztracena, pokud si je ručně nezálohujete a neobnovíte. Když je PIN deaktivován, nelze zapnout zámek registrace. + Deaktivovat PIN Ohodnotit tuto aplikaci Pokud jste s aplikací spokojeni, prosím věnujte chvilku jejímu ohodnocení. Pomůže nám to. @@ -982,6 +1021,7 @@ telefonní číslo Připomeneme se vám zase za několik dní. Připomeneme se vám zase za týden. Připomeneme se vám zase za pár týdnů. + Připomeneme se vám znovu za měsíc. Obrázek Nálepka @@ -1050,6 +1090,7 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. Video pro jednorázové zobrazení Média pro jednorázové zobrazení Tato zpráva byla smazána. + Smazali jste tuto zprávu. %s má Signal! Zmizení zpráv je zakázáno Čas zmizení zprávy nastaven na %s @@ -1138,6 +1179,7 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. Smazat zprávu? Tímto trvale smažete tuto zprávu. %1$s pro %2$s + Média již nejsou k dispozici. %1$d nových zpráv v %2$d konverzacích Poslední od: %1$s @@ -1283,6 +1325,7 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. \"%1$s\" není uživatel Signalu. Prosím zkontrolujte uživatelské jméno a zkuste to znovu. V pořádku Skupina je plná + Nemusíte se přidávat do skupiny Žádné blokované kontakty @@ -1669,10 +1712,15 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. Tmavý Vzhled Motiv + Deaktivovat PIN + Povolit PIN + Deaktivace PIN vytvoří skrytý PIN s vysokou entropií, který bude přiřazen k vašemu účtu, jenž je neobnovitelný. Když se pak znovu zaregistrujete u Signalu, budou veškerá vaše data ztracena, pokud si je ručně nezálohujete a neobnovíte. Když je PIN deaktivován, nelze zapnout zámek registrace. + PIN uchovává informace uložené u Signalu zašifrované, takže pouze vy k nim můžete přistupovat. Váš profil, nastavení a kontakty budou při reinstalaci obnoveny. Pro spuštění aplikace PIN nebudete potřebovat. Podle systému Výchozí Jazyk Signal zprávy a volání + Pokročilá nastavení PIN Svobodné šifrované zprávy a volání uživatelům Signal Odeslat ladicí log Režim kompatibility \"WiFi volání\" @@ -1719,6 +1767,7 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. Povolit od kohokoliv Povolit utajené odesílatele pro příchozí zprávy od lidí, které nemáte kontaktech a se kterými nesdílíte váš profil. Zjistit více + @@ -1882,7 +1931,7 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. Vytvořit nový PIN Můžete měnit váš PIN, dokud je toto zařízení registrováno. Vytvořit váš PIN - PIN uchovává informace uložené u Signalu zašifrované, takže pouze vy se k nim můžete dostat. Váš profil, nastavení a kontakty budou při reinstalaci Signalu obnoveny. + PIN uchovává informace uložené u Signalu zašifrované, takže pouze vy k nim můžete přistupovat. Váš profil, nastavení a kontakty budou při reinstalaci obnoveny. Pro spuštění aplikace PIN nebudete potřebovat. Zvolte silnější PIN PIN se neshodují. Zkuste to znovu. @@ -1894,13 +1943,15 @@ Obdržen požadavek na výměnu klíčů pro neplatnou verzi protokolu. Vytvářím PIN… Představujeme PIN - PIN uchovává informace uložené u Signalu zašifrované, takže pouze vy se k nim můžete dostat. Váš profil, nastavení a kontakty budou při reinstalaci Signalu obnoveny. + PIN uchovává informace uložené u Signalu zašifrované, takže pouze vy k nim můžete přistupovat. Váš profil, nastavení a kontakty budou při reinstalaci obnoveny. Pro spuštění aplikace PIN nebudete potřebovat. Dozvědět se více Zámek registrace = PIN Váš zámek registrace se nyní nazývá PIN a umí toho víc. Aktualizujte jej nyní. Zjistit více o PIN. Aktualizovat PIN Vytvořit váš PIN + Zjistěte víc o PINech + Zadejte váš PIN k Signalu Abychom vám pomohli zapamatovat si PIN, budeme vás opakovaně žádat o jeho zadání. Postupem času vás budeme žádat méně. diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index d9754b327..e51a31383 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -48,6 +48,10 @@ Clo sgrin %1$s, Clo cofrestru %2$s Clo sgrin %1$s Thema %1$s, Iaith %2$s + Mae angen PIN ar gyfer y clo cofrestru. I analluogi\'r PIN, analluogwch y clo cofrestru yn gyntaf. + Wedi methu analluogi\'r PIN. Ceisiwch eto. + Crëwyd y PIN. + Analluogwyd y PIN %d munud @@ -182,6 +186,7 @@ Send neges heb ei ddiogelu? Llwytho Rhagor i Lawr Yn aros Cafodd y neges hon ei dileu. + Chi wnaeth ddileu\'r neges hon. Ailosod sesiwn ddiogel? Gall hyn helpu os ydych chi\'n cael problemau amgryptio yn y sgwrs hon. Bydd eich negeseuon yn cael eu cadw. @@ -295,6 +300,7 @@ Send neges heb ei ddiogelu? Dileu negeseuon… Dileu i mi Dileu i bawb + Bydd y neges hon yn cael ei dileu yn barhaol i bawb sydd yn y sgwrs. Bydd aelodau\'n gallu gweld eich bod wedi dileu y neges. Heb ganfod y neges wreiddiol Nid yw\'r neges wreiddiol bellach ar gael Methu agor neges @@ -690,6 +696,7 @@ Send neges heb ei ddiogelu? Wedi derbyn neges wedi\'i hamgryptio gan ddefnyddio hen fersiwn o Signal nad yw bellach yn cael ei gefnogi. Gofynnwch i\'r anfonwr ddiweddaru i\'r fersiwn ddiweddaraf ac ail-anfon y neges. Rydych wedi gadael y grŵp. Rydych chi wedi diweddaru\'r grŵp. + Diweddarwyd y grŵp. Galwoch chi Cysylltiad wedi galw Galwad coll @@ -702,6 +709,7 @@ Send neges heb ei ddiogelu? %1$s neges diflannu anabl. Rydych wedi gosod yr amserydd neges sy\'n diflannu i%1$s. Gosododd %1$s amserydd y neges diflannu i %2$s. + Mae\'r amserydd neges sy\'n diflannu wedi\'i osod i %1$s. Crëwyd y grŵp gennych chi. Grŵp wedi\'i ddiweddaru. @@ -717,6 +725,8 @@ Send neges heb ei ddiogelu? Mae %1$s wedi\'ch tynnu chi o\'r grŵp. Rydych wedi gadael y grŵp. Mae %1$s wedi gadael y grŵp. + Nid ydych chi yn y grŵp mwyach. + Nid yw%1$s yn y grŵp mwyach. Rydych wedi gwneud %1$s yn weinyddwr. Mae %1$s wedi gwneud %2$s yn weinyddwr. @@ -724,6 +734,10 @@ Send neges heb ei ddiogelu? Rydych wedi ddirymu breintiau gweinyddol %1$s. Mae %1$s wedi dirymu\'ch breintiau gweinyddol. \" Mae %1$s wedi dirymu breintiau gweinyddol %2$s. + %1$s yw\'r gweinyddwr nawr. + Rydych nawr yn weinyddwr. + Nid %1$s yw\'r gweinyddwr bellach. + Nid chi yw\'r gweinyddwr bellach. Fe wnaethoch chi wahodd %1$s i\'r grŵp. Fe wnaeth %1$s eich gwahodd i\'r grŵp. @@ -733,6 +747,13 @@ Send neges heb ei ddiogelu? Fe wnaeth %1$s wahodd %2$d person i\'r grŵp. Fe wnaeth %1$s wahodd %2$d person i\'r grŵp. + Fe\'ch gwahoddwyd i\'r grŵp. + + Gwahoddwyd 1 person i\'r grŵp. + Gwahoddwyd %1$d o bobl i\'r grŵp. + Gwahoddwyd %1$d o bobl i\'r grŵp. + Gwahoddwyd %1$d o bobl i\'r grŵp. + Fe wnaethoch chi ddirymu gwahoddiad i\'r grŵp. @@ -748,6 +769,13 @@ Send neges heb ei ddiogelu? Fe wnaeth rhywun wrthod gwahoddiad i\'r grŵp. Fe wnaethoch chi wrthod gwahoddiad i\'r grŵp. + Dirymwyd eich gwahoddiad i\'r grŵp. + + Di-rymwyd gwahoddiad i\'r grŵp. + Di-rymwyd %1$d gwahoddiadau i\'r grŵp. + Di-rymwyd %1$d gwahoddiadau i\'r grŵp. + Di-rymwyd %1$d gwahoddiadau i\'r grŵp. + Fe wnaethoch chi dderbyn y gwahoddiad i\'r grŵp. Fe wnaeth %1$s dderbyn gwahoddiad i\'r grŵp. @@ -756,15 +784,19 @@ Send neges heb ei ddiogelu? Fe wnaethoch chi newid enw\'r grŵp i \"%1$s\". Fe wnaeth %1$s newid enw\'r grŵp i \"%2$s\". + Mae enw\'r grŵp wedi newid i \"%1$s\". Fe wnaethoch chi newid avatar y grŵp. Newidiodd %1$s avatar y grŵp. + Mae avatar y grŵp wedi\'i newid. Fe wnaethoch chi newid pwy all olygu manylion grŵp i \"%1$s\". Fe wnaeth %1$s newid pwy all olygu manylion grŵp i \"%2$s\". + Mae pwy all olygu manylion y grŵp wedi\'i newid i \"%1$s\". Fe wnaethoch chi newid pwy all olygu aelodaeth grŵp i \"%1$s\". Fe wnaeth %1$s newid pwy all olygu aelodaeth y grŵp i \"%2$s\". + Mae pwy all olygu manylion y grŵp wedi\'i newid i \"%1$s\". Mae\'ch rhif diogelwch gyda %1$s wedi newid. Rydych wedi marcio eich rhif diogelwch gyda %s wedi eu gwirio @@ -866,6 +898,13 @@ Send neges heb ei ddiogelu? Crëwch eich PIN Rydych chi wedi rhedeg allan o ddyfaliadau PIN, ond gallwch barhau i gael mynediad i\'ch cyfrif Signal trwy greu PIN newydd. Er eich preifatrwydd a\'ch diogelwch, bydd eich cyfrif yn cael ei adfer heb unrhyw wybodaeth neu osodiadau proffil sydd wedi\'u cadw. Creu PIN newydd + + Rhybudd + + + + Bydd analluogi PIN yn creu PIN cudd, entropi uchel sy\'n gysylltiedig â\'ch cyfrif na fydd modd ei adfer. Pan fyddwch yn ailgofrestru Signal byddwch yn colli\'r holl ddata oni bai eich bod yn gwneud copi wrth gefn ac adfer â llaw. Nid oes modd troi Cloi Cofrestru ymlaen tra bod y PIN wedi\'i analluogi. + Analluogi\'r PIN? Graddio\'r ap Os ydych chi\'n mwynhau defnyddio\'r ap hwn, cymerwch amser i\'n helpu ni drwy ei raddio. @@ -985,6 +1024,7 @@ Send neges heb ei ddiogelu? Byddwn yn eich atgoffa eto ymhen ychydig ddyddiau. Byddwn yn eich atgoffa ymhen wythnos. Byddwn yn eich atgoffa ymhen ychydig wythnosau. + Byddwn yn eich atgoffa eto ymhen mis. Llun Sticer @@ -1053,6 +1093,7 @@ Send neges heb ei ddiogelu? Fideo gweld unwaith Cyfrwng gweld unwaith Cafodd y neges hon ei dileu. + Chi wnaeth ddileu\'r neges hon. Mae %s ar Signal! Negeseuon diflanedig wedi\'u hanalluogi Amser neges diflanedig wedi\'i osod i %s @@ -1141,6 +1182,7 @@ Send neges heb ei ddiogelu? Dileu neges? Bydd hyn yn dileu yn barhaol y neges hon. %1$s i %2$s + Nid yw\'r cyfryngau ar gael bellach. %1$d neges newydd mewn %2$d sgwrs Y diweddaraf gan: %1$s @@ -1286,6 +1328,7 @@ Send neges heb ei ddiogelu? Nid yw \"%1$s\" yn ddefnyddiwr Signal. Gwiriwch yn enw defnyddiwr a cheisiwch eto. Iawn Mae\'r grŵp yn llawn + Nid oes angen i chi ychwanegu eich hun i\'r grŵp Dim cysylltiadau wedi\'u rhwystro @@ -1672,10 +1715,15 @@ Send neges heb ei ddiogelu? Tywyll Golwg Thema + Analluogi\'r PIN + Galluogi\'r PIN + Bydd analluogi PIN yn creu PIN cudd, entropi uchel sy\'n gysylltiedig â\'ch cyfrif na fydd modd ei adfer. Pan fyddwch yn ailgofrestru Signal byddwch yn colli\'r holl ddata oni bai eich bod yn gwneud copi wrth gefn ac adfer â llaw. Nid oes modd troi Cloi Cofrestru ymlaen tra bod y PIN wedi\'i analluogi. + Mae PINau\'n cadw gwybodaeth wedi\'i storio gyda Signal wedi\'i hamgryptio felly dim ond i chi gael mynediad ati. Bydd eich proffil, gosodiadau, a chysylltiadau yn cael eu hadfer pan fyddwch yn ailosod y rhaglen. Nid oes angen eich PIN arnoch i agor yr ap. Rhagosodiad y system Rhagosodiad Iaith Negeseuon a galwadau Signal + Gosodiadau PIN uwch Negeseuon preifat am ddim a galwadau i ddefnyddwyr Signal Anfon cofnod dadfygio Modd gydnawsedd \'Galw Diwifr\' @@ -1722,6 +1770,7 @@ Send neges heb ei ddiogelu? Caniatáu gan bawb Galluogwch anfon dan sêl ar gyfer negeseuon i mewn gan y sawl sydd ddim yn gysylltiad a phobl nad ydych wedi rhannu eich proffil. Dysgu rhagor + @@ -1885,7 +1934,7 @@ Send neges heb ei ddiogelu? Crëwch PIN newydd Gallwch newid eich PIN cyhyd â bod y ddyfais hon wedi\'i chofrestru. Crëwch eich PIN - Mae PINs yn cadw gwybodaeth wedi\'i storio gyda Signal wedi\'i hamgryptio felly dim ond chi sy\'n cael mynediad ati. Bydd eich proffil, gosodiadau, a chysylltiadau yn cael eu hadfer pan fyddwch yn ailosod Signal. + Mae PINau\'n cadw gwybodaeth wedi\'i storio gyda Signal wedi\'i hamgryptio felly dim ond i chi gael mynediad ati. Bydd eich proffil, gosodiadau, a chysylltiadau yn cael eu hadfer pan fyddwch yn ailosod y rhaglen. Nid oes angen eich PIN arnoch i agor yr ap. Dewiswch PIN cryfach Nid yw\'r PIN yn cyfateb. Ceisiwch eto. @@ -1897,13 +1946,15 @@ Send neges heb ei ddiogelu? Yn creu PIN… Yn Cyflwyno PIN - Mae PINs yn cadw gwybodaeth wedi\'i storio gyda Signal wedi\'i hamgryptio felly dim ond chi sy\'n cael mynediad ati. Bydd eich proffil, gosodiadau, a chysylltiadau yn cael eu hadfer pan fyddwch yn ailosod Signal. + Mae PINau\'n cadw gwybodaeth wedi\'i storio gyda Signal wedi\'i hamgryptio felly dim ond i chi gael mynediad ati. Bydd eich proffil, gosodiadau, a chysylltiadau yn cael eu hadfer pan fyddwch yn ailosod y rhaglen. Nid oes angen eich PIN arnoch i agor yr ap. Dysgu Rhagor Clo Cofrestru = PIN Mae eich Clo Cofrestru nawr yn cael ei alw\'n PIN, ac mae\'n gwneud mwy. Diweddarwch nawr. Darllenwch ragor am PIN. Diweddaru PIN Crëwch eich PIN + Dysgu mwy am PINiau + Rhowch eich PIN Signal I helpu i chi gofio\'ch PIN, byddwn yn gofyn i chi ei roi o bryd i\'w gilydd. Byddwn yn gofyn yn llai aml dros amser. diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 8e65170b5..acdfcdd9f 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -44,6 +44,10 @@ Skærmlås %1$s, Registreringslås %2$s Låseskærm %1$s Tema %1$s, Sprog %2$s + PIN´s er påkrævet for registreringslås. For at deaktivere PIN´s skal registreringslås først déaktiveres + Kan ikke déaktivere PIN´s. Forsøg igen senere + PIN oprettet + PIN déaktiveret %d minut @@ -175,6 +179,7 @@   Download mere   Afventer Beskeden blev slettet + Du slettede beskeden Reset sikker forbindelse? Dette vil muligvis hjælpe hvis du oplever krypteringsproblemer med samtalen. Dine beskeder bevares @@ -274,6 +279,7 @@ Sletter beskeder… Slet for mig Slet for alle + Denne meddelelse slettes permanent for alle i samtalen. Medlemmerne kan se at du har slettet en besked Original besked blev ikke fundet Original besked er ikke længere tilgængelig Fejl ved åbning af besked @@ -631,6 +637,7 @@ Modtog en besked krypteret med en ældre version af Signal, der ikke længere understøttes. Bed venligst afsenderen om at opgradere til den nyeste version og sende beskeden igen Du har forladt gruppen Du opdaterede gruppen + Gruppen blev opdateret Du ringede Opkald fra kontakt Mistede opkald @@ -643,6 +650,7 @@ %1$s déaktiverede beskeder med tidsudløb Beskeder med tidsudløb udløber efter %1$s %1$s har sat beskeder med tidsudløb til at udløbe efter %2$s + Beskeder med tidsudløb blev tidsindstilet til %1$s Du oprettede gruppen Gruppe opdateret @@ -658,6 +666,8 @@ %1$s fjernede dig fra gruppen Du forlod gruppen %1$s forlod gruppen + Du er ikke længere i gruppen + %1$s er ikke længere i gruppen Du gjorde %1$s til administrator %1$s gjorde %2$s til administrator @@ -665,6 +675,10 @@ Du tilbagekaldte administratorrettighederne fra %1$s %1$s tilbagekaldte dine administratorrettigheder %1$s tilbagekaldte administratorrettighederne fra %2$s + %1$s er nu administrator + Du er nu administrator + %1$s er ikke længere administrator + Du er ikke længere administrator Du inviterede %1$s til gruppen %1$s tilføjede dig til gruppen @@ -672,6 +686,11 @@ %1$s inviterede 1 person til gruppen. %1$s inviterede %2$d personer til gruppen + Du er inviteret til gruppen + + 1 person blev inviteret til gruppen. + %1$d personer blev inviteret til gruppen + Du tilbagekaldte en invitation til gruppen. @@ -683,6 +702,11 @@ En person afviste en invitation til gruppen Du afviste invitationen til gruppen + Din invitation til gruppen blev tilbagekaldt + + En invitation til gruppen blev tilbagekaldt. + %1$d invitationer til gruppen blev tilbagekaldt + Du accepterede invitationen til gruppen %1$s accepterede en invitation til gruppen @@ -691,15 +715,19 @@ Du ændrede gruppens navn til \"%1$s\" %1$s ændrede gruppens navn til \"%2$s\" + Gruppens navn er ændret til \"%1$s\" Du ændrede gruppens avatar %1$s ændrede gruppens avatar + Gruppens avatar er blevet ændret Du ændrede, hvem der kan redigere gruppeinfo til \"%1$s\" %1$s ændrede, hvem der kan redigere gruppeinfo til \"%2$s\" + Hvem der kan redigere gruppeinformationen er blevet ændret til \"%1$s\" Du ændrede, hvem som kan redigere medlemskab af gruppen til \"%1$s\" %1$s ændrede, hvem som kan redigere medlemskab af gruppen til \"%2$s\" + Hvem som kan redigere medlemskaber af gruppen er blevet ændret til \"%1$s\" Dit sikkerhedsnummer med %s er ændret Du har markeret dit sikkerhedsnummer med %s som verificeret @@ -793,6 +821,13 @@ Opret din PIN Du har løbet tør for pinkode gæt, men du kan stadig få adgang til din Signal konto ved at oprette en ny pinkode. Af hensyn til dit privatliv og sikkerhed gendannes din konto uden gemte profiloplysninger eller indstillinger Opret ny pinkode + + Advarsel + + + + Ved deaktivering af pinkode oprettes der en skjult, høj entropi-pinkode, der er knyttet til din konto, som ikke kan gendannes. Når du omregistrerer Signal, mister du alle data, medmindre du manuelt sikkerhedskopierer og gendanner. Du kan ikke slå Registreringslås til, mens pinkoden er deaktiveret. + Déaktiver PIN Bedøm app\'en Hvis du kan lide at bruge app\'en, så hjælp os venligst ved at give den en bedømmelse @@ -909,6 +944,7 @@ nummer (%s) er ugyldigt Du vil blive mindet om det igen om nogle dage Du bliver mindet om det igen om en uge Du bliver mindet om det igen om nogle uger + Du bliver mindet om det igen om en måned Billede Klistermærke @@ -977,6 +1013,7 @@ Modtog en nøgle besked, for en ugyldig protokol-version Se video én gang Se medie én gang Beskeden blev slettet. + Du slettede beskeden %s bruger Signal! Beskeder med tidsudløb déaktiveret Beskeder udløber efter %s @@ -1065,6 +1102,7 @@ Modtog en nøgle besked, for en ugyldig protokol-version Slet besked? Dette sletter beskeden permanent %1$s til %2$s + Medier er ikke længere tilgængelig. %1$d nye beskeder i %2$d samtaler Seneste fra: %1$s @@ -1208,6 +1246,7 @@ Modtog en nøgle besked, for en ugyldig protokol-version \"%1$s\" er ikke en Signal bruger. Tjek venligst brugernavnet og prøv igen Okay Gruppen er fuld + Du behøver ikke tilføje dig selv til gruppen Ingen blokerede kontakter @@ -1576,10 +1615,15 @@ Modtog en nøgle besked, for en ugyldig protokol-version Mørkt Udseende Tema + Déaktiver PIN + Aktivér PIN + Ved deaktivering af pinkode oprettes der en skjult, høj entropi-pinkode, der er knyttet til din konto, som ikke kan gendannes. Når du omregistrerer Signal, mister du alle data, medmindre du manuelt sikkerhedskopierer og gendanner. Du kan ikke slå Registreringslås til, mens pinkoden er deaktiveret. + Pinkoder opbevarer krypteret information, lagret med Signal, så kun du kan få adgang til den. Din profil, indstillinger og kontaktpersoner gendannes mens du geninstallerer. Du har ikke brug for din pinkode for at åbne app´en System standard Standard Sprog Signalbeskeder og -opkald + Avancerede PIN indstillinger Gratis private beskeder og opkald til Signal brugere Indsend fejlfindingslog Kompatibilitetstilstand for WiFi/Volte opkald @@ -1626,6 +1670,7 @@ Modtog en nøgle besked, for en ugyldig protokol-version Tillad fra alle Aktivér \"Sikker afsender\" for indgående beskeder fra personer som ikke er kontakter, og som du ikke har delt din profil med Læs mere + @@ -1783,7 +1828,7 @@ Modtog en nøgle besked, for en ugyldig protokol-version Opret en ny PIN Du kan ændre din PIN-kode, så længe denne enheden er registreret Opret din PIN - PIN-koder sikrer information lagret med Signal er krypteret, så kun du kan få adgang til den. Din profil, indstillinger og kontakter gendannes, når du installerer Signal igen + PIN´s gemmer informationen krypteret i Signal, så kun du har adgang til den. Din profil, indstillinger og kontakter vil blive gendannet når du geninstallerer. Du behøver ikke din PIN for at åbne app´en Vælg en stærkere pinkode PIN´s matcher ikke. Prøv igen @@ -1795,13 +1840,15 @@ Modtog en nøgle besked, for en ugyldig protokol-version Opretter PIN… Introducerer PIN´s - PIN-koder sikrer information lagret med Signal er krypteret, så kun du kan få adgang til den. Din profil, indstillinger og kontakter gendannes, når du installerer Signal igen + PIN´s gemmer informationen krypteret i Signal, så kun du har adgang til den. Din profil, indstillinger og kontakter vil blive gendannet når du geninstallerer. Du behøver ikke din PIN for at åbne app´en Lær mere Registreringslås = PIN Din registreringslås kaldes nu en PIN, og den gør mere. Opdater den nu Læs mere om PIN´s Opdatér PIN Opret din PIN + Lær mere om PIN´s + Skriv din Signal PIN For at hjælpe med at huske din PIN, beder vi dig om at skrive den periodisk. Vi vil bede om den sjældnere over tid diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 92c066ecb..a9b428d78 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -174,6 +174,7 @@   Mehr herunterladen   Ausstehend Diese Nachricht wurde gelöscht. + Du hast diese Nachricht gelöscht. Verschlüsselung neu starten? Hilfreich bei Problemen mit der Verschlüsselung in dieser Unterhaltung. Deine Nachrichten bleiben erhalten. @@ -273,6 +274,7 @@ Nachrichten werden gelöscht … Für mich löschen Für jeden löschen + Diese Nachricht wird für jeden Teilnehmer der Unterhaltung dauerhaft gelöscht. Gruppenmitglieder werden sehen können, dass du eine Nachricht gelöscht hast. Originalnachricht nicht gefunden Originalnachricht nicht mehr verfügbar Nachricht konnte nicht geöffnet werden @@ -630,6 +632,7 @@ Eine empfangene Nachricht wurde mit einer alten, nicht mehr unterstützten Version von Signal verschlüsselt. Bitte den Absender, Signal auf die neueste Version zu aktualisieren und die Nachricht erneut zu senden. Du hast die Gruppe verlassen. Du hast die Gruppe aktualisiert. + Die Gruppe wurde aktualisiert. Ausgehender Anruf Empfangener Anruf Entgangener Anruf @@ -642,6 +645,7 @@ %1$s hat verschwindende Nachrichten deaktiviert. Du hast die Ablaufzeit verschwindender Nachrichten auf %1$s festgelegt. %1$s hat die Ablaufzeit verschwindender Nachrichten auf %2$s festgelegt. + Die Ablaufzeit für verschwindende Nachrichten wurde auf %1$s festgelegt. Du hast die Gruppe erstellt. Gruppe aktualisiert. @@ -657,6 +661,8 @@ %1$s hat dich aus der Gruppe entfernt. Du hast die Gruppe verlassen. %1$s hat die Gruppe verlassen. + Du bist nicht mehr in der Gruppe. + %1$s ist nicht mehr in der Gruppe. Du hast %1$s zu einem Admin gemacht. %1$s hat %2$s zu einem Admin gemacht. @@ -664,6 +670,10 @@ Du hast die Adminrechte von %1$s widerrufen. %1$s hat deine Adminrechte widerrufen. %1$s hat die Adminrechte von %2$s widerrufen. + %1$s ist jetzt ein Admin. + Du bist jetzt ein Admin. + %1$s ist kein Admin mehr. + Du bist kein Admin mehr. Du hast %1$s in die Gruppe eingeladen. %1$s hat dich in die Gruppe eingeladen. @@ -671,6 +681,11 @@ %1$s hat 1 Person in die Gruppe eingeladen. %1$s hat %2$d Personen in die Gruppe eingeladen. + Du wurdest in die Gruppe eingeladen. + + 1 Person wurde in die Gruppe eingeladen. + %1$d Personen wurden in die Gruppe eingeladen. + Du hast eine Gruppeneinladung widerrufen. @@ -682,6 +697,11 @@ Jemand hat eine Gruppeneinladung abgelehnt. Du hast die Gruppeneinladung abgelehnt. + Deine Gruppeneinladung wurde widerrufen. + + Eine Gruppeneinladung wurde widerrufen. + %1$d Gruppeneinladungen wurden widerrufen. + Du hast die Gruppeneinladung angenommen. %1$s hat eine Gruppeneinladung angenommen. @@ -690,15 +710,19 @@ Du hast den Gruppennamen in »%1$s« geändert. %1$s hat den Gruppennamen in »%2$s« geändert. + Der Gruppenname wurde zu »%1$s« geändert. Du hast den Gruppenavatar geändert. %1$s hat den Gruppenavatar geändert. + Der Gruppenavatar wurde geändert. Du hast die Bearbeitungsberechtigten für Gruppendetails auf »%1$s« geändert. %1$s hat die Bearbeitungsberechtigten für Gruppendetails auf »%2$s« geändert. + Die Bearbeitungsberechtigten für Gruppendetails wurden zu »%1$s« geändert. Du hast die Bearbeitungsberechtigten für die Gruppenmitgliedschaft auf »%1$s« geändert. %1$s hat die Bearbeitungsberechtigten für die Gruppenmitgliedschaft auf »%2$s« geändert. + Die Bearbeitungsberechtigten für die Gruppenmitgliedschaft wurden zu »%1$s« geändert. Deine Sicherheitsnummer mit %s hat sich geändert. Du hast deine Sicherheitsnummer mit %s als verifiziert markiert. @@ -790,6 +814,8 @@ Erstelle deine PIN Du hast all deine Versuche zur PIN-Eingabe aufgebraucht, kannst jedoch trotzdem auf dein Signal-Konto zugreifen, indem du eine neue PIN erstellst. Zu deiner Sicherheit wird dein Konto ohne gespeicherte Profilinformationen oder Einstellungen wiederhergestellt. Neue PIN erstellen + + Warnung Bewerte diese App Hilf uns durch deine Bewertung, falls dir die App gefällt. @@ -901,6 +927,7 @@ Wir erinnern dich in einigen Tagen. Wir erinnern dich in einer Woche. Wir erinnern dich in einigen Wochen. + Wir erinnern dich in einem Monat. Bild Sticker @@ -966,6 +993,7 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangenEinmalig anzeigbares Video Einmalig anzeigbare Medieninhalte Diese Nachricht wurde gelöscht. + Du hast diese Nachricht gelöscht. %s nutzt Signal! Verschwindende Nachrichten deaktiviert Ablaufzeit für verschwindende Nachrichten auf %s festgelegt @@ -1197,6 +1225,7 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangen»%1$s« ist kein Signal-Nutzer. Bitte überprüfe den Benutzernamen und versuche es erneut. O. K. Die Gruppe ist voll + Du musst dich nicht selbst zur Gruppe hinzufügen Keine blockierten Kontakte @@ -1615,6 +1644,7 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangenVon jedem erlauben »Vertraulicher Absender« zulassen für eingehende Nachrichten von Nichtkontakten sowie Kontakten, mit denen du dein Profil nicht geteilt hast Mehr erfahren + @@ -1772,7 +1802,6 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangenNeue PIN erstellen Du kannst deine PIN solange ändern, wie dieses Gerät registriert ist. Deine PIN erstellen - PINs halten deine bei Signal gespeicherten Informationen verschlüsselt, sodass nur du auf sie zugreifen kannst. Falls du Signal erneut installierst, werden so dein Profil und deine Einstellungen und Kontakte wiederhergestellt. Wähle eine stärkere PIN PINs stimmen nicht überein. Bitte erneut versuchen. @@ -1784,13 +1813,13 @@ Schlüsselaustausch-Nachricht für eine ungültige Protokollversion empfangenPIN wird erstellt … Einführung von PINs - PINs halten deine bei Signal gespeicherten Informationen verschlüsselt, sodass nur du auf sie zugreifen kannst. Falls du Signal erneut installierst, werden so dein Profil und deine Einstellungen und Kontakte wiederhergestellt. Mehr erfahren Registrierungssperre = PIN Deine Registrierungssperre heißt nun PIN und kann mehr. Aktualisiere sie jetzt. Erfahre mehr über PINs. PIN aktualisieren Deine PIN erstellen + Mehr über PINs erfahren Bitte Signal-PIN eingeben Damit du dir deine PIN besser merken kannst, werden wir gelegentlich nach ihr fragen. Mit der Zeit erfolgt die Abfrage seltener. diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 57e5f7a36..7a1059729 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -44,6 +44,10 @@ Κλείδωμα οθόνης %1$s, Κλείδωμα εγγραφής %2$s Κλείδωμα οθόνης %1$s Θέμα %1$s, Γλώσσα %2$s + Τα PIN χρειάζονται για το κλείδωμα εγγραφής. Για να απενεργοποιήσεις τα PIN, παρακαλώ πρώτα να απενεργοποιήσεις το κλείδωμα εγγραφής. + Η απενεργοποίηση των PIN απέτυχε. Ξαναπροσπάθησε αργότερα. + Το PIN δημιουργήθηκε. + Το PIN απενεργοποιήθηκε. %d λεπτό @@ -174,6 +178,7 @@  Κατέβασε περισσότερα  Εκκρεμεί Αυτο το μήνυμα διαγράφτηκε. + Διέγραψες αυτό το μήνυμα. Επανεκκίνηση ασφαλούς συνεδρίας; Αυτό ίσως βοηθήσει αν έχεις πρόβλημα με την κρυπτογράφηση σε αυτή τη συνομιλία. Τα μηνύματα δε θα σβηστούν. @@ -273,6 +278,7 @@ Διαγραφή μηνυμάτων… Διαγραφή για εμένα Διαγραφή για όλους + Αυτό το μήνυμα θα διαγραφτεί μόνιμα για όλους στη συνομιλία. Τα μέλη θα μπορούν να δουν ότι διέγραψες ένα μήνυμα. Το αρχικό μήνυμα δε βρέθηκε Το αρχικό μήνυμα δεν είναι πια διαθέσιμο Αποτυχία ανοίγματος μηνύματος @@ -630,6 +636,7 @@ Λήφθηκε ένα μήνυμα που είναι κρυπτογραφημένο με μια παλιά έκδοση του Signal που πλέον δεν υποστηρίζεται. Παρακαλώ ζήτα από τον αποστολέα να αναβαθμίσει στην πιο πρόσφατη έκδοση και να σου ξαναστείλει το μήνυμα. Αποχώρησες απ\' την ομάδα. Ενημέρωσες την ομάδα + Η ομάδα ανανεώθηκε. Τον/την κάλεσες Η επαφή σε κάλεσε Αναπάντητη κλήση @@ -642,6 +649,7 @@ Ο/Η %1$s απενεργοποίησε τα μηνύματα που εξαφανίζονται. Όρισες τη χρονική καθυστέρηση εξαφάνισης των μηνυμάτων σε %1$s. Ο/Η %1$s όρισε τη χρονική καθυστέρηση εξαφάνισης των μηνυμάτων σε %2$s. + Ο χρόνος εξαφάνισης των μηνυμάτων ορίστηκε σε %1$s. Δημιούργησες την ομάδα. Η ομάδα ενημερώθηκε. @@ -657,6 +665,8 @@ Ο/Η %1$s σε αφαίρεσε απ\' την ομάδα. Έφυγες απ\' την ομάδα. Ο/Η %1$s έφυγε απ\' την ομαδα. + Δεν είσαι στην ομάδα πια. + Ο/Η %1$s δεν είναι στην ομάδα πια. Έκανες τον/την %1$s διαχειριστή/τρια. Ο/Η %1$s έκανε τον/την %2$s διαχειριστή/τρια. @@ -664,6 +674,10 @@ Αφαίρεσες τα δικαιώματα διαχείρισης από τον/την %1$s Ο/Η %1$s αφαίρεσε τα δικαιώματα διαχείρισής σου. Ο/Η %1$s αφαίρεσε τα δικαιώματα διαχείρισης του/της %2$s. + Ο/Η %1$s έγινε διαχειριστής/τρια. + Είσαι πλέον διαχειριστής/τρια. + Ο/Η %1$s δεν είναι πια διαχειριστής/τρια. + Δεν είσαι πια διαχειριστής/τρια. Προσκάλεσες τον/την %1$s στην ομάδα. Ο/Η %1$s σε προσκάλεσε στην ομάδα. @@ -671,6 +685,11 @@ Ο/Η %1$s προσκάλεσε 1 άτομο στην ομάδα. Ο/Η %1$s προσκάλεσε %2$d άτομα στην ομάδα. + Σε προσκάλεσαν στην ομάδα. + + 1 άτομο προσκαλέστηκε στην ομάδα. + %1$d άτομα προσκαλέστηκαν στην ομάδα. + Ανακαλέσατε μια πρόσκληση στον ομάδα. @@ -682,6 +701,11 @@ Κάποιος απέρριψε μια πρόσκληση στην ομάδα. Απέρριψες την πρόσκληση στην ομάδα. + Η πρόσκλησή σου στην ομάδα ανακλήθηκε. + + Μια πρόσκληση στην ομάδα ανακλήθηκε. + %1$d προσκλήσεις στην ομάδα ανακλήθηκαν. + Δέχτηκες την πρόσκληση στην ομάδα. Ο/Η %1$s δέχτηκε την πρόσκληση στην ομάδα. @@ -690,15 +714,19 @@ Άλλαξες το όνομα της ομάδας σε \"%1$s\". Ο/Η %1$s άλλαξε το όνομα της ομάδας σε \"%2$s\". + Το όνομα της ομάδας άλλαξε σε \"%1$s\". Άλλαξες το εικονίδιο της ομάδας. Ο/Η %1$s άλλαξε το εικονίδιο της ομάδας. + Το εικονίδιο της ομάδας άλλαξε. Άλλαξες το ποιός μπορεί να επεξεργάζεται τις πληροφορίες της ομάδας σε \"%1$s\". Ο/Η %1$s άλλαξε το ποιός μπορεί να επεξεργάζεται τις πληροφορίες της ομάδας σε \"%2$s\". + Άλλαξε το ποιός μπορεί να επεξεργάζεται τις πληροφορίες της ομάδας σε \"%1$s\". Άλλαξες το ποιός μπορεί να επεξεργάζεται τα μέλη της ομάδας σε \"%1$s\". Ο/Η %1$s άλλαξε το ποιός μπορεί να επεξεργάζεται τα μέλη της ομάδας σε \"%2$s\". + Άλλαξε το ποιός μπορεί να επεξεργάζεται τα μέλη της ομάδας σε \"%1$s\". Ο αριθμός ασφαλείας σπυ με τον/την %s έχει αλλάξει. Σημείωσες τον αριθμό ασφαλείας σου με τον/την %s ως επιβεβαιωμένο @@ -791,6 +819,13 @@ Δημιουργία του PIN σας Ξέμεινες από απόπειρες για το PIN σας, αλλά μπορείς ακόμα να έχεις πρόσβαση στο λογαριασμό Signal σου, δημιουργώντας ένα νέο PIN. Για την ιδιωτικότητα και την ασφάλειά σου, ο λογαριασμός σου θα επαναφερθεί χωρις καμία αποθηκευμένη πληροφορία προφίλ ή ρυθμίσεις. Δημιουργία νέου PIN + + Προσοχή + + + + Αν απενεργοποιήσεις το PIN, θα δημιουργηθεί ένα κρυφό PIN με μεγάλη εντροπία που θα συσχετιστεί με τον λογαριασμό σου. Αυτό το PIN δεν μπορεί να επανακτηθεί. Αν επανεγγραφτείς στο Signal θα χάσεις όλα τα δεδομένα σου, εκτός αν κάνεις χειροκίνητα αντίγραφο ασφαλείας και το επανακτήσεις. Δεν θα μπορείς να ενεργοποιήσεις το Κλείδωμα εγγραφής όσο το PIN είναι απενεργοποιημένο. + Απενεργοποίηση PIN Αξιολόγησε αυτή την εφαρμογή Αν σου αρέσει αυτή η εφαρμογή, βοήθησέ μας βαθμολογώντας την - δε θα σου πάρει πολύ χρόνο. @@ -905,6 +940,7 @@ Θα σ\' το ξαναθυμήσουμε σε μερικές μέρες. Θα σ\' το ξαναθυμήσουμε σε μια εβδομάδα. Θα σ\' το ξαναθυμήσουμε σε μερικές εβδομάδες + Θα σ\' το ξαναθυμήσουμε σε ένα μήνα. Εικόνα Αυτοκόλλητο @@ -972,6 +1008,7 @@ Βίντεο μιας μόνο προβολής Πολυμέσο μιας μόνο προβολής Αυτο το μήνυμα διαγράφτηκε. + Διέγραψες αυτό το μήνυμα. Ο/Η %s είναι στο Signal! Τα μηνύματα που εξαφανίζονται απενεργοποιήθηκαν Τα μηνύματα εξαφανίζονται σε %s @@ -1060,6 +1097,7 @@ Διαγραφή μηνύματος; Αυτή η επιλογή θα διαγράψει οριστικά αυτό το μήνυμα. %1$s προς %2$s + Το πολυμέσο δεν είναι πια διαθέσιμο. %1$d νέα μηνύματα σε %2$d συνομιλίες Τελευταίο μήνυμα από: %1$s @@ -1203,6 +1241,7 @@ Ο/Η \"%1$s\" δεν είναι χρήστης του Signal. Παρακαλώ επιβεβαίωσε το όνομα χρήστη και ξαναδοκίμασε. Εντάξει Η ομάδα είναι γεμάτη + Δεν χρειάζεται να προσθέσεις τον εαυτό σου στην ομάδα Καμία φραγμένη επαφή @@ -1260,7 +1299,7 @@ Αποστόλη παρ\' όλα αυτά Τα παρακάτω άτομα ίσως επανεγκατεστησαν το Signal ή άλλαξαν συσκευή. Επαλήθευσε τους αριθμούς ασφαλείας με αυτά, για να διασφαλίσεις την ιδιωτικότητα. Εμφάνιση - Έχει επαληθευθεί προηγουμένως + Προηγουμένως επαληθευμένοι Γίνεται φόρτωση χωρών… Αναζήτηση @@ -1571,10 +1610,15 @@ Σκοτεινό Εμφάνιση Θέμα + Απενεργοποίηση PIN + Ενεργοποίηση PIN + Αν απενεργοποιήσεις το PIN, θα δημιουργηθεί ένα κρυφό PIN με μεγάλη εντροπία που θα συσχετιστεί με τον λογαριασμό σου. Αυτό το PIN δεν μπορεί να επανακτηθεί. Αν επανεγγραφτείς στο Signal θα χάσεις όλα τα δεδομένα σου, εκτός και αν κάνεις χειροκίνητα αντίγραφα ασφαλείας και τα επανακτήσεις. Δεν θα μπορείς να ενεργοποιήσεις το Κλείδωμα εγγραφής όσο το PIN είναι απενεργοποιημένο. + Τα PIN κρατούν τις πληροφορίες που αποθηκεύονται στο Signal κρυπτογραφημένες, οπότε μόνο εσύ έχεις πρόσβαση σε αυτές. Το προφίλ σου, οι ρυθμίσεις και οι επαφές να επαναφερθούν όταν επανεγκαταστήσεις το Signal. Δεν θα χρειάζεται να γράψεις το PIN για να ανοίξεις την εφαρμογή. Προκαθορισμένο του συστήματος Προκαθορισμένο Γλώσσα Μηνύματα και κλήσεις του Signal + Ρυθμίσεις PIN για προχωρημένους Δωρεάν προσωπικά μηνύματα και κλήσεις προς τους χρήστες και τις χρήστριες του Signal Αποστολή αρχείου συμβάντων αποσφαλμάτωσης Λειτουργία συμβατότητας \"WiFi Calling\' @@ -1621,6 +1665,7 @@ Να επιτρέπεται από οποιονδήποτε Ενεργοποίηση του προστατευμένου αποστολέα για εισερχόμενα μηνύματα από άτομα που δεν έχεις στις επαφές σου και άτομα με τα οποία δεν έχεις μοιραστεί το προφίλ σου. Μάθε περισσότερα + @@ -1779,7 +1824,7 @@ Δημιουργία νέου PIN Μπορείς να αλλάξεις το PIN σου εφ\' όσον αυτή η συσκευή είναι εγγεγραμμένη. Δημιουργία του PIN σου - Τα PIN κρατούν τις πληροφορίες που αποθηκεύονται στο Signal κρυπτογραφημένες, οπότε μόνο εσύ έχεις πρόσβαση σε αυτές. Το προφίλ σου, οι ρυθμίσεις και οι επαφές να επαναφερθούν όταν επανεγκαταστήσεις το Signal. + Τα PIN κρατούν τις πληροφορίες που αποθηκεύονται στο Signal κρυπτογραφημένες, οπότε μόνο εσύ έχεις πρόσβαση σε αυτές. Το προφίλ σου, οι ρυθμίσεις και οι επαφές να επαναφερθούν όταν επανεγκαταστήσεις το Signal. Δεν θα χρειάζεται να γράψεις το PIN για να ανοίξεις την εφαρμογή. Επέλεξε ενα δυνατότερο PIN Τα PIN δεν ταιριάζουν. Ξαναδοκίμασε. @@ -1791,13 +1836,15 @@ Δημιουργία PIN… Υποδέξου τα PIN - Τα PIN κρατούν τις πληροφορίες που αποθηκεύονται στο Signal κρυπτογραφημένες, οπότε μόνο εσύ έχεις πρόσβαση σε αυτές. Το προφίλ σου, οι ρυθμίσεις και οι επαφές να επαναφερθούν όταν επανεγκαταστήσεις το Signal. + Τα PIN κρατούν τις πληροφορίες που αποθηκεύονται στο Signal κρυπτογραφημένες, οπότε μόνο εσύ έχεις πρόσβαση σε αυτές. Το προφίλ σου, οι ρυθμίσεις και οι επαφές να επαναφερθούν όταν επανεγκαταστήσεις το Signal. Δεν θα χρειάζεται να γράψεις το PIN για να ανοίξεις την εφαρμογή. Μάθε περισσότερα Κλείδωμα εγγραφής = PIN Το Κλείδωμα εγγραφής πλέον ονομάζεται PIN, και κάνει περισσότερα. Ανανέωσέ το τώρα. Διάβασε περισσότερα για τα PIN. Ανανέωση PIN Δημιουργία του PIN σου + Μάθε περισσότερα για τα PIN + Γράψε το PIN του Signal σου Για να σε βοηθήσουμε να απομνημονεύσεις το PIN σου, θα σου ζητάμε κάθε τόσο να το γράψεις. Θα σ\' το ζητάμε λιγότερο όσο περνάει ο καιρός. diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 9acf6b671..972bf1673 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -174,6 +174,7 @@   Elŝuti pli   Pritraktota Tiu ĉi mesaĝo forviŝiĝis. + Vi forviŝis tiun mesaĝon. Ĉu restarigi sekuran seancon? Ĉi tio eble helpos, se vi havas ĉifrajn problemojn en ĉi tiu interparolo. Viaj mesaĝoj konserviĝos. @@ -273,6 +274,7 @@ Forviŝado de mesaĝoj… Forviŝi nur por mi Forviŝi por ĉiuj + Tiu ĉi mesaĝo estos porĉiame forviŝita por ĉiuj en la interparolo. Anoj vidos, ke vi forviŝis mesaĝon. Origina mesaĝo ne troveblas Origina mesaĝo ne plu disponeblas Malsukceso malfermi la mesaĝon @@ -630,6 +632,7 @@ Vi ricevis mesaĝon ĉifrita per malnova Signal-a versio, kiu ne plu estas subtenata. Bonvolu peti la sendinton ĝisdatigi al la plej nova versio, kaj resendi la mesaĝon. Vi forlasis la grupon. Vi ĝisdatigis la grupon. + La grupo estis ĝisdatigita. Vi telefonis Kontakto alvokita Maltrafita alvoko @@ -642,6 +645,7 @@ %1$s malŝaltis memviŝontajn mesaĝojn. Vi agordis la malaperon de la memviŝontaj mesaĝoj al %1$s. %1$s agordis la malaperon de la memviŝontaj mesaĝoj al %2$s. + La malapero de la memviŝontaj mesaĝoj agordiĝis al %1$s. Vi kreis la grupon. Grupo ĝisdatigita. @@ -657,6 +661,8 @@ %1$s forigis vin el la grupo. Vi forlasis la grupon. %1$s forlasis la grupon. + Vi ne plu estas en la grupo. + %1$s ne plu estas en la grupo. Vi donis al %1$s la rolon de administranto. %1$sdonis al %2$s la rolon de administranto. @@ -664,6 +670,10 @@ Vi forigis la rolon de administranto de %1$s. %1$s forigis al vi la rolon de administranto. %1$s forigis la rolon de administranto de %2$s. + %1$s nun estas administranto. + Vi nun estas administranto. + %1$s ne plu estas administranto. + Vi ne plu estas administranto. Vi invitis %1$s al la grupo. %1$s invitis vin al la grupo. @@ -671,6 +681,11 @@ %1$s invitis unu homon al la grupo. %1$s invitis %2$d homojn al la grupo. + Vi estis invitita al la grupo. + + 1 homo estis invitita al la grupo. + %1$d homoj estis invititaj al la grupo. + Vi senvalidigis unu inviton al la grupo. @@ -682,6 +697,11 @@ Iu malakceptis inviton al la grupo. Vi malakceptis la inviton al la grupo. + Via invito al la grupo estis senvalidigita. + + 1 invito al la grupo estis senvalidigita. + %1$d invitoj al la grupo estis senvalidigitaj. + Vi akceptis la inviton al la grupo. %1$s akceptis la inviton al la grupo. @@ -690,15 +710,19 @@ Vi ŝanĝis la grupnomon al „%1$s“. %1$s ŝanĝis la grupnomon al „%2$s“. + La grupnomo ŝanĝiĝis al „%1$s“. Vi ŝanĝis la grupavataron. %1$s ŝanĝis la grupavataron. + La avataro de la grupo ŝanĝiĝis. Vi ŝanĝis, kiu povas modifi la grupinformojn al „%1$s“. %1$s ŝanĝis, kiu povas modifi la grupinformojn al „%2$s“. + Tiuj, kiuj povas modifi la grupinformon ŝanĝiĝis al „%1$s“. Vi ŝanĝis, kiu povas modifi la grupan membrecon al „%1$s“. %1$s ŝanĝis, kiu povas modifi la grupan membrecon al „%2$s“. + Tiuj, kiuj povas modifi la grupan membrecon ŝanĝiĝis al „%1$s“. Via sekuriga numero kun %s ŝanĝiĝis. Vi markis vian sekurigan numeron kun %s kiel konfirmita. @@ -792,6 +816,7 @@ Krei vian PIN Vi ne plu povas enigi vian PIN, sed vi tamen povas aliri vian Signal-konton por krei novan PIN. Pro via privateco kaj sekureco, via konto restariĝos sen iuj konservitaj profilinformojn aŭ agordojn. Krei novan PIN + Pritaksi tiun aplikaĵon Se vi ŝatas uzi tiun aplikaĵon, bv. helpi nin per via pritakso. @@ -909,6 +934,7 @@ Ni memorigos vin post kelkaj tagoj. Ni memorigos vin venontsemajne. Ni memorigos vin post du semajnoj. + Ni memorigos vin venontmonate. Bildo Glumarko @@ -976,6 +1002,7 @@ Ricevis mesaĝon pri interŝanĝo de ŝlosiloj por nevalida protokola versio. Nurunufoje videbla videaĵo Nurunufoje videbla aŭdvidaĵo Tiu ĉi mesaĝo forviŝiĝis. + Vi forviŝis tiun mesaĝon. %s estas ĉe Signal! Memviŝontaj mesaĝoj malŝaltita Daŭro de memviŝontaj mesaĝoj agordita je %s @@ -1207,6 +1234,7 @@ Ricevis mesaĝon pri interŝanĝo de ŝlosiloj por nevalida protokola versio. „%1$s“ ne estas Signal-uzanto. Kontrolu la uzantnomon kaj reprovu. Bone La grupo plenas + Vi ne bezonas aldoni vin mem al la grupo Neniu blokata kontakto @@ -1625,6 +1653,7 @@ Ricevis mesaĝon pri interŝanĝo de ŝlosiloj por nevalida protokola versio. Permesi de iu ajn Ebligi la funkcion „Sekretigo de la sendinto“ ĉe envenaj mesaĝoj el ne-kontaktoj kaj personoj, kun kiuj vi ne kunhavigis vian profilon. Scii pli + @@ -1782,7 +1811,6 @@ Ricevis mesaĝon pri interŝanĝo de ŝlosiloj por nevalida protokola versio. Krei novan PIN Vi povas ŝanĝi vian PIN tiel longe, kiel tiu ĉi aparato estas registrita. Krei vian PIN - PIN konservas informojn ĉifritajn ĉe Signal, tiel ke nur vi povas aliri ilin. Via profilo, viaj agordoj kaj kontaktoj revenos, kiam vi reinstalos Signal-on. Elektu pli fortikan PIN-on La du PIN-oj malsamas. Re-provu. @@ -1794,7 +1822,6 @@ Ricevis mesaĝon pri interŝanĝo de ŝlosiloj por nevalida protokola versio. Kreo de PIN… Jen la „persona identiga numero“ (PIN) - PIN konservas informojn ĉifritajn ĉe Signal, tiel ke nur vi povas aliri ilin. Via profilo, viaj agordoj kaj kontaktoj revenos, kiam vi reinstalos Signal-on. Scii pli Bloko de registriĝo = PIN „Bloko de registriĝo“ nomiĝas nun „PIN“, kaj ĝi faras pli. Ĝisdatigu ĝin nun. diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 0c1450a15..338e9c22d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -44,6 +44,10 @@ Bloqueo de pantalla %1$s, Bloqueo de registro %2$s Bloqueo de pantalla %1$s Tema %1$s, Idioma %2$s + El PIN es necesario para el bloqueo de registro. Desactiva primero el bloqueo de registro y después el PIN. + Fallo al desactivar tu PIN. Inténtalo más tarde. + PIN creado. + PIN desactivado. %d minuto @@ -174,6 +178,7 @@   Descargar más   Pendiente Este mensaje ha sido eliminado. + Has eliminado este mensaje. ¿Reiniciar sesión segura? Esto puede ayudar si estás teniendo problemas de cifrado con este chat. Tus mensajes se mantendrán. @@ -273,6 +278,7 @@ Eliminando mensajes … Eliminar para mi Eliminar para tod*s + Este mensaje se eliminará para tod*s l*s participantes del chat. En el chat se mostrará que lo has eliminado. No se encuentra el mensaje original El mensaje original ya no está disponible Fallo al abrir mensaje @@ -630,6 +636,7 @@ Has recibido un mensaje cifrado con una versión de Signal antigua que ya no está disponible. Por favor, solicita a esta persona a actualizar a la versión más reciente y a reenviar el mensaje. Has abandonado el grupo. Has actualizado el grupo. + Se actualizó el grupo. Has llamado Llamada recibida Llamada perdida @@ -642,6 +649,7 @@ %1$s ha desactivado la desaparición de mensajes. Has fijado la desaparición de mensajes a %1$s. %1$sha fijado la desaparición de mensajes a %2$s. + El tiempo de desaparición de mensajes se ha fijado en %1$s. Has creado el grupo. Grupo actualizado. @@ -657,6 +665,8 @@ %1$s te ha expulsado del grupo. Has abandonado el grupo. %1$s ha abandonado el grupo. + Ya no participas en el grupo. + %1$s ya no participa en el grupo. Has promovido a %1$s a admin. %1$s ha promovido a %2$s a admin. @@ -664,6 +674,10 @@ Has retirado los permisos de admin a %1$s. %1$s te ha retirado los permisos de admin. %1$s ha retirado los permisos de admin a %2$s. + %1$s es ahora admin. + Ahora eres admin del grupo. + %1$s ya no es admin. + Ya no eres admin. Has invitado a «%1$s» al grupo. «%1$s» te ha invitado al grupo. @@ -671,6 +685,11 @@ «%1$s» ha invitado a 1 persona al grupo. «%1$s» ha invitado a %2$d personas al grupo. + Te han invitado al grupo. + + Se ha invitado a 1 persona al grupo. + Se han invitado a %1$d personas al grupo. + Has retirado una invitación al grupo. @@ -682,6 +701,11 @@ Alguien ha rechazado la invitación a participar en el grupo. Has rechazado la invitación a participar en el grupo. + Se ha retirado tu invitación al grupo. + + Se ha retirado una invitación para el grupo. + Se han retirado %1$d invitaciones para el grupo. + Has aceptado la invitación a participar en el grupo. «%1$s» ha aceptado la invitación al grupo. @@ -690,15 +714,19 @@ Has modificado el nombre del grupo a «%1$s». «%1$s» ha modificado el nombre del grupo a «%2$s». + El nombre del grupo ha cambiado a «%1$s». Has modificado la imagen del grupo. «%1$s» ha modificado la imagen del grupo. + La imagen del grupo ha cambiado. Has actualizado quién puede editar los detalles del grupo a «%1$s». %1$s ha actualizado quién puede editar los detalles del grupo a «%2$s». + Ahora, «%1$s» pueden editar los detalles del grupo. Has actualizado quién puede editar la lista de participantes del grupo a «%1$s». %1$s ha actualizado quién puede editar la lista de participantes del grupo a «%2$s». + Ahora, «%1$s» pueden editar la lista de participantes del grupo. Tus cifras de seguridad con %s han cambiado. Has marcado tus cifras de seguridad con %s como verificadas. @@ -792,6 +820,13 @@ Crea tu PIN Te has quedado sin intentos para verificar el PIN. Podrás acceder a tu cuenta de Signal si creas un nuevo PIN. Por tu seguridad y para proteger tu privacidad, se restaurará tu cuenta eliminando todos sus datos y ajustes adicionales. Crear nuevo PIN + + Advertencia + + + + Al omitir crear el PIN se genererá un PIN de alta entropía asociado con tu cuenta que no se podrá recuperar. Al volver a registrar Signal perderás todos los datos de tu cuenta, a menos que hagas una copia de respaldo y la recuperes. No puedes activar el bloqueo de registro con el PIN desactivado. + Desactivar PIN Valora esta aplicación Si disfrutas usando esta aplicación, por favor, tómate un momento para ayudarnos valorándola. @@ -909,6 +944,7 @@ número de teléfono Te lo recordaremos de nuevo en unos pocos días. Te lo recordaremos de nuevo en una semana. Te lo recordaremos de nuevo en un par de semanas. + Te lo recordaremos de nuevo en un mes. Imagen Cromo @@ -977,6 +1013,7 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del Vídeo para ver sólo una vez Multimedia para ver sólo una vez Este mensaje ha sido eliminado. + Has eliminado este mensaje. ¡%s usa Signal! Desaparición de mensajes desactivada. El tiempo de desaparición de mensajes se ha fijado en %s @@ -1065,6 +1102,7 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del ¿Eliminar mensaje? Este mensaje se eliminará permanentemente. %1$s de %2$s + El archivo original ya no está disponible. %1$d mensajes nuevos en %2$d chats Más recientes desde: %1$s @@ -1208,6 +1246,7 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del %1$s no usa Signal. Asegúrate de introducir el alias correcto. De acuerdo Este grupo está completo + No necesitas agregarte a ti mism* al grupo No hay personas bloqueadas @@ -1576,10 +1615,15 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del Oscuro Apariencia Tema + Desactivar PIN + Activar PIN + Al omitir crear el PIN se genererá un PIN de alta entropía asociado con tu cuenta que no se podrá recuperar. Al volver a registrar Signal perderás todos los datos de tu cuenta, a menos que hagas una copia de respaldo y la recuperes. No puedes activar el bloqueo de registro con el PIN desactivado. + El PIN protege y almacena tu cuenta en Signal de forma cifrada y sólo tú puedes acceder a ella. Ni siquiera l*s creador*s de Signal tienen acceso. Tu perfil, alias, grupos y personas bloqueadas se recuperarán al reinstalar Signal. No necesitas el PIN para abrir la aplicación. Predeterminado del sistema Por defecto Idioma Mensajes y llamadas de Signal + Ajustes avanzados del PIN Llamadas y mensajes cifrados a través de Signal ¡gratis! Enviar registro de depuración Modo de compatibilidad «Llamada por WiFi» @@ -1626,6 +1670,7 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del Permitir de cualquiera Activar la opción permite usar la característica de «remitente confidencial» con personas que no están entre tus contactos y con las que no has compartido tu perfil. Saber más + @@ -1784,7 +1829,7 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del Crear nuevo PIN Puedes modificar tu PIN, siempre que este dispositivo esté registrado. Crea tu PIN - El PIN protege y almacena tu cuenta en Signal de forma cifrada y sólo tú puedes acceder a ella. Ni siquiera l*s creador*s de Signal tienen acceso. Tu perfil, alias, grupos y personas bloqueadas se recuperarán al reinstalar Signal. + El PIN protege y almacena tu cuenta en Signal de forma cifrada y sólo tú puedes acceder a ella. Ni siquiera l*s creador*s de Signal tienen acceso. Tu perfil, alias, grupos y personas bloqueadas se recuperarán al reinstalar Signal. No necesitas el PIN para abrir la aplicación. Selecciona un PIN más complejo El PIN no coincide. Inténtalo de nuevo. @@ -1796,13 +1841,15 @@ Se recibió un mensaje de intercambio de claves para una versión no válida del Creando PIN … ¡El PIN ha llegado! - El PIN protege y almacena tu cuenta en Signal de forma cifrada y sólo tú puedes acceder a ella. Ni siquiera l*s creador*s de Signal tienen acceso. Tu perfil, alias, grupos y personas bloqueadas se recuperarán al reinstalar Signal. + El PIN protege y almacena tu cuenta en Signal de forma cifrada y sólo tú puedes acceder a ella. Ni siquiera l*s creador*s de Signal tienen acceso. Tu perfil, alias, grupos y personas bloqueadas se recuperarán al reinstalar Signal. No necesitas el PIN para abrir la aplicación. Saber más Bloqueo de registro = PIN El bloqueo de registro ahora se llama PIN y permite más funciones. Actualiza ahora. Saber más sobre el PIN. Actualizar PIN Crea tu PIN + Saber más sobre el PIN + Introduce tu PIN de Signal Para ayudarte a memorizar el PIN, te solicitaremos introducirlo de vez en cuando. Con el tiempo lo solicitaremos con menos frecuencia. diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index bf2a73e51..b8300cf46 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -156,6 +156,7 @@ Muu Valitud kontakt oli sobimatu + Ei saadetud, üksikasjade nägemiseks koputa Osaliselt saadetud, üksikasjade nägemiseks klõpsa Saatmine ei õnnestunud Võtmevahetussõnum vastuvõetud, koputa töötlemiseks. @@ -172,6 +173,7 @@   Laadi rohkem alla   Ootel See sõnum kustutati. + Sina kustutasid selle teate. Lähtesta turvaline sessioon? See võib aidata, kui sul on selles vestluses krüptimisprobleemid. Sinu sõnumid jäävad alles. @@ -271,6 +273,7 @@ Sõnumite kustutamine… Kustuta minu jaoks Kustuta kõigi jaoks + See sõnum kustutatakse jäädavalt kõigi vestluses osalejate jaoks. Liikmed näevad, et sa kustutasid sõnumi. Originaalsõnumit ei leitud Originaalsõnum pole enam saadaval Sõnumi avamine ebaõnnestus @@ -627,6 +630,7 @@ Vastuvõetud sõnum, mis on krüptitud kasutades vana, mittetoetatud Signali versiooni. Palun palu saatjal uuendada uusimale versioonile ja siis sõnum uuesti saata. Sa lahkusid grupist. Sa uuendasid gruppi. + Grupp on uuendatud. Sa helistasid Kontakt helistas Vastamata kõne @@ -654,6 +658,8 @@ %1$s eemaldas su grupist. Sa lahkusid grupist %1$s lahkus grupist. + Sa ei ole enam grupis. + %1$s ei ole enam grupis. Sa tegid kasutaja %1$s administraatoriks. %1$s tegi kasutaja %2$s administraatoriks. @@ -661,6 +667,10 @@ Sa tühistasid kasutaja %1$s administraatoriõigused. %1$s tühistas sinu administraatoriõigused.\" %1$s tühistas kasutaja %2$s administraatoriõigused. + %1$s on nüüd administraator. + Sa oled nüüd administraator. + %1$s ei ole enam administraator. + Sa ei ole enam administraator. Sa kutsusid kasutaja %1$s gruppi. %1$s kutsus sind gruppi. @@ -668,6 +678,7 @@ %1$s kutsus 1 isiku gruppi. %1$s kutsus %2$d isikut gruppi. + Sind kutsuti gruppi. Sa tühistasid grupiga liitumise kutse. @@ -679,6 +690,7 @@ Keegi keeldus grupiga liitumise kutsest. Sa keeldusid grupiga liitumise kutsest. + Sinu grupiga liitumise kutse tühistati. Sa nõustusin grupiga liitumise kutsega. %1$s nõustus grupiga liitumise kutsega. @@ -786,6 +798,8 @@ Loo enda PIN-kood PIN-koodi proovimised on otsa saanud, kuid pääsed siiski uue PIN-koodi loomisega oma Signal-i konto juurde. Privaatsuse ja turvalisuse huvides taastatakse sinu konto ilma salvestatud profiiliteabe või säteteta. Loo uus PIN-kood + + Hoiatus Hinda seda rakendust Kui sa naudid selle rakenduse kasutamist, palun võta aega ja hinda seda, et meid aidata. @@ -971,6 +985,7 @@ Korra vaatamise video Korra vaatamise meedia See sõnum kustutati. + Sina kustutasid selle teate. %s on Signalis! Kaduvad sõnumid keelatud Kaduva sõnumi ajaks on seatud %s @@ -1255,6 +1270,7 @@ Keri alla Turvanumbri muudatused + Saada siiski Need inimised on võibolla rakendust reinstallinud või seadet vahetanud. Privaatsuse kindlustamiseks kontrolli nendega turvanumbrit. Näita @@ -1617,6 +1633,7 @@ Luba kõigilt Luba kaetud saatja sissetulevate sõnumite juures mitte-kontaktidelt ja isikutelt, kellega sa pole enda profiili jaganud. Rohkem infot + @@ -1774,7 +1791,6 @@ Loo uus PIN-kood PIN-koodi saab muuta senikaua kuni see seade on registreeritud. Loo enda PIN-kood - PIN-koodid hoiavad Signal-is salvestatud teabe krüptituna, et ainult sinul on sellele juurdepääs. Kui paigaldad Signal-i uuesti, siis sinu profiil, sätted ja kontaktid taastatakse. Vali tugevam PIN-kood PIN-koodid pole samad. Proovi uuesti. @@ -1786,13 +1802,13 @@ PIN-koodi loomine… Tutvustame PIN-koode - PIN-koodid hoiavad Signal-is salvestatud teabe krüptituna, et ainult sinul on sellele juurdepääs. Kui paigaldad Signal-i uuesti, siis sinu profiil, sätted ja kontaktid taastatakse. Uuri täpsemalt Registreerimislukk = PIN-kood Sinu registreerimislukk on nüüd PIN-kood ja see teeb rohkemgi. Uuenda seda nüüd. Loe ähemalt PIN-koodide kohta. Uuenda PIN-koodi Loo enda PIN-kood + Uuri lähemalt PIN-koodide kohta Sisesta Signal-i PIN-kood PIN-koodi meeldejätmise aitamiseks palume sul seda aeg-ajalt sisestada. Aja möödudes küsime seda harvem. diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index fc8fd1723..90e23fa39 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -174,6 +174,7 @@ Deskargatu gehiago   Egiteke Mezu hau ezabatu da. + Mezu hau ezabatu duzu. Saio segurua berrabiarazi? Agian honek lagunduko du enkriptatzeko arazorik baldin baduzu. Zure mezuak mantenduko dira. @@ -273,6 +274,7 @@ Mezuak ezabatzen… Ezabatu niretzat Ezabatu guztientzat + Mezu hau betiko ezabatuko da solasaldian dago edonorentzat. Kideek ikusi ahal izango dute mezu bat ezabatu duzula. Jatorrizko mezua ez da aurkitu Jatorrizko mezua ez dago eskuragarri jada Akatsa mezua irekitzean @@ -664,6 +666,7 @@ %1$s erabiltzaileari administratzaile eskudibeak kendu dizkiozu. %1$s erabiltzaileak administratzaile eskubideak kendu dizkizu. %1$s erabiltzaileak %2$s erabiltzaileari administratzaile eskudibeak kendu dizkio. + Orain administratzailea zara. %1$s gondibatu duzu taldera. %1$s erabiltzaileak gonbidatu zaitu taldera. @@ -671,6 +674,7 @@ %1$s -k pertsona bat gondibdatu du taldera. %1$s erabiltzaileak %2$d pertsona gonbidatu ditu taldera. + Taldera gonbidatu zaituzte Taldean sartzeko gonbidapen bat ezeztatu duzu. @@ -682,6 +686,7 @@ Norbaitek uko egin dio taldean sartzeko gonbidapen bati. Taldean sartzeko gonbidapen bati uko egin diozu. + Taldean sartzeko zure gonbidapena ezeztatu egin da. Taldean sartzeko gonbidapen bat onartu egin duzu. %1$s erabiltzaileak taldean sartzeko gonbidapen bat onartu du. @@ -792,6 +797,8 @@ Sortu zure PINa PIN-a asmatzeko saiakerarik gabe gelditu zara, baina oraindik sartu zaitezke zure Signal kontuan PIN berri bat sortuz. Zure pribatutasun eta segurtasunerako, zure kontua berreskuratuko da ezarpen edo profilari buruzko informaziorik gabe. Sortu PIN berria + + Markatutako zenbakia ez dago Signal-era erregistratuta. SMS bidez gonbidatu nahiko zenuke? Ebaluatu aplikazio hau Aplikazio hau atsegin bazaizu, baloratu guri laguntzeko mesedez. @@ -977,6 +984,7 @@ Gakoaren elkar-trukeraro mezua jaso da protokoloaren bertsio baliogabe baterako. Behin ikusteko bideoa Behi ikusteko multimedia Mezu hau ezabatu da. + Mezu hau ezabatu duzu. %s Signal-en dago! Mezuen desagerpena ezgaituta dago Desagertzen diren mezuen denbora %s-tan ezarrita @@ -1627,6 +1635,7 @@ Inportatu \'SMSBackup and Restorekin\' bateragarria den enkriptatu gabeko babesk Edozeinengandik onartu Nahiz eta zure kontaktuetan ez egon eta beraiekin zure profila ez partekatu, gaitu igorle zigilatuta horrelako erabiltzaileek bidaltzen dituzten mezuetarako. Gehiago jakin + @@ -1784,7 +1793,6 @@ Inportatu \'SMSBackup and Restorekin\' bateragarria den enkriptatu gabeko babesk Sortu PIN berria Zure PIN-a alda dezakezu gailua erregistratuta dagoen bitartean. Sortu zure PINa - PIN-ek zure Signal kontuarekin batera gordetako informazioa enkriptatuta mantentzen dute, zuk bakarrik eskuratu ahal izateko. Zure profila, ezarpenak eta kontaktua berreskuratuko dira Signal berrinstalatzen duzunean Aukeratu PIN hobea PINak ez datoz bat. Saia zaitez berriro @@ -1796,13 +1804,13 @@ Inportatu \'SMSBackup and Restorekin\' bateragarria den enkriptatu gabeko babesk PINa sortzen… PIN-ak sartzen - PIN-ek zure Signal kontuarekin batera gordetako informazioa enkriptatuta mantentzen dute, zuk bakarrik eskuratu ahal izateko. Zure profila, ezarpenak eta kontaktua berreskuratuko dira Signal berrinstalatzen duzunean Gehiago jakin Errejistratze-blokeoa = PIN Zure Errejistrate-blokeoa orain PIN deitzen da eta gehiago egin dezake. Eguneratu orain. Irakurri gehiago PIN-ei buruz. Eguneratu PIN-a Sortu zure PINa + Gehiago ikasi PIN-ei buruz Sartu zure Signal PIN-a Zure PINa gogoratzen laguntzeko, sartzeko eskatuko dizugu noizbehinka. Gero eta gutxiago eskatuko dizugu denbora igaro ahala. diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index 23302d466..5ae46f7ee 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -44,6 +44,10 @@ قفل صفحه %1$s، قفل ثبت‌نام %2$s قفل صفحه %1$s طرح زمینه %1$s، زبان %2$s + پین‌ها برای قفل ثبت‌نام ضروری هستند. برای غیرفعال کردن پین‌ها، لطفاً ابتدا قفل ثبت‌نام را غیرفعال کنید. + غیرفعال کردن پین موفق نبود. بعداً دوباره امتحان کنید. + پین ایجاد شد. + پین غیرفعال شد. %d دقیقه @@ -174,6 +178,7 @@  دانلود بیشتر   در انتظار این پیام حذف شد + شما این پیام را حذف کردید. تنظیم مجدد نشست امن؟ اگر در این مکالمه با مشکلات رمزگذاری روبرو هستید این گزینه ممکن است کمک کند. پیام‌های شما حفظ خواهند شد. @@ -273,6 +278,7 @@ حذف پیام‌‌ها… حذف برای من حذف برای همه + این پیام به طور دائم برای همه در این مکالمه حذف خواهد شد. اعضا قادر خواهند بود تا ببینند که شما پیامی را حذف کرده‌آید. پیام اصلی یافت نشد پیام اصلی دیگر در دسترس نیست عدم موفقیت در باز کردن پیام @@ -630,6 +636,7 @@ یک پیام رمزنگاری شده با استفاده از یک نسخهٔ قدیمی Signal که دیگر پشتیبانی نمی‌شود برایتان ارسال شده است. لطفاً از فرستنده بخواهید تا به آخرین نسخه به‌روزرسانی کند و آن پیام را دوباره ارسال کند. شما گروه را ترک کردید. شما گروه را به‌روزرسانی کردید. + گروه به‌روزرسانی شد. شما تماس گرفتید مخاطب تماس گرفت تماس از دست رفته @@ -640,8 +647,9 @@ %s در Signal است! شما پیام‌های ناپدید شونده را غیر فعال کردید. %1$s پیام‌های ناپدید شونده را غیرفعال کرد. - شما زمان سنج پیام های ناپدید شونده را روی %1$s تنظیم کردید. - %1$s زمان سنج پیام های ناپدید شونده را روی %2$s قرار داد. + شما زمان‌سنج پیام‌ ناپدید شونده را روی %1$s تنظیم کردید. + %1$s زمان‌سنج پیام ناپدید شونده را روی %2$s تنظیم کرد. + زمان‌سنج پیام ناپدید شونده روی %1$s تنظیم شد. شما گروه رو خلق کردی گروه ، به روز رسانی شده است. @@ -657,6 +665,8 @@ %1$s شما را از گروه حذف کرد. شما گروه را ترک کردید %1$s گروه را ترک کرد. + شما دیگر در گروه نیستید. + %1$s دیگر در گروه نیست. شما %1$s را به مدیر تبدیل کردید. %1$s %2$s را به مدیر تبدیل کرد. @@ -664,6 +674,10 @@ شما امتیازات مدیریت %1$s را لغو کردید. %1$s امتیازات مدیریتی شما را لغو کرد. %1$s امتیازات مدیریتی %2$s را لغو کرد. + %1$s حالا یک مدیر است. + شما حالا مدیر هستید. + %1$s دیگر یک مدیر نیست. + شما دیگر یک مدیر نیستید. شما %1$s را به گروه دعوت کردید. %1$s شما را به گروه دعوت کرد. @@ -671,6 +685,11 @@ %1$s ۱ نفر را به گروه دعوت کرد. %1$s %2$d نفر را به گروه دعوت کرد. + شما به گروه دعوت شدید. + + ۱ نفر به گروه دعوت شد. + %1$d نفر به گروه دعوت شدند. + شما یک دعوت به گروه را لغو کردید. @@ -682,6 +701,11 @@ یک نفر دعوت به گروه را رد کرد. شما دعوت به گروه را رد کردید. + دعوت شما به گروه لغو شد. + + یک دعوتنامه به گروه لغو شد. + %1$d دعوت‌نامه به گروه لغو شدند. + شما دعوت به گروه را پذیرفتید. %1$s دعوت به گروه را قبول کرد. @@ -690,15 +714,19 @@ شما نام گروه را به «%1$s» تغییر دادید. %1$s نام گروه را به «%2$s» تغییر داد. + نام گروه به «%1$s» تغییر یافت. شما عکس گروه را عوض کردید. %1$s عکس گروه را تغییر داد. + عکس گروه تغییر یافت. شما قابلیت ویرایش اطلاعات گروه را به «%1$s» انتقال دادید. %1$s قابلیت ویرایش اطلاعات گروه را به «%2$s» انتقال داد. + قابلیت ویرایش اطلاعات گروه به «%1$s» انتقال یافت. شما قابلیت ویرایش اعضای گروه را به «%1$s» انتقال دادید. %1$s قابلیت ویرایش اعضای گروه را به «%2$s» انتقال داد. + قابلیت ویرایش اعضای گروه به «%1$s» انتقال یافت. شمارهٔ امنیتی شما با %s تغییر یافت. شما شمارهٔ امنیتی خود با %s را به عنوان تأیید شده علامت زدید @@ -792,6 +820,13 @@ پین خود را ایجاد کنید فرصت‌های شما برای حدس پین تمام شد، اما شما هنوز می‌توانید با ایجاد یک پین جدید به حساب Signal تان دسترسی داشته باشید. به منظور حفظ امنیت و حریم خصوصی شما، حساب شما بدون هیچ اطلاعات و تنظیماتی ذخیره‌شده‌ای از پروفایل شما بازنشانی خواهد شد. ایجاد پین جدید + + اخطار + + + + غیرفعال کردن پین یک پین مخفی، با آنتروپی بالا مرتبط با حساب کاربری شما خواهد ساخت که قابل بازیابی نخواهد بود. هنگامی که شما دوباره در Signal ثبت‌نام می‌کنید، تمام داده‌ها را از دست خواهید داد، مگر اینکه به صورت دستی پشتیبان‌گیری و بازگردانی کنید. هنگامی که پین غیرفعال است نمی‌توانید قفل ثبت‌نام را روشن کنید. + غیرفعال کردن پین امتیازدهی این برنامه اگر از استفاده از این برنامه لذت می برید، لطفاً برای کمک به ما یک لحظه وقت بگذارید و آن را امتیاز دهید. @@ -908,6 +943,7 @@ طی چند روز، دوباره به شما یادآوری خواهیم کرد. طی یک هفته، دوباره به شما یادآوری خواهیم کرد. طی چند هفته، دوباره به شما یادآوری خواهیم کرد. + طی یک ماه دوباره به شما یادآوری خواهیم کرد. تصویر استیکر @@ -974,6 +1010,7 @@ ویدئوی یکبار مصرف رسانهٔ یکبار مصرف این پیام حذف شد + شما این پیام را حذف کردید. %s به Signal پیوست! پیام‌های ناپدید شونده غیرفعال شدند زمان پیام ناپدید شونده روی %s تنظیم شد @@ -1062,6 +1099,7 @@ حذف پیام؟ این گزینه باعث حذف دائمی این پیام خواهد شد. %1$s به %2$s + رسانه دیگر در دسترس نیست. %1$d پیام جدید در %2$d مکالمه جدیدترین از: %1$s @@ -1205,6 +1243,7 @@ \"%1$s\" یک کاربر Signal نیست. لطفاً نام کاربری را بررسی کرده و دوباره تلاش کنید. باشه گروه پر است + نیازی نیست که خود را به گروه اضافه کنید هیچ مخاطب مسدود شده‌ای وجود ندارد @@ -1573,10 +1612,15 @@ تاریک ظاهر برنامه طرح زمینه + غیرفعال کردن پین + فعال کردن پین + غیرفعال کردن پین یک پین مخفی، با آنتروپی بالا مرتبط با حساب کاربری شما خواهد ساخت که قابل بازیابی نخواهد بود. هنگامی که شما دوباره در Signal ثبت‌نام می‌کنید، تمام داده‌ها را از دست خواهید داد، مگر اینکه به صورت دستی پشتیبان‌گیری و بازگردانی کنید. هنگامی که پین غیرفعال است نمی‌توانید قفل ثبت‌نام را روشن کنید. + پین‌ها اطلاعات ذخیره شده نزد Signal را رمزگذاری شده نگاه می‌دارند تا فقط شما بتوانید به آن‌ها دسترسی داشته باشید. پروفایل شما، تنظیمات و مخاطبان هنگام نصب مجدد بازگردانی خواهند شد. برای باز کردن برنامه به پین احتیاج نخواهید داشت. پیش‌فرض سیستم پیش‌فرض زبان تماس‌ها و پیام‌های Signal + تنظیمات پیشرفتهٔ پین تماس‌ها و پیام‌های خصوصی رایگان برای کاربران Signal ارسال گزارش اشکال‌زدایی حالت سازگاری «تماس WiFi» @@ -1623,6 +1667,7 @@ اجازه به همه فعال‌سازی فرستندهٔ ناشناس برای پیام‌های ورودی از غیرمخاطبان و کسانی که پروفایل خود را با آن‌ها به اشتراک نگذاشته‌اید. بیشتر یاد بگیرید + @@ -1780,7 +1825,7 @@ یک پین جدید ایجاد کنید تا زمانی که این دستگاه ثبت شده باشد شما می‌توانید پین خود را تغییر دهید. پین خود را ایجاد کنید - پین‌ها اطلاعات ذخیره شده در Signal را رمز‌گذاری می‌کنند تا فقط شما قادر به دسترسی به آن‌ها باشید. پروفایل، تنظیمات و مخاطبین شما هنگام نصب دوبارهٔ سیگنال بازگردانی می‌شوند. + پین‌ها اطلاعات ذخیره شده نزد Signal را رمزگذاری شده نگاه می‌دارند تا فقط شما بتوانید به آن‌ها دسترسی داشته باشید. پروفایل شما، تنظیمات و مخاطبان هنگام نصب مجدد بازگردانی خواهند شد. برای باز کردن برنامه به پین احتیاج نخواهید داشت. یک پین قوی‌تر انتخاب کنید پین‌ها مطابقت ندارند. دوباره تلاش کنید. @@ -1792,13 +1837,15 @@ ایجاد پین… تعریف پین‌ها - پین‌ها اطلاعات ذخیره شده در Signal را رمز‌گذاری می‌کنند تا فقط شما قادر به دسترسی به آن‌ها باشید. پروفایل، تنظیمات و مخاطبین شما هنگام نصب دوبارهٔ سیگنال بازنشانی می‌شوند. + پین‌ها اطلاعات ذخیره شده نزد Signal را رمزنگاری شده نگاه می‌دارند تا فقط شما به آنها دسترسی داشته باشید. پروفایل شما، تنظیمات و مخاطبان هنگام نصب مجدد بازگردانی می‌شوند. برای باز کردن برنامه به پین احتیاج نخواهید داشت. اطلاعات بیشتر قفل ثبت‌نام = پین قفل ثبت‌نام شما اکنون پین نام دارد، و کارهای بیشتری را انجام می‌دهد. هم‌اکنون آن را به‌روزرسانی کنید. در مورد پین‌ها بیشتر بخوانید. به‌روزرسانی پین پین خود را ایجاد کنید + درباره پین ​​اطلاعات بیشتری کسب کنید + پین Signal خود را وارد کنید برای کمک به شما در به‌خاطرسپاری پین، آن را به صورت دوره‌ای از شما می‌پرسیم. با گذر زمان این‌ کار را کمتر انجام خواهیم داد. diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index b26e4df89..c518adddf 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -174,6 +174,7 @@   Lataa lisää   Käsiteltävänä Tämä viesti poistettiin. + Poistit tämän viestin. Alusta suojattu istunto? Tämä saattaa auttaa, jos tässä keskustelussa on ilmennyt salaukseen liittyviä ongelmia. Huom. tämä ei poista eikä muokkaa mitenkään olemassa olevia viestejä. @@ -273,6 +274,7 @@ Viestejä poistetaan… Poista minulta Poista kaikilta + Tämä viesti poistetaan pysyvästi kaikilta keskustelun jäseniltä. Jäsenet voivat nähdä, että olet poistanut viestin. Alkuperäistä viestiä ei löytynyt Alkuperäinen viesti ei ole enää saatavilla Viestin avaaminen epäonnistui @@ -630,6 +632,7 @@ Vastaanotettiin viesti, joka on salattu Signalin vanhalla versiolla, jota ei enää tueta. Pyydä lähettäjää päivittämään uusimpaan versioon ja lähettämään viesti uudelleen. Olet poistunut ryhmästä. Sinä päivitit ryhmää. + Ryhmä päivitettiin. Soitit puhelun Yhteystieto soitti Vastaamatta jäänyt puhelu @@ -657,6 +660,8 @@ %1$s poisti sinut ryhmästä. Olet poistunut ryhmästä. %1$s poistui ryhmästä. + Et ole enää ryhmässä. + %1$s ei ole enää ryhmässä. Nimitit käyttäjän %1$s ylläpitäjäksi. %1$s nimitti käyttäjän %2$s ylläpitäjäksi. @@ -664,6 +669,10 @@ Poistit käyttäjän %1$s ylläpito-oikeudet. %1$s poisti ylläpito-oikeutesi. %1$s poisti ylläpito-oikeudet käyttäjältä %2$s. + %1$s on nyt ylläpitäjä. + Olet nyt ylläpitäjä. + %1$s ei ole enää ylläpitäjä. + Et ole enää ylläpitäjä. Kutsuit käyttäjän %1$s ryhmään. %1$s kutsui sinut ryhmään. @@ -671,6 +680,7 @@ %1$s kutsui 1 henkilön ryhmään. %1$s kutsui %2$d henkilöä ryhmään. + Sinut kutsuttiin ryhmään. Peruutit yhden kutsun ryhmään. @@ -682,6 +692,7 @@ Joku hylkäsi kutsun ryhmään. Hylkäsit kutsun ryhmään. + Kutsusi ryhmään peruttiin. Hyväksyit kutsun ryhmään. %1$s hyväksyi kutsun ryhmään. @@ -791,6 +802,8 @@ Luo PIN-koodisi PIN-arvailut ovat loppuneet, mutta voit silti käyttää Signal-tiliäsi luomalla uuden PIN-koodin. Yksityisyytesi ja turvallisuutesi vuoksi tili palautetaan ilman tallennettuja profiilitietoja tai asetuksia. Luo uusi PIN-koodi + + Varoitus Arvostele tämä sovellus Jos pidät Signalista, voit auttaa meitä arvostelemalla sen. @@ -905,6 +918,7 @@ puhelinnumero Muistutamme sinua jälleen muutaman päivän päästä. Muistutamme sinua uudelleen viikon kuluttua. Muistutamme sinua jälleen parin viikon kuluttua. + Muistutamme sinua uudelleen kuukauden kuluttua. Kuva Tarra @@ -971,6 +985,7 @@ Vastaanotetiin avaintenvaihtoviesti, joka kuuluu väärälle protokollaversiolle Kerran katsottava video Kerran katsottava media Tämä viesti poistettiin. + Poistit tämän viestin. %s käyttää Signalia! Katoavat viestit poistettu käytöstä Katoavien viestien ajaksi asetettu %s @@ -1202,6 +1217,7 @@ Vastaanotetiin avaintenvaihtoviesti, joka kuuluu väärälle protokollaversiolle \"%1$s\" ei ole Signalin käyttäjä. Tarkista käyttäjätunnus ja yritä uudelleen. Selvä Ryhmä on täynnä + Sinun ei tarvitse lisätä itseäsi ryhmään Ei estettyjä yhteystietoja @@ -1620,6 +1636,7 @@ Vastaanotetiin avaintenvaihtoviesti, joka kuuluu väärälle protokollaversiolle Hyväksy kaikilta Ota käyttöön sinetöity lähettäjä saapuville viesteille henkilöiltä, jotka eivät ole yhteystitojasi ja joiden kanssa et ole jakanut profiiliasi. Lue lisää + @@ -1777,7 +1794,6 @@ Vastaanotetiin avaintenvaihtoviesti, joka kuuluu väärälle protokollaversiolle Luo uusi PIN-koodi Voit vaihtaa PIN-koodisi niin kauan kuin tämä laite on rekisteröity. Luo PIN-koodisi - PIN-koodit pitävät Signalin luona tallennetut tiedot salattuina, jotta vain sinä pääset niihin käsiksi. Profiilisi, asetuksesi ja yhteystietosi palautuvat kun asennat Signalin uudelleen. Valitse vahvempi PIN-koodi PIN-koodit eivät täsmää. Yritä uudelleen. @@ -1789,13 +1805,13 @@ Vastaanotetiin avaintenvaihtoviesti, joka kuuluu väärälle protokollaversiolle Luodaan PIN-koodia… Esittelemme PIN-koodit - PIN-koodit pitävät Signalin luona tallennetut tiedot salattuina, jotta vain sinä pääset niihin käsiksi. Profiilisi, asetuksesi ja yhteystietosi palautuvat kun asennat Signalin uudelleen. Lue lisää Rekisteröinnin lukitus = PIN-koodi Rekisteröinnin lukitusta kutsutaan nyt PIN-koodiksi, ja se tekee enemmän. Päivitä se nyt. Lue lisää PIN-koodeista Päivitä PIN Luo PIN-koodisi + Lisätietoja PIN-koodeista Syötä Signal PIN-koodisi Pyydämme sinulta PIN-koodia ajoittain sen muistamisen helpottamiseksi. Pyynnöt harvenevat ajan myötä. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 377840762..5441fb974 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -44,6 +44,9 @@ Verrouillage de l’écran %1$s, blocage de l’inscription %2$s Verrouillage de l’écran %1$s Thème %1$s, langue %2$s + Échec de désactivation des NIP. Veuillez ressayer plus tard. + Le NIP a été créé. + Le NIP a été désactivé. %d minute @@ -174,6 +177,7 @@   Télécharger plus   En attente Ce message a été supprimé. + Vous avez supprimé ce message. Réinitialiser la session sécurisée ? Cela peut aider si vous éprouvez des problèmes de chiffrement dans cette conversation. Vos messages seront conservés. @@ -273,6 +277,7 @@ Suppression des messages… Supprimer pour moi Supprimer pour tous + Ce message sera irrémédiablement supprimé pour tous les membres de la conversation. Les membres pourront voir que vous avez supprimé un message. Le message original est introuvable Le message original n’est plus disponible Échec d’ouverture du message @@ -463,8 +468,8 @@ Mettre les notifications en sourdine Notifications personnalisées Jusqu’à %1$s - Désactivé - Activé + Désactivées + Activées Ajouter à un groupe Visualiser tous les groupes Tout voir @@ -490,8 +495,8 @@ Vibrer Paramètres des appels Sonnerie - Activée - Désactivée + Activé + Désactivé Valeur par défaut Voulez-vous annuler l’invitation envoyée à %1$s ? @@ -630,6 +635,7 @@ Vous avez reçu un message chiffré avec une ancienne version de Signal qui n’est plus prise en charge. Veuillez demander à l’expéditeur de mettre Signal à jour vers la version la plus récente et de renvoyer le message. Vous avez quitté le groupe Vous avez mis le groupe à jour. + Le groupe a été mis à jour. Vous avez appelé Un contact a appelé Appel manqué @@ -642,6 +648,7 @@ %1$s a désactivé les messages éphémères. Vous avez défini l’expiration des messages éphémères à %1$s. %1$s a défini l’expiration des messages éphémères à %2$s. + L’expiration des messages éphémères a été définie à %1$s. Vous avez créé le groupe. Le groupe a été mis à jour. @@ -657,6 +664,8 @@ %1$s vous a supprimé du groupe. Vous avez quitté le groupe. %1$s a quitté le groupe. + Vous n’êtes plus dans le groupe. + %1$s n’est plus dans le groupe. Vous avez nommé %1$s en tant qu’administrateur. %1$s a nommé %2$s en tant qu’administrateur. @@ -664,6 +673,10 @@ Vous avez révoqué les privilèges d’administrateur de %1$s. %1$s a révoqué vos privilèges d’administrateur. %1$s a révoqué les privilèges d’administrateur de %2$s. + %1$s est désormais administrateur. + Vous êtes désormais administrateur. + %1$s n’est plus administrateur. + Vous n’êtes plus administrateur. Vous avez invité %1$s au groupe. %1$s vous a invité au groupe. @@ -671,6 +684,11 @@ %1$s a invité une personne au groupe. %1$s a invité %2$d personnes au groupe. + Vous avez été invité au groupe. + + Une personne a été invitée au groupe. + %1$d personnes ont été invitées au groupe. + Vous avez révoqué une invitation au groupe. @@ -682,6 +700,11 @@ Quelqu’un a décliné une invitation au groupe. Vous avez décliné l’invitation du groupe. + Votre invitation au groupe a été révoquée. + + Une invitation au groupe a été révoquée. + %1$d invitations au groupe ont été révoquées. + Vous avez accepté l’invitation du groupe. %1$s a accepté une invitation au groupe. @@ -690,9 +713,11 @@ Vous avez changé le nom du groupe en « %1$s ». %1$s a changé le nom du groupe en « %2$s ». + Le nom du groupe a été changé en « %1$s ». Vous avez changé l’avatar du groupe. %1$s a changé l’avatar du groupe. + L’avatar du groupe a été changé. Vous avez changé qui peut modifier les renseignements du groupe en « %1$s ». %1$s a changé qui peut modifier les renseignements du groupe en « %2$s ». @@ -792,6 +817,11 @@ Créer votre NIP Vous avez épuisé tous vos essais de NIP, mais vous pouvez encore accéder à votre compte Signal en créant un nouveau NIP. Afin de protéger vos données personnelles et votre sécurité, votre compte sera restauré sans renseignements de profil enregistrés ni préférences. Créer un nouveau NIP + + Avertissement + + + Désactiver le NIP Notez cette appli Si vous aimez cette appli, veuillez prendre quelques instants pour nous aider la notant. @@ -898,11 +928,12 @@ Inviter à Signal Message Signal - Nous vous le rappellerons ultérieurement. + Nous vous le rappellerons plus tard. Nous vous le rappellerons demain. Nous vous le rappellerons dans quelques jours. Nous vous le rappellerons dans une semaine. Nous vous le rappellerons dans quelques semaines. + Nous vous le rappellerons dans un mois. Image Autocollant @@ -968,6 +999,7 @@ Vidéo éphémère Média éphémère Ce message a été supprimé. + Vous avez supprimé ce message. %s est sur Signal. Les messages éphémères sont désactivés L’expiration des messages éphémères a été définie à %s @@ -1056,6 +1088,7 @@ Supprimer le message ? Ce message sera irrémédiablement supprimé. %1$s à %2$s + Le média n’est plus disponible. %1$d nouveaux messages dans %2$d conversations Le plus récent de : %1$s @@ -1566,10 +1599,13 @@ Sombre Apparence Thème + Désactiver le NIP + Activer le NIP Valeur par défaut du système Valeur par défaut Langue Appels et messages Signal + Paramètres de NIP avancés Messages et appels gratuits et confidentiels vers les utilisateurs de Signal Envoyer le journal de débogage Mode de compatibilité « Appels Wi-Fi » @@ -1616,6 +1652,7 @@ Autoriser de n’importe qui Activer l’option « expéditeur scellé » pour les messages entrants provenant d’expéditeurs qui ne sont pas dans vos contacts et de personnes avec qui vous n’avez pas partagé votre profil. En apprendre davantage + @@ -1773,25 +1810,25 @@ Créer un nouveau NIP Vous pouvez modifier votre NIP tant que cet appareil est inscrit. Créer votre NIP - Les NIP font en sorte que les renseignements sont enregistrés chiffrés dans Signal afin que vous seul puissiez y accéder. Votre profil, vos paramètres et vos contacts seront restaurés quand vous réinstallerez Signal. Choisissez une NIP plus robuste Les NIP ne correspondent pas. Veuillez ressayez. Confirmez votre NIP Échec de création du NIP - Votre NIP n’a pas été enregistré. Nous vous inviterons à en créer un ultérieurement. - Votre NIP a été créé. + Votre NIP n’a pas été enregistré. Nous vous inviterons à en créer un plus tard. + Le NIP a été créé. Saisissez votre NIP de nouveau. Création du NIP… Nous présentons les NIP - Les NIP font en sorte que les renseignements sont enregistrés chiffrés dans Signal afin que vous seul puissiez y accéder. Votre profil, vos paramètres et vos contacts seront restaurés quand vous réinstallerez Signal. - En savoir plus + En apprendre davantage Blocage de l’inscription = NIP Votre blocage de l’inscription s’appelle désormais un NIP et il accomplit encore plus. Mettez-le à jour maintenant. Apprenez-en davantage sur les NIP. Mettre le NIP à jour Créer votre NIP + En apprendre davantage sur les NIP + Saisissez votre NIP Signal Pour vous aider à mémoriser votre NIP, nous vous demanderons de le saisir régulièrement. Nous vous le demanderons de moins en moins souvent. @@ -1803,7 +1840,7 @@ Le compte est verrouillé Votre compte a été verrouillé afin de protéger vos données personnelles et votre sécurité. Après %1$d jours d’inactivité dans votre compte, vous pourrez réinscrire ce numéro de téléphone sans avoir besoin de votre NIP. Tout le contenu sera supprimé. Suivant - En savoir plus + En apprendre davantage Saisissez votre NIP Saisissez le NIP que vous avez créé pour votre compte. Il est différent de votre code de confirmation reçu par texto. @@ -1844,8 +1881,8 @@ Créer un NIP Nous présentons les NIP Mettre le NIP à jour - Nous vous le rappellerons ultérieurement. La création d’un NIP deviendra obligatoire dans %1$d jours. - Nous vous le rappellerons ultérieurement. La confirmation de votre NIP deviendra obligatoire dans %1$d jours. + Nous vous le rappellerons plus tard. La création d’un NIP deviendra obligatoire dans %1$d jours. + Nous vous le rappellerons plus tard. La confirmation de votre NIP deviendra obligatoire dans %1$d jours. Icône de transport Chargement… @@ -1877,7 +1914,7 @@ Confirmation… %d messages jusqu’à présent… Restaurer de la sauvegarde ? - Restaurez vos messages et médias d’une sauvegarde locale. Si vous ne les restaurez pas maintenant, vous ne pourrez pas le faire ultérieurement. + Restaurez vos messages et médias d’une sauvegarde locale. Si vous ne les restaurez pas maintenant, vous ne pourrez pas le faire plus tard. Taille de la sauvegarde : %s Estampille temporelle de la sauvegarde : %s Activer les sauvegardes locales ? diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index ad3534147..0b47ec005 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -631,6 +631,8 @@ Crea o teu PIN Esgotaches os intentos, pero aínda podes acceder á conta Signal creando un novo PIN. Por privacidade e seguridade a conta será restablecida sen a información de perfil gardada ou axustes. Crear novo PIN + + Aviso Valorar esta app Se realmente che gusta esta aplicación, dedícalle, por favor, un intre a valorala. @@ -1368,6 +1370,7 @@ Permitir de calquera Activa o remitente selado para as mensaxes entrantes de persoas que non estean nos teus contactos ou con aquelas coas que non compartiras o teu perfil. Saber máis + @@ -1508,7 +1511,6 @@ Crear un novo PIN Podes cambiar o PIN en tanto este dispositivo estea rexistrado. Crea o teu PIN - O PIN cifra a información gardada con Signal para que só ti poidas acceder a ela. O perfil, axustes e contactos restablécense ao reinstalar Signal. Escolle un PIN máis forte Os PIN non concordan, inténtao outra vez. @@ -1520,7 +1522,6 @@ Creando PIN… Escribindo PINs - O PIN cifra a información gardada con Signal para que só ti poidas acceder a ela. O perfil, axustes e contactos restablécense ao reinstalar Signal. Saber máis Bloqueo do rexistro = PIN O Bloqueo de Rexistro agora chámase PIN, e serve para máis. Actualiza agora. diff --git a/app/src/main/res/values-gu/strings.xml b/app/src/main/res/values-gu/strings.xml index 1a89cc14f..dc5483243 100644 --- a/app/src/main/res/values-gu/strings.xml +++ b/app/src/main/res/values-gu/strings.xml @@ -532,8 +532,11 @@ %1$sગ્રુપ માં જોડાયા. + હવે તમે એડમિન છો. + તમને ગ્રુપમાં આમંત્રણ અપાયું હતું. + ગ્રુપ માટે તમારું આમંત્રણ રદ કરવામાં આવ્યું હતું. @@ -608,6 +611,7 @@ સંખ્યાત્મક PIN દાખલ કરો તમારો PIN બનાવો + આ એપ્લિકેશનને રેટ કરો જો તમને આ એપ્લિકેશનનો ઉપયોગ કરવામાં આનંદ આવે છે, તો કૃપા કરીને તેને રેટિંગ આપીને મદદ કરવામાં થોડો સમય કાઢો. @@ -1348,6 +1352,7 @@ કોઈની પાસેથી મંજૂરી આપો બિન-સંપર્કો અને જેની સાથે તમે તમારી પ્રોફાઇલ શેર કરી નથી તેવા લોકો તરફથી આવતા મેસેજ માટે સીલ કરેલા મોકલનાર સક્ષમ કરો. વધુ શીખો + @@ -1492,7 +1497,6 @@ નવો PIN બનાવો આ ડિવાઇસ રજીસ્ટર થાય ત્યાં સુધી તમે તમારો PIN બદલી શકો છો. તમારો PIN બનાવો - PIN Signal સાથેની માહિતી સ્ટોર કરેલી માહિતીને એન્ક્રિપ્ટ કરે છે જેથી ફક્ત તમે જ તેને એક્સેસ કરી શકો. જ્યારે તમે Signal ને ફરીથી ઇન્સ્ટોલ કરો છો ત્યારે તમારી પ્રોફાઇલ, સેટિંગ્સ અને સંપર્કો રિસ્ટોર થશે. એક મજબૂત PIN પસંદ કરો PIN મેળ ખાતા નથી. ફરીથી પ્રયત્ન કરો. @@ -1503,12 +1507,12 @@ PIN બનાવી રહ્યાં છે… PIN રજૂ કરી રહ્યા છીએ - PIN Signal સાથેની માહિતી સ્ટોર કરેલી માહિતીને એન્ક્રિપ્ટ કરે છે જેથી ફક્ત તમે જ તેને એક્સેસ કરી શકો. જ્યારે તમે Signal ને ફરીથી ઇન્સ્ટોલ કરો છો ત્યારે તમારી પ્રોફાઇલ, સેટિંગ્સ અને સંપર્કો રિસ્ટોર થશે. વધુ શીખો રજીસ્ટ્રેશન લૉક = PIN PIN વિશે વધુ વાંચો. PIN અપડેટ કરો તમારો PIN બનાવો + PIN વિશે વધુ જાણો તમારો Signal પિન દાખલ કરો તમને તમારો PIN યાદ રાખવામાં મદદ કરવા માટે, અમે તમને તે સમયાંતરે દાખલ કરવા માટે કહીશું. અમે તમને સમય સાથે ઓછા પૂછીએ છીએ. diff --git a/app/src/main/res/values-ha/strings.xml b/app/src/main/res/values-ha/strings.xml index 2b03488b1..98fcd7528 100644 --- a/app/src/main/res/values-ha/strings.xml +++ b/app/src/main/res/values-ha/strings.xml @@ -532,8 +532,11 @@ %1$s ya/ta shiga rukuni. + Ka/kin zama mai gudanarwa. + An gayyaceka/ki zuwa rukunin. + An soke gayyatarka/ki zuwa rukunin. @@ -609,6 +612,7 @@ Shigar da lambobin sirri mai lambobi zalla Kirkiri lambobin sirrinka/ki + Yaba wannan manhajar Idan ka/kin ji dadin wannan manhajar, dan dauki \'yan mintina ka/kiyi kafa mana taurari. @@ -1352,6 +1356,7 @@ Karba daga ko waye Karfafa rufaffen mai aika sako don sakonni masu shigowa daga waddanda basu cikin lambobin sadawarka/ki da kuma mutane da baka/ki tura ma sako ba. Karin bayani + @@ -1496,7 +1501,6 @@ Kirkiri sabon lambobin sirri Zaka/ki iya canza lambobin sirrinka/ki idan da rijista akan wannan na\'ura. Kirkiri lambobin sirrinka/ki - Ka/ki tsare bayanai da ka/kika ajiye da Signal domin ya Zaman to kai/ke kadai ne/ceke damar isonshi. Furofayil, saiti, da lambobin sadarwarka/ki za su dawo saitin ainihi idan ka/kika sake girka Signal. Zabi lambobin sirri masu karfi An samu kuskuren lambobin sirri. Kara gwadawa. @@ -1507,12 +1511,12 @@ Ana kirkirar lambobin sirri Gabatar da lambobin sirri - Ka/ki tsare bayanai da ka/kika ajiye da Signal domin ya Zaman to kai/ke kadai ne/ceke damar isonshi. Furofayil, saiti, da lambobin sadarwarka/ki za su dawo saitin ainihi idan ka/kika sake girka Signal. Karin bayani Makullin rijista = Lambobin sirri Karanta karin bayanin akan ambobin sirri. Sabunta lambobin sirri Kirkiri lambobin sirrinka/ki + Samu Karin bayani akan lambobin sirri Shigar da lambobin sirrin Signal dinka/ki Domin tayaka/ki haddace lambobin sirrinka/ki, zamu rinka tambayan lambobin lokaci-lokaci. Zamu rage tambaya nan gaba. diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 33cbc0563..4df20ead8 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -535,8 +535,11 @@ %1$s समूह में शामिल हो गए + आप अब एक एडमिन हैं। + आपको ग्रूप से जुङने के लिये आमंत्रित किया गया था। + आपका ग्रूप से जुङने का आमंत्रण वापस ले लिया गया है। @@ -611,6 +614,7 @@ संख्यात्मक पिन दर्ज करें अपना पिन बनाएँ + इस ऐप्लिकेशन को रेट करें यदि आप इस ऐप का उपयोग करने का आनंद लेते हैं, तो कृपया इसे रेटिंग करके हमारी सहायता करने के लिए कुछ समय दें। @@ -1352,6 +1356,7 @@ कोई भी मुझे मेसेज भेज सकता हैं सील्ड सेंडर फी़चर आने वाले मेसेजों के लिये शुरु कर दिया जाऐगा जिसके अनुसार वो लोग जो आपके संपर्क में नहीं हैं या जिनसे आपने अपना प्रोफ़ाइल साझा नहीं किया है, वो भी आपको मेसेज भेज पाएंगे| अधिक जानें + @@ -1496,7 +1501,6 @@ नया पिेन बनाएँ जब तक आपका डिवाइस पंजीकृत है, आप अपना पिन कभी भी बदल सकते हैं। अपना पिन बनाएँ - पिन Signal द्वारा संग्रहीत जानकारी को एन्क्रिप्ट रखता है, ताकी सिर्फ़ आप उसे देख पाएँ। आपका प्रोफ़ाइल, सेटिंग्स, और संपर्क, अपके Signal इंस्टाॅल के बाद, पुनः स्थापित हो जाऐंगे। औेर कठिन पिन चुनें पिन मेल नहीं खाते। पुनः प्रयास करें। @@ -1507,12 +1511,12 @@ नया पिन बन रहा है़… पेश है, पिन - पिन Signal द्वारा संग्रहीत जानकारी को एन्क्रिप्ट रखता है, ताकी सिर्फ़ आप उसे देख पाएँ। आपका प्रोफ़ाइल, सेटिंग्स, और संपर्क, अपके Signal इंस्टाॅल के बाद, पुनः स्थापित हो जाऐंगे। और जानें पंजीकरन लॉक = पिन पिन के बारे में अधिक पढ़ें| पिन अपडेट करें अपना पिन बनाएँ + पिन के बारे में और जानें अपना Signal पिन डालें आपको अपना पिन याद रखने में मदद करने के लिए, हम आपको समय-समय पर इसे दर्ज करने के लिए कहेंगे। हम आपसे समय के साथ कम पूछते हैं। diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 8389dfeed..6a4e78a79 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -44,6 +44,10 @@ Képernyőzár %1$s, regisztrációs zár %2$s Képernyőzár %1$s %1$s téma, %2$s nyelv + A regisztrációs zárhoz PIN kódra van szükség. A PIN kód letiltásához előbb ki kell kapcsolni a regisztrációs zárat. + Nem sikerült a PIN letiltása. Kérlek próbáld újra! + Pin létrehozva. + Pin letiltva. %d perc @@ -175,6 +179,7 @@  További letöltése  Függőben Ez az üzenet ki lett törölve. + Általad törölt üzenet. Újraindítod a biztonsági munkamenetet? Ez akkor segíthet, ha titkosítással kapcsolatos problémák léptek fel ebben a beszélgetésben. Az üzeneteid meg lesznek tartva. @@ -274,6 +279,7 @@ Üzenetek törlése… Törlés számomra Törlés mindenki számára + Ez az üzenet a beszélgetés minden tagja számára véglegesen törlésre kerül. A tagok számára látható lesz, hogy törölted az üzenetet. Az eredeti üzenet nem található Az eredeti üzenet már nem érhető el Nem sikerült megnyitni az üzenetet @@ -631,6 +637,7 @@ Egy olyan üzenet érkezett, amely a Signal egy régebbi, már nem támogatott verziójával lett titkosítva. Kérd meg a feladót, hogy frissítsen a legfrissebb verzióra, majd küldje el újra az üzenetet! Kiléptél a csoportból. Frissítetted a csoportot. + A csoport frissítve lett. Te hívtad A partner hívott Nem fogadott hívás @@ -643,6 +650,7 @@ %1$s letiltotta az eltűnő üzeneteket. Beállítottad, hogy az üzenetek ennyi idő után tűnjenek el: %1$s. %1$s beállította, hogy az üzenetek ennyi idő után tűnjenek el: %2$s. + Az eltűnő üzenetek új beállítása: %1$s Létrehoztad a csoportot. Csoport frissítve. @@ -658,6 +666,8 @@ %1$s eltávolított téged a csoportból. Kiléptél a csoportból. %1$s kilépett a csoportból. + Már nem vagy a csoport tagja. + %1$s már nem a csoport tagja. %1$s admin jogosultságokat kapott tőled. %1$s admin jogosultságokat adott neki: %2$s @@ -665,6 +675,10 @@ Visszavontad %1$s admin jogosultságait. %1$s visszavonta admin jogosultságaidat. %1$s visszavonta %2$s admin jogosultságait. + %1$s admin jogosultságot kapott. + Admin jogosultságot kaptál. + %1$s elvesztette admin jogosultságait. + Már nincs admin jogosultságod. Meghívtad %1$s-t a csoportba. %1$s meghívott a csoportba. @@ -672,6 +686,11 @@ %1$s meghívott 1 db személyt a csoportba. %1$s meghívott %2$d db személyt a csoportba. + Csoportmeghívást kaptál. + + 1 személy meg lett hívva a csoportba. + %1$d személy meg lett hívva a csoportba + Visszavontál egy csoportmeghívót. @@ -683,6 +702,11 @@ Valaki visszautasított egy meghívót a csoportba. Visszautasítottad a meghívást a csoportba. + A csoportmeghívásod visszavonásra került. + + Egy személy csoportmeghívója vissza lett vonva. + %1$d személy csoportmeghívója vissza lett vonva. + Elfogadtad a meghívást a csoportba. %1$s elfogadott egy meghívót a csoportba. @@ -691,15 +715,19 @@ Megváltoztattad a csoport nevét erre: \"%1$s\". %1$s megváltoztatta a csoport nevét erre: \"%2$s\". + A csoport neve a következőre változott: \"%1$s\". Megváltoztattad a csoport képét. %1$s megváltoztatta a csoport képét. + A csoportkép megváltozott. Megváltoztattad a csoport információinak szerkeszthetőségét erre: \"%1$s\". %1$s megváltoztattad a csoport információinak szerkeszthetőségét erre: \"%2$s\". + A csoportinfót szerkeszthetők köre megváltozott erre: \"%1$s\". Megváltoztattad a csoport tagjainak szerkeszthetőségét erre: \"%1$s\". %1$s megváltoztatta a csoport tagjainak szerkeszthetőségét erre: \"%2$s\". + A csoporttagságot szerkeszthetők köre megváltozott erre: \"%1$s\" Megváltozott a biztonsági számod vele: %s. Biztonsági számodat ellenőrzöttnek jelölted a következővel: %s @@ -794,6 +822,13 @@ Kérlek telepítsd újra a Google Play Szolgáltatásokat, majd próbáld újra! PIN létrehozása Kifogytál a PIN megadási lehetőségekből, de továbbra is hozzáférhetsz fiókodhoz, amennyiben létrehozol egy új PIN-t. A magánszférád védelme és a biztonságod érdekében fiókod csak a mentett profilbeállítások nélkül állítható vissza. Új PIN létrehozása + + Figyelmeztetés + + + + A PIN letiltásával egy rejtett, nagy entrópiát tartalmazó PIN-t rendelünk fiókodhoz, amit nem lehet helyreállítani. A Signal-ra történő újraregisztráció során minden adatod elveszik, kivéve ha azt előtte manuálisan elmented, majd visszatöltöd. Letiltott PIN kóddal nem lehetséges a regisztrációs zár bekapcsolása. + PIN letiltása Értékeld az alkalmazást Ha szívesen használod ezt az alkalmazást, akkor kérlek szánj rá egy percet, hogy segíts nekünk értékelésed leadásával. @@ -911,6 +946,7 @@ szám (%s) érvénytelen. Pár napon belül újra emlékeztetni fogunk. Egy héten belül újra emlékeztetni fogunk. Pár héten belül újra emlékeztetni fogunk. + Egy hónap múlva újra emlékeztetni fogunk. Kép Matrica @@ -979,6 +1015,7 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. Egyszer megjelenő videó Egyszer megjelenő médiafájl Ez az üzenet ki lett törölve. + Általad törölt üzenet. %s a Signal-on van! Eltűnő üzenetek letiltva Eltűnő üzenet ideje beállítva erre: %s @@ -1067,6 +1104,7 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. Törlöd az üzenetet? Ez véglegesen törölni fogja ezt az üzenetet. %1$s (címzett: %2$s) + A médiafájl már nem érhető el %1$d új üzenet %2$d beszélgetésben Legutóbb tőle: %1$s @@ -1211,6 +1249,7 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. \"%1$s\" nem Signal felhasználó. Kérlek ellenőrizd a felhasználónevet, majd próbáld újra. Oké A csoport megtelt + Nem szükséges saját magadat a csoporthoz adnod Nincsenek blokkolt kontaktok @@ -1579,10 +1618,15 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. Sötét Megjelenés Téma + PIN letiltása + PIN engedélyezése + A PIN letiltásával egy rejtett, nagy entrópiát tartalmazó PIN-t rendelünk fiókodhoz, amit nem lehet helyreállítani. A Signal-ra történő újraregisztráció során minden adatod elveszik, kivéve ha azt előtte manuálisan elmented, majd visszatöltöd. Letiltott PIN kóddal nem lehetséges a regisztrációs zár bekapcsolása. + A PIN-nek köszönhetően a Signal által tárolt információk titkosítva lesznek, így csak te férhetsz hozzájuk. Újratelepítés esetén profilod, beállításaid és kontaktjaid visszaállításra kerülnek. Az alkalmazás megnyitásához nincs szükség a PIN kódra. Alapbeállítás Alapértelmezett Nyelv Signal üzenetek és hívások + További PIN beállítások Ingyenes és privát üzenetek, valamint hívások Signal felhasználók részére Hibakeresési napló küldése \'WiFi hívás\' kompatibilitási mód @@ -1629,6 +1673,7 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. Engedélyezés mindenkitől Rejtett feladóval érkező üzenetek engedélyezése olyan nem-kontaktoktól és személyektől is, akikkel nem osztottad meg a profilodat. További információ + @@ -1786,7 +1831,7 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. Új PIN létrehozása PIN kódodat mindaddig megváltoztathatod, míg ez az eszköz regisztrálva van. PIN létrehozása - A PIN-nek köszönhetően a Signal által tárolt információk titkosítva vannak, így csak te férhetsz hozzájuk. Újratelepítés esetén profilod, beállításaid és kontaktjaid visszaállításra kerülnek. + A PIN-nek köszönhetően a Signal által tárolt információk titkosítva lesznek, így csak te férhetsz hozzájuk. Újratelepítés esetén profilod, beállításaid és kontaktjaid visszaállításra kerülnek. Az alkalmazás megnyitásához nincs szükség a PIN kódra. Válassz egy erősebb PIN kódot! A PIN kódok nem egyeznek. Próbáld újra! @@ -1798,13 +1843,15 @@ Kulcs-csere üzenet érkezett érvénytelen protokoll verzióhoz. PIN létrehozása… A PIN kódok bemutatása - A PIN-nek köszönhetően a Signal által tárolt információk titkosítva vannak, így csak te férhetsz hozzájuk. Újratelepítés esetén profilod, beállításaid és kontaktjaid visszaállításra kerülnek. + A PIN-nek köszönhetően a Signal által tárolt információk titkosítva lesznek, így csak te férhetsz hozzájuk. Újratelepítés esetén profilod, beállításaid és kontaktjaid visszaállításra kerülnek. Az alkalmazás megnyitásához nincs szükség a PIN kódra. Tudj meg többet Regisztrációs kód = PIN A regisztrációs zárat mostantól PIN kódnak hívják, és többet tud. Frissítsd most! Bővebben a PIN kódokról. PIN kód frissítése PIN létrehozása + Bővebben a PIN kódokról + Add meg Signal PIN kódodat A PIN kód megjegyzése érdekében időnként megkérünk annak begépelésére. Az idő múlásával ez egyre ritkábban fog megtörténni. diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 7517f4133..c0096f4bf 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -597,12 +597,14 @@ Anda membatalkan akses admin dari %1$s. %1$s membatalkan akses admin Anda.\" %1$s membatalkan akses admin %2$s. + Anda sekarang menjadi admin. Anda mengundang %1$s ke grup. %1$s mengundang Anda ke grup. %1$s mengundang %2$d orang ke grup. + Anda diundang ke dalam grup. Anda membatalkan %1$d undangan ke grup. @@ -612,6 +614,7 @@ Seseorang menolak undangan masuk ke grup. Anda menolak undangan masuk ke grup. + Undangan Anda untuk masuk ke grup telah dibatalkan. Anda menerima undangan masuk ke grup. %1$s menerima undangan masuk ke grup. @@ -698,6 +701,8 @@ Buat PIN Anda Buat PIN baru + + Peringatan Nilai aplikasi ini Jika Anda suka menggunakan aplikasi ini, luangkan waktu sejenak untuk membantu kami dengan memberikan nilai pada aplikasi. @@ -1496,6 +1501,7 @@ Menerima pesan pertukaran kunci untuk versi protokol yang tidak valid. Izinkan dari semua orang Aktifkan pengirim tertutup untuk pesan masuk dari non-kontak dan orang yang tidak Anda beri profil. Pelajari lebih lanjut + @@ -1646,7 +1652,6 @@ Menerima pesan pertukaran kunci untuk versi protokol yang tidak valid. Buat PIN baru Anda dapat mengganti PIN Anda selama perangkat ini terdaftar. Buat PIN Anda - PIN menjaga informasi yang disimpan di Signal terenkripsi sehingga hanya Anda yang dapat mengaksesnya. Profil, pengaturan, dan kontak akan dipulihkan saat Anda memasang ulang Signal. Buat PIN yang lebih kuah PIN tidak cocok. Coba lagi. @@ -1658,13 +1663,13 @@ Menerima pesan pertukaran kunci untuk versi protokol yang tidak valid. Membuat PIN… Memperkenalkan PIN - PIN menjaga informasi yang disimpan di Signal terenkripsi sehingga hanya Anda yang dapat mengaksesnya. Profil, pengaturan, dan kontak akan dipulihkan saat Anda memasang ulang Signal. Pelajari Lebih Lanjut Kunci Pendaftaran = PIN Kunci Pendaftaran Anda sekarang bernama PIN, dan ia melakukan hal lebih. Perbarui sekarang. Baca lebih lanjut mengenai PIN. Perbarui PIN Buat PIN Anda + Pelajari lebih lanjut tentang PIN Masukkan PIN Signal Anda Untuk membantu Anda mengingat PIN, kami akan meminta Anda untuk memasukkannya secara berkala. Kami akan memintanya lebih jarang dari waktu ke waktu. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2933aec4a..95877bd52 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -44,6 +44,10 @@ Blocco schermo %1$s, Sicurezza schermo %2$s Blocco schermo %1$s Tema %1$s, Lingua %2$s + I PIN sono richiesti per il blocco registrazione. Per disabilitare i PIN, disabilita prima il blocco registrazione. + Impossibile disabilitare i PIN. Riprova più tardi. + Pin creato. + Pin disabilitato. %d minuto @@ -174,6 +178,7 @@   Scarica altro   In attesa Questo messaggio è stato eliminato. + Hai eliminato questo messaggio. Resettare la sessione sicura? Questo potrebbe aiutare se stai avendo problemi di crittografia in questa conversazione. I tuoi messaggi verranno conservati. @@ -273,6 +278,7 @@ Eliminazione messaggi… Elimina per me Elimina per tutti + Questo messaggio verrà eliminato definitivamente per tutti nella conversazione. I membri potranno vedere che hai eliminato un messaggio. Messaggio originale non trovato Messaggio originale non più disponibile Apertura messaggio fallita @@ -630,6 +636,7 @@ Hai ricevuto un messaggio criptato usando una vecchia versione di Signal che non è più supportata. Per favore chiedi al mittente di aggiornare alla versione più recente e di inviare nuovamente il messaggio. Hai lasciato il gruppo. Hai aggiornato il gruppo. + Il gruppo è stato aggiornato. Hai chiamato Contatto chiamato Chiamata persa @@ -642,6 +649,7 @@ %1$s ha disabilitato i messaggi a scomparsa. Hai impostato il timer dei messaggi a scomparsa a %1$s. %1$s ha impostato il timer dei messaggi a scomparsa a %2$s. + Il timer dei messaggi a scomparsa è stato impostato a %1$s. Hai creato il gruppo. Gruppo aggiornato. @@ -657,6 +665,8 @@ %1$s ti ha rimosso dal gruppo. Hai abbandonato il gruppo. %1$s ha abbandonato il gruppo. + Non sei più nel gruppo. + %1$s non è più nel gruppo. Hai reso %1$s un amministratore. %1$s ha reso %2$s un amministratore. @@ -664,6 +674,10 @@ Hai revocato i privilegi di amministrazione da %1$s. %1$s ha revocato i tuoi privilegi di amministrazione.\" %1$s ha revocato i privilegi di amministrazione da %2$s. + %1$s è ora un amministratore. + Ora sei un amministratore. + %1$s non è più un amministratore. + Non sei più un amministratore. Hai invitato %1$s al gruppo. %1$s ti ha invitato al gruppo. @@ -671,6 +685,11 @@ %1$s ha invitato 1 persona al gruppo. %1$s ha invitato %2$d persone al gruppo. + Sei stato invitato al gruppo. + + 1 persona è stata invitata ad entrare nel gruppo. + %1$d persone sono state invitate ad entrare nel gruppo. + Hai revocato un invito al gruppo. @@ -682,6 +701,11 @@ Qualcuno ha rifiutato un invito al gruppo. Hai rifiutato l\'invito al gruppo. + Il tuo invito al gruppo è stato revocato. + + Un invito al gruppo è stato revocato. + %1$d inviti al gruppo sono stati revocati. + Hai accettato l\'invito al gruppo. %1$s ha accettato un invito al gruppo. @@ -690,15 +714,19 @@ Hai cambiato il nome del gruppo in \"%1$s\". %1$s ha cambiato il nome del gruppo in \"%2$s\". + Il nome del gruppo è stato cambiato in \"%1$s\". Hai cambiato l\'avatar del gruppo. %1$s ha cambiato l\'avatar del gruppo. + L\'avatar del gruppo è stato cambiato. Hai cambiato chi può modificare le informazioni del gruppo in \"%1$s\". %1$s ha cambiato chi può modificare le informazioni del gruppo in \"%2$s\". + Chi può modificare le informazioni del gruppo è stato cambiato in \"%1$s\". Hai cambiato chi può modificare l\'appartenenza al gruppo in \"%1$s\". %1$s ha cambiato chi può modificare l\'appartenenza al gruppo in \"%2$s\". + Chi può modificare l\'appartenenza al gruppo è stato cambiato in \"%1$s\". Il tuo codice di sicurezza con %s è cambiato. Hai segnato il codice di sicurezza con %s come verificato @@ -792,6 +820,13 @@ Crea il tuo PIN Hai esaurito i tentativi del PIN, ma puoi comunque accedere al tuo account Signal creando un nuovo PIN. Per la tua privacy e sicurezza il tuo account verrà ripristinato senza alcuna informazione o impostazione del profilo salvata. Crea nuovo PIN + + Attenzione + + + + Disabilitare il PIN creerà un PIN nascosto ad alta entropia associato al tuo account che è irrecuperabile. Quando ti registri nuovamente con Signal, perderai tutti i dati a meno che tu non esegua manualmente il backup e il ripristino. Non è possibile attivare il Blocco registrazione mentre il PIN è disabilitato. + Disabilita PIN Vota questa app! Se quest\'applicazione ti piace, ti preghiamo di aiutarci votandola. @@ -909,6 +944,7 @@ Te lo ricorderemo di nuovo tra qualche giorno. Te lo ricorderemo di nuovo tra una settimana. Te lo ricorderemo di nuovo tra un paio di settimane. + Te lo ricorderemo di nuovo tra un mese. Immagini Adesivo @@ -977,6 +1013,7 @@ Video visualizzabile una volta Media visualizzabile una volta Questo messaggio è stato eliminato. + Hai eliminato questo messaggio. %s è su Signal! Messaggi a scomparsa disabilitati Tempo di scomparsa dei messaggi impostato a %s @@ -1065,6 +1102,7 @@ Eliminare il messaggio? Questo messaggio verrà eliminato definitivamente. %1$s a %2$s + Media non più disponibile. %1$d nuovi messaggi in %2$d conversazioni Il più recente da: %1$s @@ -1208,6 +1246,7 @@ \"%1$s\" non è un utente Signal. Controlla il nome utente e riprova. Ok Il gruppo è pieno + Non è necessario aggiungere te stesso al gruppo Nessun contatto bloccato @@ -1576,10 +1615,15 @@ Scuro Aspetto Tema + Disabilita PIN + Abilita PIN + Disabilitare il PIN creerà un PIN nascosto ad alta entropia associato al tuo account che è irrecuperabile. Quando ti registri nuovamente con Signal, perderai tutti i dati a meno che tu non esegua manualmente il backup e il ripristino. Non è possibile attivare il Blocco registrazione mentre il PIN è disabilitato. + I PIN mantengono le informazioni memorizzate con Signal crittografate in modo che solo tu possa accedervi. Il profilo, le impostazioni e i contatti verranno ripristinati quando reinstalli. Non avrai bisogno del tuo PIN per aprire l\'app. Predefinito di sistema Predefinito Lingua Messaggi e chiamate Signal + Impostazioni PIN avanzate Messaggi e chiamate private e gratuite verso gli utenti Signal Invia log di debug Modalità di compatibilità \'WiFi Calling\' @@ -1626,6 +1670,7 @@ Permetti da chiunque Abilita il mittente sigillato per i messaggi in arrivo da non-contatti e persone con cui non hai condiviso il tuo profilo. Scopri di più + @@ -1783,7 +1828,7 @@ Crea un nuovo PIN Puoi cambiare il tuo PIN finché questo dispositivo è registrato. Crea il tuo PIN - I PIN mantengono le informazioni memorizzate con Signal crittografate in modo che solo tu possa accedervi. Il profilo, le impostazioni e i contatti verranno ripristinati quando reinstalli Signal. + I PIN mantengono le informazioni memorizzate con Signal crittografate in modo che solo tu possa accedervi. Il profilo, le impostazioni e i contatti verranno ripristinati quando reinstalli. Non avrai bisogno del tuo PIN per aprire l\'app. Scegli un PIN più complesso I PIN non corrispondono. Riprova. @@ -1795,13 +1840,15 @@ Creazione PIN… Ti presentiamo i PIN - I PIN mantengono le informazioni memorizzate con Signal crittografate in modo che solo tu possa accedervi. Il profilo, le impostazioni e i contatti verranno ripristinati quando reinstalli Signal. + I PIN mantengono le informazioni memorizzate con Signal crittografate in modo che solo tu possa accedervi. Il profilo, le impostazioni e i contatti verranno ripristinati quando reinstalli. Non avrai bisogno del tuo PIN per aprire l\'app. Scopri di più Blocco registrazione = PIN Il tuo blocco registrazione ora è chiamato PIN e fa di più. Aggiornalo ora. Scopri di più sui PIN. Aggiorna PIN Crea il tuo PIN + Scopri di più sui PIN + Inserisci il tuo PIN di Signal Per aiutarti a memorizzare il tuo PIN, ti chiederemo di inserirlo periodicamente. Lo chiederemo di meno nel corso del tempo. diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index cd1f4c863..ca8fa7756 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -180,6 +180,7 @@   הורד עוד   ממתין הודעה זו נמחקה. + מחקת הודעה זו. לאפס שיח מאובטח? זה יעזור אם יש לך חווה בעיות הצפנה בשיחה זו. ההודעות שלך יישמרו. @@ -293,6 +294,7 @@ מוחק הודעות… מחק עבורי מחק עבור כולם + הודעה זו תימחק לצמיתות עבור כל אחד שנמצא בשיחה. חברי קבוצה יוכלו לראות שמחקת הודעה. הודעה מקורית לא נמצאה הודעה מקורית כבר אינה זמינה נכשל בפתיחת הודעה @@ -688,6 +690,7 @@ הודעה מוצפנת התקבלה ע״י שימוש בגרסה ישנה של Signal שאינה נתמכת יותר. אנא בקש מהשולח לעדכן אל הגרסה העדכנית ביותר ולשלוח מחדש את ההודעה. עזבת את הקבוצה. עדכנת את הקבוצה. + הקבוצה עודכנה. התקשרת איש קשר התקשר שיחה שלא נענתה @@ -700,6 +703,7 @@ %1$s השבית הודעות נעלמות. הִגְדַּרְתָּ את קוצב הזמן של ההודעות הנעלמות אל %1$s. %1$sהגדיר את קוצב הזמן של ההודעות הנעלמות אל %2$s. + קוצב הזמן של ההודעות הנעלמות הוגדר אל %1$s. יצרת את הקבוצה. קבוצה עודכנה. @@ -715,6 +719,8 @@ %1$s הסיר אותך מהקבוצה. עזבת את הקבוצה. %1$s עזב את הקבוצה. + אתה לא נמצא יותר בקבוצה. + %1$s לא נמצא יותר בקבוצה. עשית את %1$s מנהלן. %1$s עשה את %2$s מנהלן. @@ -722,6 +728,10 @@ שללת זכויות מינהל מן %1$s. %1$s שלל את זכויות המינהל שלך. %1$s שלל זכויות מינהל מן %2$s. + %1$s מנהלן כעת. + אתה מנהלן כעת. + %1$s אינו מנהלן יותר. + אינך מנהלן יותר. הזמנת את %1$s אל הקבוצה. %1$s הזמין אותך אל הקבוצה. @@ -731,6 +741,13 @@ %1$s הזמין %2$d אנשים אל הקבוצה. %1$s הזמין %2$d אנשים אל הקבוצה. + הוזמנת אל הקבוצה. + + איש 1 הוזמן אל הקבוצה. + %1$d אנשים הוזמנו אל הקבוצה. + %1$d אנשים הוזמנו אל הקבוצה. + %1$d אנשים הוזמנו אל הקבוצה. + שללת הזמנה אל הקבוצה. @@ -746,6 +763,13 @@ מישהו דחה הזמנה אל הקבוצה. סירבת אל ההזמנה אל הקבוצה. + ההזמנה שלך אל הקבוצה נשללה. + + הזמנה אל הקבוצה נשללה. + %1$d הזמנות אל הקבוצה נשללו. + %1$d הזמנות אל הקבוצה נשללו. + %1$d הזמנות אל הקבוצה נשללו. + הסכמת אל ההזמנה אל הקבוצה. %1$s הסכים אל הזמנה אל הקבוצה. @@ -754,15 +778,19 @@ שינית את שם הקבוצה אל \"%1$s\". %1$s שינה את שם הקבוצה אל \"%2$s\". + שם הקבוצה השתנה אל \"%1$s\". שינית את יצגן הקבוצה. %1$s שינה את יצגן הקבוצה. + יצגן הקבוצה השתנה. שינית מי יכול לערוך מידע קבוצה אל \"%1$s\". %1$s שינה מי יכול לערוך מידע קבוצה אל \"%2$s\". + מי יכול לערוך מידע קבוצה השתנה אל \"%1$s\". שינית מי יכול לערוך חברות קבוצה אל \"%1$s\". %1$s שינה מי יכול לערוך חברות קבוצה אל \"%2$s\". + מי יכול לערוך חברות קבוצה השתנה אל \"%1$s\". מספר הביטחון שלך עם %s השתנה. סימנת את מספר הביטחון שלך עם %s כמוודא @@ -864,6 +892,8 @@ צור את ה־PIN שלך ניחושי PIN אזלו לך, אבל אתה עדין יכול להשיג גישה אל חשבון Signal שלך ע״י יצירת PIN חדש. למען פרטיותך ואבטחתך, חשבונך ישוחזר בלי מידע פרופיל שמור כלשהו או הגדרות שמורות כלשהן. צור PIN חדש + + אזהרה דרג יישום זה אם אתה נהנה להשתמש ביישום זה, אנא הקדש רגע כדי לעזור לנו ע״י דירוג שלו. @@ -983,6 +1013,7 @@ נזכיר לך שוב עוד מספר ימים. נזכיר לך שוב עוד שבוע. נזכיר לך שוב עוד שבועיים. + נזכיר לך שוב עוד חודש. תמונה מדבקה @@ -1051,6 +1082,7 @@ סרטון לצפייה חד־פעמית מדיה לצפייה חד־פעמית הודעה זו נמחקה. + מחקת הודעה זו. %s נמצא ב־Signal! הודעות נעלמות הושבתו זמן הודעות נעלמות הוגדר אל %s @@ -1284,6 +1316,7 @@ \"%1$s\" הוא לא משתמש Signal. אנא בדוק את שם המשתמש ונסה שוב. בסדר הקבוצה מלאה + אתה לא צריך להוסיף את עצמך אל הקבוצה אין אנשי קשר חסומים @@ -1720,6 +1753,7 @@ התר מכל אחד אפשר שולח אטום עבור הודעות נכנסות מאת אי־אנשי קשר ומאת אנשים איתם לא שיתפת את הפרופיל שלך. למד עוד + @@ -1883,7 +1917,6 @@ צור PIN חדש אתה יכול לשנות את ה־PIN שלך כל עוד מכשיר זה רשום. צור את ה־PIN שלך - קודי PIN שומרים על מידע מאוחסן עם Signal מוצפן כך שרק אתה יכול להשיג גישה אליו. הפרופיל, ההגדרות ואנשי הקשר שלך ישוחזרו כשתתקין מחדש את Signal. בחר PIN חזק יותר קודי PIN אינם תואמים. נסה שוב. @@ -1895,13 +1928,13 @@ יוצר PIN… היכרות עם PIN - קודי PIN שומרים על מידע מאוחסן עם Signal מוצפן כך שרק אתה יכול להשיג גישה אליו. הפרופיל, ההגדרות ואנשי הקשר שלך ישוחזרו כשתתקין מחדש את Signal. למד עוד נעילת הרשמה = PIN נעילת ההרשמה שלך נקראת כעת PIN, והיא עושה יותר. עדכן אותה כעת. למד עוד על PIN. עדכן PIN צור את ה־PIN שלך + למד עוד אודות קודי PIN הכנס את ה־PIN של Signal שלך כדי לעזור לך לשנן את ה־PIN שלך, נבקש ממך להכניס אותו מעת לעת. נבקש ממך פחות עם הזמן. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f3c1f5475..2a4b3fee5 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -42,6 +42,10 @@ 画面ロック %1$s、登録ロック %2$s 画面ロック %1$s テーマ %1$s、言語 %2$s + 登録ロックを使うにはPINが必要です。PINを無効にする前に登録ロックを無効にしてください。 + PINを無効にできませんでした。もう一度試してみてください。 + PIN を作成しました。 + PINを無効にしました。 %d 分 @@ -171,6 +175,7 @@   更にダウンロード   保留中 このメッセージは削除されました。 + このメッセージはあなたが削除しました。 セキュアセッションをリセットしますか? この会話の暗号化に問題がある場合、改善される可能性があります。メッセージは削除されません。 @@ -263,6 +268,7 @@ メッセージを削除しています… 自分の分だけ削除 全員分を削除 + このメッセージを参加者全員の会話から削除します。参加者からは、あなたがメッセージを削除したことがわかります。 元のメッセージが見つかりません 元のメッセージはすでに削除されています メッセージを開けませんでした @@ -601,6 +607,7 @@ もはやサポートされていない旧バージョンの Signal で暗号化されたメッセージを受信しました。送信者に Signal を最新バージョンにアップデートして再送するよう依頼してください。 グループを抜けました。 グループを更新しました。 + グループが更新されました。 あなたからの発信 連絡先からの発信 不在着信 @@ -613,6 +620,7 @@ %1$s が消えるメッセージを無効にしました。 消えるメッセージのタイマーを%1$sに設定しました。 %1$s が消えるメッセージのタイマーを%2$sに設定しました。 + 消えるメッセージの時間が%1$sに設定されました。 グループを作成しました。 グループをアップデートしました。 @@ -628,6 +636,8 @@ %1$s はあなたをこのグループから削除しました。 グループを退会しました。 %1$s はグループを去りました。 + グループのメンバーから外れました。 + %1$s はグループのメンバーから外れました。    %1$s を管理者にしました。 %1$s は %2$s を管理者にしました。 @@ -635,21 +645,33 @@ %1$s から管理者特権を無効にしました。 %1$s はあなたの管理者特権を無効にしました。\" %1$s は %2$s からの管理者特権を無効にしました。 + %1$s は管理者になりました。 + あなたは現在管理者です。 + %1$s は管理者ではなくなりました。 + 管理者ではなくなりました。 %1$s をこのグループに招待しました。 %1$s はあなたをグループに招待しました。 %1$s は%2$d人をグループに招待しました + グループに招待されました。 + + このグループに%1$d人が招待されました。 + - %1$d件のこのグループの招待を無効にしました。 + このグループへの招待のうち%1$d件を無効にしました。 - %1$s は%2$d件のこのグループの招待を無効にしました。 + %1$s がこのグループへの招待のうち%2$d件を無効にしました。 誰かがこのグループの招待を断りました。 このグループの招待を断りました。 + あなたのグループへの招待は無効にされました。 + + このグループへの招待のうち%1$d件が無効になりました。 + このグループの招待を承認しました。 %1$s はグループの招待を承認しました。 @@ -658,15 +680,19 @@ このグループ名を「%1$s」に変更しました。 %1$s はグループ名を「%2$s」に変更しました。 + このグループ名は「%1$s」に変更されました。 グループアバターを更新しました。 %1$s はグループアバターを更新しました。 + グループの画像が変更されました。 - あなたは「%1$s」がグループ情報を編集できるよう変更しました。 - 「%2$s」がグループ情報を編集できるよう、%1$sが変更しました。 + グループ情報を編集できるユーザーの設定を「%1$s」に自分で変更しました。 + グループ情報を編集できるユーザーの設定を %1$s が「%2$s」に変更しました。 + グループ情報を編集できるユーザーの設定が「%1$s」に変更されました。 - あなたは「%1$s」がグループのメンバーを編集できるよう変更しました。 - 「%2$s」がグループのメンバーを編集できるよう、%1$sが変更しました。 + グループ情報を編集できるユーザーの設定を「%1$s」に自分で変更しました。 + グループ情報を編集できるユーザーの設定を %1$s が「%2$s」に変更しました。 + グループ情報を編集できるユーザーの設定が「%1$s」に変更されました。 %s に対する安全番号が変わりました。 %s に対する安全番号を確認済みにしました @@ -755,6 +781,13 @@ PIN を作成 PIN の試行回数が尽きましたが、新しい PIN を作成することによりまだ Signal アカウントにアクセスすることができます。プライバシーとセキュリティーのためにアカウントに保存されたプロフィール情報または設定は戻されません。 新しい PIN を作成 + + ご注意ください + + + + PINを無効にすると、代わりに複雑なPINが自動生成されてアカウントに紐づけられます。このPINをあとで取り出すことはできません。自分でデータをバックアップしていない場合、Signalを再登録するとすべてのデータが失われて復元できなくなります。また、PINが無効になっていると登録ロックも使えません。 + PINを無効化 アプリを評価 このアプリが気に入ったら、評価アンケートへのご協力をお願いします。 @@ -865,6 +898,7 @@ 数日後に再度お知らせします。 1週間後に再度お知らせします。 2週間後に再度お知らせします。 + 1ヶ月後に再度お知らせします。 画像 ステッカー @@ -929,6 +963,7 @@ 消える動画 消えるメディア このメッセージが削除されました。 + このメッセージはあなたが削除しました。 %s が Signal に登録しました! 消えるメッセージが無効にされました 消えるメッセージのタイマーが %s に設定されました @@ -1017,6 +1052,7 @@ メッセージを削除しますか? このメッセージは完全に削除されます。 %1$s から %2$s + メディアが存在しません。 %2$d 個の会話に %1$d 件の新着メッセージ 最新の受信: %1$s @@ -1159,6 +1195,7 @@ 「%1$s」は Signal ユーザではありません。ユーザ名を確認してからもう一度お試しください。 OK このグループはいっぱいです + 自分自身をグループに追加する必要はありません ブロックしている連絡先はありません @@ -1518,10 +1555,15 @@ 暗い デザイン テーマ + PINを無効化 + PINを有効化 + PINを無効にすると、代わりに複雑なPINが自動生成されてアカウントに紐づけられます。このPINをあとで取り出すことはできません。自分でデータをバックアップしていない場合、Signalを再登録するとすべてのデータが失われて復元できなくなります。また、PINが無効になっていると登録ロックも使えません。 + PINは Signal 上に保管されている情報を暗号化するのに使われます。これによって、あなた以外の誰もその情報にアクセスできないようにしています。PINを使うことで、Signal を再インストールしたときにあなたのプロフィール、設定、連絡先の情報が復元されます。アプリを利用するときにPINを入力する必要はありません。 システム既定 既定 言語 Signal のメッセージと通話 + PINの詳細設定 Signal ユーザーは無料でプライベートメッセージと通話をご利用いただけます デバッグログを提出 Wi-Fi 通話互換モード @@ -1568,6 +1610,7 @@ 全員を許可する あなたのプロフィールを共有しておらず、連絡先にもないユーザーからのメッセージ受信において、送信者の秘匿化を有効にします。 詳しく見る + @@ -1722,7 +1765,7 @@ 新しい PIN を作成 このデバイスが登録されている間は PIN を変更することができます。 PIN を作成 - PIN を使用してあなたの情報をあなただけがアクセス可能な形で暗号化して保存できます。PIN を使用すると Signal をインストールし直した際、あなたのプロフィール・設定・連絡先を復元することができます。 + PINは Signal 上に保管されている情報を暗号化するのに使われます。これによって、あなた以外の誰もその情報にアクセスできないようにしています。PINを使うことで、Signal を再インストールしたときにあなたのプロフィール、設定、連絡先の情報が復元されます。アプリを利用するときにPINを入力する必要はありません。 強固なPINを選択 PIN が一致しません。再度試してください。 @@ -1734,13 +1777,15 @@ PIN を作成しています… PIN のご紹介 - PIN はあなたの情報を暗号化された状態で保管され、あなただけがアクセスすることができます。Signal を再インストールした時、あなたのプロフィール、設定、連絡先は復元されます。 + PINは Signal 上に保管されている情報を暗号化するのに使われます。これによって、あなた以外の誰もその情報にアクセスできないようにしています。PINを使うことで、Signal を再インストールしたときにあなたのプロフィール、設定、連絡先の情報が復元されます。アプリを利用するときにPINを入力する必要はありません。 詳細を見る 登録ロック = PIN 登録ロックは今後 PIN と呼ばれ、より多機能になります。今すぐアップデートしてください。 PIN の詳細を読む。 PIN をアップデート PIN を作成 + PINに関する詳細情報 + Signal の PIN を入力 PIN を覚えていただけるように、定期的に入力していただくようお願いします。頻度は次第に減っていきます。 diff --git a/app/src/main/res/values-jv/strings.xml b/app/src/main/res/values-jv/strings.xml index c6d0b7425..8d6adccd0 100644 --- a/app/src/main/res/values-jv/strings.xml +++ b/app/src/main/res/values-jv/strings.xml @@ -153,6 +153,7 @@   Unduh Bentenipun   Ketundha Pesen niki sampun dibrusak + Sampeyan sampun mbrusak pesen niki. Atur malih sesi aman? Tumindak niki bakal mbiantu menawi sampeyan gadhah masalah enkripsi ing obrolan niki. Pesen sampeyan bakal disimpen. @@ -237,6 +238,7 @@ SMS Taksih mbrusaki Taksih mbrusaki pesen… + Pesen niki bakal dibrusak kangge piyambak sedaya ing obrolan niki sacara permanen Anggota sedaya bakal saged ningali menawi sampeyan mbrusaki pesen. Pesen asli mboten saged kepanggih Pesen asli sampun mboten enten malih Gagal mbikak pesen @@ -514,8 +516,11 @@ %1$s nembe mlebet ing grup. + Sakmenika sampeyan ngrupikaken admin. + Sampeyan diajak mlebet grup. + Ajakan mlebet grup kangge sampeyan disandekaken. @@ -590,6 +595,7 @@ Lebetaken PIN wilangan Damel PIN sampeyan + Sukani peringkat kangge aplikasi niki Menawi sampeyan remen ngangge aplikasi niki, nyuwun tulung sampeyan sukani peringkat. @@ -745,6 +751,7 @@ Video ingkang saged ditingali pisan mawon Media ingkang saged ditingali pisan mawon Pesen niki sampun dibrusak + Sampeyan sampun mbrusak pesen niki. Enten %s ing Signal! Pesen ngical dipunnonaktifaken Wekdal supados pesen ngical dipuntetapaken dados %s @@ -1329,6 +1336,7 @@ Ngizinaken saking sinten mawon Aktifaken pangirim ingkang dipunsegel kangge pesen ingkang dipunkirimaken saking non-kontak lan tiyang benten ingkang mboten saged ningali profil sampeyan. Sapepakipun + @@ -1472,7 +1480,6 @@ Damel PIN ingkang enggal Sampeyan saged nggantos PIN mewani pirantos niki taksih didaftaraken. Damel PIN sampeyan - PIN njagi supados informasi disimpen kangge enkripsi Signal, dados sampeyan mawon ingkang saged ngakses. Profil, panatanan, lan kontak bakal dipulihaken kala sampeyan masangaken Signal malih. Pileh PIN ingkang luwih kuwat PIN mboten gathuk. Cobi malih. @@ -1483,12 +1490,12 @@ Ndamel PIN… Nepangaken PIN - PIN njagi supados informasi disimpen kangge enkripsi Signal, dados sampeyan mawon ingkang saged ngakses. Profil, panatanan, lan kontak bakal dipulihaken kala sampeyan masangaken Signal malih. Sapepakipun Kunci Pendaftaran = PIN Sapepakipun babagan PIN. Enggalaken PIN Damel PIN sampeyan + Sakpepakipun babagan PIN Lebetaken PIN Signal sampeyan Kangge mbiantu sampeyan ngeling-eling PIN kasebut, kala-kala Signal bakal nedhakaken supados sampeyan nglebetaken PIN kasebut. Tambah dangu, tumindak niki bakal tambah sekedhik. diff --git a/app/src/main/res/values-km/strings.xml b/app/src/main/res/values-km/strings.xml index dfed00a16..7c976a9b5 100644 --- a/app/src/main/res/values-km/strings.xml +++ b/app/src/main/res/values-km/strings.xml @@ -169,6 +169,7 @@   ទាញយកបន្ថែម   កំពុងរង់ចាំ សារនេះត្រូវបានលុប។ + អ្នកបានលុបសារនេះ។ កំណត់ការប្រើប្រាស់សុវត្ថិភាពឡើងវិញ? នេះប្រហែលអាចជួយបាន បើអ្នកមានបញ្ហាកាណាល់កូដក្នុងការសន្ទនានេះ។ សាររបស់អ្នកនឹងត្រូវរក្សាទុក។ @@ -261,6 +262,7 @@ កំពុងលុបសារ… លុបសម្រាប់ខ្ញុំ លុបសម្រាប់ទាំងអស់គ្នា + សារនេះ នឹងត្រូវលុបចោលរហូតសម្រាប់អ្នកទាំងអស់គ្នាក្នុងការសន្ទនានេះ។ សមាជិក នឹងអាចមើលឃើញ អ្នកបានលុបសារនេះ។ រកមិនឃើញសារដើម សារដើមលែងមានទៀតហើយ បរាជ័យក្នុងការបើកសារ @@ -633,12 +635,14 @@ អ្នកបានដកសិទ្ធិអ្នកគ្រប់គ្រងពី %1$s។ %1$s បានដកសិទ្ធិអ្នកគ្រប់គ្រងរបស់អ្នក។\" %1$s បានដកសិទ្ធិអ្នកគ្រប់គ្រងពី %2$s។ + ឥឡូវអ្នកជាអ្នកគ្រប់គ្រង។ អ្នកបានអញ្ជើញ %1$s ទៅក្រុមនេះ។ %1$s បានអញ្ជើញអ្នកទៅក្រុមនេះ។ %1$s បានអញ្ជើញមនុស្ស%2$d នាក់ទៅក្រុមនេះ។ + អ្នកត្រូវបានអញ្ជើញទៅក្រុម។ អ្នកបានដកការអញ្ជើញ %1$d ពីក្រុមនេះ។ @@ -648,6 +652,7 @@ មានគេបានបដិសេធការអញ្ជើញទៅក្រុម។ អ្នកបានបដិសេធការអញ្ជើញទៅក្រុមនេះ។ + ការអញ្ជើញចូលក្រុមរបស់អ្នកត្រូវបានដកហូត។ អ្នកបានយល់ព្រមការអញ្ជើញទៅក្រុមនេះ។ %1$s បានយល់ព្រមការអញ្ជើញទៅក្រុមនេះ។ @@ -753,6 +758,7 @@ បង្កើតលេខ PIN របស់អ្នក អ្នកបានប្រើការទាយលេខ PIN អស់ហើយ តែអ្នកនៅតែអាចចូលប្រើប្រាស់គណនី Signal ដោយបង្កើតលេខកូដ PIN ថ្មី។ សម្រាប់ឯកជនភាព និងសុវត្ថិភាពគណនីរបស់អ្នក នឹងត្រូវស្តារឡើងវិញ ដោយមិនមានការរក្សាទុកព័ត៌មានប្រវត្តិរូប និងការកំណត់ឡើយ។ បង្កើតលេខ PIN ថ្មី + ដាក់ពិន្ទុកម្មវិធីនេះ បើអ្នកចូលចិត្តប្រើប្រាស់កម្មវិធីនេះ សូមចំណាយពេលបន្តិច ដើម្បីជួយដាក់ពិន្ទុផង។ @@ -932,6 +938,7 @@ បង្ហាញ-ម្តង វីដេអូ បង្ហាញ-ម្តង មេឌា សារនេះត្រូវបានលុប។ + អ្នកបានលុបសារនេះ។ %s ប្រើ Signal!​ សារបាត់ទៅវិញបានបិទ កំណត់រយៈពេលលុបសារ %s @@ -1565,6 +1572,7 @@ អនុញ្ញាតពីនរណាម្នាក់ បើក ត្រាអ្នកផ្ញើសម្រាប់សារទទួលបានពីអ្នកក្រៅបញ្ជីទំនាក់ទំនង និងមនុស្សដែលអ្នកមិនបានចែករំលែកទម្រង់របស់អ្នក។ សិក្សាបន្ថែម + @@ -1719,7 +1727,6 @@ បង្កើតលេខ PIN ថ្មី អ្នកអាចប្តូរលេខ PIN របស់អ្នក លុះត្រាឧបករណ៍នេះត្រូវបានចុះឈ្មោះ។ បង្កើតលេខ PIN របស់អ្នក - លេខ PIN រក្សាទុកព័ត៌មានដែលផ្ទុកជាមួយ Signalដែលបានអ៊ិនគ្រីប​ដូច្នេះមានតែអ្នកប៉ុណ្ណោះដែលអាចចូលប្រើវាបាន។ ប្រវត្តិរូប ការកំណត់ និងទំនាក់ទំនងរបស់អ្នក នឹងស្តារឡើងវិញនៅពេលដែលអ្នកតំឡើង Signal ឡើងវិញ។ ជ្រើសរើសលេខ PIN ខ្លាំងជាងនេះ PINs មិនត្រូវគ្នា។ សាកល្បងម្តងទៀត។ @@ -1731,13 +1738,13 @@ កំពុងបង្កើត PIN… ការណែនាំ លេខPINs - លេខ PIN រក្សាទុកព័ត៌មានដែលផ្ទុកជាមួយ Signalដែលបានអ៊ិនគ្រីប​ដូច្នេះមានតែអ្នកប៉ុណ្ណោះដែលអាចចូលប្រើវាបាន។ ប្រវត្តិរូប ការកំណត់ និងទំនាក់ទំនងរបស់អ្នក នឹងស្តារឡើងវិញនៅពេលដែលអ្នកតំឡើង Signal ឡើងវិញ។ ស្វែងយល់បន្ថែម ចាក់សោរការចុះឈ្មោះ = លេខ PIN ការចាក់សោរការចុះឈ្មោះរបស់អ្នក ឥឡូវត្រូវបានហៅថា លេខកូដ PIN និងវាមានមុខងារច្រើន។ ធ្វើបច្ចុប្បន្នភាពវាឥឡូវនេះ។ អានបន្ថែមអំពីលេខកូដ PINs។ បច្ចុប្បន្នភាពកូដ PIN បង្កើតលេខ PIN របស់អ្នក + ស្វែងយល់បន្ថែមពី លេខ PINs បញ្ចូលលេខ Signal PIN របស់អ្នក ដើម្បីជួយអ្នកចងចាំលេខកូដ PIN របស់អ្នក យើងនឹងសាកសួរអ្នកអោយបញ្ចូលវាម្តងម្កាល។ យើងនឹងសួរតិចជាងមុន។ diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml index c6415d4f1..651fea8ff 100644 --- a/app/src/main/res/values-kn/strings.xml +++ b/app/src/main/res/values-kn/strings.xml @@ -548,8 +548,11 @@ %1$s ಗುಂಪನ್ನು ಸೇರಿದ್ದಾರೆ + ನೀವು ಈಗ ಆಡ್ಮಿನ್ ಆಗಿದ್ದೀರಿ. + ನಿಮ್ಮನ್ನು ಗುಂಪಿಗೆ ಆಹ್ವಾನಿಸಲಾಗಿದೆ. + ಗುಂಪಿಗೆ ನಿಮ್ಮ ಆಹ್ವಾನವನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗಿದೆ. @@ -629,6 +632,7 @@ ಸಂಖ್ಯಾ ಪಿನ್ ನಮೂದಿಸಿ ನಿಮ್ಮ ಪಿನ್ ರಚಿಸಿ + ಈ ಆ್ಯಪ್ ಅನ್ನು ರೇಟ್ ಮಾಡಿ ನೀವು ಒಂದು ವೇಳೆ ಈ ಆ್ಯಪ್ ಬಳಸುವುದನ್ನು ಆನಂದಿಸುತ್ತಿದ್ದಲ್ಲಿ, ನಮಗೆ ಸಹಾಯ ಮಾಡಲು ಕೊಂಚ ಸಮಯ ತೆಗೆದುಕೊಂಡು ರೇಟಿಂಗ್ ಮಾಡಿ. @@ -1388,6 +1392,7 @@ ಯಾರಿಂದಲೂ ಅನುಮತಿಸಿ ಸಂಪರ್ಕಗಳಲ್ಲದವರು ಮತ್ತು ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು ನೀವು ಹಂಚಿಕೊಳ್ಳದ ಜನರಿಂದ ಒಳಬರುವ ಸಂದೇಶಗಳಿಗಾಗಿ ಸೀಲ್ಡ್ ಸೆಂಡರ್ ಸಕ್ರಿಯಗೊಳಿಸಿ. ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ + @@ -1540,7 +1545,6 @@ ಹೊಸ ಪಿನ್ ರಚಿಸಿ ಈ ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸಿರುವವರೆಗೆ ನಿಮ್ಮ ಪಿನ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬಹುದು. ನಿಮ್ಮ ಪಿನ್ ರಚಿಸಿ - ಪಿನ್‌ಗಳು Signal ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿಡುತ್ತವೆ ಆದ್ದರಿಂದ ನೀವು ಮಾತ್ರ ಅದನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ನೀವು Signal ಅನ್ನು ಪುನಃ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ ಪ್ರೊಫೈಲ್, ಸೆಟ್ಟಿಂಗ್‌‌ಗಳು ಮತ್ತು ಸಂಪರ್ಕಗಳು ಪುನಃಸ್ಥಾಪನೆಯಾಗುತ್ತವೆ. ಬಲವಾದ ಪಿನ್ ಆಯ್ಕೆಮಾಡಿ ಪಿನ್‌ಗಳು ಹೊಂದಿಕೆಯಾಗುತಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. @@ -1551,13 +1555,13 @@ ಪಿನ್ ರಚಿಸುತ್ತಿದೆ… ಪಿನ್‌ಗಳನ್ನು ಪರಿಚಯಿಸಲಾಗುತ್ತಿದೆ - ಪಿನ್‌ಗಳು Signal ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿಡುತ್ತವೆ ಆದ್ದರಿಂದ ನೀವು ಮಾತ್ರ ಅದನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ನೀವು Signal ಅನ್ನು ಪುನಃ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ ಪ್ರೊಫೈಲ್, ಸೆಟ್ಟಿಂಗ್‌‌ಗಳು ಮತ್ತು ಸಂಪರ್ಕಗಳು ಪುನಃಸ್ಥಾಪನೆಯಾಗುತ್ತವೆ. ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ ನೋಂದಣಿ ಲಾಕ್ = ಪಿನ್ ನಿಮ್ಮ ನೋಂದಣಿ ಲಾಕ್ ಅನ್ನು ಈಗ ಪಿನ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಮತ್ತು ಅದು ಹೆಚ್ಚಿನದನ್ನು ಮಾಡುತ್ತದೆ. ಇದೀಗ ಅದನ್ನು ನವೀಕರಿಸಿ. ಪಿನ್‌ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಓದಿ. ಪಿನ್ ನವೀಕರಿಸಿ ನಿಮ್ಮ ಪಿನ್ ರಚಿಸಿ + ಪಿನ್‌ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ. ನಿಮ್ಮ Signal ಪಿನ್ ಅನ್ನು ನಮೂದಿಸಿ ನಿಮ್ಮ ಪಿನ್ ನೆನಪಿನಲ್ಲಿ ಉಳಿಸಿಕೊಳ್ಳಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಇದನ್ನು ಆಗಾಗ್ಗೆ ನಮೂದಿಸುವಂತೆ ನಾವು ಕೇಳುತ್ತೇವೆ. ನಾವು ಸಮಯ ಸರಿದಂತೆ ಇದನ್ನು ಕಡಿಮೆ ಕೇಳುತ್ತೇವೆ. diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 554e50c67..c53acbdd3 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -163,6 +163,7 @@ 더 다운로드 대기 중 본 메세지는 삭제되었습니다.<br> + 이 메시지를 삭제했습니다. 보안 세션을 초기화하시겠습니까? 대화에서 암호화 문제가 발생할 경우 해당 기능이 도움이 될 수 있습니다. 메시지는 저장됩니다. @@ -250,6 +251,7 @@ SMS 삭제 중 메시지 삭제 중… + 이 메시지가 대화에 참가한 모든 이들에게서 삭제됩니다. 멤버는 내가 메시지를 삭제했다는 것을 볼 수 있습니다. 원본 메시지를 찾을 수 없음 원본 메시지를 더 이상 볼 수 없음 메시지 열기 실패 @@ -536,8 +538,11 @@ 당신은 그룹에서 떠났습니다. + 관리자가 되었습니다. + 그룹에 초대되었습니다. + 그룹 초대가 파기되었습니다. @@ -619,6 +624,7 @@ 숫자 번호 입력 번호 생성 + 앱 평가 앱이 마음에 들면 평가해 주세요. @@ -785,6 +791,7 @@ 한 번 볼 수 있는 동영상 한 번 볼 수 있는 미디어 본 메세지는 삭제되었습니다.<br> + 이 메시지를 삭제했습니다. %s 님이 온라인입니다! 사라지는 메시지 기능이 비활성화됨 사라지는 메시지 시간을 %s(으)로 설정했습니다. @@ -1378,6 +1385,7 @@ 모두에게 허용 연락처에 없는 사람과 프로필을 공유하지 않은 사람이 나에게 보내는 메시지에도 발신자 암호화를 허용합니다. 더 알아보기 + @@ -1528,7 +1536,6 @@ 새 번호 생성 기기가 등록된 동안은 PIN 번호를 언제든지 변경할 수 있습니다 내 번호 생성 - PIN 번호는 정보를 Signal에서 암호화하여 저장하므로 사용자만 액세스할 수 있습니다. 프로필, 설정과 연락처는 Signal을 다시 설치할 때 복원됩니다. 더 강력한 PIN 번호 선택 번호가 일치하지 않습니다. 다시 시도해 주세요. @@ -1539,13 +1546,13 @@ 번호 생성 중… 번호를 소개합니다. - PIN 번호는 정보를 Signal에서 암호화하여 저장하므로 사용자만 액세스할 수 있습니다. 프로필, 설정과 연락처는 Signal을 다시 설치할 때 복원됩니다. 더 알아보기 등록 잠금 = 번호 등록 잠금을 번호라 합니다. 하지만, 단순한 번호 그 이상입니다. 지금 업데이트하세요. 번호에 관해 더 알아보세요. 번호 업데이트 번호 생성 + PIN에 대해 더 알아보기 Signal 번호 입력 주기적으로 번호를 입력하면 외우는 데 도움이 됩니다. 가끔씩만 여쭤보겠습니다. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index bbe523bad..74d9359c3 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -180,6 +180,7 @@   Atsisiųsti daugiau   Laukiama Ši žinutė buvo ištrinta. + Jūs ištrynėte šią žinutę. Atstatyti saugųjį seansą? Tai gali padėti, jeigu turite problemų su šifravimu. Jūsų žinutės bus išsaugotos. @@ -293,6 +294,7 @@ Ištrinamos žinutės… Ištrinti man Ištrinti visiems + Ši žinutė šiame pokalbyje bus visam laikui ištrinta visiems žmonėms. Nariai galės matyti, kad ištrynėte žinutę. Pradinė žinutė nerasta Pradinė žinutė daugiau nebeprieinama Nepavyko atverti žinutės @@ -688,6 +690,7 @@ Gauta žinutė buvo užšifruota, naudojant seną Signal versiją, kuri daugiau nebepalaikoma. Paprašykite siuntėjo atnaujinti savo programėlę į naujausią versiją ir iš naujo išsiųsti žinutę. Jūs išėjote iš grupės. Jūs atnaujinote grupę. + Grupė buvo atnaujinta. Jūs skambinote Skambino adresatas Praleistas skambutis @@ -700,6 +703,7 @@ %1$s išjungė išnykstančias žinutes. Jūs nustatėte išnykstančių žinučių laikmatį į %1$s. %1$s nustatė išnykstančių žinučių laikmatį į %2$s. + Išnykstančių žinučių laikmatis nustatytas į %1$s. Jūs sukūrėte grupę. Grupė atnaujinta. @@ -715,6 +719,8 @@ %1$s pašalino jus iš grupės. Jūs išėjote iš grupės. %1$s išėjo iš grupės. + Jūs daugiau nebesate grupėje. + Naudotojo %1$s daugiau nebėra grupėje. Jūs paskyrėte %1$s administratoriumi. %1$s paskyrė %2$s administratoriumi. @@ -722,6 +728,10 @@ Jūs panaikinote %1$s turėtas administratoriaus teises. %1$s panaikino jūsų, kaip administratoriaus, teises. %1$s panaikino %2$s turėtas administratoriaus teises. + Dabar, %1$s yra administratorius + Dabar, esate administratorius. + %1$s daugiau nebėra administratorius. + Jūs daugiau nebesate administratorius. Jūs pakvietėte %1$s į grupę. %1$s pakvietė jus į grupę. @@ -731,6 +741,7 @@ %1$s pakvietė %2$d žmonių į grupę. %1$s pakvietė %2$d žmogų į grupę. + Jūs buvote pakviesti į grupę. Jūs panaikinote pakvietimą prisijungti prie grupės. @@ -746,6 +757,7 @@ Kažkas atmetė pakvietimą prisijungti prie grupės. Jūs atmetėte pakvietimą prisijungti prie grupės. + Jūsų pakvietimas prisijungti prie grupės buvo panaikintas. Jūs priėmėte pakvietimą prisijungti prie grupės. %1$s priėmė pakvietimą prisijungti prie grupės. @@ -754,9 +766,11 @@ Jūs pakeitėte grupės pavadinimą į \"%1$s\". %1$s pakeitė grupės pavadinimą į \"%2$s\". + Grupės pavadinimas pasikeitė į \"%1$s\". Jūs pakeitėte grupės avatarą. %1$s pakeitė grupės avatarą. + Grupės avataras pakeistas. Jūs pakeitėte asmenis, kurie gali keisti grupės informaciją į \"%1$s\". %1$s pakeitė asmenis, kurie gali keisti grupės informaciją į \"%2$s\". @@ -864,6 +878,8 @@ Susikurti PIN kodą Jums nebeliko PIN kodo spėjimų, bet vis dar galite gauti prieigą prie savo Signal paskyros, susikurdami naują PIN kodą. Siekiant apsaugoti jūsų privatumą, saugumo sumetimais jūsų paskyra bus atkurta be įrašytos profilio informacijos ir įrašytų nustatymų. Sukurti naują PIN kodą + + Įspėjimas Įvertinkite šią programėlę Jeigu jūs mėgaujatės naudodamiesi šia programėle, skirkite minutėlę mums padėti ir įvertinkite ją. @@ -983,6 +999,7 @@ Po kelių dienų priminsime jums dar kartą. Po savaitės priminsime jums dar kartą. Po kelių savaičių priminsime jums dar kartą. + Po mėnesio priminsime jums dar kartą. Paveikslas Lipdukas @@ -1051,6 +1068,7 @@ Vienkartinės peržiūros vaizdo įrašas Vienkartinės peržiūros medija Ši žinutė buvo ištrinta. + Jūs ištrynėte šią žinutę. %s atėjo į Signal! Išnykstančios žinutės išjungtos Išnykstančių žinučių laikas nustatytas į %s @@ -1720,6 +1738,7 @@ Leisti nuo bet ko Įjungti užantspauduotą siuntėją gaunamosioms žinutėms nuo asmenų, kurių nėra adresatų sąraše ir žmonių su kuriais nebendrinote savo profilį. Sužinoti daugiau + @@ -1883,7 +1902,6 @@ Sukurti naują PIN kodą Kol šis įrenginys yra registruotas, galite keisti savo PIN kodą. Susikurti PIN kodą - PIN kodai šifruotu pavidalu saugo informaciją, kuri yra laikoma Signal, taigi, tik jūs galite gauti prieigą prie jos. Jums įdiegus Signal iš naujo, jūsų profilis, nustatymai ir adresatai bus atkurti. Pasirinkite stipresnį PIN kodą PIN kodai nesutampa. Bandykite dar kartą. @@ -1895,13 +1913,13 @@ Kuriamas PIN kodas… Pristatome PIN kodus - PIN kodai šifruotu pavidalu saugo informaciją, kuri yra laikoma Signal, taigi, tik jūs galite gauti prieigą prie jos. Jums įdiegus Signal iš naujo, jūsų profilis, nustatymai ir adresatai bus atkurti. Sužinoti daugiau Registracijos užraktas = PIN kodas Dabar, registracijos užraktas yra vadinamas PIN kodu ir jis atlieka daugiau. Atnaujinkite jį dabar. Skaitykite daugiau apie PIN kodus. Atnaujinti PIN kodą Susikurti PIN kodą + Sužinokite daugiau apie PIN kodus Įveskite savo Signal PIN Tam, kad įsimintumėte savo PIN kodą, mes periodiškai prašysime jį įvesti. Bėgant laikui, mes tai darysime rečiau. diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index ebb6f69a1..645b237e7 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -173,6 +173,7 @@  Lejupielādēt vēl  Gaida Ziņojums ir izdzēsts. + Ziņa dzēsta. Atstatīt šifrēto sarakstes sesiju? Tas var palīdzēt, ja sarakstē saskaraties ar šifrēšanas problēmām. Jūsu ziņas tiks saglabātas. @@ -278,6 +279,7 @@ Tiek dzēstas ziņas… Dzēst tikai man Dzēst no visiem + Šī ziņa tiks dzēsta no visiem dalībniekiem. Dalībnieki var redzēt, ka jūs izdzēsāt ziņu. Oriģinālā ziņa netika atrasta Oriģinālā ziņa vairs nav pieejama Neizdevās atvērt ziņu @@ -629,12 +631,15 @@ Jūs atsaucāt %1$sadministratora tiesības. %1$satsauca Jūsu administratora tiesības.\" %1$satsauca administratora tiesības no %2$s. + Jūs tagad esat administrators. Jūs uzaicinājāt %1$spievienoties grupai. %1$suzaicināja Jūs grupai. + Jūs tikāt uzaicināts pievienoties šai grupai. Kāds atcēla ielūgumu pievienoties grupai. Jūs atcēlāt ielūgumu pievienoties grupai. + Jūsu uzaicinājums pievienoties šai grupai tika atsaukts. Jūs pieņēmāt ielūgumu pievienoties grupai. %1$spieņēma uzaicinājumu pievienoties grupai. @@ -736,6 +741,8 @@ Izveido savu PIN Jums beidzās PIN mēģinājumu skaits, bet Jums ir iespēja piekļūt Jūsu kontam, izveidojot jaunu PIN. Jūsu konta privātumam un drošībai Jūsu konts tiks atjaunots bez profila informācijas un uzstādījumiem. Izveidot jaunu PIN + + Brīdinājums Novērtējiet šo lietotni Ja ar gandarījumu lietojat šo lietotni, lūdzu atbalstiet mūs, veltot brīdi, lai to novērtētu. @@ -918,6 +925,7 @@ Saņemts nederīgas protokola versijas atslēgas apmaiņas ziņojums. Vienreiz skatāms video Vienreiz skatāmā multivide/multimediju fails Ziņojums ir izdzēsts. + Ziņa dzēsta. %s lieto Signālu! Gaistošās ziņas atspējotas Gaistošo ziņu laiks iestatīts uz %s @@ -1557,6 +1565,7 @@ Saņemts nederīgas protokola versijas atslēgas apmaiņas ziņojums. Atļaut no visiem Iespējot aizzīmogoto sūtītāju ienākošajām ziņām no ne-kontaktiem un cilvēkiem, ar kuriem Jūs neesiet dalījies ar savu profilu. Lasīt vairāk + @@ -1713,7 +1722,6 @@ Saņemts nederīgas protokola versijas atslēgas apmaiņas ziņojums. Izveidot jaunu PIN Varat labot PIN kamēr ierīce ir reģistrēta. Izveido savu PIN - PIN noglabā Signal informāciju šifrētā veidā tā, ka tikai Jūs varat tai piekļūt. Jūsu profils, uzstādījumu un kontakti tiks atjaunoti, ja uzstādīsiet Signal no jauna. Izveidojiet sarežģītāku PIN PINi nesakrīt. Mēģiniet vēlreiz. @@ -1725,13 +1733,13 @@ Saņemts nederīgas protokola versijas atslēgas apmaiņas ziņojums. Tiek veidots jauns PIN… Iepazīstinām ar PINiem - PIN noglabā Signal informāciju šifrētā veidā tā, ka tikai Jūs varat tai piekļūt. Jūsu profils, uzstādījumu un kontakti tiks atjaunoti, ja uzstādīsiet Signal no jauna. Uzziniet vairāk. Reģistrācijas atslēga (Registration Lock) = PIN Jūsu Reģistrācijas atslēga tagad tiek saukta par PIN, un tā kļuvusi funkcionālāka. Aktualizējiet to tūlīt. Lasīt vairāk par PINiem. Aktualizēt PIN Izveido savu PIN + Uzzināt vairāk par PIN kodiem Ievadiet jūsu Signāla PIN Lai palīdzētu jums iegaumēt PIN, mēs Jums lūgsim to ievadīt periodiski. Sākumā biežāk, bet ar laiku - retāk. diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index 57eb843d9..11d7f58a4 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -171,6 +171,7 @@  കൂടുതൽ ഡൗൺലോഡു ചെയ്യുക  ശേഷിക്കുന്നു ഈ സന്ദേശം ഇല്ലാതാക്കി. + നിങ്ങൾ ഈ സന്ദേശം ഇല്ലാതാക്കി. സുരക്ഷിത സെഷൻ പുനഃസജ്ജമാക്കണോ? ഈ സംഭാഷണത്തിൽ നിങ്ങൾക്ക് എൻ‌ക്രിപ്ഷൻ പ്രശ്‌നങ്ങളുണ്ടെങ്കിൽ ഇത് സഹായിച്ചേക്കാം. നിങ്ങളുടെ സന്ദേശങ്ങൾ സൂക്ഷിക്കും. @@ -661,6 +662,7 @@ നിങ്ങൾ %1$s-ന്റെ അഡ്മിൻ പ്രത്യേകാവകാശങ്ങൾ റദ്ദാക്കി. %1$s നിങ്ങളുടെ അഡ്‌മിൻ പ്രത്യേകാവകാശങ്ങൾ റദ്ദാക്കി. %1$s %2$s-ന്റെ അഡ്മിൻ പ്രത്യേകാവകാശങ്ങൾ റദ്ദാക്കി. + നിങ്ങൾ ഇപ്പോൾ ഒരു അഡ്‌മിനാണ്. നിങ്ങൾ %1$s-നെ ഗ്രൂപ്പിലേക്ക് ക്ഷണിച്ചു. %1$s നിങ്ങളെ ഗ്രൂപ്പിലേക്ക് ക്ഷണിച്ചു. @@ -668,6 +670,7 @@ %1$s 1 വ്യക്തിയെ ഗ്രൂപ്പിലേക്ക് ക്ഷണിച്ചു. %1$s %2$d ആളുകളെ ഗ്രൂപ്പിലേക്ക് ക്ഷണിച്ചു. + നിങ്ങളെ ഗ്രൂപ്പിലേക്ക് ക്ഷണിച്ചിരിക്കുന്നു. നിങ്ങൾ ഗ്രൂപ്പിലേക്കുള്ള ക്ഷണം റദ്ദാക്കി. @@ -679,6 +682,7 @@ ഗ്രൂപ്പിലേക്കുള്ള ക്ഷണം ആരോ നിരസിച്ചു. ഗ്രൂപ്പിലേക്കുള്ള ക്ഷണം നിങ്ങൾ നിരസിച്ചു. + ഗ്രൂപ്പിലേക്ക് നിങ്ങൾക്കുള്ള ക്ഷണം റദ്ദാക്കിയിരിക്കുന്നു. ഗ്രൂപ്പിലേക്കുള്ള ക്ഷണം നിങ്ങൾ സ്വീകരിച്ചു. ഗ്രൂപ്പിലേക്കുള്ള ക്ഷണം %1$s സ്വീകരിച്ചു. @@ -788,6 +792,7 @@ നിങ്ങളുടെ പിൻ സൃഷ്ടിക്കുക നിങ്ങളുടെ നിഗമനങ്ങൾ തീർന്നു, പക്ഷേ ഒരു പുതിയ പിന് സൃഷ്ടിച്ചുകൊണ്ട് നിങ്ങൾക്ക് ഇപ്പോഴും സിഗ്നൽ അക്കൗണ്ടില്ലെക് പ്രവേശിക്കാൻ കഴിയും. നിങ്ങളുടെ സ്വകാര്യതയ്ക്കും സുരക്ഷയ്ക്കുമായി സംരക്ഷിച്ച പ്രൊഫൈൽ വിവരങ്ങളോ ക്രമീകരണങ്ങളോ ഇല്ലാതെ നിങ്ങളുടെ അക്കൗണ്ട് പുന:സ്ഥാപിക്കപ്പെടും. പുതിയ പിൻ സൃഷ്ടിക്കുക + ഈ അപ്ലിക്കേഷൻ റേറ്റുചെയ്യുക ഈ അപ്ലിക്കേഷൻ ഉപയോഗിക്കുന്നത് നിങ്ങൾ ആസ്വദിക്കുകയാണെങ്കിൽ, ഇത് റേറ്റുചെയ്ത് ഞങ്ങളെ സഹായിക്കാൻ അൽപ്പസമയം ചെലവഴിക്കുക. @@ -967,6 +972,7 @@ grūpp ap‌ḍē ഒരു തവണ-കാണാവുന്ന വീഡിയോ ഒരു തവണ-ദൃശ്യമാകുന്ന മീഡിയ ഈ സന്ദേശം ഇല്ലാതാക്കി. + നിങ്ങൾ ഈ സന്ദേശം ഇല്ലാതാക്കി. %s സിഗ്നലിൽ ഉണ്ട്! അപ്രത്യക്ഷമാകുന്ന സന്ദേശങ്ങൾ പ്രവർത്തനരഹിതമാക്കി സന്ദേശം അപ്രത്യക്ഷമാകാനുള്ള സമയം %s ആയി ക്രമീകരിച്ചു. @@ -1610,6 +1616,7 @@ grūpp ap‌ḍē ആരിൽ നിന്നും അനുവദിക്കുക കോൺടാക്ടുകൾ അല്ലാത്തവരിൽ നിന്നും നിങ്ങളുടെ പ്രൊഫൈൽ പങ്കിടാത്തവരായ ആളുകളിൽ നിന്നും വരുന്ന സന്ദേശങ്ങൾക്കായി സീൽഡ് സെൻഡർ പ്രാപ്തമാക്കുക. കൂടുതൽ അറിയുക + @@ -1767,7 +1774,6 @@ grūpp ap‌ḍē ഒരു പുതിയ പിൻ സൃഷ്ടിക്കുക ഈ ഡിവൈസ് രജിസ്റ്റർ ചെയ്തിരിക്കുന്ന കാലത്തോളം നിങ്ങൾക്ക് നിങ്ങളുടെ PIN മാറ്റാവുന്നതാണ്. നിങ്ങളുടെ പിൻ സൃഷ്ടിക്കുക - Signal എൻക്രിപ്റ്റ് ചെയ്ത് സ്റ്റോർ ചെയ്ത വിവരങ്ങൾ PIN കൾ സൂക്ഷിക്കുന്നു, അതിനാൽ നിങ്ങൾക്ക് മാത്രമെ അത് പ്രാപ്യമാവുകയുള്ളു. നിങ്ങൾ Signal റീഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, നിങ്ങളുടെ പ്രൊഫൈൽ, സെറ്റിംഗ്സ്, കോണ്ടാക്റ്റുകൾ എന്നിവ റീസ്റ്റോർ ചെയ്യപ്പെടും. കരുത്തുറ്റ ഒരു PIN തിരഞ്ഞെടുക്കുക PIN-കൾ പൊരുത്തപ്പെടുന്നില്ല. വീണ്ടും ശ്രമിക്കുക. @@ -1779,13 +1785,13 @@ grūpp ap‌ḍē പിൻ സൃഷ്ടിക്കുന്നു… അവതരിപ്പിക്കുന്നു PIN-കൾ - Signal എൻക്രിപ്റ്റ് ചെയ്ത് സ്റ്റോർ ചെയ്ത വിവരങ്ങൾ PIN കൾ സൂക്ഷിക്കുന്നു, അതിനാൽ നിങ്ങൾക്ക് മാത്രമെ അത് പ്രാപ്യമാവുകയുള്ളു. നിങ്ങൾ Signal റീഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, നിങ്ങളുടെ പ്രൊഫൈൽ, സെറ്റിംഗ്സ്, കോണ്ടാക്റ്റുകൾ എന്നിവ റീസ്റ്റോർ ചെയ്യപ്പെടും. കൂടുതൽ അറിയുക രജിസ്ട്രേഷൻ ലോക്ക് = പിൻ നിങ്ങളുടെ രജിസ്ട്രേഷൻ ലോക്കിനെ ഇപ്പോൾ PIN എന്ന് വിളിക്കുന്നു, മാത്രമല്ല ഇത് കൂടുതൽ ചെയ്യുന്നു. ഇത് ഇപ്പോൾ അപ്‌ഡേറ്റുചെയ്യുക. PIN-കളെക്കുറിച്ച് കൂടുതൽ വായിക്കുക. പിൻ അപ്‌ഡേറ്റുചെയ്യുക നിങ്ങളുടെ പിൻ സൃഷ്ടിക്കുക + PIN-കളെക്കുറിച്ച് കൂടുതൽ പഠിക്കുക. നിങ്ങളുടെ Signal PIN നൽകുക നിങ്ങളുടെ PIN മനഃപാഠമാക്കാൻ സഹായിക്കുന്നതിന്, ഇടയ്ക്കിടെ അത് നൽകാൻ ഞങ്ങൾ നിങ്ങളോട് ആവശ്യപ്പെടും. കാലക്രമേണ ഞങ്ങൾ നിങ്ങളോട് കുറച്ച് ചോദിക്കുന്നു. diff --git a/app/src/main/res/values-mr/strings.xml b/app/src/main/res/values-mr/strings.xml index 1c714f489..091000224 100644 --- a/app/src/main/res/values-mr/strings.xml +++ b/app/src/main/res/values-mr/strings.xml @@ -584,8 +584,11 @@ %1$s गटात सामील झाले + आपण आता प्रशासक आहात. + आपल्याला गटात निमंत्रित केले गेले होते. + आपले गटाचे निमंत्रण रद्द केले गेले. @@ -661,6 +664,7 @@ न्यूमेरिक PIN प्रविष्ट करा आपला PIN तयार करा + ह्या अॅपला रेट करा जर आपल्याला हा अॅप वापरणे आवडत असेल, तर कृपया एक क्षण काढून आम्हाला रेट करून आमची मदत करा. @@ -1407,6 +1411,7 @@ कुणाकडूनही अनुमती द्या विना-संपर्क आणि आपण ज्यांच्या सोबत आपली प्रोफाईल सामायिक केलेली नाही त्यांच्याकडून येणाऱ्या संदेशांकरिता सीलबंद प्रेषक सक्षम करा. अधिक जाणा + @@ -1552,7 +1557,6 @@ एक नवीन PIN तयार करा जोपर्यंत हा डिव्हाईस नोंदणीकृत आहे आपण आपला PIN बदलू शकता. आपला PIN तयार करा - Signal सोबत संचयित केलेली माहिती PIN एन्क्रिप्टेड ठेवतात जेणेकरून ती फक्त आपण अॅक्सेस करू शकता. आपण Signal पुन्हा स्थापन केल्यावर आपली प्रोफाईल, सेटिंग, आणि संपर्क पुनर्स्थित होईल. एक शक्तिशाली PIN निवडा PIN जुळत नाहीत. पुन्हा प्रयत्न करा. @@ -1563,12 +1567,12 @@ PIN तयार करत आहे… PIN ची ओळख करून देत आहे - Signal सोबत संचयित केलेली माहिती PIN एन्क्रिप्टेड ठेवतात जेणेकरून ती फक्त आपण अॅक्सेस करू शकता. आपण Signal पुन्हा स्थापन केल्यावर आपली प्रोफाईल, सेटिंग, आणि संपर्क पुनर्स्थित होईल. अधिक जाणा नोंदणी लॉक = PIN PIN बद्दल अधिक येथे वाचा. PIN अद्यतनित करा आपला PIN तयार करा + PIN बद्दल अधिक जाणा आपला Signal PIN प्रविष्ट करा आपल्याला PIN लक्षात ठेवण्यासाठी, आम्ही आपल्याला तो वेळोवेळी तो प्रविष्ट करण्यास विचारू. काही काळानंतर आम्ही आपल्याला कमी विचारू. diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 98cf4e205..84b73d408 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -174,6 +174,7 @@   Last ned mer   Venter Denne meldingen ble slettet. + Du slettet denne meldingen. Vil du tilbakestille sikker økt? Dette kan hjelpe hvis du har krypteringsproblemer med samtalen. Meldinger blir beholdt. @@ -273,6 +274,7 @@ Sletter meldinger… Slett for meg Slett for alle + Denne meldingen vil bli slettet permanent for alle i samtalen. Medlemmer vil se at du slettet en melding. Opprinnelig melding ikke funnet Opprinnelig melding er ikke lenger tilgjengelig Kunne ikke åpne meldingen @@ -664,6 +666,7 @@ Du fjernet administratorrettigheter fra %1$s. %1$s fjernet administratorrettighetene dine. %1$s fjernet administratorrettigheter fra %2$s. + Du er nå administrator Du inviterte %1$s til gruppen. %1$s inviterte deg til gruppen. @@ -671,6 +674,7 @@ %1$s inviterte 1 person til gruppen. %1$s inviterte %2$d personer til gruppen. + Du har blitt invitert til gruppen. Du fjernet en invitasjon til gruppen. @@ -682,6 +686,7 @@ Noen avslo en invitasjon til gruppen. Du avslo invitasjonen til gruppen. + Din invitasjon til gruppen har blitt trukket tilbake. Du aksepterte invitasjonen til gruppen. %1$s aksepterte en invitasjon til gruppen. @@ -792,6 +797,8 @@ Opprett PIN-koden Du har gått tom for PIN-gjetninger, men du kan fremdeles få tilgang til Signal-kontoen din ved å opprette en ny PIN-kode. For ditt personvern og sikkerhet vil kontoen din bli gjenopprettet uten lagret profilinformasjon eller innstillinger. Opprett ny PIN-kode + + Advarsel Vurder dette programmet Hvis du liker dette programmet, vil vi gjerne at du hjelper oss ved å gi din vurdering. @@ -972,6 +979,7 @@ Mottok nøkkelutvekslingsmelding for ugyldig protokollversion. Vis en gang video Vis en gang media Denne meldingen ble slettet. + Du slettet denne meldingen. %s er på Signal! Forsvinnende meldinger deaktivert Utløpstid for meldinger endret til %s @@ -1621,6 +1629,7 @@ Mottok nøkkelutvekslingsmelding for ugyldig protokollversion. Tillat fra hvem som helst Aktiver forseglet avsender for innkommende meldinger fra avsendere og personer som du ikke har delt profilen din med. Lær mer + @@ -1778,7 +1787,6 @@ Mottok nøkkelutvekslingsmelding for ugyldig protokollversion. Opprett en ny PIN-kode Du kan endre PIN-koden din så lenge denne enheten er registrert. Opprett PIN-koden - PIN-koder holder informasjon lagret med Signal kryptert slik at bare du kan få tilgang til den. Profilen, innstillingene og kontaktene dine vil gjenopprette når du installerer Signal på nytt. Velg en sterkere PIN-kode PIN-koder stemmer ikke overens. Prøv igjen. @@ -1790,13 +1798,13 @@ Mottok nøkkelutvekslingsmelding for ugyldig protokollversion. Oppretter PIN… Vi introduserer PIN-koder - PIN-koder holder informasjon lagret med Signal kryptert slik at bare du kan få tilgang til den. Profilen, innstillingene og kontaktene dine vil gjenopprette når du installerer Signal på nytt. Lær mer Registreringslås = PIN Din registreringskode kalles nå PIN, og den gjør mer. Oppdater den nå. Les mer om PIN-koder. Oppdater PIN Opprett PIN-koden + Lær mer om PIN-koder Skriv inn din Signal PIN For å hjelpe deg med å huske PIN-koden din, ber vi deg om å oppgi den med jevne mellomrom. Vi ber deg mindre etter hvert. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index a8f4ab5cb..5ec3ec56a 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -174,6 +174,7 @@   Download meer   In afwachting Dit bericht is gewist. + Je hebt dit bericht verwijderd. Beveiligde sessie opnieuw instellen? Dit kan helpen wanneer je versleutelingsproblemen hebt met dit gesprek. Je berichten blijven behouden. @@ -273,6 +274,7 @@ Berichten aan het wissen … Voor mij wissen Wissen voor iedereen + Dit bericht zal worden verwijderd voor alle deelnemers aan het gesprek. Gespreksdeelnemers zullen wel kunnen zien dat jij een bericht hebt verwijderd. Oorspronkelijk bericht niet gevonden Het oorspronkelijke bericht is niet langer beschikbaar Openen van bericht is mislukt @@ -664,6 +666,7 @@ Je hebt de beheerdersbevoegdheden van %1$s ingetrokken. %1$s heeft je beheerdersbevoegdheden ingetrokken. %1$s heeft de beheerdersbevoegdheden van %2$s ingetrokken. + Je bent nu een beheerder. Je hebt %1$s uitgenodigd voor de groep. %1$s heeft je uitgenodigd voor de groep. @@ -671,6 +674,7 @@ %1$s heeft 1 persoon uitgenodigd om lid te worden van de groep. %1$s heeft %2$d personen uitgenodigd om lid te worden van de groep. + Je bent uitgenodigd voor de groep. Je hebt een uitnodiging voor de groep ingetrokken. @@ -682,6 +686,7 @@ Iemand heeft een uitnodiging om lid te worden van de groep verworpen. Je hebt de uitnodiging om lid te worden van de groep verworpen. + Je uitnodiging om lid de worden van de groep is ingetrokken. Je hebt een uitnodiging om lid te worden van de groep aanvaard. %1$s heeft een uitnodiging om lid te worden van de groep aanvaard. @@ -792,6 +797,8 @@ Pincode aanmaken Je hebt geen pogingen resterend om je pincode te raden, maar je kunt nog wel gebruik blijven maken van Signal door een nieuwe pincode aan te maken. Ter beveiliging van je profielinformatie, zullen je instellingen en profielnaam en -foto dan verloren gaan. Nieuwe pincode aanmaken + + Waarschuwing Beoordeel deze app Gebruik je deze app graag? Help ons door anderen te laten weten wat je van de app vindt. @@ -979,6 +986,7 @@ Tot slot moet Signal de telefoonstatus kunnen lezen om te voorkomen dat Signal-o Eenmaligeweergave-video Eenmaligeweergave-media Dit bericht is gewist. + Je hebt dit bericht verwijderd. %s is bereikbaar via Signal. Zelfwissende berichten uitgeschakeld Zelfwissende berichten op %s ingesteld @@ -1630,6 +1638,7 @@ Signal zal nu toestemming vragen om je contactenlijst te lezen, om na te gaan wi Van iedereen toestaan Sta toe dat je berichten met een verzegelde afzender ontvangt welke afkomstig zijn van niet-contactpersonen voor wie je ook je profiel niet zichtbaar hebt gemaakt. Dit verhoogt de kans dat je ongewenste berichten ontvangt. Meer leren hierover + @@ -1787,7 +1796,6 @@ Signal zal nu toestemming vragen om je contactenlijst te lezen, om na te gaan wi Nieuwe pincode aanmaken Zolang je telefoonnummer nog voor dit apparaat geregistreerd staat kun je je pincode nog wijzigen. Pincode aanmaken - Verzin een pincode die je nergens anders gebruikt. Met die pincode wordt informatie versleuteld opgeslagen op Signal\'s servers zodat alleen jij er toegang toe hebt. Je kunt hierdoor je profielnaam en -foto, instellingen en (geblokkeerde) contacten herstellen wanneer je Signal opnieuw installeert. Zelfs Signal\'s ontwikkelaars kunnen je informatie niet inzien. Verzin een sterkere pincode De pincodes komen niet overeen, probeer het opnieuw. @@ -1799,13 +1807,13 @@ Signal zal nu toestemming vragen om je contactenlijst te lezen, om na te gaan wi Pincode aan het aanmaken … We introduceren pincodes - Met een pincode wordt informatie versleuteld opgeslagen op Signal\'s servers zodat alleen jij er toegang toe hebt. Je kunt hierdoor je profielnaam en -foto, instellingen en (geblokkeerde) contacten herstellen wanneer je Signal opnieuw installeert. Zelfs Signal\'s ontwikkelaars kunnen je informatie niet inzien. Lees meer Registratievergrendeling = Pincode Registratievergrendeling heet vanaf nu ‘pincode’, en je kunt er meer mee doen. Je moet de pincode welke je tot nog toe gebruikte bijwerken. Lees meer over pincodes Pincode bijwerken Pincode aanmaken + Lees meer over pincodes Voer je Signal-pincode in Om je te helpen je pincode te onthouden vraagt Signal je periodiek om je pincode opnieuw in te voeren. Als je die een aantal keer juist invoert, dan zal Signal dit na verloop van tijd minder vaak vragen. diff --git a/app/src/main/res/values-nn/strings.xml b/app/src/main/res/values-nn/strings.xml index ae12d860e..1434cba83 100644 --- a/app/src/main/res/values-nn/strings.xml +++ b/app/src/main/res/values-nn/strings.xml @@ -174,6 +174,7 @@   Last ned meir   Ventar Meldinga er sletta. + Du har sletta denne meldinga. Vil du tilbakestilla sikker økt? Dette kan hjelpa viss du har krypteringsproblem med samtalen. Meldingane dine vert ikkje fjerna. @@ -273,6 +274,7 @@ Slettar meldingar … Slett for meg Slett for alle + Denne meldinga blir permanent sletta for alle i samtalen. Medlem vil sjå at du sletta ei melding. Fann ikkje den opphavlege meldinga Den opphavlege meldinga er ikkje lenger tilgjengeleg Klarte ikkje opna meldinga @@ -631,6 +633,7 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte.Mottok ei melding som er kryptert med ein gammal versjon av Signal som ikkje lenger vert støtta. Be avsendaren om å oppdatera til nyaste versjon og senda meldinga på nytt. Du har forlate gruppa. Du oppdaterte gruppa. + Gruppa vart oppdatert. Du ringte Kontakt ringte Usvart anrop @@ -643,6 +646,7 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte.%1$sskrudde av forsvinnande meldingar. Du stilte inn utløpstida for forsvinnande meldingar til %1$s %1$s stilte inn utløpstida for forsvinnande meldingar til %2$s + Nedtellinga for forsvinnande meldingar er stilt til %1$s. Du oppretta gruppa. Gruppe oppdatert. @@ -658,6 +662,8 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte.%1$s fjerna deg frå gruppa. Du forlét gruppa. %1$s har forlate gruppa. + Du er ikkje lenger med i gruppa. + %1$s er ikkje lenger med i gruppa. Du gjorde %1$s til administrator. %1$s gjorde %2$s til administrator. @@ -665,6 +671,10 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte.Du tok vekk administratorstatusen frå %1$s. %1$s har trukke tilbake administratorstatusen din. %1$s har trukke tilbake administratorstatusen frå %2$s. + %1$s er no administrator. + Du er no administrator. + %1$s er ikkje lenger administrator. + Du er ikkje lenger administrator. Du inviterte %1$s til gruppa. %1$s inviterte deg inn i gruppa. @@ -672,6 +682,11 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte.%1$s inviterte ein person inn i gruppa. %1$s inviterte %2$d personar inn i gruppa. + Du vart invitert inn i gruppa. + + 1 person vart invitert inn i gruppa. + %1$d personar vart inviterte inn i gruppa. + Du trekte tilbake ein invitasjon til gruppa. @@ -683,6 +698,11 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte. Nokon avslo ein invitasjon til gruppa. Du avslo invitasjonen til gruppa. + Invitasjonen din blei tilbakekalla. + + Ein invitasjon til gruppa vart tilbakekalla. + %1$d invitasjonar til gruppa vart tilbakekalla. + Du godtok invitasjonen til gruppa. %1$s godtok ein invitasjon til gruppa. @@ -691,15 +711,19 @@ Viss kontoen din har lenka einingar, så vil nye notat bli synkroniserte. Du endra gruppenamnet til «%1$s». %1$s endra gruppenamnet til «%2$s». + Gruppenamnet vart endra til «%1$s». Du endra gruppebildet. %1$s endra gruppebildet. + Gruppeavataren er endra. Du endra kven som kan redigera gruppeinfo til «%1$s». %1$s endra kven som kan redigera gruppeinfo til «%2$s». + Kven som kan endra gruppeinfo er endra til «%1$s». Du endra kven som kan redigera gruppemedlemskap til «%1$s». %1$s endra kven som kan redigera gruppemedlemskap til «%2$s». + Kven som kan endra gruppemedlemskap er endra til «%1$s». Tryggleiksnummeret ditt med %s har endra seg. Du markerte at tryggleiksnummeret ditt med %s er stadfesta. @@ -794,6 +818,7 @@ Viss du ikkje klarer å hugsa PIN-en, kan du oppretta ein ny ein. Du kan registr Lag din PIN Du har brukt opp PIN-forsøka, men du kan få tilgang til Signal-kontoen din ved å laga ein ny PIN. For din tryggleik og sikkerheit vil kontoen din bli gjenoppretta utan lagra profilinformasjon eller innstillingar. Lag ny PIN + Vurder dette programmet Viss du liker dette programmet, vil vi gjerne at du hjelper oss ved å gje vurderinga di. @@ -911,6 +936,7 @@ Ver deg sjølv i kvar einaste melding. Me minner deg på dette igjen om nokre dagar. Me minner deg på dette igjen om ei veke. Me minner deg på dette igjen om nokre veker. + Me minner deg på det igjen om ein månad. Bilde Klistremerke @@ -977,6 +1003,7 @@ Mottok nøkkelutvekslingsmelding for ugyldig protokollversjon. Éivisningsvideo Éivisningsmedia Meldinga er sletta + Du sletta denne meldinga. %s er på Signal! Forsvinnande meldingar skrudd av Utløpstid for melding endra til %s @@ -1208,6 +1235,7 @@ Mottok nøkkelutvekslingsmelding for ugyldig protokollversjon. «%1$s» er ikkje ein brukar på Signal. Sjekk brukarnamnet og prøv igjen. Greitt Gruppa er full + Du treng ikkje legga deg sjølv til i gruppa. Ingen blokkerte kontaktar @@ -1628,6 +1656,7 @@ Ved registrering sender me litt kontaktinformasjon til tenaren. Informasjonen ve Tillat frå alle Tillat forsegla sendar på meldingar du får frå folk som ikkje er i kontaktlista di, og folk du ikkje har delt profilen din med. Lær meir + @@ -1786,7 +1815,6 @@ Du er à jour! Lag ny PIN Du kan endra PIN-en så lenge denne eininga er registrert. Lag din PIN - PIN-en held informasjonen som signal Signal lagrar kryptert, slik at berre du kan få tilgang til han. Profilen, innstillingane og kontaktane dine blir gjenoppretta når du installerer Signal på nytt. Vel ein sterkare PIN PIN-kodane er ulike. Prøv igjen. @@ -1798,7 +1826,6 @@ Du er à jour! Opprettar PIN … Her kjem PIN-kodar - PIN-en held informasjonen som signal Signal lagrar kryptert, slik at berre du kan få tilgang til han. Profilen, innstillingane og kontaktane dine blir gjenoppretta når du installerer Signal på nytt. Lær meir Registreringslås = PIN Registreringslåsen er no kalla PIN-kode, og gjer meir enn før. Oppdater no. diff --git a/app/src/main/res/values-pa-rPK/strings.xml b/app/src/main/res/values-pa-rPK/strings.xml index 19806032c..21e29be1f 100644 --- a/app/src/main/res/values-pa-rPK/strings.xml +++ b/app/src/main/res/values-pa-rPK/strings.xml @@ -536,8 +536,11 @@ %1$s گروپ اچ شامل ہویا اے۔ + ہونڑ تساں ایڈمن او۔ + تساں نوں گروپ اچ مدعو کیتا۔ + گروپ اچ تساں دی دعوت منسوخ کر دتی گئی سی۔ @@ -613,6 +616,7 @@ ہندسیاں تے مشتمل پن درج کرو آپناں پن بناوو + ایس ایپ دی درجہ بندی کرو جے تہانوں ایس ایپ دا استعمال چنگا لگدا اے، تے مہربانی کر کے اییس دی درجہ بندی کرکے ساڈی مدد کرن لئی تھوڑا جہا سمے دیو۔ @@ -1355,6 +1359,7 @@ کسے دے وی ولوں اجازت دیو غیر رابطے تے جہناں لوکاں نال تسیں اپناں پروفائل سانجھا نئیں کیتا اے اوہناں ولوں آن آلے سنیہیاں لئی مہر بند گھلن آلے نوں فعال کرو۔ ہور جانو + @@ -1508,7 +1513,6 @@ اک نواں پن بناؤ جدوں تائیں ایہہ آلہ رجسٹرڈ اے تساں اپنی پن تبدیل کر سکدے او۔ آپناں پن بناوو - پن Signal دے نال ذخیرہ کیتی جانکاری نوں خفیہ کاری توں محفوظ رکھدا اے ایس لئی صرف تساں ایس تائیں رسائی حاصل کر سکدے او۔ جدوں تساں Signal نوں دوبارہ انسٹال کر دے او تے تساں دی پروفائل، ترتیباں تے رابطے بحال ہو جان گے۔ اک مضبوط پن منتخب کرو پناں میچ نئیں کر دیاں۔ فیر کوشش کرو @@ -1519,13 +1523,13 @@ پن بنا رئیا اے۔۔۔ پناں متعارف کرا رئیا اے - پن Signal دے نال ذخیرہ کیتی جانکاری نوں خفیہ کاری توں محفوظ رکھدا اے ایس لئی صرف تساں ایس تائیں رسائی حاصل کر سکدے او۔ جدوں تساں Signal نوں دوبارہ انسٹال کر دے او تے تساں دی پروفائل، ترتیباں تے رابطے بحال ہو جان گے۔ ہور جانو رجسٹریشن لاک = پن تہاڈے رجسٹریشن لاک نوں ہن پن آکھیا جاندا اے، اور ایہہ ہور وی بوہت کجھ کردا اے۔ ایہنوں ہنڑی اپ ڈیٹ کرو۔ پناں دے بارے اچ ہور پڑھو۔ پن نوں اپ ڈیٹ کرو آپناں پن بناوو + پن دے بارے اچ ہور جانیں آپناں Signal پن درج کرو تہانوں پن چیتے رکھن اچ مدد لئی، اسیں تھوڑے تھوڑے چر بعد تہانوں پن درج کرن دا آکھدے رہواں گے۔ کجھ ویلا لنگھن توں بعد اسیں تہانوں گھٹ وار ایہدے لئی آکھاں گے۔ diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index f627ad5cb..7a3cfb2cf 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -48,6 +48,10 @@ Blokada ekranu %1$s, Blokada rejestracji %2$s Blokada ekranu %1$s Motyw %1$s, Język %2$s + Kody PIN są wymagane do korzystania z blokady rejestracji. Aby wyłączyć PIN, wyłącz najpierw blokadę rejestracji. + Nie udało się wyłączyć PINu. Spróbuj ponownie później. + Utworzono PIN. + Wyłączono PIN %d minuta @@ -180,6 +184,7 @@   Pobierz więcej   Oczekiwanie Ta wiadomość została usunięta. + Skasowałeś(aś) tę wiadomość. Zresetować bezpieczną sesję? To może pomóc jeśli masz problemy z szyfrowaniem w tej konwersacji. Twoje wiadomości będą zachowane. @@ -293,6 +298,7 @@ Usuwanie wiadomości… Usuń u mnie Usuń u wszystkich + Ta wiadomość zostanie trwale usunięta u wszystkich, uczestników tej konwersacji. Będą oni mogli zobaczyć, że skasowałeś(aś) wiadomość. Nie znaleziono oryginalnej wiadomości Oryginalna wiadomość nie jest już dostępna Nie udało się otworzyć wiadomości @@ -688,6 +694,7 @@ Otrzymano szyfrowaną wiadomość wysłaną przy użyciu starej wersji Signal, która nie jest już wspierana. Poproś nadawcę tej wiadomości o zaktualizowanie aplikacji do najnowszej wersji i przesłanie wiadomości ponownie. Opuściłeś(aś) grupę. Zaktualizowałeś(aś) grupę. + Grupa została zaktualizowana. Dzwoniłeś(aś) Dzwonił(a) Nieodebrane połączenie @@ -700,6 +707,7 @@ %1$s wyłączył(a) znikające wiadomości. Ustawiłeś(aś) znikające wiadomości na %1$s. %1$s ustawił(a) znikające wiadomości na %2$s. + Czas znikania wiadomości został ustawiony na %1$s. Utworzyłeś(aś) grupę. Zaktualizowano grupę. @@ -715,6 +723,8 @@ %1$s usunął(ęła) Cię z grupy. Opuściłeś(aś) tę grupę. %1$s opuścił(a) grupę. + Nie należysz już do tej grupy. + %1$s nie należy już do tej grupy. Mianowałeś(aś) %1$s administratorem. %1$s mianował(a) %2$s administratorem. @@ -722,6 +732,10 @@ Anulowałeś(aś) uprawnienia administratora %1$s. %1$s anulował(a) Twoje uprawnienia administratora. %1$s anulował(a) uprawnienia administratora %2$s. + %1$s jest teraz administratorem. + Jesteś teraz administratorem. + %1$s nie jest już administratorem. + Nie jesteś już administratorem. Zaprosiłeś(aś) %1$s do grupy. %1$s zaprosił(a) Cię do grupy. @@ -731,6 +745,13 @@ %1$s zaprosił(a) %2$d osób do grupy. %1$s zaprosił(a) %2$d osoby do grupy. + Zostałeś(aś) zaproszony(a) do grupy. + + 1 osoba została zaproszona do grupy.. + %1$d osoby zostały zaproszone do grupy. + %1$d osób zostało zaproszonych do grupy. + %1$d osoby zostały zaproszone do grupy. + Anulowałeś(aś) zaproszenie do grupy @@ -746,6 +767,13 @@ Ktoś odrzucił zaproszenie do grupy. Odrzuciłeś(aś) zaproszenie do grupy. + Twoje zaproszenie do grupy zostało anulowane. + + Zaproszenie do grupy zostało anulowane. + %1$d zaproszenia do grupy zostały anulowane. + %1$d zaproszeń do grupy zostało anulowanych. + %1$d zaproszenia do grupy zostały anulowane. + Zaakceptowałeś(aś) zaproszenie do grupy. %1$s zaakceptował(a) zaproszenie do grupy. @@ -754,15 +782,19 @@ Zmieniłeś(aś) nazwę grupy na “%1$s“. %1$s zmienił(a) nazwę grupy na \"%2$s\". + Nazwa grupy została zmieniona na \"%1$s\". Zmieniłeś(aś) awatar grupy. %1$s zmienił(a) awatar grupy. + Awatar grupy został zmieniony. Zmieniłeś(aś), kto może edytować informacje o grupie na \"%1$s\". %1$s zmienił(a), kto może edytować informacje o grupie na \"%2$s\". + Zmieniono, kto może edytować informacje o grupie na \"%1$s\". Zmieniłeś(aś), kto może edytować członkostwo w grupie na \"%1$s\". %1$s zmienił(a), kto może edytować członkostwo w grupie na \"%2$s\". + Zmieniono, kto może edytować członkostwo w grupie na \"%1$s\". Twój numer bezpieczeństwa z %s zmienił się. Oznaczyłeś(aś) numer bezpieczeństwa z %s jako zweryfikowany @@ -863,6 +895,13 @@ Utwórz swój PIN Skończyły Ci się próby podania PINu, ale wciąż możesz uzyskać dostęp do swojego konta Signal, tworząc nowy kod PIN. Dla Twojej prywatności i bezpieczeństwa, Twoje konto zostanie przywrócone bez informacji zapisanych w profilu i ustawień. Utwórz nowy PIN + + Uwaga + + + + Wyłączenie PINu spowoduje utworzenie ukrytego, powiązanego z Twoim kontem kodu PIN o wysokiej entropii, którego nie można odzyskać. Kiedy ponownie zarejestrujesz się w Signal, stracisz wszystkie dane, chyba, że ręcznie utworzysz i przywrócisz kopię zapasową. Gdy PIN jest wyłączony, nie możesz włączyć blokady rejestracji. + Wyłącz PIN Oceń tę aplikację Jeśli lubisz używać tę aplikację, to prosimy, pomóż nam i oceń ją. @@ -978,6 +1017,7 @@ Przypomnimy Ci o tym ponownie za kilka dni. Przypomnimy Ci o tym ponownie za tydzień. Przypomnimy Ci o tym ponownie za dwa tygodnie. + Przypomnimy Ci o tym ponownie za miesiąc. Obraz Naklejka @@ -1043,6 +1083,7 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. Wideo jednorazowe Multimedia jednorazowe Ta wiadomość została usunięta. + Skasowałeś(aś) tę wiadomość. %s jest w Signal! Znikające wiadomości zostały wyłączone Czas znikania wiadomości ustawiony na %s @@ -1131,6 +1172,7 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. Usunąć wiadomość? Spowoduje to trwałe usunięcie tej wiadomości. %1$s do %2$s + Multimedia nie są już dostępne. %1$d nowych wiadomości w %2$d rozmowach Najnowsza z: %1$s @@ -1276,6 +1318,7 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. \"%1$s\" nie jest użytkownikiem Signal. Sprawdź nazwę użytkownika i spróbuj ponownie. Okay Grupa jest pełna + Nie musisz dodawać samego(j) siebie do grupy Brak zablokowanych kontaktów @@ -1662,10 +1705,15 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. Ciemny Wygląd Motyw + Wyłącz PIN + Włącz PIN + Wyłączenie PINu spowoduje utworzenie ukrytego, powiązanego z Twoim kontem kodu PIN o wysokiej entropii, którego nie można odzyskać. Kiedy ponownie zarejestrujesz się w Signal, stracisz wszystkie dane, chyba, że ręcznie utworzysz i przywrócisz kopię zapasową. Gdy PIN jest wyłączony, nie możesz włączyć blokady rejestracji. + Kody PIN gwarantują, że informacje przechowywane w Signal są zaszyfrowane i tylko Ty masz do nich dostęp. Twój profil, ustawienia i kontakty zostaną przywrócone, gdy ponownie zainstalujesz Signal. Nie będziesz potrzebować swojego kodu PIN do otwarcia aplikacji. Domyślny systemu Domyślne Język Wiadomości i połączenia Signal + Zaawansowane ustawienia PIN Darmowe oraz prywatne wiadomości i połączenia do użytkowników Signal Wyślij logi debugowania Tryb zgodności \"WiFi Calling\" @@ -1712,6 +1760,7 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. Zezwól wszystkim Włącz Ukrytego nadawcę dla wiadomości przychodzących od osób niebędących w Twoich kontaktach oraz od osób, którym nie udostępniono Twojego profilu. Dowiedz się więcej + @@ -1875,7 +1924,7 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. Utwórz nowy PIN Dopóki to urządzenie jest zarejestrowane, możesz zmienić swój PIN. Utwórz swój PIN - Kody PIN gwarantują, że informacje przechowywane w Signal są zaszyfrowane i tylko Ty masz do nich dostęp. Twój profil, ustawienia i kontakty zostaną przywrócone, gdy ponownie zainstalujesz Signal. + Kody PIN gwarantują, że informacje przechowywane w Signal są zaszyfrowane i tylko Ty masz do nich dostęp. Twój profil, ustawienia i kontakty zostaną przywrócone, gdy ponownie zainstalujesz Signal. Nie będziesz potrzebować swojego kodu PIN do otwarcia aplikacji. Wybierz silniejszy PIN Kody PIN się różnią. Spróbuj ponownie. @@ -1887,13 +1936,15 @@ Otrzymano wiadomość wymiany klucz dla niepoprawnej wersji protokołu. Tworzenie PINu… Przedstawiamy kody PIN - Kody PIN gwarantują, że informacje przechowywane w Signal są zaszyfrowane i tylko Ty masz do nich dostęp. Twój profil, ustawienia i kontakty zostaną przywrócone, gdy ponownie zainstalujesz Signal. + Kody PIN gwarantują, że informacje przechowywane w Signal są zaszyfrowane i tylko Ty masz do nich dostęp. Twój profil, ustawienia i kontakty zostaną przywrócone, gdy ponownie zainstalujesz Signal. Nie będziesz potrzebować swojego kodu PIN do otwarcia aplikacji. Dowiedz się więcej Blokada rejestracji = PIN Twoja blokada rejestracji nazywa się teraz PIN, i ma nowe funkcje. Uaktualnij ją teraz. Dowiedz się więcej o kodach PIN. Uaktualnij PIN Utwórz swój PIN + Dowiedz się więcej o kodach PIN + Wpisz swój PIN Signal Aby pomóc Ci zapamiętać Twój kod PIN, będziemy co jakiś czas o niego pytać. Z czasem pytania będą coraz rzadsze. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 221411077..dcf33e6a4 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -174,6 +174,7 @@   Baixe mais   Pendente Essa mensagem foi suprimida. + Você suprimiu esta mensagem. Reiniciar sessão segura? Isto pode ajudar se você está tendo problemas de criptografia nesta conversa. Suas mensagens serão mantidas. @@ -273,6 +274,7 @@ Excluindo mensagens… Suprimir para mim Suprimir para todas as pessoas + Essa mensagem será definitivamente suprimida da conversa para todas as pessoas. Elas verão que você suprimiu a mensagem. Mensagem original não encontrada Mensagem original indisponível Falha ao abrir mensagem @@ -655,6 +657,7 @@ %1$s nomeou você como admin. Você revogou privilégios de admin de %1$s. %1$s revogou os privilégios de admin de %2$s. + Agora você é um/a admin Você convidou %1$s ao grupo. %1$s convidou você ao grupo.. @@ -662,9 +665,11 @@ %1$s convidou 1 pessoa ao grupo. %1$s convidou %2$d pessoas ao grupo. + Você recebeu um convite para o grupo. Alguém recusou um convite ao grupo. Você recusou o convite ao grupo. + Seu convite para o grupo foi revogado. Você aceitou o convite ao grupo. %1$s aceitou o convite ao grupo. @@ -756,6 +761,8 @@ Digite o PIN numérico Criar seu PIN + + Cuidado Avaliar este aplicativo Se você gosta de usar este aplicativo, por favor tire uns segundos para nos ajudar com sua avaliação. @@ -931,6 +938,7 @@ Vídeo efêmero Mídia efêmera Essa mensagem foi suprimida. + Você suprimiu esta mensagem. %s está no Signal! Mensagens efêmeras desabilitadas Tempo de duração da mensagem efêmera definido para %s @@ -1553,6 +1561,7 @@ Permitir de qualquer um Habilitar remetente oculto para mensagens recebidas de não contatos e pessoas com quem você não compartilhou seu perfil. Saiba mais + @@ -1724,6 +1733,7 @@ Leia mais sobre PINs. Atualizar PIN Criar seu PIN + Saiba mais sobre PINs Digitar seu PIN do Signal Para ajudar você a memorizar seu PIN, pediremos que você o insira periodicamente. Esses pedidos diminuirão com o passar do tempo. diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 09bcf37b1..c35074ad5 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -174,6 +174,7 @@   Descarregar mais   Pendente Esta mensagem foi eliminada. + Eliminou esta mensagem. Reiniciar sessão segura? Isto poderá ajudar caso tenha problemas com a encriptação desta conversa. As suas mensagens serão mantidas. @@ -273,6 +274,7 @@ A eliminar mensagens… Eliminar para mim Eliminar para todos + Esta mensagem será eliminada para todos os presentes na conversa. Os membros serão capazes de ver que você eliminou a mensagem. Não foi encontrada a mensagem original A mensagem original já não se encontra disponível Falha ao abrir a mensagem @@ -664,6 +666,7 @@ Você revogou os privilégios de administrador a %1$s. %1$s revogou os seus privilégios de administrador. %1$s revogou os privilégios de administrador a %2$s. + Você, é agora administrador. Você convidou %1$s para o grupo. %1$s convidou-o para o grupo. @@ -671,6 +674,7 @@ %1$s convidou 1 pessoa para o grupo. %1$s convidou %2$d pessoas para o grupo. + Foi convidado para o grupo. Você revogou um convite para o grupo. @@ -682,6 +686,7 @@ Alguém declinou um pedido para o grupo. Você recusou o convite para o grupo. + O seu convite para o grupo foi revogado. Você aceitou o convite para o grupo. %1$s aceitou um convite para o grupo. @@ -791,6 +796,8 @@ Crie o seu PIN Esgotou todas as tentativas para introduzir o PIN, mas ainda pode aceder à sua conta do Signal criando um novo PIN. Para sua privacidade e segurança, a sua conta será restaurada sem nenhuma informação relativa ao perfil ou definições guardadas. Criar novo PIN + + Aviso Avaliar esta aplicação Se gostou desta aplicação, ajude-nos avaliando-a. @@ -973,6 +980,7 @@ Mensagem de troca de chaves inválida para esta versão do protocolo. Vídeo de visualização única Multimédia de visualização única Esta mensagem foi eliminada. + Eliminou esta mensagem. %s está no Signal! Destruição de mensagens desactivada O tempo a decorrer até que as mensagens sejam destruídas está definido para %s @@ -1622,6 +1630,7 @@ Mensagem de troca de chaves inválida para esta versão do protocolo. Permitir de todos Ativar o emissor selado para mensagens recebidas de não-contactos e pessoas com as quais não partilhou o seu perfil. Saber mais + @@ -1779,7 +1788,6 @@ Mensagem de troca de chaves inválida para esta versão do protocolo. Criar um novo PIN Poderá alterar o seu PIN enquanto o seu dispositivo se encontrar registado. Criar o seu PIN - Os PINs mantém encriptada a informação guardada no Signal de forma a que apenas você lhe possa aceder. O seu perfil, definições e contactos serão restaurados quando reinstalar o Signal. Escolha um PIN mais forte Os PINs não coincidem. Tente novamente. @@ -1791,13 +1799,13 @@ Mensagem de troca de chaves inválida para esta versão do protocolo. A criar PIN… Introdução aos PINs - Os PINs mantém encriptada a informação guardada no Signal de forma a que apenas você lhe possa aceder. O seu perfil, definições e contactos serão restaurados quando reinstalar o Signal. Saber mais Bloqueio do registo = PIN O seu \'Bloqueio de registo\' é agora chamado de PIN, e faz muito mais. Atualize agora. Ler mais acerca dos PINs. Atualizar PIN Crie o seu PIN + Saber mais acerca dos PINs Introduza o seu PIN do Signal Para o ajudar a memorizar o seu PIN, vamos pedir-lhe para o introduzir periodicamente. Iremos pedir-lhe menos vezes ao longo do tempo. diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 52081b979..2f65497c2 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -177,6 +177,7 @@   Descărcați mai multe   În curs Acest mesaj a fost șters. + Ați șters acest mesaj. Resetez sesiunea securizată? Această acțiune poate ajuta dacă ai probleme de criptare în conversația curentă. Mesajele dvs. vor fi păstrate. @@ -283,6 +284,7 @@ Se șterg mesajele… Șterge doar pentru mine Șterge pentru toată lumea + Acest mesaj va fi șters definitiv pentru toți cei din conversație. Membrii vor putea vedea că ați șters un mesaj. Mesajul original nu a fost găsit Mesajul original nu mai este disponibil Mesajul nu a putut fi deschis @@ -693,6 +695,7 @@ Ați revocat privilegiile admin de la %1$s. %1$s a revocat privilegiile dvs. de admin.\" %1$s a revocat privilegiile de admin pentru %2$s. + Sunteți acum admin. Ai invitat pe %1$s la grup. %1$s v-a invitat la grup. @@ -701,6 +704,7 @@ %1$s a invitat %2$d persoane la grup. %1$s a invitat %2$d persoane la grup. + Ai fost invitat la grup. Ați revocat o invitație la grup. @@ -714,6 +718,7 @@ Cineva a refuzat o invitație la grup. Ați refuzat invitația la grup. + Invitația dvs. la grup a fost revocată. Ați acceptat invitația la grup. %1$s a acceptat o invitație la grup. @@ -828,6 +833,8 @@ Creați-vă PIN-ul Ați rămas fără ghiciri PIN, dar puteți accesa contul dvs. Signal prin crearea unui nou cod PIN. Pentru confidențialitate și securitate, contul dvs. va fi restaurat fără informații sau setări de profil salvate. Creați un PIN nou + + Avertizare Evaluați aplicaţia Dacă vă place aplicaţia, vă rog ajutați-ne cu o evaluare. @@ -1010,6 +1017,7 @@ Am primit mesajul conform căruia schimbul de chei a avut loc pentru o versiune Videoclip vizibil o singură dată Media vizibilă o singură dată Acest mesaj a fost șters. + Ați șters acest mesaj. %s folosește Signal! Dispariția mesajelor a fost dezactivată Timpul setat pentru dispariția mesajele este de %s @@ -1670,6 +1678,7 @@ Am primit mesajul conform căruia schimbul de chei a avut loc pentru o versiune Permite oricui Activează funcția de expeditor ascuns pentru mesajele primite de la non-contacte și persoane cu care nu ai partajat profilul tău. Aflați mai multe + @@ -1830,7 +1839,6 @@ Am primit mesajul conform căruia schimbul de chei a avut loc pentru o versiune Creați un nou PIN Puteți schimba codul PIN atât timp cât acest dispozitiv este înregistrat. Creați-vă PIN-ul - PIN-urile păstrează informațiile stocate în Signal criptate, astfel încât numai tu să le poți accesa. Profilul, setările și contactele se vor restabili atunci când reinstalați Signal. Alegeți un PIN mai puternic PIN-urile nu se potrivesc. Încercați din nou. @@ -1842,13 +1850,13 @@ Am primit mesajul conform căruia schimbul de chei a avut loc pentru o versiune Se creează PIN-ul… Vă prezentăm PIN-uri - PIN-urile păstrează informațiile stocate în Signal criptate, astfel încât numai tu să le poți accesa. Profilul, setările și contactele se vor restabili atunci când reinstalați Signal. Află mai multe Blocarea Înregistrării = PIN Blocarea înregistrării este numită acum PIN și face mai multe. Actualizați-l acum. Aflați mai multe despre PIN-uri. Actualizați PIN Creați-vă PIN-ul + Aflați mai multe despre PIN-uri Introduceți PIN-ul dvs. Signal Pentru a vă ajuta să memorați codul PIN, vă vom rugă să îl introduceți periodic. În timp, o să-l cerem mai rar. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 61243367d..49a05fa34 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -48,6 +48,10 @@ Блокировка экрана %1$s, блокировка регистрации %2$s Блокировка экрана %1$s Тема %1$s, язык %2$s + PIN-коды необходимы для блокировки регистрации. Чтобы отключить PIN-коды, пожалуйста, сначала отключите блокировку регистрации. + Не удалось отключить PIN-коды. Попробуйте ещё раз позже. + PIN-код создан. + PIN-код отключён. %d минута @@ -180,6 +184,7 @@   Скачать больше   Ожидание Это сообщение было удалено. + Вы удалили это сообщение. Сбросить защищенный сеанс? Это может помочь, если у вас возникли проблемы с шифрованием в этом разговоре. Ваши сообщения будут сохранены. @@ -293,6 +298,7 @@ Удаляем сообщения… Удалить для меня Удалить для всех + Это сообщение будет навсегда удалено для всех в этом разговоре. Участники смогут увидеть, что вы удалили сообщение. Исходное сообщение не найдено Исходное сообщение больше не доступно Не удалось открыть сообщение @@ -688,6 +694,7 @@ Полученное сообщение зашифровано в старой версии Signal, которая больше не поддерживается. Пожалуйста, попросите отправителя обновиться до последней версии и заново отправить сообщение. Вы покинули группу. Вы обновили группу. + Группа была обновлена. Вы звонили Контакт звонил Пропущенный звонок @@ -700,6 +707,7 @@ %1$s отключил(-а) исчезающие сообщения. Вы установили время исчезновения сообщений в %1$s. %1$s установил(-а) время исчезновения сообщений в%2$s. + Было установлено время исчезновения сообщений — %1$s. Вы создали группу. Группа обновлена. @@ -715,6 +723,8 @@ %1$s удалил(-а) вас из группы. Вы покинули группу. %1$s покинул(-а) группу. + Вы больше не состоите в группе. + %1$s больше не состоит в группе. Вы сделали %1$s администратором. %1$s сделал(-а) %2$s администратором. @@ -722,6 +732,10 @@ Вы отозвали привилегии администратора у %1$s. %1$s отозвал(-а) ваши привилегии администратора. %1$s отозвал(-а) привилегии администратора у %2$s. + %1$s теперь администратор. + Вы теперь администратор. + %1$s больше не администратор. + Вы больше не администратор. Вы пригласили %1$s в группу. %1$s пригласил(-а) вас в группу. @@ -731,6 +745,13 @@ %1$s пригласил(-а) %2$d людей в группу. %1$s пригласил(-а) %2$d людей в группу. + Вы были приглашены в группу. + + 1 человек был приглашён в группу. + %1$d человека были приглашены в группу. + %1$d человек было приглашено в группу. + %1$d человек было приглашено в группу. + Вы отозвали приглашение в группу. @@ -746,6 +767,13 @@ Кто-то отклонил приглашение в группу. Вы отклонили приглашение в группу. + Ваше приглашение в группу было отозвано. + + Одно приглашение в группу было отозвано. + %1$d приглашения в группу были отозваны. + %1$d приглашений в группу было отозвано. + %1$d приглашений в группу было отозвано. + Вы приняли приглашение в группу. %1$s принял(-а) приглашение в группу. @@ -754,15 +782,19 @@ Вы изменили имя группы на «%1$s». %1$s изменил(-а) имя группы на «%2$s». + Имя группы было изменено на «%1$s». Вы изменили аватар группы. %1$s изменил(-а) аватар группы. + Аватар группы был изменён. Вы изменили, кто может редактировать информацию группы, на «%1$s». %1$s изменил(-а), кто может редактировать информацию группы, на «%2$s». + Кто может редактировать информацию группы было изменено на «%1$s». Вы изменили, кто может редактировать членство в группе, на «%1$s». %1$s изменил(-а), кто может редактировать членство в группе, на «%2$s». + Кто может редактировать членство в группе было изменено на «%1$s». Ваш код безопасности с %s изменился. Вы отметили код безопасности с %s как подтверждённый @@ -863,6 +895,13 @@ Создать PIN-код У вас закончились попытки ввода PIN-кода, но вы всё равно можете получить доступ к своей учётной записи Signal, создав новый PIN-код. Для вашей конфиденциальности и безопасности ваша учётная запись будет восстановлена без какой-либо сохранённой информации профиля или настроек. Создать новый PIN-код + + Предупреждение + + + + При отключении PIN-кода будет создан скрытый PIN-код с высокой энтропией, связанный с вашей учётной записью, который невозможно восстановить. При повторной регистрации в Signal вы потеряете все данные, если не создадите и восстановите резервную копию вручную. Вы не можете включить блокировку регистрации, когда PIN-код отключён. + Отключить PIN-код Оцените это приложение Если вам нравится это приложение, пожалуйста, найдите минутку, чтобы помочь нам, поставив ему оценку. @@ -976,6 +1015,7 @@ Мы напомним вам через несколько дней. Мы напомним вам через неделю. Мы напомним вам через пару недель. + Мы напомним вам через месяц. Изображение Стикер @@ -1044,6 +1084,7 @@ Одноразовое видео Одноразовое медиа Это сообщение было удалено. + Вы удалили это сообщение. %s теперь в Signal! Исчезающие сообщения отключены Время исчезновения сообщений – %s @@ -1132,6 +1173,7 @@ Удалить сообщение? Это сообщение будет навсегда удалено. %1$s для %2$s + Медиа больше не доступно. %1$d новых сообщений в %2$d разговорах Последнее от: %1$s @@ -1277,6 +1319,7 @@ «%1$s» — не пользователь Signal. Пожалуйста, проверьте имя пользователя и попробуйте ещё раз. Хорошо Группа заполнена + Вам не нужно добавлять самого себя в группу Нет заблокированных контактов @@ -1663,10 +1706,15 @@ Темная Внешний вид Тема + Отключить PIN-код + Включить PIN-код + При отключении PIN-кода будет создан скрытый PIN-код с высокой энтропией, связанный с вашей учётной записью, который невозможно восстановить. При повторной регистрации в Signal вы потеряете все данные, если не создадите и восстановите резервную копию вручную. Вы не можете включить блокировку регистрации, когда PIN-код отключён. + PIN-коды шифруют информацию, хранящуюся в сервисе Signal, так что только вы можете получить к ней доступ. Ваши профиль, настройки и контакты будут восстановлены, если вы переустановите Signal. Ваш PIN-код не нужен для открытия приложения. По умолчанию По умолчанию Язык (Language) Звонки и сообщения Signal + Расширенные настройки PIN-кода Бесплатные приватные сообщения и звонки пользователям Signal Отправить журнал отладки Совместимость с Wi-Fi звонками @@ -1713,6 +1761,7 @@ Разрешить от всех Разрешить запечатанного отправителя для входящих сообщений от людей, которых нет в ваших контактах и кому вы ещё не открывали свой профиль. Узнать больше + @@ -1876,7 +1925,7 @@ Создать новый PIN-код Вы можете изменить свой PIN-код, пока это устройство зарегистрировано. Создать PIN-код - PIN-коды шифруют информацию, хранящуюся в сервисе Signal, так что только вы можете получить к ней доступ. Ваши профиль, настройки и контакты будут восстановлены, если вы переустановите Signal. + PIN-коды шифруют информацию, хранящуюся в сервисе Signal, так что только вы можете получить к ней доступ. Ваши профиль, настройки и контакты будут восстановлены, если вы переустановите Signal. Ваш PIN-код не нужен для открытия приложения. Придумайте более надёжный PIN-код PIN-коды не совпадают. Попробуйте ещё раз. @@ -1888,13 +1937,15 @@ Создание PIN-кода… Представляем PIN-коды - PIN-коды шифруют информацию, хранящуюся в сервисе Signal, так что только вы можете получить к ней доступ. Ваши профиль, настройки и контакты будут восстановлены, если вы переустановите Signal. + PIN-коды шифруют информацию, хранящуюся в сервисе Signal, так что только вы можете получить к ней доступ. Ваши профиль, настройки и контакты будут восстановлены, если вы переустановите Signal. Ваш PIN-код не нужен для открытия приложения. Узнать больше Блокировка регистрации = PIN-код «Блокировка регистрации» теперь называется «PIN-код» и умеет больше. Обновите его прямо сейчас. Узнать больше о PIN-кодах. Обновить PIN-код Создать PIN-код + Узнать больше о PIN-кодах + Введите свой PIN-код Чтобы помочь вам запомнить свой PIN-код, мы будем просить вас периодически вводить его. Со временем это будет происходить реже. diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index d64ff7510..06429469c 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -178,6 +178,7 @@   Stiahnuť viac   Čaká sa Táto správa bola zmazaná. + Vymazali ste túto správu. Resetovať zabezpečenú reláciu? Toto vám môže pomôcť pri problémoch so šifrovaním v tejto konverzácii. Vaše správy budú zachované. @@ -288,6 +289,7 @@ Mažú sa správy… Zmazať pre mňa Zmazať pre všetkých + Táto správa sa natrvalo vymaže pre všetkých v tejto konverzácii. Členovia budú vidieť, že ste vymazali správu. Pôvodná správa sa nenašla Pôvodná správa už nie je k dispozícii Nepodarilo sa otvoriť správu @@ -654,6 +656,7 @@ Odobrali ste správcovské práva %1$s. %1$s vám odobral/a správcovské práva.\" %1$s odobral/a správcovské práva %2$s. + Odteraz ste adminom. Pozvali ste %1$s do skupiny. %1$s vás pozval/a do skupiny. @@ -663,6 +666,7 @@ %1$s pozval/a %2$d ľudí do skupiny. %1$s pozval/a %2$d ľudí do skupiny. + Pozvali vás do skupiny. Odvolali ste pozvánku do skupiny. @@ -678,6 +682,7 @@ Niekto odmietol pozvánku do skupiny. Odmietli ste pozvánku do skupiny. + Vaše pozvanie do skupiny bolo stiahnuté. Prijali ste pozvánku do skupiny. %1$s prijal/a pozvánku do skupiny. @@ -791,6 +796,10 @@ Vytvorte si PIN Vyčerpali ste všetky pokusy na zadanie PIN, ale stále sa môžete k svojmu Signal účtu dosať vytvorením nového PIN. Kvôli ochrane vašeho súkromia a vašej bezpečnosti bude váš účet obnovený bez uložených profilových informácií alebo nastavení. Vytvoriť nový PIN + + Varovanie + + Vypnúť PIN Ohodnotiť túto aplikáciu Ak sa vám táto aplikácia páči, nájdite si chvíľu a pomôžte nám tým, že ju ohodnotíte. @@ -969,6 +978,7 @@ Bola prijatá správa výmeny kľúčov s neplatnou verziou protokolu. Video na jedno zobrazenie Médiá na jedno zobrazenie Táto správa bola zmazaná. + Vymazali ste túto správu. %s je na Signale! Miznúce správy vypnuté Čas miznúcich správ bol nastavený na %s @@ -1555,6 +1565,9 @@ Bola prijatá správa výmeny kľúčov s neplatnou verziou protokolu. Tmavý Vzhľad Motív + Vypnúť PIN + Zapnúť PIN + PIN kódy udržiavajú informácie uložené v Signale zašifrované, aby ste k nim mali prístup iba vy. Váš profil, vaše nastavenia a kontakty sa po opätovnej inštalácii obnovia. Na otvorenie aplikácie PIN potrebovať nebudete. Predvolené nastavenie Štandardné nastavenie Jazyk @@ -1605,6 +1618,7 @@ Bola prijatá správa výmeny kľúčov s neplatnou verziou protokolu. Povoliť od každého Zapnúť zapečateného odosielateľa pre prichádzajúce správy od ľudí, ktorých nemáte v kontaktoch a s ktorými ste nezdieľali svoj profil. Dozvedieť sa viac + @@ -1765,7 +1779,6 @@ Bola prijatá správa výmeny kľúčov s neplatnou verziou protokolu. Vytvoriť nový PIN PIN si môžete zmeniť, pokiaľ je toto zariadenie registrované. Vytvorte si PIN - PIN kódy udržiavajú informácie uložené v Signale zašifrované, aby ste k nim mali prístup iba vy. Váš profil, vaše nastavenia a kontakty sa po opätovnej inštalácii Signalu obnovia. Zvoľte si silnejší PIN PIN kódy sa nezhodujú. Skúste to znova. @@ -1777,13 +1790,13 @@ Bola prijatá správa výmeny kľúčov s neplatnou verziou protokolu. Vytvára sa PIN kód… Predstavujeme PINy - PIN kódy udržiavajú informácie uložené v Signale zašifrované, aby ste k nim mali prístup iba vy. Váš profil, vaše nastavenia a kontakty sa po opätovnej inštalácii Signalu obnovia. Dozvedieť sa viac Registračný zámok = PIN Váš Registračný zámok sa teraz volá PIN kód a dokáže viac. Aktualizujte ho teraz. Prečítajte si viac o PIN kódoch. Aktualizovať PIN kód Vytvorte si PIN + Dozvedieť sa viac o PINoch Zadajte váš PIN pre Signal Aby sme vám pomohli zapamätať si váš PIN kód, budeme vás opakovanie žiadať o jeho zadanie. Postupom času vás o to budeme žiadať menej často. diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index c09e2b327..72b152b08 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -48,6 +48,10 @@ Zaklep zaslona %1$s, Zaklep prijave %2$s Zaklep zaslona %1$s Tema: %1$s, Jezik: %2$s + Koda PIN je potrebna za zaklep registracije. Če želite odstraniti PIN morate najprej izklopiti zaklep registracije. + Neuspešen izklop PINa. Poskusite znova kasneje. + PIN je bil ustvarjen. + PIN je bil izklopljen. %d minuta @@ -180,6 +184,7 @@ Naloži več V teku Sporočilo je bilo izbrisano + Izbrisali ste to sporočilo. Ponastavim varno sejo? To lahko pomaga pri težavah s šifriranjem med pogovorom. Vaša sporočila bodo ohranjena. @@ -293,6 +298,7 @@ Izbris sporočil … Izbriši zame Izbriši za vse + To sporočilo bo za vedno izbrisano za vse udeležene v pogovoru. Člani/ce skupine bodo lahko videli/e, da ste izbrisali sporočilo. Izvorno sporočilo ni bilo najdeno Izvorno sporočilo ni več na voljo Odpiranje sporočila ni uspelo @@ -688,6 +694,7 @@ Prejeli ste sporočilo, šifrirano z različico aplikacije Signal, ki ni več podprta. Prosite pošiljatelja, naj posodobi Signal na najnovejšo različico. Zapustili ste skupino. Posodobili ste skupino. + Skupina je bila posodobljena Klicali ste Imeli ste klic Neodgovorjen klic @@ -700,6 +707,7 @@ Uporabnik/ca %1$s je izklopil/a izginjajoča sporočila. Čas poteka sporočil ste nastavili na %1$s. Uporabnik/ca %1$s je nastavil/a čas poteka sporočil na %2$s. + Čas poteka sporočila je nastavljen na %1$s. Ustvarili ste skupino. Skupina posodobljena. @@ -715,6 +723,8 @@ Oseba %1$s vas je odstranila iz skupine. Zapustili ste skupino. Oseba %1$s je zapustila skupino. + Niste več v skupini. + Uporabnik/ca %1$s ni več v skupini. Osebo %1$s ste določili za skrbnika. Osdeba %1$s je določila uporabnika/co %2$s za skrbnika/co. @@ -722,6 +732,10 @@ Uporabniku/ci %1$s ste odvzeli skrbniška pooblastila. Oseba %1$s vam je odvzela skrbniška pooblastila. Oseba %1$s je odvzela skrbniška pooblastila uporabniku/ci %2$s. + Uporabnik/ca %1$s je zdaj skrbnik/ca skupine. + Odslej ste skrbnik skupine. + Uporabnik/ca %1$s ni več skrbnik/ca skupine. + Niste več skrbnik skupine. Uporabnika/co %1$s ste povabili v skupino. Oseba %1$s vas je povabila v skupino. @@ -731,6 +745,13 @@ Oseba %1$s je povabila %2$d uporabnike v skupino. Oseba %1$s je povabila %2$d uporabnikov/ic v skupino. + Bili ste povabljeni v skupino. + + 1 uporabnik/ca je bil/a povabljen/a v skupino. + %1$d uporabnika/ci sta bila/i povabljena/i v skupino. + %1$d uporabniki/ce so bili/e povabljeni/e v skupino. + %1$d uporabnikov/ic je bilo povabljenih v skupino. + Preklicali ste povabilo v skupino. @@ -746,6 +767,13 @@ Nekdo je zavrnil vabilo v skupino. Zavrnili ste vabilo v skupino. + Vaše vabilo v skupino je bilo preklicano. + + Vabilo v skupino je bilo preklicano. + %1$d vabili v skupino sta bili preklicani. + %1$d vabila v skupino so bila preklicana. + %1$d vabil v skupino je bilo preklicanih. + Sprejeli ste vabilo v skupino. Uporabnik/ca %1$s je sprejel/a vabilo v skupino. @@ -754,15 +782,19 @@ Ime skupine ste spremenili v \"%1$s\". Uporabnik/ca %1$s je spremenil/a ime skupine v \"%2$s\". + Ime skupine je bilo spremenjeno v \"%1$s\". Spremenili ste skupinin avatar. Oseba %1$s je spremenila skupinin avatar. + Avatar skupine je bil spremenjen. Spremenili ste, kdo lahko ureja informacije o skupini: \"%1$s\". Oseba %1$s je spremenila, kdo lahko ureja informacije o skupini: \"%2$s\". + Sprememba: podatke o skupini lahko odslej ureja uporabnik/ca \"%1$s\". Spremenili ste, kdo lahko ureja članstvo v skupini: \"%1$s\". Oseba %1$s je spremenila, kdo lahko ureja članstvo v skupini: \"%2$s\". + Sprememba: članstvo v skupini lahko odslej ureja uporabnik/ca \"%1$s\". Varnostno število z uporabnikom/co %s je bilo spremenjeno. Varnostno število z uporabnikom/co %s ste označili kot potrjeno @@ -863,6 +895,13 @@ Ustvarite svoj PIN Ostali ste brez poskusov za vnos kode PIN. Za dostop do računa SIgnal morate ustvariti nov PIN. Zaradi varnosti in zasebnosti bo vaš račun obnovljen brez informacij shranjenih na vašem profilu. Ustvari nov PIN + + Opozorilo + + + + Če ste se odločili, da ne boste ustvarili kode PIN, bo ustvarjen skriti PIN z visoko entropijo, povezan z vašim računom. Ta PIN bo neobnovljiv. Ko se boste ponovno prijavili v svoj račun Signal, boste izgubili vse tam shranjene informacije, razen če prej niste sami ustvarili varnostne kopije. Brez PINa tudi ne morete vklopiti zaklepa registracije. + Izklop kode PIN Oceni to aplikacijo Če se vam zdi aplikacija Signal koristna in uporabna, vas prosimo, da si vzamete nekaj trenutkov in jo ocenite. @@ -946,7 +985,7 @@ Želite vklopiti zaklep registracije? Želite izklopiti zaklep registracije? - Če boste pozabili svoj Signal PIN, ko se boste ponovno registrirali v Signal, se bo vaš račun za 7 dni zaklenil. + Če se ob ponovni registraciji na Signal ne boste spomnili svojega PINa, se bo vaš račun zaklenil za 7 dni. Vklopi Izklopi @@ -976,6 +1015,7 @@ Čez nekaj dni vas bomo znova opozorili. Čez en teden vas bomo znova opozorili. Čez nekaj tednov vas bomo znova opozorili. + Čez en mesec vas bomo znova opozorili. Slika Nalepka @@ -1026,7 +1066,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Različica Android: Različica Signal: Paket Signal: - Zaklep prijave: + Zaklep registracije: Jezik: Skupina je posodobljena @@ -1042,6 +1082,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Video za enkraten ogled Medijska datoteka za enkraten ogled Sporočilo je bilo izbrisano + Izbrisali ste to sporočilo. %s uporablja Signal! Izginjajoča sporočila so izklopljena Čas poteka sporočila je nastavljen na %s @@ -1130,6 +1171,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Izbrišem sporočilo? Sporočilo bo nepovratno izbrisano. %1$s do %2$s + Medijsko sporočilo ni več na voljo. Novih sporočil: %1$d, pogovorov: %2$d Zadnje sporočilo od: %1$s @@ -1275,6 +1317,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.\"%1$s\" ni uporabnik/ca storitve Signal. Preverite uporabniško ime in poskusite znova. Okej Skupina je polna + Sebe ne rabite dodajati v skupino. Ni blokiranih uporabnikov @@ -1661,10 +1704,15 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Temna Izgled Tema + Izklopi PIN + Vklopi PIN + Z izklopom PINa bo ustvarjen skriti PIN z visoko entropijo, povezan z vašim računom. Ta PIN bo neobnovljiv. Ko se boste ponovno prijavili v svoj račun Signal, boste izgubili vse tam shranjene informacije, razen če prej niste sami ustvarili varnostne kopije. Brez PINa tudi ne morete vklopiti zaklepa registracije. + S kodo PIN zavarujete podatke shranjene na Signalu s šifriranjem, tako da so dostopni le vam. Vaš profil, nastavitve in stiki bodo ob ponovni namestitvi aplikacije Signal obnovljeni. Vnos PINa ob vsakokratnem zagonu aplikacije ne bo potreben. Privzeta sistemska Privzeto Jezik Sporočila in klici Signal + Napredne nastavite PIN Brezplačna zasebna sporočila in klici uporabnikom/cam aplikacije Signal Oddaj sistemsko zabeležbo \'WiFi calling\' združljivostni način @@ -1711,6 +1759,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Dovoli za vse pošiljatelje Vklop zakritega pošiljatelja za dohodna sporočila uporabnikov, ki niso v imeniku in tistih, s katerimi ne delite svojega profila. Več o funkciji zakriti pošiljatelj + @@ -1874,7 +1923,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Ustvari nov PIN PIN lahko spreminjate dokler je naprava registrirana. Ustvarite svoj PIN - Koda PIN zavaruje informacije shranjene na Signalu z uporabo enkripcije, tako da so dostopne le vam. Vaš profil, nastavitve in stiki bodo obnovljeni ob ponovni namestitvi aplikacije Signal. + S kodo PIN zavarujete podatke shranjene na Signalu s šifriranjem, tako da so dostopni le vam. Vaš profil, nastavitve in stiki bodo ob ponovni namestitvi aplikacije Signal obnovljeni. Vnos PINa ob vsakokratnem zagonu aplikacije ne bo potreben. Izberite močnejši PIN PIN se ne ujema. Poskusite znova. @@ -1886,13 +1935,15 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Ustvarjam PIN … Predstavljamo vam PIN kode! - Koda PIN zavaruje informacije shranjene na Signalu z uporabo enkripcije, tako da so dostopne le vam. Vaš profil, nastavitve in stiki bodo obnovljeni ob ponovni namestitvi aplikacije Signal. + S kodo PIN zavarujete podatke shranjene na Signalu s šifriranjem, tako da so dostopni le vam. Vaš profil, nastavitve in stiki bodo ob ponovni namestitvi aplikacije Signal obnovljeni. Vnos PINa ob vsakokratnem zagonu aplikacije ne bo potreben. Več o tem… PIN = koda za prijavo v omrežje Koda PIN za prijavo v omrežje je izboljšana in odslej ponuja več možnosti. Posodobite jo zdaj! Preberite več o varnostni PIN kodi. Posodobite PIN Ustvarite svoj PIN + Izvedite več o kodi PIN. + Vnesite svoj Signal PIN Da si boste lažje zapomnili svoj PIN, vas bomo večkrat vprašali po njem. Sčasoma se bo frekvenca prošenj za vnos zmanjšala. @@ -2042,7 +2093,7 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Vnesite PIN Vklop kode PIN za prijavo v omrežje. Vnos kode bo potreben vsakič, ko se boste želeli ponovno prijaviti v omrežje Signal. PIN za prijavo v omrežje - Zaklep prijave na strežnik + Zaklep registracije Vnesti morate kodo PIN za prijavo v omrežje Vaš PIN vsebuje vsaj %d številk ali znakov Napačna koda PIN za prijavo v omrežje @@ -2051,14 +2102,14 @@ Prejeto sporočilo za izmenjavo ključev za napačno različico protokola.Preveč neuspešnih poskusov. Prosimo poskusite znova kasneje. Napaka pri povezavi do storitve Neeee! - Prijava s to telefonsko številko brez kode za zaklep bo zopet možna po sedmih dneh, odkar je bila številka nazadnje aktivna v omrežju Signal. Število dni do prijave: %d + Prijava s to telefonsko številko brez PINa za zaklep registracije bo spet možna po sedmih dneh odkar je bila številka nazadnje aktivna v omrežju Signal. Število dni do prijave: %d PIN za prijavo v omrežje Telefonska številka ima vklopljen PIN za prijavo v omrežje. Prosimo, vnesite kodo PIN za prijavo. Za to telefonsko številko je vklujčen PIN za prijavo v omrežje Signal. Da ne bi pozabili kode za prijavo, vas bomo občasno opomnili na njen vnos. Pozabil sem svoj PIN. Pozabljen PIN? - Zaklep prijave na strežnik vas ščiti pred nepooblaščeno prijavo tretje osebe z vašo telefonsko številko. Storitev lahko kadarkoli izkopite v meniju \"Zasebnost\" v nastavitvah aplikacije Signal. - Zaklep prijave na strežnik + Zaklep registracije vas ščiti pred nepooblaščeno prijavo tretje osebe z vašo telefonsko številko. Storitev lahko kadarkoli izkopite v meniju \"Zasebnost\" v nastavitvah aplikacije Signal. + Zaklep registracije Vklopi PIN za prijavo v omrežje mora vsebovati vsaj %d številke. Kodi PIN, ki ste ju vnesli, se ne ujemata. diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml index 1a3e970e0..531d1c8e3 100644 --- a/app/src/main/res/values-sq/strings.xml +++ b/app/src/main/res/values-sq/strings.xml @@ -44,6 +44,10 @@ Kyçje ekrani %1$s, kyçje Regjistrimi %2$s Kyçje ekrani %1$s Temë %1$s, Gjuhë %2$s + PIN-et janë të domosdoshëm për kyçje regjistrimi. Për të çaktivizuar PIN-e, ju lutemi, së pari çaktivizoni kyçjeje regjistrimi. + S’u arrit të çaktivizohen PIN-e. Riprovoni më vonë. + Pin-i u krijua. + Pin-i u çaktivizua. %d minutë @@ -174,6 +178,7 @@   Shkarkoni Më Tepër   Pezull Ky mesazh u fshi. + E fshitë këtë mesazh. Të rikthehet te parazgjedhjet sesioni i sigurt? Kjo mund të ndihmojë nëse keni probleme fshehtëzimi në këtë bisedë. Mesazhet tuaja do të ruhen. @@ -273,6 +278,7 @@ Po fshihen mesazhet… Fshije për mua Fshije për këdo + Ky mesazh do të fshihet përgjithmonë për këdo te biseda. Anëtarët do të jenë në gjendje të shohin që ju fshitë një mesazh. S\’u gjet mesazhi origjinal Mesazhi origjinal s\’gjendet më S’u arrit të hapet mesazhe @@ -630,6 +636,7 @@ Morët një mesazh të fshehtëzuar duke përdorur një version të vjetër të Signal-it, që nuk mirëmbahet më. Ju lutemi, kërkojini dërguesit ta përditësojë me versionin më të ri dhe ta ridërgojë mesazhin. E keni lënë grupin. E përditësuat grupin. + Grupi u përditësua. Ju thirrët Kontakti thirri Thirrje e humbur @@ -642,6 +649,7 @@ %1$s çaktivizoi zhdukje mesazhesh. E vutë kohëmatësin e zhdukjes së mesazheve për %1$s. %1$s e vuri kohëmatësin e tretjes së mesazheve në %2$s. + Koha për zhdukje mesazhesh është vënë 1%1$s. E krijuat grupin. Grupi u përditësua. @@ -657,6 +665,8 @@ %1$s ju hoqi nga grupi. E braktisët grupin. %1$s e la grupin. + S’jeni më te grupi. + %1$s s’është më te grupi. E bëtë %1$s përgjegjës. %1$s bëri %2$s përgjegjës. @@ -664,6 +674,10 @@ I shfuqizuat %1$s privilegje përgjegjësi. %1$s shfuqizoi privilegjet tuaja si përgjegjës. %1$s i shfuqizoi %2$s privilegje përgjegjësi. + %1$s tani është përgjegjës. + Tani jeni një përgjegjës. + %1$s s’është më përgjegjës. + S’jeni më përgjegjës. Ftuat %1$s te grupi. %1$s ju ftoi te grupi. @@ -671,6 +685,11 @@ %1$s ftoi 1 person te grupi. %1$s ftoi %2$d vetë te grupi. + U ftuat te grupi. + + 1 person u ftua te grupi. + %1$d vetë u ftuan te grupi. + Shfuqizuat një ftese për te grupi. @@ -682,6 +701,11 @@ Dikush hodhi poshtë një ftesë për te grupi. Hodhët poshtë ftesën për te grupi. + Ftesa juaj për te grupi u shfuqizua. + + U shfuqizua një ftesë për te grupi. + U shfuqizuan %1$d ftesa për te grupi. + Pranuat ftesën për te grupi. %1$s pranoi një ftesë për te grupi. @@ -690,15 +714,19 @@ Ndryshuat emrin e grupit në \"%1$s\". %1$s ndryshoi emrin e grupit në \"%2$s\". + Emri i grupit u ndryshua në \"%1$s\". Ndryshuat avatarin e grupit. %1$s ndryshoi avatarin e grupit. + Avatari i grupit u ndryshua. Ndryshuat cili mund të përpunojë të dhëna grupi te \"%1$s\". %1$s ndryshoi se cilët mund të përpunojnë të dhëna grupi te \"%2$s\". + Te \"%1$s\" është ndryshuar se kush mund të përpunojë të dhëna grupi. Ndryshuat cilët mund të përpunojnë anëtarësi grupi te \"%1$s\". %1$s ndryshoi se cilët mund të përpunojnë anëtarësi grupi te \"%2$s\". + Te \"%1$s\" është ndryshuas se kush mund të përpunojë anëtarësi te grupi. Numri juaj i sigurisë me %s është ndryshuar. E shënuat numrin tuaj të sigurisë me %s si të verifikuar @@ -791,6 +819,13 @@ Krijoni PIN-in tuaj Ju janë mbaruar hamendësimet e PIN-it, por prapë mundë të hyni në llogarinë tuaj Signal duke krijuar një PIN të ri. Për hir të privatësisë dhe sigurisë tuaj, llogaria juaj do të rikthehet pa ndonjë të dhënë profili apo rregullime të ruajtura. Krijoni PIN të ri + + Paralajmërim + + + + Çaktivizimi i PIN-it do të krijojë një PIN të fshehur, me entropi të lartë, përshoqëruar llogarisë tuaj, i cili është i pakthyeshëm. Kur të riregjistroni Signal-in, do të humbni krejt të dhënat, veç në i kopjeruajtshi dhe rikthefshi dorazi. S’mund të aktivizoni Kyçje Regjistrimi, teksa PIN-i është i çaktivizuar. + Çaktivizoje PIN-in Vlerësojeni këtë aplikacion Nëse ju pëlqen ta përdorni këtë aplikacion, ju lutemi, ndaluni një çast të na ndihmoni duke e vlerësuar atë. @@ -907,6 +942,7 @@ Do t’jua kujtojmë prapë pas pak ditësh. Do t’jua kujtojmë prapë pas një jave. Do t’jua kujtojmë prapë pas dy javësh. + Do t’jua kujtojmë sërish pas një muaji. Figurë Ngjitës @@ -973,6 +1009,7 @@ Video për t’u parë vetëm një herë Media për t’u parë vetëm një herë Ky mesazh u fshi. + E fshitë këtë mesazh. %s është në Signal! Zhdukja e mesazheve është e çaktivizuar Koha për zhdukje mesazhesh është vënë %s @@ -1061,6 +1098,7 @@ Të fshihet mesazhi? Kjo do ta fshijë përgjithmonë këtë mesazh. %1$s për %2$s + Media s’është më e passhme. %1$d mesazhe të reja në %2$d biseda Më të rejat nga: %1$s @@ -1204,6 +1242,7 @@ \"%1$s\" s’është përdorues Signal-i. Ju lutemi, kontrolloni emrin e përdoruesit dhe riprovoni. OK Grupi është plot + S’ju duhet të shtoni veten te grupi S\’ka kontakte të bllokuara @@ -1572,10 +1611,15 @@ E errët Dukje Temë + Çaktivizoje PIN-in + Aktivizoje PIN-in + Çaktivizimi i PIN-it do të krijojë një PIN të fshehur, me entropi të lartë, përshoqëruar llogarisë tuaj, i cili është i pakthyeshëm. Kur të riregjistroni Signal-in, do të humbni krejt të dhënat, veç në i kopjeruajtshi dhe rikthefshi dorazi. S’mund të aktivizoni Kyçje Regjistrimi, teksa PIN-i është i çaktivizuar. + PIN-et i mbajnë të fshehtëzuara të dhëna e depozituara me Signal, që kështu të mund t’i përdorni. Profili, rregullimet dhe kontaktet tuaja do të rikthehen, kur të riinstaloni Signal-in. S’do t’ju duhet PIN-i për të hapur aplikacionin. Parazgjedhje sistemi Parazgjedhje Gjuhë Mesazhe dhe thirrje Signal + Rregullimet të mëtejshme PIN-i Mesazhe dhe thirrje falas drejt përdoruesish të Signal-it Parashtro regjistër diagnostikimi Mënyrë përputhshmëri me \'Thirrje Wifi\' @@ -1622,6 +1666,7 @@ Lejoji prej kujtdo Aktivizoni dërgues të vulosur për mesazhe ardhës nga persona që s\’i keni në kontaktet dhe persona të cilëve s\’u keni dhënë profilin tuaj. Mësoni më tepër + @@ -1779,7 +1824,7 @@ Krijoni një PIN të ri Mundeni ta ndryshoni PIN-in tuaj, sa kohë që kjo pajisje është e regjistruar. Krijoni PIN-in tuaj - PIN-et i mbajnë të fshehtëzuara të dhëna e depozituara me Signal, që kështu të mund t’i përdorni. Profili, rregullimet dhe kontaktet tuaja do të rikthehen, kur të riinstaloni Signal-in. + PIN-et i mbajnë të fshehtëzuara të dhëna e depozituara me Signal, që kështu të mund t’i përdorni vetëm ju. Profili, rregullimet dhe kontaktet tuaja do të rikthehen, kur të riinstaloni Signal-in. S’do t’ju duhet PIN-i për të hapur aplikacionin. Zgjidhni një PIN më të fuqishëm PIN-et s’përputhen. Riprovoni. @@ -1791,13 +1836,15 @@ Po krijohet PIN-i… Ju paraqesim PIN-et - PIN-et i mbajnë të fshehtëzuara të dhëna e depozituara me Signal, që kështu të mund t’i përdorni. Profili, rregullimet dhe kontaktet tuaja do të rikthehen, kur të riinstaloni Signal-in. + PIN-et i mbajnë të fshehtëzuara të dhëna e depozituara me Signal, që kështu të mund t’i përdorni vetëm ju. Profili, rregullimet dhe kontaktet tuaja do të rikthehen, kur të riinstaloni Signal-in. S’do t’ju duhet PIN-i për të hapur aplikacionin. Mësoni Më Tepër Kyçje Regjistrimi = PIN Kyçi juaj i Regjistrimit tani quhet PIN, dhe bën edhe më tepër se aq. Përditësojeni që tani. Lexoni më tepër rreth PIN-esh. Përditësoni PIN-in Krijoni PIN-in tuaj + Mësoni më tepër rreth PIN-ësh + Jepni PIN-in tuaj për Signal-in Për t’ju ndihmuar të fiksoni në kujtesë PIN,-in tuaj, do t’ju kërkojmë në mënyrë periodike ta jepni. Me kalimin e kohës do t’jua kërkojmë më rrallë. diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index b971d104e..91f542680 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -44,6 +44,10 @@ Skärmlås %1$s, Registreringslås %2$s Skärmlås %1$s Tema %1$s, Språk %2$s + PIN-koder krävs för registreringslås. Om du vill inaktivera PIN-koder måste du först inaktivera registreringslåset. + Det gick inte att inaktivera PIN-koder. Försök igen senare. + PIN-kod skapad. + PIN-kod inaktiverad. %d minut @@ -174,6 +178,7 @@   Hämta mer   Väntar Det här meddelandet togs bort. + Du tog bort detta meddelande. Starta om säker session? Detta kan hjälpa om du har krypteringsproblem i den här konversationen. Dina meddelanden kommer att bevaras. @@ -273,6 +278,7 @@ Tar bort meddelanden… Ta bort för mig Ta bort för alla + Detta meddelande tas bort permanent för alla i konversationen. Medlemmar kan se att du har tagit bort ett meddelande. Hittade inte originalmeddelandet. Originalmeddelandet inte längre tillgänglig. Det gick inte att öppna meddelandet @@ -317,7 +323,7 @@ Problem med att ställa in profilen Profilbild Ställ in din profil - Din profil är ände-till-ände-krypterad. Det kommer att vara synligt för dina kontakter, när du initierar eller accepterar nya konversationer och när du går med i nya grupper. + Din profil är ände-till-ände-krypterad. Den kommer att vara synlig för dina kontakter, när du initierar eller accepterar nya konversationer och när du går med i nya grupper. Ställ in avatar Använder anpassade: %s @@ -630,6 +636,7 @@ Tog emot ett meddelande som krypterats med en gammal version av Signal som inte längre stöds. Vänligen be avsändaren om att uppdatera till den senaste versionen och skicka om meddelandet. Du har lämnat gruppen. Du uppdaterade gruppen. + Gruppen uppdaterades. Du ringde Kontakt ringde Missat samtal @@ -642,6 +649,7 @@ %1$s stängde av att meddelanden försvinner. Du ställde in tidsgränsen för att försvinnande meddelanden till %1$s. %1$s ställde in tidsgränsen för försvinnande meddelanden till %2$s. + Den försvinnande meddelandetidtagaren har ställts in till %1$s. Du skapade gruppen. Gruppen uppdaterad. @@ -657,6 +665,8 @@ %1$s tog bort dig från gruppen. Du lämnade gruppen. %1$s lämnade gruppen. + Du är inte längre i gruppen. + %1$s är inte längre i gruppen. Du gjorde %1$s till administratör. %1$s gjorde %2$s till administratör. @@ -664,6 +674,10 @@ Du återkallade administratörsbehörigheter från %1$s. %1$s återkallade dina administratörsbehörigheter.\" %1$s återkallade administratörsbehörigheter från %2$s. + %1$s är nu en adminstratör. + Du är nu en administratör. + %1$s är inte längre en adminstratör. + Du är inte längre en adminstratör. Du bjöd in %1$s till gruppen. %1$s bjöd in dig till gruppen. @@ -671,6 +685,11 @@ %1$s bjöd in 1 person till gruppen. %1$s bjöd in %2$d personer till gruppen. + Du blev inbjuden till gruppen. + + 1 person blev inbjuden till gruppen. + %1$d personer blev inbjudna till gruppen. + Du återkallade en inbjudan till gruppen. @@ -682,6 +701,11 @@ Någon avböjde en inbjudan till gruppen. Du avböjde inbjudan till gruppen. + Din inbjudan till gruppen återkallades. + + En inbjudan till gruppen återkallades. + %1$d inbjudningar till gruppen återkallades. + Du accepterade inbjudan till gruppen. %1$s accepterade en inbjudan till gruppen. @@ -690,15 +714,19 @@ Du ändrade gruppnamnet till \"%1$s\". %1$s ändrade gruppnamnet till \"%2$s\". + Gruppnamnet har ändrats till \"%1$s\". Du ändrade gruppavataren. %1$s ändrade gruppavataren. + Gruppavataren har ändrats. Du ändrade vem som kan redigera gruppinformation till \"%1$s\". %1$s ändrade vem som kan redigera gruppinformation till \"%2$s\". + Vem som kan redigera gruppinformation har ändrats till \"%1$s\". Du ändrade vem som kan redigera gruppmedlemskap till \"%1$s\". %1$s ändrade vem som kan redigera gruppmedlemskap till \"%2$s\". + Vem som kan redigera gruppmedlemskap har ändrats till \"%1$s\". Ditt säkerhetsnummer med %s har ändrats. Du markerade ditt säkerhetsnummer med %s som verifierat @@ -791,6 +819,13 @@ Skapa din PIN-kod Du har slut på gissningar av PIN-koden men du kan fortfarande komma åt ditt Signal-konto genom att skapa en ny PIN-kod. För din integritet och säkerhet kommer ditt konto att återställas utan några sparade profilinformation eller inställningar. Skapa ny PIN-kod + + Varning + + + + Om du inaktiverar PIN-koden skapas en dold PIN-kod med hög entropi som är kopplad till ditt konto som inte kan återvinnas. När du registrerar Signal om igen förlorar du all data om du inte säkerhetskopierar och återställer manuellt. Du kan inte sätta på registreringslås medan PIN-koden är inaktiverad. + Inaktivera PIN-koden Betygsätt denna app Om du gillar att använda den här appen, vänligen ta en stund för att hjälpa oss genom att betygsätta den. @@ -905,6 +940,7 @@ angav (%s) är ogiltigt. Vi påminner dig om några dagar. Vi påminner dig om en vecka. Vi påminner dig om ett par veckor. + Vi kommer att påminna dig om om en månad. Bilder Klistermärke @@ -971,6 +1007,7 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Visa-en-gång video Visa-en-gång media Det här meddelandet togs bort. + Du tog bort detta meddelande. %s finns på Signal! Försvinnande meddelanden inaktiverat Tiden för försvinnande meddelanden inställd till %s @@ -1059,6 +1096,7 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Ta bort meddelande? Detta kommer att ta bort detta meddelande permanent. %1$s till %2$s + Media är inte längre tillgängligt. %1$d nya meddelanden i %2$d konversationer Senaste från %1$s @@ -1202,6 +1240,7 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. \"%1$s\" är inte en Signal-användare. Vänligen kontrollera användarnamnet och försök igen. Okej Gruppen är full + Du behöver inte lägga till dig själv i gruppen Inga blockerade kontakter @@ -1516,7 +1555,7 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Aktivera låsskärmens lösenord Lås skärm och aviseringar med ett lösenord Skärmsäkerhet - Blockera skärmdumpar i senaste-listan och i appen + Blockera skärmdumpar i senaste-listan och appen Lås Signal automatiskt efter en viss tid av inaktivitet. Inaktivitetsperiod för lösenord Tidsintervall för inaktivitet @@ -1570,19 +1609,24 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Mörkt Utseende Tema + Inaktivera PIN-koden + Aktivera PIN-koden + Om du inaktiverar PIN-koden skapas en dold PIN-kod med hög entropi som är kopplad till ditt konto som inte kan återvinnas. När du registrerar Signal om igen förlorar du all data om du inte säkerhetskopierar och återställer manuellt. Du kan inte sätta på registreringslås medan PIN-koden är inaktiverad. + PIN-koden håller information lagrad med Signal krypterad så att du bara kan komma åt den. Din profil, inställningar och kontakter kommer att återställas när du installerar om. Du behöver inte din PIN-kod för att öppna appen. Systemets standardinställning Standard Språk Signal-meddelanden och -samtal + Avancerade PIN-kodsinställningar Gratis privata meddelanden och samtal med andra Signal-användare Skicka in felsökningslogg \"Wi-Fi-samtal\"-kompatibilitetsläge Aktivera om din enhet använder SMS/MMS sändning över Wi-Fi (aktivera endast när \"Wi-Fi-samtal\" är aktiverat på din enhet) Inkognito-tangentbord Läskvitton - Om läskvitton är avstängda kommer du inte att kunna se läskvitton från andra. + Om läskvitton är inaktiverade kommer du inte att kunna se läskvitton från andra. Skrivindikatorer - Om skrivindikatorer är avstängda kommer du inte att kunna se skrivindikatorer från andra. + Om skrivindikatorer är inaktiverade kommer du inte att kunna se skrivindikatorer från andra. Begär att tangentbordet stänger av personlig inlärning Blockerade kontakter Vid användning av mobildata @@ -1620,6 +1664,7 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Tillåt från alla Aktivera dold avsändare för inkommande meddelanden från icke-kontakter och personer som du inte delat din profil med. Läs mer + @@ -1777,7 +1822,7 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Skapa en ny PIN-kod Du kan ändra din PIN-kod så länge den här enheten är registrerad. Skapa din PIN-kod - PIN-koder håller information lagrad med Signal krypterad så bara du kan komma åt den. Din profil, inställningar och kontakter kommer att återställas när du installerar om Signal. + PIN-koden håller information lagrad med Signal krypterad så att du bara kan komma åt den. Din profil, inställningar och kontakter kommer att återställas när du installerar om. Du behöver inte din PIN-kod för att öppna appen. Välj en starkare PIN-kod PIN-koder matchar inte. Försök igen. @@ -1789,13 +1834,15 @@ Tog emot meddelande för nyckelutbyte för ogiltig protokollversion. Skapar PIN-kod… Introducerar PIN-koder - PIN-koder håller information lagrad med Signal krypterad så bara du kan komma åt den. Din profil, inställningar och kontakter kommer att återställas när du installerar om Signal. + PIN-koden håller information lagrad med Signal krypterad så att du bara kan komma åt den. Din profil, inställningar och kontakter kommer att återställas när du installerar om. Du behöver inte din PIN-kod för att öppna appen. Läs mer Registreringslås = PIN-kod Ditt registreringslås kallas nu en PIN-kod och den gör mer. Uppdatera nu. Läs mer om PIN-koder. Uppdatera PIN-kod Skapa din PIN-kod + Läs mer om PIN-koder + Ange din Signal PIN-kod För att hjälpa dig att memorera din PIN-kod ber vi dig att skriva in den regelbundet. Vi ber dig färre gånger med tiden. diff --git a/app/src/main/res/values-sw/strings.xml b/app/src/main/res/values-sw/strings.xml index 0209adcfa..0c65606f6 100644 --- a/app/src/main/res/values-sw/strings.xml +++ b/app/src/main/res/values-sw/strings.xml @@ -538,8 +538,11 @@ %1$s amejiunga na kikundi. + Wewe sasa ni msimamizi. + Umealikwa kwenye kundi. + Mwaliko wako kwa kundi ulibatilishwa. @@ -616,6 +619,7 @@ Signal inahitaji ruhusa ya Kamera ili kuskani msimbo wa QR, lakini imekataliwa k Ingiza Nenosiri lenye nambari Unda Nenosiri lako + Tathmini programu hii Iwapo unapendezwa na programu hii, tafadhali chukua muda utusaidie kuitathmini. @@ -1357,6 +1361,7 @@ nambari yako ya simu Ruhusu kutoka kwa kila mtu Wezesha mtumaji mwenye muhuri kwa jumbe zinazoingia kutoka kwa wasio wasiliani na watu ambao hukushiriki wasifu wako Jifunze zaidi + @@ -1509,7 +1514,6 @@ nambari yako ya simu Unda Nenosiri jipya Unaweza kubadili PINI mradi tu kifaa hiki kimesajiliwa Unda Nenosiri lako - PINI hufanya taarifa iliyohifadhiwa na Signal iliyosimbwa kuweza kufikiwa na wewe tu. Wasifu wako, mipangilio, na wawasiliani vitarejeshwa utakaposakinisha upya Signal. Chagua PINI yenye nguvu zaidi. Nenosiri hazifanani. Jaribu tena. @@ -1520,13 +1524,13 @@ nambari yako ya simu Inaunda Nenosiri… Uanzishaji Nenosiri - PINI hufanya taarifa iliyohifadhiwa na Signal iliyosimbwa kuweza kufikiwa na wewe tu. Wasifu wako, mipangilio, na wawasiliani vitarejeshwa utakaposakinisha upya Signal. Jifunze Zaidi Kufuli ya Usajili = Nenosiri Kifunga usajili wako sasa kinaitwa Nenosiri, na kinafanya mengi zaidi. Kisasishe sasa. Soma zaidi kuhusu Nenosiri Sasisha Nenosiri Unda Nenosiri lako + Jifunze zaidi kuhusu PINI Ingiza Nenosiri lako ya Signal Ili kukusaidia kukariri Nenosiri lako, tutakuuliza uliingize mara kwa mara. Tunapunguza kukuuliza baada ya muda. diff --git a/app/src/main/res/values-ta/strings.xml b/app/src/main/res/values-ta/strings.xml index de5d8b36b..0684b2c08 100644 --- a/app/src/main/res/values-ta/strings.xml +++ b/app/src/main/res/values-ta/strings.xml @@ -547,8 +547,11 @@ நீங்கள் குழுவிலிருந்து வெளியேறிவிட்டீர்கள். + நீங்கள் இப்போது ஒரு நிர்வாகி. + நீங்கள் குழுவிற்கு அழைக்கப்பட்டனர். + உங்கள் குழுவிற்கு அழைப்பு இருந்தது ரத்து செய்யப்பட்டது. @@ -624,6 +627,7 @@ எண் பின்னை உள்ளிடவும் உங்கள் பின்னை உருவாக்கவும் + இச் செயலியை மதிப்புரை செய்க இச் செயலியின் பயன்பாட்டை விரும்பினால் தயை கூர்ந்து எங்கள் செயலியை மதிப்புரை செய்க @@ -1378,6 +1382,7 @@ யாரிடமிருந்தும் அனுமதிக்கவும் தொடர்புகள் அல்லாதவர்களிடமிருந்தும், உங்கள் சுயவிவரத்தைப் பகிராத நபர்களிடமிருந்தும் உள்வரும் செய்திகளுக்கு சீல் அனுப்பியவரை இயக்கவும். மேலும் அறிக + @@ -1523,7 +1528,6 @@ புதிய பின்னை உருவாக்கவும் நீங்கள் முடியும் மாற்றம் உங்கள் பின் இந்த வரை சாதனம் பதிவு செய்யப்பட்டுள்ளது. உங்கள் பின்னை உருவாக்கவும் - பின்ஸ் வைத்திருக்கின்றன தகவல் உடன் சேமிக்கப்படுகிறது Signal மறைகுறியாக்கப்பட்டது எனவே மட்டுமே நீங்கள் முடியும் அணுகல் அது. உங்கள் சுயவிவரம், அமைப்புகள், மற்றும் தொடர்புகள் இருக்கும் மீட்டமை எப்பொழுது நீங்கள் மீண்டும் நிறுவவும் Signal. வலுவானதைத் தேர்வுசெய்க பின் பின்ஸ் பொருந்தவில்லை. மீண்டும் முயற்சி செய். @@ -1534,12 +1538,12 @@ பின் உருவாக்குகிறது… பின்களை அறிமுகப்படுத்துகிறது - பின்ஸ் வைத்திருக்கின்றன தகவல் உடன் சேமிக்கப்படுகிறது Signal மறைகுறியாக்கப்பட்டது எனவே மட்டுமே நீங்கள் முடியும் அணுகல் அது. உங்கள் சுயவிவரம், அமைப்புகள், மற்றும் தொடர்புகள் இருக்கும் மீட்டமை எப்பொழுது நீங்கள் மீண்டும் நிறுவவும் Signal. மேலும் அறிக பதிவு பூட்டு = பின் பின்ஸைப் பற்றி மேலும் வாசிக்க. பின்னைப் புதுப்பிக்கவும் உங்கள் பின்னை உருவாக்கவும் + பின்கள் பற்றி மேலும் அறிக உங்கள் Signal பின்னை உள்ளிடவும் உங்கள் பின்னை மனப்பாடம் செய்ய உங்களுக்கு உதவ, அதை அவ்வப்போது உள்ளிடுமாறு கேட்டுக்கொள்கிறோம். காலப்போக்கில் நாங்கள் உங்களிடம் குறைவாகக் கேட்கிறோம். diff --git a/app/src/main/res/values-te/strings.xml b/app/src/main/res/values-te/strings.xml index f972eea56..d5eed8ce0 100644 --- a/app/src/main/res/values-te/strings.xml +++ b/app/src/main/res/values-te/strings.xml @@ -603,6 +603,7 @@ మీరు %1$s యొక్క పరిపాలనా యోగ్యతను తొలగించారు. %1$s మీ పరిపాలనా యోగ్యతను తొలగించారు. %1$s %2$s యొక్క పరిపాలనా యోగ్యతను తొలగించారు. + మీరు ఇప్పుడు నిర్వాహకులే. మీరు %1$sని సమూహానికి ఆహ్వానించారు. %1$s మిమ్మల్ని సమూహానికి ఆహ్వానించారు. @@ -610,6 +611,7 @@ %1$s ఒక వ్యక్తిని సమూహానికి ఆహ్వానించారు. %1$s %2$d వ్యక్తులను సమూహానికి ఆహ్వానించారు. + మిమ్మల్ని గుంపుకు ఆహ్వానించారు. మీరు ఒక సమూహ ఆహ్వానాన్ని వెనక్కి తీసుకున్నారు @@ -621,6 +623,7 @@ ఎవరో సమూహ ఆహ్వానాన్ని తిరస్కరించారు. మీరు సమూహ ఆహ్వానాన్ని తిరస్కరించారు. + సమూహానికి మీ ఆహ్వానం ఉపసంహరించబడింది. మీరు సమూహ ఆహ్వానాన్ని ఆమోదించారు. %1$s సమూహ ఆహ్వానాన్ని ఆమోదించారు. @@ -725,6 +728,7 @@ సంఖ్యా పిన్ను నమోదు చేయండి మీ పిన్ను సృష్టించండి + ఈ అప్లికేషన్ ని రేట్ చెయ్యండి ఈ కార్యక్షేత్రం నచ్చినచొ,దయచేసి కొంత సమయము వెచ్చించి దినిని విలువ కట్టండి. @@ -1469,6 +1473,7 @@ ఎవరి నుండి అయినా అనుమతించు మీరు మీ రూపం భాగస్వామ్యం చేయని పరిచయాలు మరియు వ్యక్తుల నుండి ఇన్కమింగ్ సందేశాల కోసం మూసివేసిన పంపేవారిని ప్రారంభించండి. ఇంకా నేర్చుకో + @@ -1613,7 +1618,6 @@ క్రొత్త పిన్ను సృష్టించండి ఈ పరికరం నమోదు చేయబడినంత వరకు మీరు మీ పిన్‌ను మార్చవచ్చు. మీ పిన్ను సృష్టించండి - పిన్‌లు Signal గుప్తీకరించిన సమాచారాన్ని నిల్వ చేస్తాయి కాబట్టి మీరు మాత్రమే దీన్ని యాక్సెస్ చేయవచ్చు. మీరు Signal ‌ను మళ్లీ ఇన్‌స్టాల్ చేసినప్పుడు మీ ప్రొఫైల్, సెట్టింగ్‌లు మరియు పరిచయాలు పునరుద్ధరించబడతాయి. బలమైన పిన్ను ఎంచుకోండి పిన్‌లు సరిపోలడం లేదు. మళ్ళీ ప్రయత్నించండి. @@ -1624,12 +1628,12 @@ పిన్ సృష్టిస్తోంది… పిన్‌లను పరిచయం చేస్తోంది - పిన్‌లు Signal గుప్తీకరించిన సమాచారాన్ని నిల్వ చేస్తాయి కాబట్టి మీరు మాత్రమే దీన్ని యాక్సెస్ చేయవచ్చు. మీరు Signal ‌ను మళ్లీ ఇన్‌స్టాల్ చేసినప్పుడు మీ ప్రొఫైల్, సెట్టింగ్‌లు మరియు పరిచయాలు పునరుద్ధరించబడతాయి. ఇంకా నేర్చుకో నమోదు లాక్ = పిన్ పిన్‌ల గురించి మరింత చదవండి. పిన్‌ను నవీకరించండి మీ పిన్ను సృష్టించండి + పిన్‌ల గురించి మరింత తెలుసుకోండి మీ Signal పిన్ను నమోదు చేయండి మీ పిన్‌ను గుర్తుంచుకోవడంలో మీకు సహాయపడటానికి, క్రమానుగతంగా నమోదు చేయమని మేము మిమ్మల్ని అడుగుతాము. మేము మిమ్మల్ని కాలక్రమేణా తక్కువ అడుగుతాము. diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 6ca248582..d7e5d2474 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -605,12 +605,14 @@ คุณได้เพิกถอนสิทธิ์ผู้ดูแลจาก %1$s %1$s ได้เพิกถอนสิทธิ์ผู้ดูแลจากคุณ %1$s ได้เพิกถอนสิทธิ์ผู้ดูแลจาก %2$s + ตอนนี้คุณเป็นผู้ดูแลแล้ว คุณได้เชิญ %1$s เข้ากลุ่ม %1$s ได้เชิญคุณเข้ากลุ่ม %1$s ได้เชิญ %2$d คนเข้ากลุ่ม + คุณถูกเชิญเข้ากลุ่ม คุณได้เพิกถอน %1$d คำเชิญเข้ากลุ่ม @@ -620,6 +622,7 @@ ใครบางคนได้ปฏิเสธคำเชิญเข้าร่วมกลุ่ม คุณได้ปฏิเสธคำเชิญเข้ากลุ่ม + คำเชิญคุณเข้ากลุ่มถูกเพิกถอน คุณได้ตอบรับคำเชิญเข้ากลุ่ม %1$s ตอบรับคำเชิญเข้ากลุ่ม @@ -709,6 +712,7 @@ สร้างรหัส PIN ของคุณ สร้างรหัส PIN ใหม่ + ให้คะแนนแอปนี้ ถ้าคุณชอบแอปนี้ โปรดสละเวลาให้คะแนนพวกเราสักนิด @@ -1507,6 +1511,7 @@ อนุญาตจากทุกคน เปิดใช้งานผู้ส่งที่ปิดบังตัวตนสำหรับข้อความขาเข้าจากคนที่ไม่ใช่ผู้ติดต่อและคนที่คุณไม่ได้แบ่งปันโปรไฟล์ เรียนรู้เพิ่มเติม + @@ -1661,7 +1666,6 @@ สร้างรหัส PIN ใหม่ คุณสามารถเปลี่ยนรหัส PIN ได้ตราบเท่าที่คุณยังลงทะเบียนอุปกรณ์นี้ สร้างรหัส PIN ของคุณ - รหัส PIN รักษาข้อมูลที่เก็บไว้ใน Signal ที่เข้ารหัส ดังนั้นจึงมีแต่คุณที่เข้าถึงข้อมูลนี้ได้ โปรไฟล์ของคุณ การตั้งค่า และรายชื่อผู้ติดต่อจะถูกกู้คืนเมื่อคุณติดตั้ง Signal อีกครั้ง เลือกรหัส PIN ที่แข็งแรงกว่านี้ รหัส PIN ไม่ตรงกัน ลองอีกครั้ง @@ -1673,13 +1677,13 @@ สร้างรหัส PIN… แนะนำรหัส PINs - รหัส PIN รักษาข้อมูลที่เก็บไว้ใน Signal ที่เข้ารหัส ดังนั้นจึงมีแต่คุณที่เข้าถึงข้อมูลนี้ได้ โปรไฟล์ของคุณ การตั้งค่า และรายชื่อผู้ติดต่อจะถูกกู้คืนเมื่อคุณติดตั้ง Signal อีกครั้ง เรียนรู้เพิ่มเติม กุญแจลงทะเบียน = รหัส PIN จากนี้กุญแจลงทะเบียนของคุณจะถูกเรียกว่ารหัส PIN และมันมีที่ใช้มากขึ้น ปรับปรุงมันเดี๋ยวนี้ อ่านเพิ่มเติมเกี่ยวกับรหัส PINs อัปเดตรหัส PIN สร้างรหัส PIN ของคุณ + เรียนรู้เพิ่มเติมเกี่ยวกับรหัส PIN ใส่รหัส Signal PIN ของคุณ เพื่อช่วยให้คุณจดจำรหัส PIN ล็อกการลงทะเบียนได้ Signal จะขอให้คุณใส่รหัส PIN เป็นระยะๆ เราจะถามคุณน้อยลงเมื่อเวลาผ่านไป diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml index 62aba0683..220110c14 100644 --- a/app/src/main/res/values-tl/strings.xml +++ b/app/src/main/res/values-tl/strings.xml @@ -165,6 +165,7 @@   Mag-download pa   Nakabinbin Ang mensaheng ito ay nabura na. + Binura mo ang mensaheng ito. I-reset ang secure na sesyon? Maaari itong makatulong kung ika\'y nagkakaproblema sa encryption ng pag-uusap na ito. Ang iyong mga mensahe ay pananatilihin. @@ -259,6 +260,7 @@ SMS Binubura Binubura ang mga mensahe… + Ang mensaheng ito ay permanenterng mabubura para sa lahat na kalahok ng pag-uusap. Makikita ng mga kasapi na binura mo ang mensahe. Ang orihinal na mensahe ay hindi mahanap Ang orihinal na mensahe ay wala na Nabigong buksan ang mensahe @@ -550,8 +552,11 @@ Sumali si %1$s sa grupo. + Ikaw na ngayon ang admin. + Ikaw ay inimbitahan sa grupo. + Ang iyong imbitasyon sa grupo ay binawi. @@ -635,6 +640,8 @@ Ilagay ang numeric na PIN Likhain ang iyong PIN + + Babala I-rate ang app na ito Kung ikinalulugod mo ang paggamit sa app na ito, maglaan ng sandali upang i-rate ito. @@ -806,6 +813,7 @@ View-once na video View-once na media Ang mensaheng ito ay nabura na. + Binura mo ang mensaheng ito. Nasa Signal si %s! Naka-disable ang mga naglalahong mensahe Nakatakda ang oras ng naglalahong mensahe sa %s @@ -1421,6 +1429,7 @@ Payagan ang mula sa sinuman I-enable ang sealed na tagapagpadala para sa mga paparating na mensahe mula sa mga hindi kontak at tao kung kanino mo hindi pa naibabahagi ang iyong profile Matuto pa + @@ -1573,7 +1582,6 @@ Lumikha ng bagong PIN Mapapalitan mo ang iyong PIN hangga\'t rehistrado ang device na ito. Likhain ang iyong PIN - Panapanatiling encrypted ng PIN ang mga impormasyong naka-imbak sa Signal upang ikaw lang ang maka-access nito. Ang iyong profile, mga setting, at kontak ay mare-restore kapag nagre-install ka ng Signal. Pumili ng mas malakas na PIN Hindi tugma ang mga PIN. Subukang muli. @@ -1584,13 +1592,13 @@ Lumilikha ng PIN… Ipinakikilala ang mga PIN - Panapanatiling encrypted ng PIN ang mga impormasyong naka-imbak sa Signal upang ikaw lang ang maka-access nito. Ang iyong profile, mga setting, at kontak ay mare-restore kapag nagre-install ka ng Signal. Matuto pa Lock sa Pagpaparehistro = PIN Ang iyong Lock sa Pagpaparehistro ay tinatawag na ngayong PIN, at mas marami itong nagagawa. I-update ito ngayon. Magbasa pa tungkol sa mga PIN. I-update ang PIN Likhain ang iyong PIN + Magdagdag ng kaalaman tungkol sa mga PIN Ilagay ang PIN ng iyong Signal Upang matulungan kang kabisaduhin ang iyong PIN, hihilingin namin sa iyo na ilagay ito pana-panahon. Dadalang nang dadalang ang paghingi namin nito sa iyo paglipas ng panahon. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 4bacda0a2..2d5b06b7c 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -174,6 +174,7 @@   Dahasını İndirin   Beklemede Bu ileti silindi. + Bu iletiyi sildiniz. Güvenli oturumu sıfırla? Bu sohbette şifreleme sorunları yaşıyorsanız bu işlem yardımcı olabilir. İletileriniz saklanacaktır. @@ -664,6 +665,7 @@ %1$s kişisinin yönetici yetkilerini iptal ettiniz. %1$s yönetici yetkilerinizi iptal etti.\" %1$s, %2$s kişisinin yönetici yetkilerini iptal etti. + Artık yöneticisiniz. %1$s kişisini gruba davet ettiniz. %1$s kişisi sizi gruba davet etti. @@ -671,6 +673,7 @@ %1$s, 1 kişiyi gruba davet etti. %1$s, %2$d kişiyi gruba davet etti. + Gruba davet edildiniz. Bir grup davetiyesini iptal ettiniz. @@ -682,6 +685,7 @@ Biri grup davetiyesini reddetti. Grup davetiyesini reddettiniz. + Grup davetiyeniz iptal edildi. Grup davetiyesini kabul ettiniz. %1$s grup davetiyesini kabul etti. @@ -786,6 +790,7 @@ PIN\'inizi oluşturun Yeni PIN oluştur + Bu uygulamaya puan verin Bu uygulamayı kullanmaktan hoşlanıyorsanız, lütfen bir dakikanızı ayırıp puan vererek bize yardımcı olun. @@ -969,6 +974,7 @@ Geçersiz protokol sürümünde anahtar değişim iletisi alındı. Tek görümlük video Tek görümlük içerik Bu ileti silindi. + Bu iletiyi sildiniz. %s Signal\'e katıldı! Kaybolan iletiler devre dışı Kaybolan ileti süresi %s olarak ayarlandı @@ -1617,6 +1623,7 @@ Geçersiz protokol sürümünde anahtar değişim iletisi alındı. Herkesden al Kişileriniz arasında bulunmayan ve profilinizi paylaşmadığınız kişilerden göndereninin gizli olduğu iletilerin alınmasını etkinleştir. Dahasını öğrenin + @@ -1774,7 +1781,6 @@ Geçersiz protokol sürümünde anahtar değişim iletisi alındı. Yeni PIN oluştur Bu cihaz kayıtlı olduğu sürece PIN\'inizi değiştirebilirsiniz. PIN\'inizi oluşturun - PIN\'ler Signal\'de depolanan verileri şifreli olarak tutar böylelikle yalnızca siz erişebilirsiniz. Profiliniz, ayarlarınız ve kişileriniz Signal\'i yeniden yüklediğinizde geri yüklenecektir. Daha güçlü bir PIN seçin PIN\'ler eşleşmiyor. Tekrar deneyin. @@ -1786,13 +1792,13 @@ Geçersiz protokol sürümünde anahtar değişim iletisi alındı. PIN oluşturuluyor… Karşınızda PIN\'ler - PIN\'ler Signal\'de depolanan verileri şifreli olarak tutar böylelikle yalnızca siz erişebilirsiniz. Profiliniz, ayarlarınız ve kişileriniz Signal\'i yeniden yüklediğinizde geri yüklenecektir. Dahasını Öğrenin Kayıt Kilidi = PIN Kayıt Kilidi yerine artık PIN kullanılıyor. Şimdi güncelleyin. PIN\'ler hakkında dahasını okuyun PIN\'i güncelle PIN\'inizi oluşturun + PIN\'ler hakkında dahasını öğrenin Signal PIN\'inizi girin PIN\'inizi hatırlamanıza yardımcı olmak için, arada sırada girmenizi isteyeceğiz. Zaman geçtikçe daha az soracağız. diff --git a/app/src/main/res/values-ur/strings.xml b/app/src/main/res/values-ur/strings.xml index 8675e2175..4595e5037 100644 --- a/app/src/main/res/values-ur/strings.xml +++ b/app/src/main/res/values-ur/strings.xml @@ -535,8 +535,11 @@ %1$sگروپ میں شامل ہوئے۔ + اب آپ ایڈمن ہیں۔ + آپ کو گروپ میں مدعو کیا گیا تھا۔ + گروپ میں آپ کی دعوت منسوخ کردی گئی تھی۔ @@ -611,6 +614,7 @@ عددی پن درج کریں اپنا پن بنائیں + ایپ کی درجہ بندی کریں اگر آپ اس ایپ کو استعمال کرکے لطف اٹھا رہے ہیں، براہ کرم ایک لمحہ لیں جس سے درجہ بندی کرنے میں ہماری مدد ہو۔ @@ -1350,6 +1354,7 @@ کسی سے بھی اجازت دیں غیر رابطوں اور ان لوگوں کی طرف سے آنے والے پیغامات کے لئے مہر بند مرسل کو اہل بنائیں جن کے ساتھ آپ نے اپنا پروفائل اشتراک نہیں کیا ہے۔ مزید پڑھیں + @@ -1494,7 +1499,6 @@ ایک نیا پن بنائیں جب تک یہ device رجسٹرڈ ہے آپ اپنا پن تبدیل کرسکتے ہیں۔ اپنا پن بنائیں - PINs Signal کے ساتھ ذخیرہ شدہ معلومات کو خفیہ شدہ رکھتا ہے لہذا صرف آپ ہی اس تک رسائی حاصل کرسکتے ہیں۔ جب آپ Signal کو دوبارہ انسٹال کرتے ہیں تو آپ کا پروفائل ، ترتیبات اور رابطے بحال ہوجائیں گے۔ ایک مضبوط پن کا انتخاب کریں پن مماثل نہیں ہیں۔ دوبارہ کوشش کریں. @@ -1505,12 +1509,12 @@ پن بنانا… پن ز متعارف ہو رہے ہیں - PINs Signal کے ساتھ ذخیرہ شدہ معلومات کو خفیہ شدہ رکھتا ہے لہذا صرف آپ ہی اس تک رسائی حاصل کرسکتے ہیں۔ جب آپ Signal کو دوبارہ انسٹال کرتے ہیں تو آپ کا پروفائل ، ترتیبات اور رابطے بحال ہوجائیں گے۔ مزید پڑھیں رجسٹریشن لاک=پن پن کے بارے میں مزید پڑھیں پن کو اپ ڈیٹ کریں اپنا پن بنائیں + پن ز کے بارے میں مزید پڑھیں اپنا Signal پن داخل کریں آپ کو اپنا پن حفظ کرنے میں مدد کے لیئے ، ہم آپ سے وقتا فوقتا اس میں داخل ہونے کو کہیں گے۔ وقت کے ساتھ ہم آپ سے کم پوچھتے ہیں۔ diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index a86f07d0b..0aaf976be 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -632,12 +632,14 @@ Bạn đã thu hồi quyền quản trị của %1$s. %1$s đã thu hồi quyền quản trị của bạn. %1$s đã thu hồi quyền quản trị của %2$s. + Bạn đang là quản trị viên. Bạn đã mời %1$s vào nhóm. %1$s đã mời bạn vào nhóm. %1$s đã mời %2$d người vào nhóm. + Bạn đã được mời vào nhóm. Bạn đã thu hồi %1$d lời mời vào nhóm. @@ -647,6 +649,7 @@ Ai đó đã từ chối lời mời vào nhóm. Bạn đã từ chối lời mời vào nhóm. + Thư mời tham gia nhóm của bạn đã bị thu hồi. Bạn đã chấp nhận lời mời vào nhóm. %1$s đã chấp nhận lời mời vào nhóm. @@ -746,6 +749,7 @@ Tạo mã PIN của bạn Bạn đã hết số lần thử mã PIN, nhưng bạn vẫn có thể truy cập tài khoản Signal bằng cách tạo PIN mới. Để đảm bảo bảo mật và tính riêng tư, tài khoản mới của bạn sẽ được khôi phục nhưng thông tin hồ sơ và cài đặt thì không. Tạo PIN mới + Đánh giá ứng dụng này Nếu bạn thích ứng dụng này, hãy dành chút thời gian đánh giá nó. @@ -1518,6 +1522,7 @@ Nhận thông tin trao đổi mã khóa về phiên bản giao thức không h Cho phép từ bất cứ ai Bật \'Lá thư không chủ\' cho tin nhắn từ người gửi không có trong danh bạ và người bạn chưa chia sẻ hồ sơ. Tìm hiểu thêm + @@ -1670,7 +1675,6 @@ Nhận thông tin trao đổi mã khóa về phiên bản giao thức không h Tạo mã PIN mới Bạn có thể thay đổi mã PIN của bạn với điều kiện thiết bị được đăng ký. Tạo mã PIN của bạn - Mã PIN mã hoá các thông tin được lưu trữ với Signal để chỉ mình bạn có thể truy cập được. Thông tin người dùng, cài đặt, và các liên hệ sẽ được khôi phục khi bạn cài đặt lại Signal. Chọn mã PIN mạnh hơn Mã PIN không khớp. Vui lòng thử lại. @@ -1682,13 +1686,13 @@ Nhận thông tin trao đổi mã khóa về phiên bản giao thức không h Đang tạo mã PIN… Giới thiệu mã PIN - Mã PIN mã hoá các thông tin được lưu trữ với Signal để chỉ mình bạn có thể truy cập được. Thông tin người dùng, cài đặt, và các liên hệ sẽ được khôi phục khi bạn cài đặt lại Signal. Tìm hiểu thêm Khóa Đăng ký = PIN Khóa đăng kí giờ trở thành mã PIN hữu dụng hơn. Cập nhật mã PIN ngay. Đọc thêm về mã PIN. Cập nhật mã PIN Tạo mã PIN của bạn + Tìm hiểu thêm về mã PIN Nhập mã PIN Signal của bạn Để giúp bạn nhớ mã PIN của mình, chúng tôi sẽ yêu cầu bạn nhập lại mã định kỳ. Chúng tôi sẽ dần hỏi ít hơn. diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 0af260617..e34030b85 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -531,8 +531,11 @@ %1$s 加入群组。 + 你被设置为管理员。 + 你被邀请加入此群 + 对你的入群邀请已失效。 @@ -613,6 +616,8 @@ 输入数字 PIN 创建 PIN + + 警告 对此应用评分 如果您喜欢使用此应用,请使用片刻时间对其进行打分。 @@ -1388,6 +1393,7 @@ 允许来自任何人 对于非联系人和未与其分享个人资料的其他人,启用传入消息的加密发送人功能。 了解更多 + @@ -1539,7 +1545,6 @@ 新建 PIN 只有该设备已注册,你可以更改你的 PIN。 创建 PIN 密码 - PIN 令信息以 Signal 加密方式保存,这样只有你可以访问它。重新安装 Signal 时,可恢复你的个人资料、设置和联系人。 选择更安全 PIN PIN 不匹配,请重试。 @@ -1550,13 +1555,13 @@ 正在创建 PIN… 新推出 PIN 密码功能 - PIN 令信息以 Signal 加密方式保存,这样只有你可以访问它。重新安装 Signal 时,可恢复你的个人资料、设置和联系人。 了解更多 注册锁定 = PIN 注册锁定现在改名为 PIN,功能更强大,马上更新。 了解更多 PIN 信息。 更新 PIN 创建 PIN + 了解更多关于 PIN 的信息 请输入 Signal 的 PIN 密码 为了便于记住 PIN,我们将定期提示输入该密码。提示次数将逐渐减少。 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c823d535d..ed1a4db2f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -171,6 +171,7 @@ 下載更多 等待中 這個訊息已經被刪除。 + 你刪除了此訊息。 重設安全對話? 該選項將會有助於解決您在對話中遇到的加密問題。您的訊息將被保留。 @@ -263,6 +264,7 @@ 刪除訊息中… 為我刪除 為大家刪除 + 該訊息將被永久刪除。 成員將能夠看到你刪除了一則訊息。 無法找到原始訊息 原始訊息已不存在 開啟訊息失敗 @@ -601,6 +603,7 @@ 收到一則使用舊版本並已經不再支援的 Signal 加密訊息。請尋求傳送人將 Signal 升級到最新的版本並再次傳送該訊息。 您已經離開了此群組。 你已更新群組。 + 該群組已更新。 向外撥號 聯絡人來電 未接來電 @@ -613,6 +616,7 @@ %1$s 關閉了自動銷毀訊息的功能。 你已將訊息銷毀時間設定為 %1$s。 %1$s 已將訊息銷毀時間設為 %2$s。 + 自動銷毀訊息時間已經被設為%1$s。 你建立了一個群組。 群組已更新。 @@ -628,6 +632,8 @@ %1$s從此群組將你移除了。 你已離開群組。 %1$s離開了群組。 + 你已不在這個群組中。 + %1$s已不在群組中。 你將%1$s設為管理員。 %1$s將%2$s設為管理員。 @@ -635,12 +641,20 @@ 你撤消了%1$s的管理員權限。 %1$s撤消你的管理員權限。\" %1$s從%2$s撤銷了管理員權限。 + %1$s現在是管理者。 + 你現在是管理員。 + %1$s不再是管理者。 + 你已不再是管理者。 你邀請了%1$s到此群組。 %1$s邀請你到此群組。 %1$s邀請了%2$d個人們到此群組。 + 你被邀請到此群組。 + + %1$d個人已經被邀請到此群組。 + 你撤銷了%1$d到此群組的邀請。 @@ -650,6 +664,10 @@ 有人拒絕了到此群組的邀請。 你拒絕了到此群組的邀請。 + 你加入群組的邀請已被撤消。 + + %1$d的邀請到此群組已被取消。 + 你接受了到此群組的邀請。 %1$s接受了到此群組的邀請。 @@ -658,15 +676,19 @@ 你變更了群組名稱為\"%1$s\"。 %1$s變更了群組名稱為\"%2$s\"。 + 此群組的名稱已經被改為\"%1$s\"。 你變更了群組頭像。 %1$s變更了群組頭像。 + 此群組的頭像已被改變。 你變更了誰可以編輯群組資訊為\"%1$s\"。 %1$s變更了誰可以編輯群組資訊為\"%2$s\"。 + 誰可以編輯群組資訊已變更為\"%1$s\"。 你變更了誰可以編輯群組成員資格為\"%1$s\"。 %1$s變更了誰可以編輯群駔成員資格為\"%2$s\"。 + 誰可以編輯群成員已變更為\"%1$s\"。 您與 %s 的安全碼已改變。 你標記與 %s 的安全碼為已驗證 @@ -755,6 +777,10 @@ 建立你的 PIN 碼 你的PIN碼猜測用完了,但是你仍然可以通過建立新的PIN碼來連結Signal帳號。 為了你的隱私和安全,你的帳號將被回復,而不會保存任何個人資料訊息或設定。 建立新的PIN碼 + + 警告 + + 停用PIN碼 評分這個應用程式 如果您喜歡使用此應用程式,請使用片刻時間幫我們對其進行評分。 @@ -869,6 +895,7 @@ 我們將在幾天後再次提醒你。 我們會在一周後再次提醒你。 我們會在幾週後再次提醒你。 + 我們將在一個月內再次提醒你。 圖片 貼圖 @@ -936,6 +963,7 @@ 一次性影片 一次性多媒體檔案 這個訊息已經被刪除。 + 你刪除了此訊息。 %s 在 Signal 了! 自動銷毀訊息功能已被關閉。 訊息銷毀時間設定為 %s @@ -1167,6 +1195,7 @@ \"%1$s\"不是 Signal 使用者。請檢查使用者名稱並再試一次。 Okay 群組人數已經滿了 + 你無需將自己新增到群組中 無已封鎖的聯絡人 @@ -1526,6 +1555,9 @@ 深色 介面設定 主題 + 停用PIN碼 + 啟用PIN碼 + PIN碼會以Signal加密方式儲存訊息,因此只有你可以讀取。 重新安裝後,你的個人資料,設定和聯絡人將回復。 你不需要PIN碼即可開啟應用程式。 系統預設 預設 語言選項 @@ -1576,6 +1608,7 @@ 允許任何人 啟用密封發件人對來自非聯絡人及其他人傳來的訊息,將不會對其分享你的個人資訊。 了解更多 + @@ -1730,7 +1763,6 @@ 建立一個新 PIN 碼 只要註冊了此裝置,你就可以變更PIN碼。 建立你的 PIN 碼 - PIN碼會以Signal加密方式儲存資訊,因此只有你可以讀取。 重新安裝Signal時,你的個人資料,設定和聯絡人將復元。 請選擇強度較強的PIN碼 PIN碼不符合。請重試一次。 @@ -1742,13 +1774,13 @@ 建立PIN碼中… 介紹 PIN 碼 - PIN碼會以Signal加密方式儲存資訊,因此只有你可以讀取。 重新安裝Signal時,你的個人資料,設定和聯絡人將復元。 了解更多 註冊鎖 = PIN 碼 你的註冊鎖現在稱為PIN碼,並且功能更多。 請立即更新。 了解更多有關PIN碼。 升級PIN碼 建立你的 PIN 碼 + 了解更多有關 PIN 碼 輸入你的 Signal PIN 碼 為了幫助你記住PIN碼,我們會要求你定期輸入。 我們會漸漸地減少要求。 diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index f171b379e..85855f14e 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -226,6 +226,8 @@ + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9be1cae52..f9d47fba9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,6 +53,10 @@ Screen lock %1$s, Registration lock %2$s Screen lock %1$s Theme %1$s, Language %2$s + PINs are required for registration lock. To disable PINs, please first disable registration lock. + Failed to disable PINs. Try again later. + Pin created. + Pin disabled. @@ -953,6 +957,11 @@ Create new PIN https://support.signal.org/hc/articles/360007059792 + + Warning + Disabling PIN will create a hidden, high-entropy PIN associated with your account that is unrecoverable. When you re-register Signal you will lose all data unless you manually back up and restore. You can not turn on Registration Lock while the PIN is disabled. + Disable PIN + Rate this app If you enjoy using this app, please take a moment to help us by rating it. @@ -1271,6 +1280,7 @@ Delete message? This will permanently delete this message. %1$s to %2$s + Media no longer available. %1$d new messages in %2$d conversations @@ -1891,10 +1901,15 @@ Dark Appearance Theme + Disable PIN + Enable PIN + Disabling PIN will create a hidden, high-entropy PIN associated with your account that is unrecoverable. When you re-register Signal you will lose all data unless you manually back up and restore. You can not turn on Registration Lock while the PIN is disabled. + PINs keep information stored with Signal encrypted so only you can access it. Your profile, settings, and contacts will restore when you reinstall. You won’t need your PIN to open the app. System default Default Language Signal messages and calls + Advanced PIN settings Free private messages and calls to Signal users Submit debug log \'WiFi Calling\' compatibility mode @@ -1956,6 +1971,9 @@ Forces a write of capabilities on to the server followed by a read. Rotate profile key Creates a new versioned profile, and triggers an update of any GV2 group you belong to. + Storage service + Overwrite remote data + Forces remote storage to match the local device state. @@ -2150,7 +2168,7 @@ Create a new PIN You can change your PIN as long as this device is registered. Create your PIN - PINs keep information stored with Signal encrypted so only you can access it. Your profile, settings, and contacts will restore when you reinstall Signal. + PINs keep information stored with Signal encrypted so only you can access it. Your profile, settings, and contacts will restore when you reinstall. You won\'t need your PIN to open the app. Choose a stronger PIN @@ -2164,7 +2182,7 @@ Introducing PINs - PINs keep information stored with Signal encrypted so only you can access it. Your profile, settings, and contacts will restore when you reinstall Signal. + PINs keep information stored with Signal encrypted so only you can access it. Your profile, settings, and contacts will restore when you reinstall. You won\'t need your PIN to open the app. Learn More https://support.signal.org/hc/articles/360007059792 Registration Lock = PIN @@ -2172,6 +2190,8 @@ Read more about PINs. Update PIN Create your PIN + Learn more about PINs + Disable PIN Enter your Signal PIN diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f5b513590..eea6dfa6b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -20,6 +20,7 @@ diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 3a9e495c1..72ae22e0c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -410,6 +410,8 @@ @color/core_white + @color/core_red_highlight + ?attr/icon_tint @drawable/preference_divider_light @@ -710,6 +712,8 @@ @color/core_grey_75 + @color/core_red + ?attr/icon_tint @drawable/preference_divider_dark diff --git a/app/src/main/res/xml/preferences_advanced.xml b/app/src/main/res/xml/preferences_advanced.xml index b6d70eb33..ee80c165a 100644 --- a/app/src/main/res/xml/preferences_advanced.xml +++ b/app/src/main/res/xml/preferences_advanced.xml @@ -1,22 +1,30 @@ - + + android:defaultValue="false" + android:key="pref_toggle_push_messaging" + android:title="@string/preferences__signal_messages_and_calls" + android:summary="@string/preferences__free_private_messages_and_calls"/> - + - + + android:title="@string/preferences__internal_preferences" + app:isPreferenceVisible="false" /> + + diff --git a/app/src/main/res/xml/preferences_advanced_pin.xml b/app/src/main/res/xml/preferences_advanced_pin.xml new file mode 100644 index 000000000..74fc63781 --- /dev/null +++ b/app/src/main/res/xml/preferences_advanced_pin.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/app/src/main/res/xml/preferences_internal.xml b/app/src/main/res/xml/preferences_internal.xml index d11f7f589..a2badf270 100644 --- a/app/src/main/res/xml/preferences_internal.xml +++ b/app/src/main/res/xml/preferences_internal.xml @@ -14,6 +14,16 @@ android:key="pref_rotate_profile_key" android:summary="@string/preferences__internal_rotate_profile_key_description" android:title="@string/preferences__internal_rotate_profile_key" /> + + + + + diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java index 453a1d9e3..76783f96f 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceContent.java @@ -930,7 +930,7 @@ public final class SignalServiceContent { throw new ProtocolInvalidMessageException(new InvalidMessageException(e), null, 0); } - if (groupV2.hasGroupChange()) { + if (groupV2.hasGroupChange() && !groupV2.getGroupChange().isEmpty()) { builder.withSignedGroupChange(groupV2.getGroupChange().toByteArray()); } diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroupV2.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroupV2.java index 6db20910d..1cefa2d3c 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroupV2.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/messages/SignalServiceGroupV2.java @@ -1,6 +1,8 @@ package org.whispersystems.signalservice.api.messages; +import org.signal.zkgroup.InvalidInputException; import org.signal.zkgroup.groups.GroupMasterKey; +import org.whispersystems.signalservice.internal.push.SignalServiceProtos; /** * Group information to include in SignalServiceMessages destined to v2 groups. @@ -20,6 +22,27 @@ public final class SignalServiceGroupV2 { this.signedGroupChange = builder.signedGroupChange != null ? builder.signedGroupChange.clone() : null; } + /** + * Creates a context model populated from a protobuf group V2 context. + */ + public static SignalServiceGroupV2 fromProtobuf(SignalServiceProtos.GroupContextV2 groupContextV2) { + GroupMasterKey masterKey; + try { + masterKey = new GroupMasterKey(groupContextV2.getMasterKey().toByteArray()); + } catch (InvalidInputException e) { + throw new AssertionError(e); + } + + Builder builder = newBuilder(masterKey); + + if (groupContextV2.hasGroupChange() && !groupContextV2.getGroupChange().isEmpty()) { + builder.withSignedGroupChange(groupContextV2.getGroupChange().toByteArray()); + } + + return builder.withRevision(groupContextV2.getRevision()) + .build(); + } + public GroupMasterKey getMasterKey() { return masterKey; } diff --git a/lintchecks/src/main/java/org/signal/lint/Registry.java b/lintchecks/src/main/java/org/signal/lint/Registry.java index 56446cadc..cf9ecd31e 100644 --- a/lintchecks/src/main/java/org/signal/lint/Registry.java +++ b/lintchecks/src/main/java/org/signal/lint/Registry.java @@ -14,7 +14,8 @@ public final class Registry extends IssueRegistry { public List getIssues() { return Arrays.asList(SignalLogDetector.LOG_NOT_SIGNAL, SignalLogDetector.LOG_NOT_APP, - SignalLogDetector.INLINE_TAG); + SignalLogDetector.INLINE_TAG, + VersionCodeDetector.VERSION_CODE_USAGE); } @Override diff --git a/lintchecks/src/main/java/org/signal/lint/VersionCodeDetector.java b/lintchecks/src/main/java/org/signal/lint/VersionCodeDetector.java new file mode 100644 index 000000000..a06bec4e6 --- /dev/null +++ b/lintchecks/src/main/java/org/signal/lint/VersionCodeDetector.java @@ -0,0 +1,91 @@ +package org.signal.lint; + +import com.android.annotations.NonNull; +import com.android.tools.lint.client.api.JavaEvaluator; +import com.android.tools.lint.client.api.UElementHandler; +import com.android.tools.lint.detector.api.Category; +import com.android.tools.lint.detector.api.Detector; +import com.android.tools.lint.detector.api.Implementation; +import com.android.tools.lint.detector.api.Issue; +import com.android.tools.lint.detector.api.JavaContext; +import com.android.tools.lint.detector.api.LintFix; +import com.android.tools.lint.detector.api.Scope; +import com.android.tools.lint.detector.api.Severity; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiElement; +import com.intellij.psi.PsiType; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.uast.UElement; +import org.jetbrains.uast.UExpression; + +import java.util.Collections; +import java.util.List; + +@SuppressWarnings("UnstableApiUsage") +public final class VersionCodeDetector extends Detector implements Detector.UastScanner { + + static final Issue VERSION_CODE_USAGE = Issue.create("VersionCodeUsage", + "Using 'VERSION_CODES' reference instead of the numeric value", + "Signal style is to use the numeric value.", + Category.CORRECTNESS, + 5, + Severity.WARNING, + new Implementation(VersionCodeDetector.class, Scope.JAVA_FILE_SCOPE)); + + @Override + public List> getApplicableUastTypes() { + return Collections.singletonList(UExpression.class); + } + + @Override + public UElementHandler createUastHandler(@NonNull JavaContext context) { + return new ExpressionChecker(context); + } + + private class ExpressionChecker extends UElementHandler { + private final JavaContext context; + private final JavaEvaluator evaluator; + private final PsiClass versionCodeClass; + + public ExpressionChecker(JavaContext context) { + this.context = context; + this.evaluator = context.getEvaluator(); + this.versionCodeClass = evaluator.findClass("android.os.Build.VERSION_CODES"); + } + + @Override + public void visitExpression(@NotNull UExpression node) { + if (versionCodeClass != null && node.getExpressionType() == PsiType.INT) { + PsiElement javaPsi = node.getJavaPsi(); + + if (javaPsi != null) { + PsiElement resolved = evaluator.resolve(javaPsi); + + if (resolved != null && resolved.getParent().equals(versionCodeClass)) { + Object evaluated = node.evaluate(); + + if (evaluated != null) { + context.report(VERSION_CODE_USAGE, node, context.getLocation(node), "Using 'VERSION_CODES' reference instead of the numeric value " + evaluated, quickFixIssueInlineValue(node, evaluated.toString())); + } else { + context.report(VERSION_CODE_USAGE, node, context.getLocation(node), "Using 'VERSION_CODES' reference instead of the numeric value", null); + } + } + } + } + } + } + + private LintFix quickFixIssueInlineValue(@NotNull UExpression node, @NotNull String fixSource) { + String expressionSource = node.asSourceString(); + LintFix.GroupBuilder fixGrouper = fix().group(); + + fixGrouper.add(fix().replace() + .text(expressionSource) + .reformat(true) + .with(fixSource) + .build()); + + return fixGrouper.build(); + } +} \ No newline at end of file diff --git a/lintchecks/src/test/java/org/signal/lint/LogDetectorTest.java b/lintchecks/src/test/java/org/signal/lint/LogDetectorTest.java index 08f693ffd..3d6e26ac4 100644 --- a/lintchecks/src/test/java/org/signal/lint/LogDetectorTest.java +++ b/lintchecks/src/test/java/org/signal/lint/LogDetectorTest.java @@ -12,6 +12,7 @@ import static com.android.tools.lint.checks.infrastructure.TestLintTask.lint; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +@SuppressWarnings("UnstableApiUsage") public final class LogDetectorTest { private static final TestFile serviceLogStub = java(readResourceAsString("ServiceLogStub.java")); diff --git a/lintchecks/src/test/java/org/signal/lint/VersionCodeDetectorTest.java b/lintchecks/src/test/java/org/signal/lint/VersionCodeDetectorTest.java new file mode 100644 index 000000000..0d9695244 --- /dev/null +++ b/lintchecks/src/test/java/org/signal/lint/VersionCodeDetectorTest.java @@ -0,0 +1,122 @@ +package org.signal.lint; + +import org.junit.Test; + +import static com.android.tools.lint.checks.infrastructure.TestFiles.java; +import static com.android.tools.lint.checks.infrastructure.TestLintTask.lint; + +@SuppressWarnings("UnstableApiUsage") +public final class VersionCodeDetectorTest { + + @Test + public void version_code_constant_referenced_in_code() { + lint() + .files( + java("package foo;\n" + + "import android.os.Build;\n" + + "public class Example {\n" + + " public void versionCodeMention() {\n" + + " if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {\n" + + " }\n" + + " }\n" + + "}") + ) + .issues(VersionCodeDetector.VERSION_CODE_USAGE) + .run() + .expect("src/foo/Example.java:5: Warning: Using 'VERSION_CODES' reference instead of the numeric value 21 [VersionCodeUsage]\n" + + " if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {\n" + + " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + + "0 errors, 1 warnings") + .expectFixDiffs("Fix for src/foo/Example.java line 5: Replace with 21:\n" + + "@@ -5 +5\n" + + "- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {\n" + + "+ if (Build.VERSION.SDK_INT >= 21) {"); + } + + @Test + public void numeric_value_referenced_in_code() { + lint() + .files( + java("package foo;\n" + + "import android.os.Build;\n" + + "public class Example {\n" + + " public void versionCodeMention() {\n" + + " if (Build.VERSION.SDK_INT >= 22) {\n" + + " }\n" + + " }\n" + + "}") + ) + .issues(VersionCodeDetector.VERSION_CODE_USAGE) + .run() + .expectClean(); + } + + @Test + public void non_version_code_constant_referenced_in_code() { + lint() + .files( + java("package foo;\n" + + "import android.os.Build;\n" + + "public class Example {\n" + + " private final static int LOLLIPOP = 21;\n" + + " public void versionCodeMention() {\n" + + " if (Build.VERSION.SDK_INT >= LOLLIPOP) {\n" + + " }\n" + + " }\n" + + "}") + ) + .issues(VersionCodeDetector.VERSION_CODE_USAGE) + .run() + .expectClean(); + } + + @Test + public void version_code_constant_referenced_in_TargetApi_attribute_and_inner_class_import() { + lint() + .files( + java("package foo;\n" + + "import android.os.Build.VERSION_CODES;\n" + + "import android.annotation.TargetApi;\n" + + "public class Example {\n" + + " @TargetApi(VERSION_CODES.N)\n" + + " public void versionCodeMention() {\n" + + " }\n" + + "}") + ) + .issues(VersionCodeDetector.VERSION_CODE_USAGE) + .run() + .expect("src/foo/Example.java:5: Warning: Using 'VERSION_CODES' reference instead of the numeric value 24 [VersionCodeUsage]\n" + + " @TargetApi(VERSION_CODES.N)\n" + + " ~~~~~~~~~~~~~~~\n" + + "0 errors, 1 warnings") + .expectFixDiffs("Fix for src/foo/Example.java line 5: Replace with 24:\n" + + "@@ -5 +5\n" + + "- @TargetApi(VERSION_CODES.N)\n" + + "+ @TargetApi(24)"); + } + + @Test + public void version_code_constant_referenced_in_RequiresApi_attribute_with_named_parameter() { + lint() + .files( + java("package foo;\n" + + "import android.os.Build;\n" + + "import android.annotation.RequiresApi;\n" + + "public class Example {\n" + + " @RequiresApi(app = Build.VERSION_CODES.M)\n" + + " public void versionCodeMention() {\n" + + " }\n" + + "}") + ) + .issues(VersionCodeDetector.VERSION_CODE_USAGE) + .run() + .expect("src/foo/Example.java:5: Warning: Using 'VERSION_CODES' reference instead of the numeric value 23 [VersionCodeUsage]\n" + + " @RequiresApi(app = Build.VERSION_CODES.M)\n" + + " ~~~~~~~~~~~~~~~~~~~~~\n" + + "0 errors, 1 warnings") + .expectFixDiffs("Fix for src/foo/Example.java line 5: Replace with 23:\n" + + "@@ -5 +5\n" + + "- @RequiresApi(app = Build.VERSION_CODES.M)\n" + + "+ @RequiresApi(app = 23)"); + } +}