Merge branch 'master' into player

This commit is contained in:
John Preston 2016-09-23 22:22:40 +03:00
commit 38114d3297
21 changed files with 170 additions and 84 deletions

View file

@ -580,7 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "a contact information"; "lng_action_pinned_media_contact" = "a contact information";
"lng_action_pinned_media_location" = "a location mark"; "lng_action_pinned_media_location" = "a location mark";
"lng_action_pinned_media_sticker" = "a sticker"; "lng_action_pinned_media_sticker" = "a sticker";
"lng_action_game_score" = "{from} scored {score} in {game}"; "lng_action_game_score" = "{from} scored {count:#|#|#} in {game}";
"lng_profile_migrate_reached" = "{count:_not_used_|# member|# members} limit reached"; "lng_profile_migrate_reached" = "{count:_not_used_|# member|# members} limit reached";
"lng_profile_migrate_body" = "To get over this limit, you can upgrade your group to a supergroup."; "lng_profile_migrate_body" = "To get over this limit, you can upgrade your group to a supergroup.";

View file

@ -580,6 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "einen Kontakt"; "lng_action_pinned_media_contact" = "einen Kontakt";
"lng_action_pinned_media_location" = "einen Standort"; "lng_action_pinned_media_location" = "einen Standort";
"lng_action_pinned_media_sticker" = "einen Sticker"; "lng_action_pinned_media_sticker" = "einen Sticker";
"lng_action_game_score" = "{from} erzielte {count:Punkte|Punkt|Punkte} bei {game}";
"lng_profile_migrate_reached" = "Limit von {count:_not_used_|# Mitglied|# Mitgliedern} erreicht"; "lng_profile_migrate_reached" = "Limit von {count:_not_used_|# Mitglied|# Mitgliedern} erreicht";
"lng_profile_migrate_body" = "Um das Limit aufzuheben, ändere die Gruppe in eine Supergruppe."; "lng_profile_migrate_body" = "Um das Limit aufzuheben, ändere die Gruppe in eine Supergruppe.";
@ -683,6 +684,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_switch_stickers" = "Sticker"; "lng_switch_stickers" = "Sticker";
"lng_switch_stickers_gifs" = "GIFs & Sticker"; "lng_switch_stickers_gifs" = "GIFs & Sticker";
"lng_switch_emoji" = "Emoji"; "lng_switch_emoji" = "Emoji";
"lng_stickers_featured_add" = "Hinzufügen";
"lng_saved_gifs" = "Gespeicherte GIFs"; "lng_saved_gifs" = "Gespeicherte GIFs";
"lng_inline_bot_results" = "Ergebnisse von {inline_bot}"; "lng_inline_bot_results" = "Ergebnisse von {inline_bot}";
@ -710,6 +712,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_stickers_return" = "Rückgängig"; "lng_stickers_return" = "Rückgängig";
"lng_stickers_restore" = "Zeigen"; "lng_stickers_restore" = "Zeigen";
"lng_stickers_count" = "{count:Lade...|# Sticker|# Sticker}"; "lng_stickers_count" = "{count:Lade...|# Sticker|# Sticker}";
"lng_stickers_masks_pack" = "Das ist ein Masken-Paket. Du kannst Masken nur im Editor unserer mobilen Apps verwenden.";
"lng_in_dlg_photo" = "Bild"; "lng_in_dlg_photo" = "Bild";
"lng_in_dlg_video" = "Videodatei"; "lng_in_dlg_video" = "Videodatei";
@ -762,6 +765,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_open_this_link" = "Diesen Link öffnen?"; "lng_open_this_link" = "Diesen Link öffnen?";
"lng_open_link" = "Öffnen"; "lng_open_link" = "Öffnen";
"lng_allow_bot_pass" = "Darf {bot_name} deinen Anzeigenamen und deine id mit Internetseiten teilen, die du mit diesem Bot öffnest?";
"lng_allow_bot" = "Erlauben";
"lng_bot_start" = "Starten"; "lng_bot_start" = "Starten";
"lng_bot_choose_group" = "Gruppe auswählen"; "lng_bot_choose_group" = "Gruppe auswählen";
@ -870,6 +875,13 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_reply_cant" = "Leider kann man alte Nachrichten in Supergruppen nicht beantworten :("; "lng_reply_cant" = "Leider kann man alte Nachrichten in Supergruppen nicht beantworten :(";
"lng_reply_cant_forward" = "Leider kann man alte Nachrichten in Supergruppen nicht beantworten. Stattdessen mit Kommentar weiterleiten?"; "lng_reply_cant_forward" = "Leider kann man alte Nachrichten in Supergruppen nicht beantworten. Stattdessen mit Kommentar weiterleiten?";
"lng_share_title" = "Teilen";
"lng_share_copy_link" = "Link kopieren";
"lng_share_confirm" = "Senden";
"lng_share_wrong_user" = "Dieses Spiel wurde von einem anderen Nutzer geöffnet.";
"lng_share_game_link_copied" = "Link in die Zwischenablage kopiert.";
"lng_share_done" = "Fertig!";
"lng_contact_phone" = "Telefonnummer"; "lng_contact_phone" = "Telefonnummer";
"lng_enter_contact_data" = "Neuer Kontakt"; "lng_enter_contact_data" = "Neuer Kontakt";
"lng_edit_group_title" = "Gruppennamen ändern"; "lng_edit_group_title" = "Gruppennamen ändern";

View file

@ -245,7 +245,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_settings_show_preview" = "Mostrar la vista previa del mensaje"; "lng_settings_show_preview" = "Mostrar la vista previa del mensaje";
"lng_settings_use_windows" = "Usar notificaciones de Windows"; "lng_settings_use_windows" = "Usar notificaciones de Windows";
"lng_settings_sound_notify" = "Reproducir sonido"; "lng_settings_sound_notify" = "Reproducir sonido";
"lng_settings_include_muted" = "Incluir los chats silenciados en el conteo de “no leídos”"; "lng_settings_include_muted" = "Contar chats silenciados en los “no leídos”";
"lng_notification_preview" = "Tienes un nuevo mensaje"; "lng_notification_preview" = "Tienes un nuevo mensaje";
@ -580,6 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "un contacto"; "lng_action_pinned_media_contact" = "un contacto";
"lng_action_pinned_media_location" = "una ubicación"; "lng_action_pinned_media_location" = "una ubicación";
"lng_action_pinned_media_sticker" = "un sticker"; "lng_action_pinned_media_sticker" = "un sticker";
"lng_action_game_score" = "{from} ha conseguido {count:# puntos|# punto|# puntos} en {game}";
"lng_profile_migrate_reached" = "Límite de {count:_not_used_|# miembro|# miembros} alcanzado"; "lng_profile_migrate_reached" = "Límite de {count:_not_used_|# miembro|# miembros} alcanzado";
"lng_profile_migrate_body" = "Para superar este límite, puedes convertir tu grupo en un supergrupo."; "lng_profile_migrate_body" = "Para superar este límite, puedes convertir tu grupo en un supergrupo.";
@ -683,6 +684,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_switch_stickers" = "Stickers"; "lng_switch_stickers" = "Stickers";
"lng_switch_stickers_gifs" = "GIF y stickers"; "lng_switch_stickers_gifs" = "GIF y stickers";
"lng_switch_emoji" = "Emoji"; "lng_switch_emoji" = "Emoji";
"lng_stickers_featured_add" = "Añadir";
"lng_saved_gifs" = "GIF guardados"; "lng_saved_gifs" = "GIF guardados";
"lng_inline_bot_results" = "Resultados de {inline_bot}"; "lng_inline_bot_results" = "Resultados de {inline_bot}";
@ -710,6 +712,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_stickers_return" = "Deshacer"; "lng_stickers_return" = "Deshacer";
"lng_stickers_restore" = "Restaurar"; "lng_stickers_restore" = "Restaurar";
"lng_stickers_count" = "{count:Cargando...|# sticker|# stickers}"; "lng_stickers_count" = "{count:Cargando...|# sticker|# stickers}";
"lng_stickers_masks_pack" = "Este es un pack de stickers de máscaras. Puedes usarlas en el editor de fotos de nuestras aplicaciones en móviles.";
"lng_in_dlg_photo" = "Foto"; "lng_in_dlg_photo" = "Foto";
"lng_in_dlg_video" = "Vídeo"; "lng_in_dlg_video" = "Vídeo";
@ -762,6 +765,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_open_this_link" = "¿Abrir este enlace?"; "lng_open_this_link" = "¿Abrir este enlace?";
"lng_open_link" = "Abrir"; "lng_open_link" = "Abrir";
"lng_allow_bot_pass" = "¿Permites a {bot_name} entregar tu nombre e id de Telegram a los sitios web que abres a través de este bot?";
"lng_allow_bot" = "Permitir";
"lng_bot_start" = "Iniciar"; "lng_bot_start" = "Iniciar";
"lng_bot_choose_group" = "Elegir grupo"; "lng_bot_choose_group" = "Elegir grupo";
@ -870,6 +875,13 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_reply_cant" = "Lo sentimos, no puedes responder un mensaje viejo en un supergrupo :("; "lng_reply_cant" = "Lo sentimos, no puedes responder un mensaje viejo en un supergrupo :(";
"lng_reply_cant_forward" = "Lo sentimos, no puedes responder un mensaje viejo en un supergrupo :( ¿Quieres reenviarlo y añadir un comentario?"; "lng_reply_cant_forward" = "Lo sentimos, no puedes responder un mensaje viejo en un supergrupo :( ¿Quieres reenviarlo y añadir un comentario?";
"lng_share_title" = "Compartir con";
"lng_share_copy_link" = "Copiar enlace para compartir";
"lng_share_confirm" = "Enviar";
"lng_share_wrong_user" = "Este juego fue abierto por un usuario diferente.";
"lng_share_game_link_copied" = "Enlace del juego copiado al portapapeles.";
"lng_share_done" = "¡Hecho!";
"lng_contact_phone" = "Número de teléfono"; "lng_contact_phone" = "Número de teléfono";
"lng_enter_contact_data" = "Nuevo contacto"; "lng_enter_contact_data" = "Nuevo contacto";
"lng_edit_group_title" = "Editar nombre del grupo"; "lng_edit_group_title" = "Editar nombre del grupo";

View file

@ -161,7 +161,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_code_ph" = "Codice"; "lng_code_ph" = "Codice";
"lng_code_desc" = "Abbiamo inviato un messaggio col codice\ndi attivazione al tuo telefono. Inseriscilo qui"; "lng_code_desc" = "Abbiamo inviato un messaggio col codice\ndi attivazione al tuo telefono. Inseriscilo qui";
"lng_code_telegram" = "Per favore inserisci il codice che hai\nappena ricevuto nell'altra app di [b]Telegram[/b]."; "lng_code_telegram" = "Per favore inserisci il codice che hai\nappena ricevuto nell'altra app di [b]Telegram[/b].";
"lng_code_no_telegram" = "Invia codice via SMS"; "lng_code_no_telegram" = "Invia codice tramite SMS";
"lng_code_call" = "Telegram ti chiamerà tra {minutes}:{seconds}"; "lng_code_call" = "Telegram ti chiamerà tra {minutes}:{seconds}";
"lng_code_calling" = "Richiedo una telefonata da Telegram..."; "lng_code_calling" = "Richiedo una telefonata da Telegram...";
"lng_code_called" = "Telegram ti ha chiamato"; "lng_code_called" = "Telegram ti ha chiamato";
@ -503,7 +503,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_participant_filter" = "Cerca"; "lng_participant_filter" = "Cerca";
"lng_participant_invite" = "Invita"; "lng_participant_invite" = "Invita";
"lng_participant_invite_sorry" = "Spiacenti, puoi aggiungere solo {count:_not_used|il primo membro|i primi # membri} a un canale.\n\nDa adesso, le persone potranno unirsi con il tuo link di invito."; "lng_participant_invite_sorry" = "Spiacenti, puoi aggiungere solo {count:_not_used|il primo membro|i primi # membri} a un canale.\n\nDa adesso, le persone potranno unirsi tramite il tuo link di invito.";
"lng_create_group_back" = "Indietro"; "lng_create_group_back" = "Indietro";
"lng_create_group_next" = "Avanti"; "lng_create_group_next" = "Avanti";
"lng_create_group_create" = "Crea"; "lng_create_group_create" = "Crea";
@ -558,7 +558,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_kick_user" = "{from} ha rimosso {user}"; "lng_action_kick_user" = "{from} ha rimosso {user}";
"lng_action_user_left" = "{from} ha lasciato il gruppo"; "lng_action_user_left" = "{from} ha lasciato il gruppo";
"lng_action_user_joined" = "{from} si è unito al gruppo"; "lng_action_user_joined" = "{from} si è unito al gruppo";
"lng_action_user_joined_by_link" = "{from} si è unito al gruppo via link di invito"; "lng_action_user_joined_by_link" = "{from} si è unito al gruppo tramite link di invito";
"lng_action_user_registered" = "{from} si è unito a Telegram"; "lng_action_user_registered" = "{from} si è unito a Telegram";
"lng_action_removed_photo" = "{from} ha rimosso la foto del gruppo"; "lng_action_removed_photo" = "{from} ha rimosso la foto del gruppo";
"lng_action_removed_photo_channel" = "Foto del canale rimossa"; "lng_action_removed_photo_channel" = "Foto del canale rimossa";
@ -580,6 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "un contatto"; "lng_action_pinned_media_contact" = "un contatto";
"lng_action_pinned_media_location" = "una posizione"; "lng_action_pinned_media_location" = "una posizione";
"lng_action_pinned_media_sticker" = "uno sticker"; "lng_action_pinned_media_sticker" = "uno sticker";
"lng_action_game_score" = "{from} ha segnato {count:# punti|# punto|# punti} in {game}";
"lng_profile_migrate_reached" = "Limite di {count:_not_used_|# membro|# membri} raggiunto"; "lng_profile_migrate_reached" = "Limite di {count:_not_used_|# membro|# membri} raggiunto";
"lng_profile_migrate_body" = "Per superare questo limite, puoi aggiornare il gruppo a supergruppo."; "lng_profile_migrate_body" = "Per superare questo limite, puoi aggiornare il gruppo a supergruppo.";
@ -588,7 +589,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_profile_migrate_feature1" = "— I supergruppi hanno massimo {count:_not_used_|# membro|# membri}"; "lng_profile_migrate_feature1" = "— I supergruppi hanno massimo {count:_not_used_|# membro|# membri}";
"lng_profile_migrate_feature2" = "— I nuovi membri vedono tutta la cronologia"; "lng_profile_migrate_feature2" = "— I nuovi membri vedono tutta la cronologia";
"lng_profile_migrate_feature3" = "— Gli admin eliminano i messaggi per tutti"; "lng_profile_migrate_feature3" = "— Gli admin eliminano i messaggi per tutti";
"lng_profile_migrate_feature4" = "— Le notifiche sono silenziate di default"; "lng_profile_migrate_feature4" = "— Le notifiche sono disattivate di default";
"lng_profile_migrate_button" = "Aggiorna a supergruppo"; "lng_profile_migrate_button" = "Aggiorna a supergruppo";
"lng_profile_migrate_sure" = "Sicuro di voler aggiornare questo gruppo a supergruppo? Questa opzione non può essere annullata."; "lng_profile_migrate_sure" = "Sicuro di voler aggiornare questo gruppo a supergruppo? Questa opzione non può essere annullata.";
"lng_profile_convert_button" = "Converti in supergruppo"; "lng_profile_convert_button" = "Converti in supergruppo";
@ -629,8 +630,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_forwarded" = "Inoltrato da {user}"; "lng_forwarded" = "Inoltrato da {user}";
"lng_forwarded_channel" = "Inoltrato da {channel}"; "lng_forwarded_channel" = "Inoltrato da {channel}";
"lng_forwarded_via" = "Inoltrato da {user} via {inline_bot}"; "lng_forwarded_via" = "Inoltrato da {user} tramite {inline_bot}";
"lng_forwarded_channel_via" = "Inoltrato da {channel} via {inline_bot}"; "lng_forwarded_channel_via" = "Inoltrato da {channel} tramite {inline_bot}";
"lng_forwarded_signed" = "{channel} ({user})"; "lng_forwarded_signed" = "{channel} ({user})";
"lng_in_reply_to" = "In risposta a"; "lng_in_reply_to" = "In risposta a";
"lng_edited" = "modificato"; "lng_edited" = "modificato";
@ -683,11 +684,12 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_switch_stickers" = "Sticker"; "lng_switch_stickers" = "Sticker";
"lng_switch_stickers_gifs" = "GIF e Sticker"; "lng_switch_stickers_gifs" = "GIF e Sticker";
"lng_switch_emoji" = "Emoji"; "lng_switch_emoji" = "Emoji";
"lng_stickers_featured_add" = "Aggiungi";
"lng_saved_gifs" = "GIF salvate"; "lng_saved_gifs" = "GIF salvate";
"lng_inline_bot_results" = "Risultati da {inline_bot}"; "lng_inline_bot_results" = "Risultati da {inline_bot}";
"lng_inline_bot_no_results" = "Nessun risultato"; "lng_inline_bot_no_results" = "Nessun risultato";
"lng_inline_bot_via" = "via {inline_bot}"; "lng_inline_bot_via" = "tramite {inline_bot}";
"lng_box_remove" = "Rimuovi"; "lng_box_remove" = "Rimuovi";
@ -710,6 +712,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_stickers_return" = "Annulla"; "lng_stickers_return" = "Annulla";
"lng_stickers_restore" = "Ripristina"; "lng_stickers_restore" = "Ripristina";
"lng_stickers_count" = "{count:Carico...|# sticker|# sticker}"; "lng_stickers_count" = "{count:Carico...|# sticker|# sticker}";
"lng_stickers_masks_pack" = "Questo è un set di maschere. Puoi usarle nell'editor fotografico sulle nostre app mobili.";
"lng_in_dlg_photo" = "Foto"; "lng_in_dlg_photo" = "Foto";
"lng_in_dlg_video" = "File video"; "lng_in_dlg_video" = "File video";
@ -762,6 +765,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_open_this_link" = "Aprire questo link?"; "lng_open_this_link" = "Aprire questo link?";
"lng_open_link" = "Apri"; "lng_open_link" = "Apri";
"lng_allow_bot_pass" = "Consentire a {bot_name} di trasmettere il tuo nome e id Telegram alle pagine web che apri tramite questo bot?";
"lng_allow_bot" = "Consenti";
"lng_bot_start" = "Avvia"; "lng_bot_start" = "Avvia";
"lng_bot_choose_group" = "Scegli gruppo"; "lng_bot_choose_group" = "Scegli gruppo";
@ -870,6 +875,13 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_reply_cant" = "Spiacenti, non si può rispondere a un vecchio messaggio nel supergruppo :("; "lng_reply_cant" = "Spiacenti, non si può rispondere a un vecchio messaggio nel supergruppo :(";
"lng_reply_cant_forward" = "Spiacenti, non si può rispondere a un vecchio messaggio nel supergruppo :( Vuoi inoltrarlo e aggiungere un tuo commento?"; "lng_reply_cant_forward" = "Spiacenti, non si può rispondere a un vecchio messaggio nel supergruppo :( Vuoi inoltrarlo e aggiungere un tuo commento?";
"lng_share_title" = "Condividi";
"lng_share_copy_link" = "Copia link";
"lng_share_confirm" = "Invia";
"lng_share_wrong_user" = "Questo gioco è stato aperto da un altro utente.";
"lng_share_game_link_copied" = "Link del gioco copiato negli appunti.";
"lng_share_done" = "Fatto!";
"lng_contact_phone" = "Numero di telefono"; "lng_contact_phone" = "Numero di telefono";
"lng_enter_contact_data" = "Nuovo contatto"; "lng_enter_contact_data" = "Nuovo contatto";
"lng_edit_group_title" = "Modifica nome gruppo"; "lng_edit_group_title" = "Modifica nome gruppo";
@ -950,7 +962,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_confirm_phone_link_invalid" = "Questo link non funziona o è scaduto."; "lng_confirm_phone_link_invalid" = "Questo link non funziona o è scaduto.";
"lng_confirm_phone_title" = "Annulla ripristino account"; "lng_confirm_phone_title" = "Annulla ripristino account";
"lng_confirm_phone_about" = "Qualcuno con accesso al tuo numero di telefono {phone} ha richiesto l'eliminazione del tuo account Telegram e il ripristino della password della verifica in due passaggi.\n\nSe non sei stato tu, per favore inserisci il codice che abbiamo appena inviato come SMS al tuo numero."; "lng_confirm_phone_about" = "Qualcuno con accesso al tuo numero di telefono {phone} ha richiesto l'eliminazione del tuo account Telegram e il ripristino della password della verifica in due passaggi.\n\nSe non sei stato tu, per favore inserisci il codice che abbiamo appena inviato tramite SMS al tuo numero.";
"lng_confirm_phone_success" = "Fatto!\n\nIl processo di eliminazione per il tuo account {phone} è stato annullato. Puoi chiudere questa finestra ora."; "lng_confirm_phone_success" = "Fatto!\n\nIl processo di eliminazione per il tuo account {phone} è stato annullato. Puoi chiudere questa finestra ora.";
"lng_confirm_phone_send" = "Invia"; "lng_confirm_phone_send" = "Invia";
"lng_confirm_phone_enter_code" = "Per favore inserisci il codice."; "lng_confirm_phone_enter_code" = "Per favore inserisci il codice.";

View file

@ -580,6 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "연락처 정보"; "lng_action_pinned_media_contact" = "연락처 정보";
"lng_action_pinned_media_location" = "위치 마크"; "lng_action_pinned_media_location" = "위치 마크";
"lng_action_pinned_media_sticker" = "스티커"; "lng_action_pinned_media_sticker" = "스티커";
"lng_action_game_score" = "{game} 에서 {from} 님이 {count:#|#|#} 점 획득";
"lng_profile_migrate_reached" = "{count:_not_used_|# 명|# 명} 한계치에 도달 되었습니다."; "lng_profile_migrate_reached" = "{count:_not_used_|# 명|# 명} 한계치에 도달 되었습니다.";
"lng_profile_migrate_body" = "제한을 초과하고 싶으실 경우, 슈퍼그룹으로 그룹 업그레이드가 가능합니다."; "lng_profile_migrate_body" = "제한을 초과하고 싶으실 경우, 슈퍼그룹으로 그룹 업그레이드가 가능합니다.";
@ -683,6 +684,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_switch_stickers" = "스티커"; "lng_switch_stickers" = "스티커";
"lng_switch_stickers_gifs" = "GIF & 스티커"; "lng_switch_stickers_gifs" = "GIF & 스티커";
"lng_switch_emoji" = "이모티콘"; "lng_switch_emoji" = "이모티콘";
"lng_stickers_featured_add" = "추가";
"lng_saved_gifs" = "저장된 GIF"; "lng_saved_gifs" = "저장된 GIF";
"lng_inline_bot_results" = "{inline_bot} 결과"; "lng_inline_bot_results" = "{inline_bot} 결과";
@ -710,6 +712,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_stickers_return" = "실행취소"; "lng_stickers_return" = "실행취소";
"lng_stickers_restore" = "복구"; "lng_stickers_restore" = "복구";
"lng_stickers_count" = "{count:Loading...|# 스티커|# 스티커}"; "lng_stickers_count" = "{count:Loading...|# 스티커|# 스티커}";
"lng_stickers_masks_pack" = "마스크 스티커 팩입니다. 모바일 기기에 있는 사진 에디터에서 사용 가능합니다.";
"lng_in_dlg_photo" = "사진"; "lng_in_dlg_photo" = "사진";
"lng_in_dlg_video" = "비디오 파일"; "lng_in_dlg_video" = "비디오 파일";
@ -762,6 +765,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_open_this_link" = "이 링크로 이동하시겠나요?"; "lng_open_this_link" = "이 링크로 이동하시겠나요?";
"lng_open_link" = "열기"; "lng_open_link" = "열기";
"lng_allow_bot_pass" = "이 bot을 통하여 {bot_name}이 텔레그램 이름과 아이디를 웹페이지로 전달하시기를 허락하시나요?";
"lng_allow_bot" = "허용";
"lng_bot_start" = "시작"; "lng_bot_start" = "시작";
"lng_bot_choose_group" = "그룹 선택"; "lng_bot_choose_group" = "그룹 선택";
@ -870,6 +875,13 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_reply_cant" = "죄송합니다. 슈퍼그룹방의 이전 메시지에 답글을 할 수 없습니다 :("; "lng_reply_cant" = "죄송합니다. 슈퍼그룹방의 이전 메시지에 답글을 할 수 없습니다 :(";
"lng_reply_cant_forward" = "죄송합니다. 슈퍼그룹방의 이전 메시지에 답글을 할 수 없습니다 :( 메시지를 전달하거나 코멘트를 다시겠나요?"; "lng_reply_cant_forward" = "죄송합니다. 슈퍼그룹방의 이전 메시지에 답글을 할 수 없습니다 :( 메시지를 전달하거나 코멘트를 다시겠나요?";
"lng_share_title" = "공유하기";
"lng_share_copy_link" = "공유링크 복사";
"lng_share_confirm" = "전송";
"lng_share_wrong_user" = "다른 회원님이 게임을 시작하였습니다.";
"lng_share_game_link_copied" = "클립보드에 게임링크가 복사되었습니다.";
"lng_share_done" = "완료!";
"lng_contact_phone" = "전화번호"; "lng_contact_phone" = "전화번호";
"lng_enter_contact_data" = "새로운 연락처"; "lng_enter_contact_data" = "새로운 연락처";
"lng_edit_group_title" = "그룹 이름 수정"; "lng_edit_group_title" = "그룹 이름 수정";

View file

@ -580,6 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "een contact"; "lng_action_pinned_media_contact" = "een contact";
"lng_action_pinned_media_location" = "een locatie"; "lng_action_pinned_media_location" = "een locatie";
"lng_action_pinned_media_sticker" = "een sticker"; "lng_action_pinned_media_sticker" = "een sticker";
"lng_action_game_score" = "{from} heeft met {game} {count:#punten|#punt|#punten} behaald";
"lng_profile_migrate_reached" = "{count:_not_used_|# lid |# leden} limiet bereikt"; "lng_profile_migrate_reached" = "{count:_not_used_|# lid |# leden} limiet bereikt";
"lng_profile_migrate_body" = "Wil je een hogere limiet? Waardeer op naar een supergroep."; "lng_profile_migrate_body" = "Wil je een hogere limiet? Waardeer op naar een supergroep.";
@ -683,6 +684,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_switch_stickers" = "Stickers"; "lng_switch_stickers" = "Stickers";
"lng_switch_stickers_gifs" = "GIF's & stickers"; "lng_switch_stickers_gifs" = "GIF's & stickers";
"lng_switch_emoji" = "Emoji"; "lng_switch_emoji" = "Emoji";
"lng_stickers_featured_add" = "Toevoegen";
"lng_saved_gifs" = "Opgeslagen GIF's"; "lng_saved_gifs" = "Opgeslagen GIF's";
"lng_inline_bot_results" = "Resultaten van {inline_bot}"; "lng_inline_bot_results" = "Resultaten van {inline_bot}";
@ -710,6 +712,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_stickers_return" = "Ongedaan maken"; "lng_stickers_return" = "Ongedaan maken";
"lng_stickers_restore" = "Herstellen"; "lng_stickers_restore" = "Herstellen";
"lng_stickers_count" = "{count:Laden..|# sticker|# stickers}"; "lng_stickers_count" = "{count:Laden..|# sticker|# stickers}";
"lng_stickers_masks_pack" = "Dit een set met maskers. Je kunt ze gebruiken als je een foto bewerkt in onze mobiele apps.";
"lng_in_dlg_photo" = "Foto"; "lng_in_dlg_photo" = "Foto";
"lng_in_dlg_video" = "Video"; "lng_in_dlg_video" = "Video";
@ -762,6 +765,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_open_this_link" = "Link openen?"; "lng_open_this_link" = "Link openen?";
"lng_open_link" = "Openen"; "lng_open_link" = "Openen";
"lng_allow_bot_pass" = "Wil je {bot_name} toestaan om je naam en ID door te geven aan webpagina's die je opent via deze bot?";
"lng_allow_bot" = "Toestaan";
"lng_bot_start" = "Begin"; "lng_bot_start" = "Begin";
"lng_bot_choose_group" = "Groep kiezen"; "lng_bot_choose_group" = "Groep kiezen";
@ -870,6 +875,13 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_reply_cant" = "Sorry, je kunt geen oude berichten beantwoorden in een supergroep :("; "lng_reply_cant" = "Sorry, je kunt geen oude berichten beantwoorden in een supergroep :(";
"lng_reply_cant_forward" = "Je kunt geen oude berichten beantwoorden in een supergroep :( Doorsturen en commentaar toevoegen?"; "lng_reply_cant_forward" = "Je kunt geen oude berichten beantwoorden in een supergroep :( Doorsturen en commentaar toevoegen?";
"lng_share_title" = "Delen met";
"lng_share_copy_link" = "Link kopiëren";
"lng_share_confirm" = "Stuur";
"lng_share_wrong_user" = "Resultaten zijn van een andere gebruiker of sessie.";
"lng_share_game_link_copied" = "Link gekopieerd naar klembord.";
"lng_share_done" = "Klaar!";
"lng_contact_phone" = "Telefoonnummer"; "lng_contact_phone" = "Telefoonnummer";
"lng_enter_contact_data" = "Nieuw contact"; "lng_enter_contact_data" = "Nieuw contact";
"lng_edit_group_title" = "Groepsnaam wijzigen"; "lng_edit_group_title" = "Groepsnaam wijzigen";

View file

@ -580,6 +580,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_action_pinned_media_contact" = "um contato"; "lng_action_pinned_media_contact" = "um contato";
"lng_action_pinned_media_location" = "uma localização"; "lng_action_pinned_media_location" = "uma localização";
"lng_action_pinned_media_sticker" = "um sticker"; "lng_action_pinned_media_sticker" = "um sticker";
"lng_action_game_score" = "{from} marcou {count:pontos|ponto|pontos} em {game}";
"lng_profile_migrate_reached" = "{count:_not_used_|# membro|# membros} limite alcançado"; "lng_profile_migrate_reached" = "{count:_not_used_|# membro|# membros} limite alcançado";
"lng_profile_migrate_body" = "Para ir além desse limite, você pode converter seu grupo em um supergrupo."; "lng_profile_migrate_body" = "Para ir além desse limite, você pode converter seu grupo em um supergrupo.";
@ -683,6 +684,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_switch_stickers" = "Stickers"; "lng_switch_stickers" = "Stickers";
"lng_switch_stickers_gifs" = "GIFs e Stickers"; "lng_switch_stickers_gifs" = "GIFs e Stickers";
"lng_switch_emoji" = "Emoji"; "lng_switch_emoji" = "Emoji";
"lng_stickers_featured_add" = "Adicionar";
"lng_saved_gifs" = "GIFs Salvos"; "lng_saved_gifs" = "GIFs Salvos";
"lng_inline_bot_results" = "Resultados de {inline_bot}"; "lng_inline_bot_results" = "Resultados de {inline_bot}";
@ -710,6 +712,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_stickers_return" = "Desfazer"; "lng_stickers_return" = "Desfazer";
"lng_stickers_restore" = "Restaurar"; "lng_stickers_restore" = "Restaurar";
"lng_stickers_count" = "{count:Carregando...|# sticker|# stickers}"; "lng_stickers_count" = "{count:Carregando...|# sticker|# stickers}";
"lng_stickers_masks_pack" = "Esse é um pacote de máscaras. Você pode usá-las no editor de fotos em nossos aplicativos para celular.";
"lng_in_dlg_photo" = "Foto"; "lng_in_dlg_photo" = "Foto";
"lng_in_dlg_video" = "Vídeo"; "lng_in_dlg_video" = "Vídeo";
@ -762,6 +765,8 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_open_this_link" = "Abrir este link?"; "lng_open_this_link" = "Abrir este link?";
"lng_open_link" = "Abrir"; "lng_open_link" = "Abrir";
"lng_allow_bot_pass" = "Você permite ao {bot_name} passar seu nome do Telegram e id para páginas web que você abrir através desse bot?";
"lng_allow_bot" = "Permitir";
"lng_bot_start" = "Iniciar"; "lng_bot_start" = "Iniciar";
"lng_bot_choose_group" = "Escolher Grupo"; "lng_bot_choose_group" = "Escolher Grupo";
@ -870,6 +875,13 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
"lng_reply_cant" = "Desculpe, não há como responder uma mensagem antiga no supergrupo :("; "lng_reply_cant" = "Desculpe, não há como responder uma mensagem antiga no supergrupo :(";
"lng_reply_cant_forward" = "Não há como responder uma mensagem antiga no supergrupo :( Deseja encaminhá-la e adicionar um comentário?"; "lng_reply_cant_forward" = "Não há como responder uma mensagem antiga no supergrupo :( Deseja encaminhá-la e adicionar um comentário?";
"lng_share_title" = "Compartilhar com";
"lng_share_copy_link" = "Copiar link";
"lng_share_confirm" = "Enviar";
"lng_share_wrong_user" = "Este jogo foi aberto por outro usuário.";
"lng_share_game_link_copied" = "Link copiado para a área de transferência.";
"lng_share_done" = "Concluído!";
"lng_contact_phone" = "Número de telefone"; "lng_contact_phone" = "Número de telefone";
"lng_enter_contact_data" = "Novo Contato"; "lng_enter_contact_data" = "Novo Contato";
"lng_edit_group_title" = "Editar nome do grupo"; "lng_edit_group_title" = "Editar nome do grupo";

View file

@ -34,8 +34,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,10,7,0 FILEVERSION 0,10,8,0
PRODUCTVERSION 0,10,7,0 PRODUCTVERSION 0,10,8,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -51,10 +51,10 @@ BEGIN
BLOCK "040904b0" BLOCK "040904b0"
BEGIN BEGIN
VALUE "CompanyName", "Telegram Messenger LLP" VALUE "CompanyName", "Telegram Messenger LLP"
VALUE "FileVersion", "0.10.7.0" VALUE "FileVersion", "0.10.8.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2016" VALUE "LegalCopyright", "Copyright (C) 2014-2016"
VALUE "ProductName", "Telegram Desktop" VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "0.10.7.0" VALUE "ProductVersion", "0.10.8.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,10,7,0 FILEVERSION 0,10,8,0
PRODUCTVERSION 0,10,7,0 PRODUCTVERSION 0,10,8,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -43,10 +43,10 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Telegram Messenger LLP" VALUE "CompanyName", "Telegram Messenger LLP"
VALUE "FileDescription", "Telegram Updater" VALUE "FileDescription", "Telegram Updater"
VALUE "FileVersion", "0.10.7.0" VALUE "FileVersion", "0.10.8.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2016" VALUE "LegalCopyright", "Copyright (C) 2014-2016"
VALUE "ProductName", "Telegram Desktop" VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "0.10.7.0" VALUE "ProductVersion", "0.10.8.0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -1110,19 +1110,22 @@ namespace {
return false; return false;
} }
void updateEditedMessage(const MTPDmessage &m) { template <typename TMTPDclass>
PeerId peerId = peerFromMTP(m.vto_id); void updateEditedMessage(const TMTPDclass &m) {
auto peerId = peerFromMTP(m.vto_id);
if (m.has_from_id() && peerToUser(peerId) == MTP::authedId()) { if (m.has_from_id() && peerToUser(peerId) == MTP::authedId()) {
peerId = peerFromUser(m.vfrom_id); peerId = peerFromUser(m.vfrom_id);
} }
if (HistoryItem *existing = App::histItemById(peerToChannel(peerId), m.vid.v)) { if (auto existing = App::histItemById(peerToChannel(peerId), m.vid.v)) {
existing->applyEdition(m); existing->applyEdition(m);
} }
} }
void updateEditedMessageToEmpty(PeerId peerId, MsgId msgId) { void updateEditedMessage(const MTPMessage &m) {
if (auto existing = App::histItemById(peerToChannel(peerId), msgId)) { if (m.type() == mtpc_message) { // apply message edit
existing->applyEditionToEmpty(); App::updateEditedMessage(m.c_message());
} else if (m.type() == mtpc_messageService) {
App::updateEditedMessage(m.c_messageService());
} }
} }

View file

@ -72,8 +72,7 @@ namespace App {
void feedChatAdmins(const MTPDupdateChatAdmins &d, bool emitPeerUpdated = true); void feedChatAdmins(const MTPDupdateChatAdmins &d, bool emitPeerUpdated = true);
void feedParticipantAdmin(const MTPDupdateChatParticipantAdmin &d, bool emitPeerUpdated = true); void feedParticipantAdmin(const MTPDupdateChatParticipantAdmin &d, bool emitPeerUpdated = true);
bool checkEntitiesAndViewsUpdate(const MTPDmessage &m); // returns true if item found and it is not detached bool checkEntitiesAndViewsUpdate(const MTPDmessage &m); // returns true if item found and it is not detached
void updateEditedMessage(const MTPDmessage &m); void updateEditedMessage(const MTPMessage &m);
void updateEditedMessageToEmpty(PeerId peerId, MsgId msgId);
void addSavedGif(DocumentData *doc); void addSavedGif(DocumentData *doc);
void checkSavedGif(HistoryItem *item); void checkSavedGif(HistoryItem *item);
void feedMsgs(const QVector<MTPMessage> &msgs, NewMessageType type); void feedMsgs(const QVector<MTPMessage> &msgs, NewMessageType type);

View file

@ -437,7 +437,7 @@ using RPCDoneHandlerImplementation = RPCHandlerImplementation<RPCAbstractDoneHan
template <typename R> template <typename R>
class RPCDoneHandlerImplementationBare : public RPCDoneHandlerImplementation<R(const mtpPrime*, const mtpPrime*)> { // done(from, end) class RPCDoneHandlerImplementationBare : public RPCDoneHandlerImplementation<R(const mtpPrime*, const mtpPrime*)> { // done(from, end)
public: public:
using Parent::Parent; using RPCDoneHandlerImplementation<R(const mtpPrime*, const mtpPrime*)>::Parent::Parent;
void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override { void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override {
return this->_handler ? this->_handler(from, end) : void(0); return this->_handler ? this->_handler(from, end) : void(0);
} }
@ -447,7 +447,7 @@ public:
template <typename R> template <typename R>
class RPCDoneHandlerImplementationBareReq : public RPCDoneHandlerImplementation<R(const mtpPrime*, const mtpPrime*, mtpRequestId)> { // done(from, end, req_id) class RPCDoneHandlerImplementationBareReq : public RPCDoneHandlerImplementation<R(const mtpPrime*, const mtpPrime*, mtpRequestId)> { // done(from, end, req_id)
public: public:
using Parent::Parent; using RPCDoneHandlerImplementation<R(const mtpPrime*, const mtpPrime*, mtpRequestId)>::Parent::Parent;
void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override { void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override {
return this->_handler ? this->_handler(from, end, requestId) : void(0); return this->_handler ? this->_handler(from, end, requestId) : void(0);
} }
@ -457,7 +457,7 @@ public:
template <typename R, typename T> template <typename R, typename T>
class RPCDoneHandlerImplementationPlain : public RPCDoneHandlerImplementation<R(const T&)> { // done(result) class RPCDoneHandlerImplementationPlain : public RPCDoneHandlerImplementation<R(const T&)> { // done(result)
public: public:
using Parent::Parent; using RPCDoneHandlerImplementation<R(const T&)>::Parent::Parent;
void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override { void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override {
return this->_handler ? this->_handler(T(from, end)) : void(0); return this->_handler ? this->_handler(T(from, end)) : void(0);
} }
@ -467,7 +467,7 @@ public:
template <typename R, typename T> template <typename R, typename T>
class RPCDoneHandlerImplementationReq : public RPCDoneHandlerImplementation<R(const T&, mtpRequestId)> { // done(result, req_id) class RPCDoneHandlerImplementationReq : public RPCDoneHandlerImplementation<R(const T&, mtpRequestId)> { // done(result, req_id)
public: public:
using Parent::Parent; using RPCDoneHandlerImplementation<R(const T&, mtpRequestId)>::Parent::Parent;
void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override { void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override {
return this->_handler ? this->_handler(T(from, end), requestId) : void(0); return this->_handler ? this->_handler(T(from, end), requestId) : void(0);
} }
@ -477,7 +477,7 @@ public:
template <typename R> template <typename R>
class RPCDoneHandlerImplementationNo : public RPCDoneHandlerImplementation<R()> { // done() class RPCDoneHandlerImplementationNo : public RPCDoneHandlerImplementation<R()> { // done()
public: public:
using Parent::Parent; using RPCDoneHandlerImplementation<R()>::Parent::Parent;
void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override { void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override {
return this->_handler ? this->_handler() : void(0); return this->_handler ? this->_handler() : void(0);
} }
@ -487,7 +487,7 @@ public:
template <typename R> template <typename R>
class RPCDoneHandlerImplementationNoReq : public RPCDoneHandlerImplementation<R(mtpRequestId)> { // done(req_id) class RPCDoneHandlerImplementationNoReq : public RPCDoneHandlerImplementation<R(mtpRequestId)> { // done(req_id)
public: public:
using Parent::Parent; using RPCDoneHandlerImplementation<R(mtpRequestId)>::Parent::Parent;
void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override { void operator()(mtpRequestId requestId, const mtpPrime *from, const mtpPrime *end) const override {
return this->_handler ? this->_handler(requestId) : void(0); return this->_handler ? this->_handler(requestId) : void(0);
} }

View file

@ -24,7 +24,7 @@ Copyright (c) 2014-2016 John Preston, https://desktop.telegram.org
#define BETA_VERSION_MACRO (0ULL) #define BETA_VERSION_MACRO (0ULL)
constexpr int AppVersion = 10007; constexpr int AppVersion = 10008;
constexpr str_const AppVersionStr = "0.10.7"; constexpr str_const AppVersionStr = "0.10.8";
constexpr bool AppAlphaVersion = false; constexpr bool AppAlphaVersion = false;
constexpr uint64 AppBetaVersion = BETA_VERSION_MACRO; constexpr uint64 AppBetaVersion = BETA_VERSION_MACRO;

View file

@ -7103,6 +7103,12 @@ void HistoryMessage::applyEdition(const MTPDmessage &message) {
finishEdition(keyboardTop); finishEdition(keyboardTop);
} }
void HistoryMessage::applyEdition(const MTPDmessageService &message) {
if (message.vaction.type() == mtpc_messageActionHistoryClear) {
applyEditionToEmpty();
}
}
void HistoryMessage::applyEditionToEmpty() { void HistoryMessage::applyEditionToEmpty() {
setEmptyText(); setEmptyText();
setMedia(nullptr); setMedia(nullptr);
@ -8145,20 +8151,26 @@ bool HistoryService::prepareGameScoreText(const QString &from, QString *outText,
second = MakeShared<ReplyMarkupClickHandler>(item, i, j); second = MakeShared<ReplyMarkupClickHandler>(item, i, j);
auto parts = strData.split(','); auto parts = strData.split(',');
t_assert(parts.size() > 2); t_assert(parts.size() > 2);
return textcmdLink(2, parts.mid(2).join(',')); QString gameTitle;
gameTitle.reserve(strData.size() - 2);
gameTitle.append(parts[2]);
for (int i = 3, count = parts.size(); i != count; ++i) {
gameTitle.append(',').append(parts[i]);
}
return textcmdLink(2, gameTitle);
} }
} }
} }
} }
return lang(lng_deleted_message); return lang(lng_deleted_message);
}; };
text = lng_action_game_score(lt_from, from, lt_score, QString::number(gamescore->score), lt_game, getGameTitle()); text = lng_action_game_score(lt_from, from, lt_count, gamescore->score, lt_game, getGameTitle());
result = true; result = true;
} else if (gamescore && gamescore->msgId) { } else if (gamescore && gamescore->msgId) {
text = lng_action_game_score(lt_from, from, lt_score, QString::number(gamescore->score), lt_game, lang(lng_contacts_loading)); text = lng_action_game_score(lt_from, from, lt_count, gamescore->score, lt_game, lang(lng_contacts_loading));
result = true; result = true;
} else { } else {
text = lng_action_game_score(lt_from, from, lt_score, QString::number(gamescore->score), lt_game, lang(lng_deleted_message)); text = lng_action_game_score(lt_from, from, lt_count, gamescore->score, lt_game, lang(lng_deleted_message));
} }
*outText = text; *outText = text;
if (second) { if (second) {
@ -8169,20 +8181,7 @@ bool HistoryService::prepareGameScoreText(const QString &from, QString *outText,
HistoryService::HistoryService(History *history, const MTPDmessageService &msg) : HistoryService::HistoryService(History *history, const MTPDmessageService &msg) :
HistoryItem(history, msg.vid.v, mtpCastFlags(msg.vflags.v), ::date(msg.vdate), msg.has_from_id() ? msg.vfrom_id.v : 0) { HistoryItem(history, msg.vid.v, mtpCastFlags(msg.vflags.v), ::date(msg.vdate), msg.has_from_id() ? msg.vfrom_id.v : 0) {
if (msg.has_reply_to_msg_id()) { createFromMtp(msg);
if (msg.vaction.type() == mtpc_messageActionPinMessage) {
UpdateComponents(HistoryServicePinned::Bit());
} else if (msg.vaction.type() == mtpc_messageActionGameScore) {
UpdateComponents(HistoryServiceGameScore::Bit());
Get<HistoryServiceGameScore>()->score = msg.vaction.c_messageActionGameScore().vscore.v;
}
if (auto dependent = GetDependentData()) {
dependent->msgId = msg.vreply_to_msg_id.v;
if (!updateDependent() && App::api()) {
App::api()->requestMessageData(history->peer->asChannel(), dependent->msgId, std_::make_unique<HistoryDependentItemCallback>(fullId()));
}
}
}
setMessageByAction(msg.vaction); setMessageByAction(msg.vaction);
} }
@ -8369,15 +8368,36 @@ HistoryTextState HistoryService::getState(int x, int y, HistoryStateRequest requ
return result; return result;
} }
void HistoryService::applyEditionToEmpty() { void HistoryService::createFromMtp(const MTPDmessageService &message) {
TextWithEntities textWithEntities = { QString(), EntitiesInText() }; if (message.has_reply_to_msg_id()) {
setServiceText(QString(), Links()); if (message.vaction.type() == mtpc_messageActionPinMessage) {
removeMedia(); UpdateComponents(HistoryServicePinned::Bit());
} else if (message.vaction.type() == mtpc_messageActionGameScore) {
UpdateComponents(HistoryServiceGameScore::Bit());
Get<HistoryServiceGameScore>()->score = message.vaction.c_messageActionGameScore().vscore.v;
}
if (auto dependent = GetDependentData()) {
dependent->msgId = message.vreply_to_msg_id.v;
if (!updateDependent() && App::api()) {
App::api()->requestMessageData(history()->peer->asChannel(), dependent->msgId, std_::make_unique<HistoryDependentItemCallback>(fullId()));
}
}
}
setMessageByAction(message.vaction);
}
void HistoryService::applyEdition(const MTPDmessageService &message) {
clearDependency(); clearDependency();
UpdateComponents(0); UpdateComponents(0);
finishEditionToEmpty(); createFromMtp(message);
if (message.vaction.type() == mtpc_messageActionHistoryClear) {
removeMedia();
finishEditionToEmpty();
} else {
finishEdition(-1);
}
} }
void HistoryService::removeMedia() { void HistoryService::removeMedia() {

View file

@ -1206,7 +1206,7 @@ public:
} }
virtual void applyEdition(const MTPDmessage &message) { virtual void applyEdition(const MTPDmessage &message) {
} }
virtual void applyEditionToEmpty() { virtual void applyEdition(const MTPDmessageService &message) {
} }
virtual void updateMedia(const MTPMessageMedia *media) { virtual void updateMedia(const MTPMessageMedia *media) {
} }
@ -2626,7 +2626,7 @@ public:
QString notificationHeader() const override; QString notificationHeader() const override;
void applyEdition(const MTPDmessage &message) override; void applyEdition(const MTPDmessage &message) override;
void applyEditionToEmpty() override; void applyEdition(const MTPDmessageService &message) override;
void updateMedia(const MTPMessageMedia *media) override; void updateMedia(const MTPMessageMedia *media) override;
int32 addToOverview(AddToOverviewMethod method) override; int32 addToOverview(AddToOverviewMethod method) override;
void eraseFromOverview() override; void eraseFromOverview() override;
@ -2693,7 +2693,6 @@ public:
~HistoryMessage(); ~HistoryMessage();
private: private:
HistoryMessage(History *history, const MTPDmessage &msg); HistoryMessage(History *history, const MTPDmessage &msg);
HistoryMessage(History *history, MsgId msgId, MTPDmessage::Flags flags, QDateTime date, int32 from, HistoryMessage *fwd); // local forwarded HistoryMessage(History *history, MsgId msgId, MTPDmessage::Flags flags, QDateTime date, int32 from, HistoryMessage *fwd); // local forwarded
HistoryMessage(History *history, MsgId msgId, MTPDmessage::Flags flags, MsgId replyTo, int32 viaBotId, QDateTime date, int32 from, const TextWithEntities &textWithEntities); // local message HistoryMessage(History *history, MsgId msgId, MTPDmessage::Flags flags, MsgId replyTo, int32 viaBotId, QDateTime date, int32 from, const TextWithEntities &textWithEntities); // local message
@ -2706,6 +2705,7 @@ private:
void initDimensions() override; void initDimensions() override;
int resizeGetHeight_(int width) override; int resizeGetHeight_(int width) override;
int performResizeGetHeight(int width); int performResizeGetHeight(int width);
void applyEditionToEmpty();
bool displayForwardedFrom() const { bool displayForwardedFrom() const {
if (const HistoryMessageForwarded *fwd = Get<HistoryMessageForwarded>()) { if (const HistoryMessageForwarded *fwd = Get<HistoryMessageForwarded>()) {
@ -2827,7 +2827,7 @@ public:
HistoryItem::clickHandlerPressedChanged(p, pressed); HistoryItem::clickHandlerPressedChanged(p, pressed);
} }
void applyEditionToEmpty() override; void applyEdition(const MTPDmessageService &message) override;
int32 addToOverview(AddToOverviewMethod method) override; int32 addToOverview(AddToOverviewMethod method) override;
void eraseFromOverview() override; void eraseFromOverview() override;
@ -2875,6 +2875,7 @@ private:
bool updateDependentText(); bool updateDependentText();
void clearDependency(); void clearDependency();
void createFromMtp(const MTPDmessageService &message);
void setMessageByAction(const MTPmessageAction &action); void setMessageByAction(const MTPmessageAction &action);
bool preparePinnedText(const QString &from, QString *outText, Links *outLinks); bool preparePinnedText(const QString &from, QString *outText, Links *outLinks);
@ -2884,7 +2885,6 @@ private:
class HistoryJoined : public HistoryService, private HistoryItemInstantiated<HistoryJoined> { class HistoryJoined : public HistoryService, private HistoryItemInstantiated<HistoryJoined> {
public: public:
static HistoryJoined *create(History *history, const QDateTime &date, UserData *from, MTPDmessage::Flags flags) { static HistoryJoined *create(History *history, const QDateTime &date, UserData *from, MTPDmessage::Flags flags) {
return _create(history, date, from, flags); return _create(history, date, from, flags);
} }
@ -2894,7 +2894,6 @@ public:
} }
protected: protected:
HistoryJoined(History *history, const QDateTime &date, UserData *from, MTPDmessage::Flags flags); HistoryJoined(History *history, const QDateTime &date, UserData *from, MTPDmessage::Flags flags);
using HistoryItemInstantiated<HistoryJoined>::_create; using HistoryItemInstantiated<HistoryJoined>::_create;
friend class HistoryItemInstantiated<HistoryJoined>; friend class HistoryItemInstantiated<HistoryJoined>;

View file

@ -444,7 +444,7 @@ void MediaPreviewWidget::paintEvent(QPaintEvent *e) {
Painter p(this); Painter p(this);
QRect r(e->rect()); QRect r(e->rect());
auto &image = currentImage(); auto image = currentImage();
int w = image.width() / cIntRetinaFactor(), h = image.height() / cIntRetinaFactor(); int w = image.width() / cIntRetinaFactor(), h = image.height() / cIntRetinaFactor();
if (_a_shown.animating()) { if (_a_shown.animating()) {
float64 shown = a_shown.current(); float64 shown = a_shown.current();

View file

@ -4602,9 +4602,8 @@ void MainWidget::feedUpdate(const MTPUpdate &update) {
} }
// update before applying skipped // update before applying skipped
if (d.vmessage.type() == mtpc_message) { // apply message edit App::updateEditedMessage(d.vmessage);
App::updateEditedMessage(d.vmessage.c_message());
}
if (channel && !_handlingChannelDifference) { if (channel && !_handlingChannelDifference) {
channel->ptsApplySkippedUpdates(); channel->ptsApplySkippedUpdates();
} }
@ -4618,14 +4617,8 @@ void MainWidget::feedUpdate(const MTPUpdate &update) {
} }
// update before applying skipped // update before applying skipped
if (d.vmessage.type() == mtpc_message) { // apply message edit App::updateEditedMessage(d.vmessage);
App::updateEditedMessage(d.vmessage.c_message());
} else if (d.vmessage.type() == mtpc_messageService) {
auto &message = d.vmessage.c_messageService();
if (message.vaction.type() == mtpc_messageActionHistoryClear) {
App::updateEditedMessageToEmpty(peerFromMessage(d.vmessage), message.vid.v);
}
}
ptsApplySkippedUpdates(); ptsApplySkippedUpdates();
} break; } break;

View file

@ -1150,11 +1150,11 @@ void objc_downloadPathEnableAccess(const QByteArray &bookmark) {
} }
_downloadPathUrl = url; _downloadPathUrl = url;
cSetDownloadPath(objcString([_downloadPathUrl path]) + '/'); Global::SetDownloadPath(objcString([_downloadPathUrl path]) + '/');
if (isStale) { if (isStale) {
NSData *data = [_downloadPathUrl bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope includingResourceValuesForKeys:nil relativeToURL:nil error:&error]; NSData *data = [_downloadPathUrl bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope includingResourceValuesForKeys:nil relativeToURL:nil error:&error];
if (data) { if (data) {
cSetDownloadPathBookmark(QByteArray::fromNSData(data)); Global::SetDownloadPathBookmark(QByteArray::fromNSData(data));
Local::writeUserSettings(); Local::writeUserSettings();
} }
} }

View file

@ -1441,12 +1441,12 @@ void StickerPanInner::refreshStickers() {
} }
auto i = _animations.find(sel + 1); auto i = _animations.find(sel + 1);
if (i != _animations.cend()) { if (i != _animations.cend()) {
i.value() = (i.value() >= st::emojiPanDuration) ? (i.value() - st::emojiPanDuration) : 0; i.value() = (i.value() >= static_cast<uint32>(st::emojiPanDuration)) ? (i.value() - st::emojiPanDuration) : 0;
} }
if (xsel >= 0) { if (xsel >= 0) {
auto j = _animations.find(xsel + 1); auto j = _animations.find(xsel + 1);
if (j != _animations.cend()) { if (j != _animations.cend()) {
j.value() = (j.value() >= st::emojiPanDuration) ? (j.value() - st::emojiPanDuration) : 0; j.value() = (j.value() >= static_cast<uint32>(st::emojiPanDuration)) ? (j.value() - st::emojiPanDuration) : 0;
} }
} }
step_selected(getms(), true); step_selected(getms(), true);
@ -2158,7 +2158,7 @@ void StickerPanInner::updateSelected() {
} }
for (int c = 0, l = sets.size(); c < l; ++c) { for (int c = 0, l = sets.size(); c < l; ++c) {
auto &set = sets[c]; auto &set = sets[c];
bool special = featured ? false : (set.flags & MTPDstickerSet::Flag::f_official); bool special = featured ? false : bool(set.flags & MTPDstickerSet::Flag::f_official);
y = ytill; y = ytill;
if (featured) { if (featured) {

View file

@ -357,7 +357,7 @@ if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ] || [ "$BuildTarg
rm -rf "$ReleasePath/$BinaryName.app/Contents/_CodeSignature" rm -rf "$ReleasePath/$BinaryName.app/Contents/_CodeSignature"
mkdir -p "$DropboxDeployPath" mkdir -p "$DropboxDeployPath"
cp -v "$DeployPath/$BinaryName.app" "$DropboxDeployPath/" cp -rv "$DeployPath/$BinaryName.app" "$DropboxDeployPath/"
cp -rv "$DeployPath/$BinaryName.app.dSYM" "$DropboxDeployPath/" cp -rv "$DeployPath/$BinaryName.app.dSYM" "$DropboxDeployPath/"
fi fi
fi fi

View file

@ -1,6 +1,6 @@
AppVersion 10007 AppVersion 10008
AppVersionStrMajor 0.10 AppVersionStrMajor 0.10
AppVersionStrSmall 0.10.7 AppVersionStrSmall 0.10.8
AppVersionStr 0.10.7 AppVersionStr 0.10.8
AlphaChannel 0 AlphaChannel 0
BetaVersion 0 BetaVersion 0