Commit e5def002 authored by DrKLO's avatar DrKLO

Different improvements

parent e3d2b9ce
......@@ -80,7 +80,7 @@ android {
defaultConfig {
minSdkVersion 8
targetSdkVersion 19
versionCode 363
versionCode 371
versionName "1.9.5"
}
}
......@@ -425,7 +425,7 @@ public class AndroidUtilities {
final NumberPicker numberPicker = new NumberPicker(context);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(20);
if (encryptedChat.ttl >= 0 && encryptedChat.ttl < 16) {
if (encryptedChat.ttl > 0 && encryptedChat.ttl < 16) {
numberPicker.setValue(encryptedChat.ttl);
} else if (encryptedChat.ttl == 30) {
numberPicker.setValue(16);
......@@ -437,6 +437,8 @@ public class AndroidUtilities {
numberPicker.setValue(19);
} else if (encryptedChat.ttl == 60 * 60 * 24 * 7) {
numberPicker.setValue(20);
} else if (encryptedChat.ttl == 0) {
numberPicker.setValue(5);
}
numberPicker.setFormatter(new NumberPicker.Formatter() {
@Override
......@@ -479,7 +481,7 @@ public class AndroidUtilities {
encryptedChat.ttl = 60 * 60 * 24 * 7;
}
if (oldValue != encryptedChat.ttl) {
SendMessagesHelper.getInstance().sendTTLMessage(encryptedChat);
SendMessagesHelper.getInstance().sendTTLMessage(encryptedChat, null);
MessagesStorage.getInstance().updateEncryptedChatTTL(encryptedChat);
}
}
......
......@@ -791,7 +791,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
photoW = bmOptions.outWidth;
photoH = bmOptions.outHeight;
}
if (photoW == 0 || photoH == 0 || (photoW == width && photoH == height || photoH == width && photoW == height)) {
if (photoW <= 0 || photoH <= 0 || (photoW == width && photoH == height || photoH == width && photoW == height)) {
screenshotDates.add(date);
}
} catch (Exception e) {
......@@ -834,7 +834,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
}
}
if (send) {
SendMessagesHelper.getInstance().sendScreenshotMessage(lastSecretChat, lastSecretChatVisibleMessages);
SendMessagesHelper.getInstance().sendScreenshotMessage(lastSecretChat, lastSecretChatVisibleMessages, null);
}
}
......@@ -2200,6 +2200,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
File inputFile = new File(videoPath);
if (!inputFile.canRead()) {
didWriteData(messageObject, cacheFile, true, true);
return false;
}
......@@ -2577,6 +2578,7 @@ public class MediaController implements NotificationCenter.NotificationCenterDel
FileLog.e("tmessages", "time = " + (System.currentTimeMillis() - time));
}
} else {
didWriteData(messageObject, cacheFile, true, true);
return false;
}
didWriteData(messageObject, cacheFile, true, error);
......
......@@ -232,7 +232,7 @@ public class MessageObject {
} else {
messageText = LocaleController.formatString("NotificationContactNewPhoto", R.string.NotificationContactNewPhoto, "");
}
} else if (message.action instanceof TLRPC.TL_messageEcryptedAction) {
} else if (message.action instanceof TLRPC.TL_messageEncryptedAction) {
if (message.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionScreenshotMessages) {
if (isFromMe()) {
messageText = LocaleController.formatString("ActionTakeScreenshootYou", R.string.ActionTakeScreenshootYou);
......@@ -243,6 +243,29 @@ public class MessageObject {
messageText = LocaleController.formatString("ActionTakeScreenshoot", R.string.ActionTakeScreenshoot).replace("un1", "");
}
}
} else if (message.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionSetMessageTTL) {
TLRPC.TL_decryptedMessageActionSetMessageTTL action = (TLRPC.TL_decryptedMessageActionSetMessageTTL) message.action.encryptedAction;
if (action.ttl_seconds != 0) {
if (isFromMe()) {
messageText = LocaleController.formatString("MessageLifetimeChangedOutgoing", R.string.MessageLifetimeChangedOutgoing, AndroidUtilities.formatTTLString(action.ttl_seconds));
} else {
if (fromUser != null) {
messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, fromUser.first_name, AndroidUtilities.formatTTLString(action.ttl_seconds));
} else {
messageText = LocaleController.formatString("MessageLifetimeChanged", R.string.MessageLifetimeChanged, "", AndroidUtilities.formatTTLString(action.ttl_seconds));
}
}
} else {
if (isFromMe()) {
messageText = LocaleController.getString("MessageLifetimeYouRemoved", R.string.MessageLifetimeYouRemoved);
} else {
if (fromUser != null) {
messageText = LocaleController.formatString("MessageLifetimeRemoved", R.string.MessageLifetimeRemoved, fromUser.first_name);
} else {
messageText = LocaleController.formatString("MessageLifetimeRemoved", R.string.MessageLifetimeRemoved, "");
}
}
}
}
} else if (message.action instanceof TLRPC.TL_messageActionCreatedBroadcastList) {
messageText = LocaleController.formatString("YouCreatedBroadcastList", R.string.YouCreatedBroadcastList);
......@@ -301,6 +324,14 @@ public class MessageObject {
} else if (message.action instanceof TLRPC.TL_messageActionChatEditPhoto || message.action instanceof TLRPC.TL_messageActionUserUpdatedPhoto) {
contentType = 4;
type = 11;
} else if (message.action instanceof TLRPC.TL_messageEncryptedAction) {
if (message.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionScreenshotMessages || message.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionSetMessageTTL) {
contentType = 4;
type = 10;
} else {
contentType = -1;
type = -1;
}
} else {
contentType = 4;
type = 10;
......
......@@ -704,4 +704,26 @@ public class FileLoader {
}
return "";
}
public void deleteFiles(final ArrayList<File> files) {
if (files == null || files.isEmpty()) {
return;
}
fileLoaderQueue.postRunnable(new Runnable() {
@Override
public void run() {
for (File file : files) {
if (file.exists()) {
try {
if (!file.delete()) {
file.deleteOnExit();
}
} catch (Exception e) {
FileLog.e("tmessages", e);
}
}
}
}
});
}
}
......@@ -370,7 +370,7 @@ public class TLClassStore {
classStore.put(TLRPC.TL_userRequest_old.constructor, TLRPC.TL_userRequest_old.class);
classStore.put(TLRPC.TL_userForeign_old.constructor, TLRPC.TL_userForeign_old.class);
classStore.put(TLRPC.TL_userDeleted_old.constructor, TLRPC.TL_userDeleted_old.class);
classStore.put(TLRPC.TL_messageEcryptedAction.constructor, TLRPC.TL_messageEcryptedAction.class);
classStore.put(TLRPC.TL_messageEncryptedAction.constructor, TLRPC.TL_messageEncryptedAction.class);
}
static TLClassStore store = null;
......
......@@ -8429,32 +8429,37 @@ public class TLRPC {
}
}
//manually created
public static class TL_messages_sendEncryptedService extends TLObject {
public static int constructor = 0x32d439a4;
public TL_inputEncryptedChat peer;
public long random_id;
public byte[] data;
public ByteBufferDesc data;
public Class responseClass () {
return messages_SentEncryptedMessage.class;
}
public void readParams(AbsSerializedData stream) {
peer = (TL_inputEncryptedChat)TLClassStore.Instance().TLdeserialize(stream, stream.readInt32());
random_id = stream.readInt64();
data = stream.readByteArray();
}
public void serializeToStream(AbsSerializedData stream) {
stream.writeInt32(constructor);
peer.serializeToStream(stream);
stream.writeInt64(random_id);
stream.writeByteArray(data);
stream.writeByteBuffer(data);
}
}
//manually created
@Override
public void freeResources() {
if (disableFree) {
return;
}
if (data != null) {
BuffersStorage.getInstance().reuseFreeBuffer(data);
data = null;
}
}
}
public static class TL_userDeleted_old extends TL_userDeleted {
public static int constructor = 0xb29ad7cc;
......@@ -8990,6 +8995,8 @@ public class TLRPC {
public int ttl;
public int destroyTime;
public int layer;
public int seq_in;
public int seq_out;
public VideoEditedInfo videoEditedInfo = null;
}
......@@ -9993,7 +10000,7 @@ public class TLRPC {
}
}
public static class TL_messageEcryptedAction extends MessageAction {
public static class TL_messageEncryptedAction extends MessageAction {
public static int constructor = 0x555555F7;
public void readParams(AbsSerializedData stream) {
......
......@@ -43,36 +43,41 @@ public class ChatMessageCell extends ChatBaseCell {
y -= textY;
int blockNum = Math.max(0, y / currentMessageObject.blockHeight);
if (blockNum < currentMessageObject.textLayoutBlocks.size()) {
MessageObject.TextLayoutBlock block = currentMessageObject.textLayoutBlocks.get(blockNum);
x -= textX - (int)Math.ceil(block.textXOffset);
y -= block.textYOffset;
final int line = block.textLayout.getLineForVertical(y);
final int off = block.textLayout.getOffsetForHorizontal(line, x) + block.charactersOffset;
final float left = block.textLayout.getLineLeft(line);
if (left <= x && left + block.textLayout.getLineWidth(line) >= x) {
Spannable buffer = (Spannable)currentMessageObject.messageText;
ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class);
if (link.length != 0) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
pressedLink = link[0];
return true;
} else {
if (link[0] == pressedLink) {
try {
pressedLink.onClick(this);
} catch (Exception e) {
FileLog.e("tmessages", e);
}
try {
MessageObject.TextLayoutBlock block = currentMessageObject.textLayoutBlocks.get(blockNum);
x -= textX - (int)Math.ceil(block.textXOffset);
y -= block.textYOffset;
final int line = block.textLayout.getLineForVertical(y);
final int off = block.textLayout.getOffsetForHorizontal(line, x) + block.charactersOffset;
final float left = block.textLayout.getLineLeft(line);
if (left <= x && left + block.textLayout.getLineWidth(line) >= x) {
Spannable buffer = (Spannable)currentMessageObject.messageText;
ClickableSpan[] link = buffer.getSpans(off, off, ClickableSpan.class);
if (link.length != 0) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
pressedLink = link[0];
return true;
} else {
if (link[0] == pressedLink) {
try {
pressedLink.onClick(this);
} catch (Exception e) {
FileLog.e("tmessages", e);
}
return true;
}
}
} else {
pressedLink = null;
}
} else {
pressedLink = null;
}
} else {
} catch (Exception e) {
pressedLink = null;
FileLog.e("tmessages", e);
}
} else {
pressedLink = null;
......
......@@ -657,7 +657,16 @@ public class PhotoViewer implements NotificationCenter.NotificationCenterDelegat
if (obj.isSent()) {
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(obj.messageOwner.id);
MessagesController.getInstance().deleteMessages(arr, null, null);
ArrayList<Long> random_ids = null;
TLRPC.EncryptedChat encryptedChat = null;
if ((int)obj.getDialogId() == 0 && obj.messageOwner.random_id != 0) {
random_ids = new ArrayList<Long>();
random_ids.add(obj.messageOwner.random_id);
encryptedChat = MessagesController.getInstance().getEncryptedChat((int)(obj.getDialogId() >> 32));
}
MessagesController.getInstance().deleteMessages(arr, random_ids, encryptedChat);
closePhoto(false);
}
} else if (!avatarsArr.isEmpty()) {
......
......@@ -71,9 +71,7 @@ public class SettingsChangeUsernameActivity extends BaseFragment {
doneButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (firstNameField.getText().length() != 0) {
saveName();
}
saveName();
}
});
......
......@@ -58,6 +58,7 @@ import java.util.List;
@TargetApi(16)
public class VideoEditorActivity extends BaseFragment implements TextureView.SurfaceTextureListener {
private boolean created = false;
private MediaPlayer videoPlayer = null;
private VideoTimelineView videoTimelineView = null;
private View videoContainerView = null;
......@@ -161,6 +162,9 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur
@Override
public boolean onFragmentCreate() {
if (created) {
return true;
}
if (videoPath == null || !processOpenVideo()) {
return false;
}
......@@ -191,6 +195,8 @@ public class VideoEditorActivity extends BaseFragment implements TextureView.Sur
return false;
}
created = true;
return super.onFragmentCreate();
}
......
......@@ -36,7 +36,6 @@ import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.animation.DecelerateInterpolator;
import android.widget.LinearLayout;
import android.widget.Scroller;
import android.widget.TextView;
import org.telegram.messenger.R;
......@@ -726,6 +725,28 @@ public class NumberPicker extends LinearLayout {
}
}
public static int resolveSizeAndState(int size, int measureSpec, int childMeasuredState) {
int result = size;
int specMode = MeasureSpec.getMode(measureSpec);
int specSize = MeasureSpec.getSize(measureSpec);
switch (specMode) {
case MeasureSpec.UNSPECIFIED:
result = size;
break;
case MeasureSpec.AT_MOST:
if (specSize < size) {
result = specSize | 16777216;
} else {
result = size;
}
break;
case MeasureSpec.EXACTLY:
result = specSize;
break;
}
return result | (childMeasuredState & (-16777216));
}
private void initializeSelectorWheelIndices() {
mSelectorIndexToStringCache.clear();
int[] selectorIndices = mSelectorIndices;
......
......@@ -51,6 +51,7 @@
<string name="DeleteChat">حذف وخروج</string>
<string name="HiddenName">الاسم مخفي</string>
<string name="SelectChat">اختر محادثة</string>
<string name="PhotoTip">إضغط بإستمرار على المستخدم العرض</string>
<string name="CompatibilityChat">%1$s يستخدم إصدار قديم من تيليجرام، لذلك، الصور السرية ستظهر في وضع الموافقة.\n\nعندما يقوم %2$s بتحديث تيليجرام، الصور التي بها عداد دقيقة أو أقل ستعمل بطريقة \"الاستمرار بالضغط للإستعراض\"، وسيتم إخبارك عندما يلتقط المستقبل صورة من شاشته.</string>
<!--broadcasts-->
<string name="BroadcastList">قائمة الرسالة الجماعية</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">غير معروف</string>
<string name="Info">معلومات</string>
<string name="Phone">هاتف</string>
<!--usernames-->
<string name="Username">اسم مستخدم</string>
<string name="UsernamePlaceholder">معرّفك</string>
<string name="UsernameInUse">المعذرة، اسم المستخدم تم اختياره مسبقًا.</string>
......@@ -211,8 +213,8 @@
<string name="UsernameHelp">يمكنك اختيار اسم مستخدم في <![CDATA[<b>]]>تيليجرام<![CDATA[</b>]]>. إذا قمت بذلك، سيستطيع الناس إيجادك باستخدام الاسم المستخدم والتواصل معك من دون معرفة رقمك.<![CDATA[<br><br>]]>يمكنك استخدام <![CDATA[<b>]]>حروف اللغة الإنجليزية<![CDATA[</b>]]>, <![CDATA[<b>]]>وأرقامها<![CDATA[</b>]]> و كذلك الخط. لا بد من استخدام <![CDATA[<b>]]>٥<![CDATA[</b>]]> حروف على الأقل.</string>
<string name="UsernameChecking">جاري مراجعة اسم المستخدم...</string>
<string name="UsernameAvailable">%1$s متاح.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">لا يوجد</string>
<string name="ErrorOccurred">حدث خطأ.</string>
<!--settings view-->
<string name="ResetNotificationsText">تم تعيين كافة الإشعارات افتراضيا</string>
<string name="TextSize">حجم نص الرسائل</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">أعد الإرسال باستخدام اسمي</string>
<string name="SendMessagesToGroup">هل ترغب في إرسال رسالة إلى %1$s؟</string>
<string name="ForwardMessagesToGroup">؟%1$s هل تريد إعادة توجيه الرسائل إلى</string>
<string name="FeatureUnavailable">.Sorry, this feature is currently not available in your country</string>
<!--Intro view-->
<string name="Page1Title">تيليجرام</string>
<string name="Page2Title">سريع</string>
......
......@@ -51,6 +51,7 @@
<string name="DeleteChat">Löschen und beenden</string>
<string name="HiddenName">Versteckter Name</string>
<string name="SelectChat">Chat auswählen</string>
<string name="PhotoTip">Tippen und Halten</string>
<string name="CompatibilityChat">%1$s benutzt eine ältere Version von Telegram, sodass Fotos in Geheimen Chats im Kompatibilitätsmodus angezeigt werden.\n\nSobald %2$s Telegram aktualisiert, werden Fotos mit Timern von 1 Minute und kürzer per \"Tippen und Halten\" angezeigt. Du wirst benachrichtigt, sobald dein Chatpartner ein Bildschirmfoto macht.</string>
<!--broadcasts-->
<string name="BroadcastList">Broadcast Liste</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">Unbekannt</string>
<string name="Info">INFO</string>
<string name="Phone">Telefon</string>
<!--usernames-->
<string name="Username">Benutzername</string>
<string name="UsernamePlaceholder">Dein Benutzername</string>
<string name="UsernameInUse">Leider ist dieser Benutzername vergeben.</string>
......@@ -208,11 +210,11 @@
<string name="UsernameInvalidShort">Ein Benutzername benötigt mindestens 5 Zeichen.</string>
<string name="UsernameInvalidLong">Ein Benutzername darf maximal 32 Zeichen haben.</string>
<string name="UsernameInvalidStartNumber">Benutzernamen dürfen leider nicht mit einer Zahl anfangen.</string>
<string name="UsernameHelp">Wähle einen Benutzernamen, wenn du von anderen bei<![CDATA[<b>]]>Telegram<![CDATA[</b>]]>gefunden werden willst – ohne, dass sie deine Nummer kennen müssen.<![CDATA[<br><br>]]>Erlaubt sind <![CDATA[<b>]]>a–z<![CDATA[<b>]]>, <![CDATA[<b>]]>0–9<![CDATA[<b>]]> und Unterstriche. Die Mindestlänge beträgt <![CDATA[<b>]]>5<![CDATA[<b>]]> Zeichen.</string>
<string name="UsernameHelp">Wähle einen Benutzernamen, wenn du von anderen bei<![CDATA[<b>]]>Telegram<![CDATA[</b>]]>gefunden werden willst — ohne, dass sie deine Nummer kennen müssen.<![CDATA[<br><br>]]>Erlaubt sind <![CDATA[<b>]]>a-z<![CDATA[<b>]]>, <![CDATA[<b>]]>0-9<![CDATA[<b>]]> und Unterstriche. Die Mindestlänge beträgt <![CDATA[<b>]]>5<![CDATA[<b>]]> Zeichen.</string>
<string name="UsernameChecking">Prüfe Benutzername...</string>
<string name="UsernameAvailable">%1$s ist verfügbar.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">Keiner</string>
<string name="ErrorOccurred">Es ist ein Fehler aufgetreten.</string>
<!--settings view-->
<string name="ResetNotificationsText">Alle Einstellungen für Mitteilungen zurücksetzen</string>
<string name="TextSize">Textgröße für Nachrichten</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">mit meinem Namen weiterleiten</string>
<string name="SendMessagesToGroup">Nachricht an %1$s senden?</string>
<string name="ForwardMessagesToGroup">Weiterleiten an %1$s?</string>
<string name="FeatureUnavailable">Sorry, this feature is currently not available in your country.</string>
<!--Intro view-->
<string name="Page1Title">Telegram</string>
<string name="Page2Title">Schnell</string>
......
......@@ -22,10 +22,10 @@
<string name="DidNotGetTheCode">¿No recibiste el código?</string>
<!--signup view-->
<string name="YourName">Tu nombre</string>
<string name="RegisterText">Ingresa tu nombre y apellido</string>
<string name="RegisterText">Ingresa tu nombre y apellidos</string>
<!--<string name="RegisterText">Set up your name and picture</string>-->
<string name="FirstName">Nombre (requerido)</string>
<string name="LastName">Apellido (opcional)</string>
<string name="LastName">Apellidos (opcional)</string>
<string name="CancelRegistration">Cancelar registro</string>
<!--chats view-->
<string name="Chats">Chats</string>
......@@ -51,6 +51,7 @@
<string name="DeleteChat">Eliminar y salir</string>
<string name="HiddenName">Nombre oculto</string>
<string name="SelectChat">Elige el chat</string>
<string name="PhotoTip">Mantén pulsado para ver</string>
<string name="CompatibilityChat">%1$s usa una versión antigua de Telegram, así que las fotos secretas serán mostradas en un modo de compatibilidad.\n\nCuando %2$s actualice Telegram, las fotos con autodestrucción de 1 minuto o menos funcionarán con el modo \'Mantén pulsado para ver\', y te notificaremos siempre que la otra parte haga una captura de pantalla.</string>
<!--broadcasts-->
<string name="BroadcastList">Lista de difusión</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">Desconocido</string>
<string name="Info">INFORMACIÓN</string>
<string name="Phone">Teléfono</string>
<!--usernames-->
<string name="Username">Apodo</string>
<string name="UsernamePlaceholder">Tu apodo</string>
<string name="UsernameInUse">Lo siento, este apodo ya está ocupado.</string>
......@@ -211,8 +213,8 @@
<string name="UsernameHelp">Puedes elegir un apodo en <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Si lo haces, otras personas te podrán encontrar por ese apodo y contactarte sin saber tu número de teléfono.<![CDATA[<br><br>]]>Puedes usar <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> y guiones bajos. La longitud mínima es de <![CDATA[<b>]]>5<![CDATA[</b>]]> caracteres.</string>
<string name="UsernameChecking">Verificando apodo...</string>
<string name="UsernameAvailable">%1$s está disponible.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">Ninguno</string>
<string name="ErrorOccurred">Ocurrió un error.</string>
<!--settings view-->
<string name="ResetNotificationsText">Restablecer las notificaciones</string>
<string name="TextSize">Tamaño del texto</string>
......@@ -238,7 +240,7 @@
<string name="BlockedUsers">Usuarios bloqueados</string>
<string name="SaveIncomingPhotos">Guardar fotos entrantes</string>
<string name="LogOut">Cerrar sesión</string>
<string name="YourFirstNameAndLastName">TU NOMBRE Y APELLIDO</string>
<string name="YourFirstNameAndLastName">TU NOMBRE Y APELLIDOS</string>
<string name="NoSound">Sin sonido</string>
<string name="Default">Por defecto</string>
<string name="Support">SOPORTE</string>
......@@ -264,7 +266,7 @@
<string name="ImportContacts">Importar contactos</string>
<string name="WiFiOnly">Sólo vía Wi-Fi</string>
<string name="SortFirstName">Nombre</string>
<string name="SortLastName">Apellido</string>
<string name="SortLastName">Apellidos</string>
<string name="LedColor">Color del LED</string>
<string name="PopupNotification">Notificaciones emergentes</string>
<string name="NoPopup">Desactivadas</string>
......@@ -360,7 +362,7 @@
<string name="FloodWait">Muchos intentos. Por favor, inténtalo más tarde.</string>
<string name="InvalidCode">Código inválido</string>
<string name="InvalidFirstName">Nombre inválido</string>
<string name="InvalidLastName">Apellido inválido</string>
<string name="InvalidLastName">Apellidos inválidos</string>
<string name="Loading">Cargando...</string>
<string name="NoPlayerInstalled">No tienes reproductor de vídeo. Por favor, instala uno para continuar.</string>
<string name="NoMailInstalled">Por favor, envíanos un correo electrónico a sms@telegram.org y cuéntanos tu problema.</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">reenviar desde mi nombre</string>
<string name="SendMessagesToGroup">¿Enviar mensajes a %1$s?</string>
<string name="ForwardMessagesToGroup">¿Reenviar mensajes a %1$s?</string>
<string name="FeatureUnavailable">Sorry, this feature is currently not available in your country.</string>
<!--Intro view-->
<string name="Page1Title">Telegram</string>
<string name="Page2Title">Rápida</string>
......
......@@ -51,6 +51,7 @@
<string name="DeleteChat">Elimina ed esci</string>
<string name="HiddenName">Nome nascosto</string>
<string name="SelectChat">Seleziona chat</string>
<string name="PhotoTip">Tieni premuto per vedere</string>
<string name="CompatibilityChat">%1$s sta usando una versione vecchia di Telegram, quindi le foto segrete verranno visualizzate in modalità di compatibilità.\n\nUna volta che %2$s avrà aggiornato Telegram, le foto con il timer minore di 1 minuto funzioneranno in modalità \'Tieni premuto per vedere\' , e verrai notificato ogni volta che l\'altro esegue uno screenshot.</string>
<!--broadcasts-->
<string name="BroadcastList">Lista broadcast</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">Sconosciuto</string>
<string name="Info">INFO</string>
<string name="Phone">Telefono</string>
<!--usernames-->
<string name="Username">Nome utente</string>
<string name="UsernamePlaceholder">Il tuo Nome Utente</string>
<string name="UsernameInUse">Nome utente già preso.</string>
......@@ -211,8 +213,8 @@
<string name="UsernameHelp">Puoi scegliere un nome utente su <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Se lo fai, le altre persone potranno trovarti tramite questo nome utente e contattarti senza conoscere il tuo numero di telefono.<![CDATA[<br><br>]]>Puoi usare <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> e underscore. La lunghezza minima è di <![CDATA[<b>]]>5<![CDATA[</b>]]> caratteri.</string>
<string name="UsernameChecking">Controllando il nome utente...</string>
<string name="UsernameAvailable">%1$s è disponibile.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">Nessuno</string>
<string name="ErrorOccurred">Si è verificato un errore.</string>
<!--settings view-->
<string name="ResetNotificationsText">Ripristina tutte le impostazioni di notifica predefinite</string>
<string name="TextSize">Dimensione testo messaggi</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">inoltra dal mio nome</string>
<string name="SendMessagesToGroup">Inviare messaggi a %1$s?</string>
<string name="ForwardMessagesToGroup">Inoltra messaggi a %1$s?</string>
<string name="FeatureUnavailable">Ci spiace, questa funzione non è disponibile nel tuo paese.</string>
<!--Intro view-->
<string name="Page1Title">Telegram</string>
<string name="Page2Title">Veloce</string>
......
......@@ -38,7 +38,7 @@
<string name="NoResult">결과 없음</string>
<string name="NoChats">채팅방이 없습니다...</string>
<string name="NoChatsHelp">대화를 시작하려면 우측 상단의\n초대하기 버튼을 누르거나\n메뉴 버튼을 눌러 보세요.</string>
<string name="WaitingForNetwork">네트워크 연결을 기다리는 중...</string>
<string name="WaitingForNetwork">대기 중...</string>
<string name="Connecting">연결 중...</string>
<string name="Updating">업데이트 중...</string>
<string name="NewSecretChat">비밀대화 시작</string>
......@@ -51,6 +51,8 @@
<string name="DeleteChat">채팅방 나가기</string>
<string name="HiddenName">숨긴 이름</string>
<string name="SelectChat">채팅방 선택</string>
<string name="PhotoTip">꾹 눌러서 보기</string>
<string name="CompatibilityChat">%1$s님의 텔레그램 버전이 낮아 비밀 사진을 호환성 모드로 표시합니다.\n\n%2$s님이 텔레그램을 업데이트하고 나면, 자동삭제 시간이 1분 이하인 사진은 \"탭하고 누르고 있어야 보임\" 상태가 되며, 상대방이 화면을 캡처할 때 마다 알림을 받습니다.</string>
<!--broadcasts-->
<string name="BroadcastList">단체 메시지 리스트</string>
<string name="NewBroadcastList">새 단체 메시지 리스트</string>
......@@ -160,7 +162,7 @@
<string name="LastSeen">마지막 접속: </string>
<string name="LastSeenDate">마지막 접속: </string>
<string name="InviteFriends">친구 초대</string>
<string name="GlobalSearch">GLOBAL SEARCH</string>
<string name="GlobalSearch">전체 검색</string>
<!--group create view-->
<string name="SendMessageTo">메시지 보내기...</string>
<string name="EnterGroupNamePlaceholder">그룹 이름 입력</string>
......@@ -197,21 +199,22 @@
<string name="MessageLifetime">자동삭제 타이머</string>
<string name="ShortMessageLifetimeForever">해제</string>
<string name="EncryptionKeyDescription">이 이미지는 <![CDATA[<b>]]>%1$s<![CDATA[</b>]]>님과의 비밀대화에 사용 중인 암호화 키의 모습입니다.<![CDATA[<br><br>]]>이 이미지가 <![CDATA[<b>]]>%2$s<![CDATA[</b>]]>님의 암호화 키와 똑같다면 대화는 200%% 안전합니다.<![CDATA[<br><br>]]>더 자세한 사항은 telegram.org 를 참고해 주세요.</string>
<string name="NumberUnknown">Unknown</string>
<string name="Info">INFO</string>
<string name="NumberUnknown">알 수 없음</string>
<string name="Info">정보</string>
<string name="Phone">전화번호</string>
<string name="Username">Username</string>
<string name="UsernamePlaceholder">Your Username</string>
<string name="UsernameInUse">Sorry, this username is already taken.</string>
<string name="UsernameInvalid">Sorry, this username is invalid.</string>
<string name="UsernameInvalidShort">A username must have at least 5 characters.</string>
<string name="UsernameInvalidLong">A username must have maximum 32 characters.</string>
<string name="UsernameInvalidStartNumber">Sorry, a username can\'t start with a number.</string>
<string name="UsernameHelp">You can choose a username on <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. If you do, other people will be able to find you by this username and contact you without knowing your phone number.<![CDATA[<br><br>]]>You can use <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> and underscores. Minimum length is <![CDATA[<b>]]>5<![CDATA[</b>]]> characters.</string>
<string name="UsernameChecking">Checking username...</string>
<string name="UsernameAvailable">%1$s is available.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<!--usernames-->
<string name="Username">아이디</string>
<string name="UsernamePlaceholder">아이디</string>
<string name="UsernameInUse">이미 사용 중인 아이디입니다.</string>
<string name="UsernameInvalid">올바른 아이디를 입력하세요.</string>
<string name="UsernameInvalidShort">아이디는 최소 다섯 글자 이상 입력해야 합니다.</string>
<string name="UsernameInvalidLong">아이디는 최대 32자까지만 가능합니다.</string>
<string name="UsernameInvalidStartNumber">아이디는 숫자로 시작할 수 없습니다.</string>
<string name="UsernameHelp">텔레그램 아이디를 설정할 수 있습니다. 아이디를 설정하면 회원님의 전화번호를 몰라도 아이디로 회원님을 찾아 대화를 나눌 수 있습니다.<![CDATA[<br><br>]]>아이디는 영문, 밑줄, 숫자로 (<![CDATA[<b>]]>a~z<![CDATA[</b>]]>, <![CDATA[<b>]]>_<![CDATA[</b>]]>, <![CDATA[<b>]]>0~9<![CDATA[</b>]]>) <![CDATA[<b>]]>다섯 글자<![CDATA[</b>]]> 이상으로 설정해 주세요.</string>
<string name="UsernameChecking">아이디 확인 중...</string>
<string name="UsernameAvailable">%1$s: 사용 가능합니다.</string>
<string name="UsernameEmpty">없음</string>
<string name="ErrorOccurred">오류가 발생했습니다.</string>
<!--settings view-->
<string name="ResetNotificationsText">모든 알림 설정이 초기화되었습니다</string>
<string name="TextSize">채팅 글자 크기</string>
......@@ -383,6 +386,7 @@
<string name="ForwardFromMyName">내 이름으로 전달</string>
<string name="SendMessagesToGroup">%1$s 그룹에 메시지를 보낼까요?</string>
<string name="ForwardMessagesToGroup">%1$s 그룹에 메시지를 전달할까요?</string>
<string name="FeatureUnavailable">이 기능은 회원님의 국가에서는 사용할 수 없습니다.</string>
<!--Intro view-->
<string name="Page1Title">텔레그램</string>
<string name="Page2Title">눈부신 속도</string>
......@@ -436,36 +440,36 @@
<string name="FromContacts_few">채팅방 %1$d개에서</string>
<string name="FromContacts_many">채팅방 %1$d개에서</string>
<string name="FromContacts_other">채팅방 %1$d개에서</string>
<string name="Seconds_zero">%1$d seconds</string>
<string name="Seconds_one">%1$d second</string>
<string name="Seconds_two">%1$d seconds</string>
<string name="Seconds_few">%1$d seconds</string>
<string name="Seconds_many">%1$d seconds</string>
<string name="Seconds_other">%1$d seconds</string>
<string name="Minutes_zero">%1$d minutes</string>
<string name="Minutes_one">%1$d minute</string>
<string name="Minutes_two">%1$d minutes</string>
<string name="Minutes_few">%1$d minutes</string>
<string name="Minutes_many">%1$d minutes</string>
<string name="Minutes_other">%1$d minutes</string>
<string name="Hours_zero">%1$d hours</string>
<string name="Hours_one">%1$d hour</string>
<string name="Hours_two">%1$d hours</string>
<string name="Hours_few">%1$d hours</string>
<string name="Hours_many">%1$d hours</string>
<string name="Hours_other">%1$d hours</string>
<string name="Days_zero">%1$d days</string>
<string name="Days_one">%1$d day</string>
<string name="Days_two">%1$d days</string>
<string name="Days_few">%1$d days</string>
<string name="Days_many">%1$d days</string>
<string name="Days_other">%1$d days</string>
<string name="Weeks_zero">%1$d weeks</string>
<string name="Weeks_one">%1$d week</string>
<string name="Weeks_two">%1$d weeks</string>
<string name="Weeks_few">%1$d weeks</string>
<string name="Weeks_many">%1$d weeks</string>
<string name="Weeks_other">%1$d weeks</string>
<string name="Seconds_zero">%1$d</string>
<string name="Seconds_one">%1$d</string>
<string name="Seconds_two">%1$d</string>
<string name="Seconds_few">%1$d</string>
<string name="Seconds_many">%1$d</string>
<string name="Seconds_other">%1$d</string>
<string name="Minutes_zero">%1$d</string>
<string name="Minutes_one">%1$d</string>
<string name="Minutes_two">%1$d</string>
<string name="Minutes_few">%1$d</string>
<string name="Minutes_many">%1$d</string>
<string name="Minutes_other">%1$d</string>
<string name="Hours_zero">%1$d시간</string>
<string name="Hours_one">%1$d시간</string>
<string name="Hours_two">%1$d시간</string>
<string name="Hours_few">%1$d시간</string>
<string name="Hours_many">%1$d시간</string>
<string name="Hours_other">%1$d시간</string>
<string name="Days_zero">%1$d</string>
<string name="Days_one">%1$d</string>
<string name="Days_two">%1$d</string>
<string name="Days_few">%1$d</string>
<string name="Days_many">%1$d</string>
<string name="Days_other">%1$d</string>
<string name="Weeks_zero">%1$d</string>
<string name="Weeks_one">%1$d</string>
<string name="Weeks_two">%1$d</string>
<string name="Weeks_few">%1$d</string>
<string name="Weeks_many">%1$d</string>
<string name="Weeks_other">%1$d</string>
<!--date formatters-->
<string name="formatterMonth">M\'월\' d\'일\'</string>
<string name="formatterYear">yyyy.MM.dd.</string>
......
......@@ -51,7 +51,8 @@
<string name="DeleteChat">Verwijderen en verlaten</string>
<string name="HiddenName">Verborgen naam</string>
<string name="SelectChat">Kies een gesprek</string>
<string name="CompatibilityChat">%1$s gebruikt een oudere versie van Telegram, dus worden geheime foto\'s weergegeven in de compatibiliteitsmodus.\n\nZodra %2$s Telegram update werken foto\'s met timers voor 1 minuut of minder in de \'Houd ingedrukt om te bekijken\'-modus en krijg je een bericht wanneer de andere partij een schermafbeelding maakt.</string>
<string name="PhotoTip">Druk en houd ingedrukt</string>
<string name="CompatibilityChat">%1$s gebruikt een oudere versie van Telegram, dus worden geheime foto\'s weergegeven in de compatibiliteitsmodus.\n\nZodra %2$s Telegram updatet werken foto\'s met timers voor 1 minuut of minder in de \'Druk en houd ingedrukt\'-modus en krijg je een bericht wanneer de andere partij een schermafbeelding maakt.</string>
<!--broadcasts-->
<string name="BroadcastList">Verzendlijst</string>
<string name="NewBroadcastList">Nieuwe verzendlijst</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">Onbekend</string>
<string name="Info">INFORMATIE</string>
<string name="Phone">Telefoon</string>
<!--usernames-->
<string name="Username">Gebruikersnaam</string>
<string name="UsernamePlaceholder">Kies een naam</string>
<string name="UsernameInUse">Sorry, deze gebruikersnaam is al bezet.</string>
......@@ -211,8 +213,8 @@
<string name="UsernameHelp">Je kan een gebruikersnaam kiezen voor <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Hiermee kunnen anderen je vinden en contact met je opnemen zonder je telefoonnummer te weten.<![CDATA[<br><br>]]>Je mag <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> en liggend streepje gebruiken. De minimale lengte is <![CDATA[<b>]]>5<![CDATA[</b>]]> tekens.</string>
<string name="UsernameChecking">Gebruikersnaam controleren.</string>
<string name="UsernameAvailable">%1$s is beschikbaar.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">Geen</string>
<string name="ErrorOccurred">Er is een fout opgetreden.</string>
<!--settings view-->
<string name="ResetNotificationsText">Alle meldingsinstellingen herstellen</string>
<string name="TextSize">Tekstgrootte berichten</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">doorsturen via mijn eigen naam</string>
<string name="SendMessagesToGroup">Berichten naar %1$s verzenden?</string>
<string name="ForwardMessagesToGroup">Berichten naar %1$s doorsturen?</string>
<string name="FeatureUnavailable">Sorry, deze functie is momenteel niet beschikbaar in jouw land.</string>
<!--Intro view-->
<string name="Page1Title">Telegram</string>
<string name="Page2Title">Snel</string>
......
......@@ -51,6 +51,7 @@
<string name="DeleteChat">Apagar e sair</string>
<string name="HiddenName">Nome oculto</string>
<string name="SelectChat">Selecione uma Conversa</string>
<string name="PhotoTip">Toque e segure para ver</string>
<string name="CompatibilityChat">%1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualize o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela.</string>
<!--broadcasts-->
<string name="BroadcastList">Lista de Broadcast</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">Desconhecido</string>
<string name="Info">INFO</string>
<string name="Phone">Telefone</string>
<!--usernames-->
<string name="Username">Nome de Usuário</string>
<string name="UsernamePlaceholder">Seu nome de usuário</string>
<string name="UsernameInUse">Desculpe, este usuário já existe.</string>
......@@ -211,8 +213,8 @@
<string name="UsernameHelp">Você pode escolher um nome de usuário no <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Assim, outras pessoas poderão te encontrar pelo nome de usuário e entrar em contato sem precisar saber seu telefone. <![CDATA[<br><br>]]>Você pode usar <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> e underline. O tamanho mínimo é <![CDATA[<b>]]>5<![CDATA[</b>]]> caracteres.</string>
<string name="UsernameChecking">Verificando nome de usuário...</string>
<string name="UsernameAvailable">%1$s está disponível.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">Nenhum</string>
<string name="ErrorOccurred">Ocorreu um erro.</string>
<!--settings view-->
<string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string>
<string name="TextSize">Tamanho do texto nas mensagens</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">encaminhar pelo meu nome</string>
<string name="SendMessagesToGroup">Enviar mensagens para %1$s?</string>
<string name="ForwardMessagesToGroup">Encaminhar mensagem para %1$s?</string>
<string name="FeatureUnavailable">Sorry, this feature is currently not available in your country.</string>
<!--Intro view-->
<string name="Page1Title">Telegram</string>
<string name="Page2Title">Rápido</string>
......
......@@ -51,6 +51,7 @@
<string name="DeleteChat">Apagar e sair</string>
<string name="HiddenName">Nome oculto</string>
<string name="SelectChat">Selecione uma Conversa</string>
<string name="PhotoTip">Toque e segure para ver</string>
<string name="CompatibilityChat">%1$s está usando uma versão mais antiga do Telegram, por isso fotos secretas serão mostradas em modo de compatibilidade.\n\nAssim que %2$s atualize o Telegram, fotos com timers de 1 minuto ou menos passarão a funcionar no modo ‘Toque e segure para ver’, e você será notificado caso a outra pessoa salve a tela.</string>
<!--broadcasts-->
<string name="BroadcastList">Lista de Broadcast</string>
......@@ -201,6 +202,7 @@
<string name="NumberUnknown">Desconhecido</string>
<string name="Info">INFO</string>
<string name="Phone">Telefone</string>
<!--usernames-->
<string name="Username">Nome de Usuário</string>
<string name="UsernamePlaceholder">Seu nome de usuário</string>
<string name="UsernameInUse">Desculpe, este usuário já existe.</string>
......@@ -211,8 +213,8 @@
<string name="UsernameHelp">Você pode escolher um nome de usuário no <![CDATA[<b>]]>Telegram<![CDATA[</b>]]>. Assim, outras pessoas poderão te encontrar pelo nome de usuário e entrar em contato sem precisar saber seu telefone. <![CDATA[<br><br>]]>Você pode usar <![CDATA[<b>]]>a–z<![CDATA[</b>]]>, <![CDATA[<b>]]>0–9<![CDATA[</b>]]> e underline. O tamanho mínimo é <![CDATA[<b>]]>5<![CDATA[</b>]]> caracteres.</string>
<string name="UsernameChecking">Verificando nome de usuário...</string>
<string name="UsernameAvailable">%1$s está disponível.</string>
<string name="UsernameEmpty">None</string>
<string name="ErrorOccurred">An error occurred</string>
<string name="UsernameEmpty">Nenhum</string>
<string name="ErrorOccurred">Ocorreu um erro.</string>
<!--settings view-->
<string name="ResetNotificationsText">Restaurar todas as configurações de notificação</string>
<string name="TextSize">Tamanho do texto nas mensagens</string>
......@@ -384,6 +386,7 @@
<string name="ForwardFromMyName">encaminhar pelo meu nome</string>
<string name="SendMessagesToGroup">Enviar mensagens para %1$s?</string>
<string name="ForwardMessagesToGroup">Encaminhar mensagem para %1$s?</string>
<string name="FeatureUnavailable">Sorry, this feature is currently not available in your country.</string>
<!--Intro view-->
<string name="Page1Title">Telegram</string>
<string name="Page2Title">Rápido</string>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment