Compare commits

..

330 Commits

Author SHA1 Message Date
John Preston
7fa229537d Version 4.6.2: Fix translating to fallback language. 2023-02-08 18:12:08 +04:00
John Preston
c314e43a44 Fix sending / sent image icon in night-green theme. 2023-02-08 16:59:00 +04:00
John Preston
ee1162faff Version 4.6.2: Fix ghost drafts appearing in channels. 2023-02-08 15:48:05 +04:00
John Preston
84b4ab1c3c Version 4.6.2: Re-enable global /LTCG on Windows.
With /LTCGOUT: empty path it should not try generating .iobj file,
and work on both 32 bit and 64 bit build with all static libs.
2023-02-08 13:20:01 +04:00
John Preston
9659cb5b6f Version 4.6.2: Fix build on macOS. 2023-02-08 12:55:57 +04:00
Ilya Fedin
eee800b6d0 Use window widget's devicePixelRatio when displaying interface scale value
This is less confusing in multi-monitor environments
2023-02-08 12:18:21 +04:00
John Preston
41d9a9fcbd Version 4.6.2.
- One more attempt to fix fonts on Windows.
- Fix polls forwarding to private chats.
- Improve translations bar appearance.
- Improve userpic editor presets.
2023-02-07 21:27:33 +04:00
John Preston
fec80c0c64 Support text-color-ed emoji in userpic editor. 2023-02-07 20:43:50 +04:00
John Preston
ed9ba07a32 Disable local card number validation.
Some cards are reported invalid there that are valid.
2023-02-07 20:18:18 +04:00
John Preston
2f1c674401 Support markup in TranslateBox.
Server will translate with markup for premium users.
2023-02-07 20:06:21 +04:00
John Preston
663e89662b Bring "Do Not Translate" to "Translate To" list top. 2023-02-07 19:45:18 +04:00
John Preston
afd717b36e Ease local card expiry date check. 2023-02-07 19:13:07 +04:00
John Preston
ddfcf9f1df Don't allow empty "Do Not Translate" list. 2023-02-07 18:38:10 +04:00
John Preston
4a37846605 Feed initial messages slice to translation tracker. 2023-02-07 17:29:30 +04:00
John Preston
64f4e0dd52 Don't offer translate from / to the same language. 2023-02-07 16:38:16 +04:00
John Preston
d889cd0e72 Fix polls forwarding to private chats. 2023-02-07 16:28:59 +04:00
23rd
d7aa18cb0a Moved light part of palette gradients to top in userpic emoji builder. 2023-02-07 11:35:23 +04:00
23rd
e486cf1afa Fixed calculate of discount in premium subscription options. 2023-02-07 11:35:21 +04:00
John Preston
5f3e7235a5 Update submodules. 2023-02-07 11:35:17 +04:00
John Preston
26ff3148d6 One more fonts fix and fix paste from clipboard. 2023-02-07 11:31:19 +04:00
John Preston
f95610edfc Version 4.6.1: Add one more patch on Windows. 2023-02-06 23:04:40 +04:00
John Preston
0d134f2b89 Version 4.6.1.
- Fix fonts fallback on Windows.
- Fix crash in userpic editor.
- Fix some crashes on 32 bit Window build.
- Bug fixes and other minor improvements.
2023-02-06 20:42:51 +04:00
John Preston
1a9e217c3e Remove duplicate LTCG flags in td_scheme. 2023-02-06 20:41:33 +04:00
John Preston
c4402c717a Rebuild Qt with a patch for fonts fallback. 2023-02-06 20:39:00 +04:00
John Preston
0bdd0689c0 Create tray / mediaview queued on macOS.
This removes some strange redundant entries like "Item-0" from the Dock menu.
2023-02-06 13:34:03 +04:00
John Preston
671b3bc94e Improve cursor coordinate rounding.
Fixes #25838.
2023-02-06 12:44:30 +04:00
Joe Kappus
0943d3aac1 Add missing include to fix GCC12 build
Signed-off-by: Joe Kappus <joe@wt.gd>
2023-02-06 12:43:55 +04:00
John Preston
405230c0c6 Don't request settings of unknown peers. 2023-02-06 12:24:08 +04:00
John Preston
af8c1f77c7 Change td_ui to a static library.
This (temporarily) fixes LTCG linking on Windows 32 bit.

I hope this fixes #25832.
2023-02-06 10:37:52 +04:00
John Preston
81fb4046d1 Fix possible crash with pinned message deletion. 2023-02-06 10:36:21 +04:00
John Preston
fb283c4828 Fix bot buttons disappearing on chat switch. 2023-02-06 09:12:06 +04:00
John Preston
6f797a17ad Fix activating chat list entry from global search. 2023-02-04 21:19:46 +04:00
Ilya Fedin
326b4eb10d Add the package with C.UTF-8 locale to snap 2023-02-04 11:29:00 +04:00
John Preston
713889aa9c Make sure the device model isn't empty.
I hope this fixes #25824.
2023-02-04 10:23:26 +04:00
GitHub Action
a6aa759947 Update User-Agent for DNS to Chrome 109.0.5414.74. 2023-02-04 09:56:19 +04:00
John Preston
985db8aacf Fix a possible crash in userpic editor. 2023-02-04 09:56:01 +04:00
John Preston
dff1568cb2 Fix "Do Not Translate" button visibility. 2023-02-04 09:37:36 +04:00
John Preston
b9188f892f Version 4.6.
- Emoji Profile Pictures.
Quickly create group and profile pictures from animated emoji
and stickers with the new "Use an Emoji" option.
- Emoji Categories.
Filter stickers and emoji by categories like "love", "cheers"
or "sleeping" in the sticker and emoji tabs.
- Chat Translation.
As a Premium user, translate entire chats in real time
as you scroll them or receive new messages.
- Media Permissions in Groups.
Control whether members of your groups can send
9 distinct media types – like Photos, Voice or Video Messages.
- Select Chats for Bots.
Bot developers can now let users quickly select groups,
channels or contacts that meet predefined criteria (more in @BotNews).
- Open in New Window.
Open chats or additional accounts in separate windows.
2023-02-03 22:13:26 +04:00
John Preston
84bf716f94 Improve colors in tabbed search field. 2023-02-03 20:51:13 +04:00
John Preston
c737e2f91b Track window activation history. 2023-02-03 20:48:12 +04:00
John Preston
bbd937115c Add "Open in new window" to context menu. 2023-02-03 20:47:59 +04:00
John Preston
94b489835c Add chat name / account name / unread count title settings. 2023-02-03 17:51:47 +04:00
John Preston
eb64ffcd86 Fix chat filters detection on login. 2023-02-03 17:51:47 +04:00
John Preston
95336d4a96 Reorder translation languages. 2023-02-03 17:51:47 +04:00
John Preston
ad91592390 Set system window title text on macOS. 2023-02-03 11:27:51 +04:00
John Preston
a52bb21606 Fix activating account more than once. 2023-02-03 09:59:28 +04:00
John Preston
762589b622 Fix userpic in a notification with hidden sender. 2023-02-03 09:51:06 +04:00
John Preston
5f027d7c87 Check FindDecoder result in GIFs renderer. 2023-02-03 09:51:06 +04:00
23rd
2dd01ed09f Replaced default gradients for color palette in userpic emoji builder. 2023-02-03 08:03:09 +03:00
23rd
1d21c2ca8f Slightly improved input of phone code in PhoneWidget. 2023-02-03 08:03:09 +03:00
23rd
e0cba40410 Replaced icons in gradient editor from userpic emoji builder. 2023-02-03 08:03:09 +03:00
John Preston
4484457965 Fix build with Xcode. 2023-02-02 22:12:33 +04:00
John Preston
989689f0e0 Fix static emoji appearing in reaction categories. 2023-02-02 22:12:33 +04:00
John Preston
20533a6795 Fix wrong padding in stickers search results. 2023-02-02 22:12:33 +04:00
23rd
98f811a258 Replaced toggles in admin rights box with universal nested list. 2023-02-02 22:12:33 +04:00
23rd
d823db32fc Added support of universal list of nested permission flags. 2023-02-02 22:12:33 +04:00
23rd
db7a251ceb Slightly optimized CreateEditFlags function for restrictions. 2023-02-02 22:12:33 +04:00
23rd
0c2f5ed76c Dedicated CreateEditFlags function only for restrictions. 2023-02-02 22:12:33 +04:00
23rd
6dd6066738 Replaced signature ApplyDependencies function with more abstract one. 2023-02-02 22:12:33 +04:00
23rd
fecf538e31 Returned old design of toggles in admin rights box for now. 2023-02-02 22:12:33 +04:00
John Preston
29379fac35 Use graphics for permissions expand arrow. 2023-02-02 22:12:33 +04:00
John Preston
ebfddc1a68 Fix return to saved history state with translate bar. 2023-02-02 22:12:33 +04:00
John Preston
3ac86adf10 Support translations in replies / pinned. 2023-02-02 22:12:33 +04:00
John Preston
f55d9fb82b Improve emoji footer over state in status panel. 2023-02-02 22:12:33 +04:00
John Preston
1aeca7b486 Add create-from-choose-peer button icons. 2023-02-02 22:12:33 +04:00
John Preston
6957376a21 Improve translation bar styles. 2023-02-02 22:12:33 +04:00
John Preston
9344e78889 Fix translation of the pinned message. 2023-02-02 22:12:33 +04:00
John Preston
514b2a55be Add divider below choosing chat requirements list. 2023-02-02 22:12:33 +04:00
John Preston
2886ae6909 Block field with toast if texts are not allowed. 2023-02-02 22:12:33 +04:00
John Preston
d697a57834 Fix UserpicButton loading an avatar. 2023-02-02 22:12:33 +04:00
John Preston
19f346e658 Fix translate bar show after slide animation. 2023-02-02 22:12:33 +04:00
John Preston
bc90399ec3 Fix crash in custom duration status set. 2023-02-02 22:12:33 +04:00
John Preston
edb011dc0d Fix build with MSVC. 2023-02-02 22:12:33 +04:00
23rd
7a63246e6c Respected forum userpic type in userpic emoji builder. 2023-02-02 22:12:33 +04:00
23rd
1026f41da8 Replaced BubbleWrap class with single function. 2023-02-02 22:12:33 +04:00
23rd
7c8ada0e78 Slightly improved shadows for bubble wraps in userpic emoji builder. 2023-02-02 22:12:33 +04:00
23rd
841ddcefab Simplified icon of toggle button in selector of userpic emoji builder. 2023-02-02 22:12:33 +04:00
John Preston
4234f0b797 Check if bot is in group or if can be added. 2023-02-02 22:12:33 +04:00
John Preston
17ce93fd5e Add choose chat for bot confirmation. 2023-02-02 22:12:33 +04:00
23rd
bbd8571c9a Fixed height of emoji selector in userpic emoji builder. 2023-02-02 22:12:33 +04:00
23rd
7881cb8946 Fixed finishing of toggle animations in peer permissions box. 2023-02-02 22:12:33 +04:00
23rd
a8a9b638bb Removed unused keys from chat.style. 2023-02-02 22:12:33 +04:00
23rd
81b47fd224 Removed unused keys from info.style. 2023-02-02 22:12:33 +04:00
23rd
0489f085fc Removed unused keys from settings.style. 2023-02-02 22:12:33 +04:00
23rd
9ec42f02bd Removed unused keys from profile.style. 2023-02-02 22:12:33 +04:00
23rd
563f933201 Removed unused keys from media_player.style. 2023-02-02 22:12:33 +04:00
23rd
0033e364dd Removed unused keys from media_view.style. 2023-02-02 22:12:33 +04:00
23rd
cad52a68f9 Removed unused keys from dialogs.style. 2023-02-02 22:12:33 +04:00
23rd
ca022b139c Removed unused keys from window.style. 2023-02-02 22:12:33 +04:00
23rd
6c0deeb725 Removed unused keys from intro.style. 2023-02-02 22:12:32 +04:00
23rd
9476e7636b Removed unused keys from chat_helpers.style. 2023-02-02 22:12:32 +04:00
23rd
84d699397c Removed unused keys from overview.style. 2023-02-02 22:12:32 +04:00
23rd
bd984b2ddb Removed unused keys from passport.style. 2023-02-02 22:12:32 +04:00
23rd
dc2ca16268 Removed unused keys from premium.style. 2023-02-02 22:12:32 +04:00
23rd
d06dd8469d Removed unused keys from calls.style. 2023-02-02 22:12:32 +04:00
23rd
a2f51d8203 Removed unused keys from boxes.style. 2023-02-02 22:12:32 +04:00
23rd
8887b2f542 Added ability to set photo for contact from userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
48b783f6a0 Fixed display of new chat photo after applying. 2023-02-02 22:12:32 +04:00
23rd
322cbc5ed0 Improved round corners of emoji on userpic preview in builder. 2023-02-02 22:12:32 +04:00
23rd
5558ac22f5 Fixed footer animation on switch of emoji selector in userpic builder. 2023-02-02 22:12:32 +04:00
John Preston
097d04e2d4 Remove unused keys from lang.strings file. 2023-02-02 22:12:32 +04:00
John Preston
5b063a1807 Update API scheme on layer 152. 2023-02-02 22:12:32 +04:00
John Preston
be6644266d Fix build on Windows. 2023-02-02 22:12:32 +04:00
John Preston
489d6d1f58 Warn that m4v and m3u8 may reveal your IP. 2023-02-02 22:12:32 +04:00
John Preston
5c02a61de6 Fix killing of upload sessions for inactivity. 2023-02-02 22:12:32 +04:00
John Preston
72d6ba5e41 Fix diacritic after a char after an emoji.
Fixes #24785.
2023-02-02 22:12:32 +04:00
23rd
5773a8021a Added some round corners to emoji on userpic preview in builder. 2023-02-02 22:12:32 +04:00
23rd
6bb7263f7d Provided result of emoji userpic builder to api. 2023-02-02 22:12:32 +04:00
23rd
b7cf32a65f Extended output data from emoji userpic builder. 2023-02-02 22:12:32 +04:00
23rd
9940ee21d3 Added api support to upload emoji markup of userpic instead of image. 2023-02-02 22:12:32 +04:00
23rd
d6bf5513ff Respected option from app config in emoji preview for userpic builder. 2023-02-02 22:12:32 +04:00
23rd
36190258be Fixed emoji categories in emoji picker from userpic builder. 2023-02-02 22:12:32 +04:00
23rd
575221b7be Fixed resolving of custom emoji in menu item of emoji userpic builder. 2023-02-02 22:12:32 +04:00
23rd
0578fb421f Added api support of default list of group emoji for userpic builder. 2023-02-02 22:12:32 +04:00
John Preston
5ba7b3906c Fix translation of replies to web-page previews. 2023-02-02 22:12:32 +04:00
John Preston
f4455663fc Don't add views counter when editing media. 2023-02-02 22:12:32 +04:00
23rd
70cda17dea Applied search categories to emoji userpic builder. 2023-02-02 22:12:32 +04:00
23rd
fda49a3bfa Fixed respect of locked state in list of chat participant statuses. 2023-02-02 22:12:32 +04:00
23rd
7b7ff32c94 Split button to expand list of restrictions for sending media on two. 2023-02-02 22:12:32 +04:00
23rd
70a61fa2a4 Added icons to buttons in edit peer permissions box. 2023-02-02 22:12:32 +04:00
23rd
5f2c8acae9 Replaced design of restriction buttons for sending media with checkbox. 2023-02-02 22:12:32 +04:00
23rd
3ce3baee61 Added button to expand list of chat restrictions for sending media. 2023-02-02 22:12:32 +04:00
23rd
4598fc3d53 Moved paint of toggle up-down arrow from main menu to td_ui. 2023-02-02 22:12:32 +04:00
23rd
21cd1555f0 Replaced Checkbox with SettingsButton for chat participant statuses. 2023-02-02 22:12:32 +04:00
23rd
642554828c Added ability to fill chat participant statuses with custom widgets. 2023-02-02 22:12:32 +04:00
23rd
8688a68115 Added ability to fill list of chat participant statuses from external. 2023-02-02 22:12:32 +04:00
23rd
f21edd1d23 Replaced EditPeerPermissionsBox with generic box. 2023-02-02 22:12:32 +04:00
John Preston
19e43cfd1d Show "Translate" in three-dot if bar was hidden. 2023-02-02 22:12:32 +04:00
John Preston
be71139515 Add "Translate Entire Chat" button to Settings. 2023-02-02 22:12:32 +04:00
John Preston
f5be551ff8 Add translation bar dropdown menu. 2023-02-02 22:12:32 +04:00
John Preston
1689c1a597 Add Real-Time Translations premium promo section. 2023-02-02 22:12:32 +04:00
John Preston
7d2ad39a26 Fix build on macOS. 2023-02-02 22:12:32 +04:00
John Preston
dc464b2718 Translate pinned message as well. 2023-02-02 22:12:32 +04:00
John Preston
719466fcac Initial chat-translation feature implementation. 2023-02-02 22:12:32 +04:00
John Preston
02a0ca7112 Update API scheme on layer 152.
Add a method for ProfilePhoto emoji group requesting.
2023-02-02 22:12:32 +04:00
23rd
a50cde291b Removed unused unique_qptr of ScrollArea in userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
a23bd5f3ff Fixed selecting of stickers in userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
9c43f9c3e2 Fixed low quality of first frame for lottie emoji in userpic builder. 2023-02-02 22:12:32 +04:00
John Preston
a58f9c6ebd Update API scheme on layer 152. 2023-02-02 22:12:32 +04:00
23rd
6bac662ee8 Added ability to change initial color in color editor. 2023-02-02 22:12:32 +04:00
23rd
27ff6b3446 Added special button to open gradient color editor. 2023-02-02 22:12:32 +04:00
23rd
c02fe1cd8d Added entry point for gradient color editor as layer. 2023-02-02 22:12:32 +04:00
23rd
a61c4f1813 Added initial implementation of gradient color editor. 2023-02-02 22:12:32 +04:00
23rd
16f59eee5d Removed colors palette class for userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
cae97cb062 Replaced gradient stops with gradient colors in EmojiUserpic of builder. 2023-02-02 22:12:32 +04:00
23rd
2f7e4ae8fb Moved out common structures for userpic emoji builder to single place. 2023-02-02 22:12:32 +04:00
23rd
9a717b885a Moved out preview for userpic emoji builder to separated file. 2023-02-02 22:12:32 +04:00
23rd
5c3067d1f8 Added to ColorEditor rpl value of current colors. 2023-02-02 22:12:32 +04:00
23rd
dff738f3c6 Removed emoji and sticker animations from userpic emoji builder for now. 2023-02-02 22:12:32 +04:00
23rd
6fe930c19d Fixed paint of static stickers in userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
b52948c1c0 Added initial ability to switch between stickers and emoji in builder. 2023-02-02 22:12:32 +04:00
23rd
cf6245af42 Added entry point for userpic emoji builder to userpic button. 2023-02-02 22:12:32 +04:00
23rd
e0aabe3acf Added ability to open userpic emoji builder with initial data. 2023-02-02 22:12:32 +04:00
23rd
76ee5fcefe Simplified paint of static custom emoji status in premium settings. 2023-02-02 22:12:32 +04:00
23rd
9bc4c0a551 Added initial implementation of userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
6c1e9b1387 Added initial implementation of inner widget of userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
6ffdc52b55 Added initial api support of default list for emoji profile. 2023-02-02 22:12:32 +04:00
23rd
607e79fca0 Added initial implementation of layer for userpic emoji builder. 2023-02-02 22:12:32 +04:00
23rd
177b9140d5 Added bubble wrap for layer of userpic builder. 2023-02-02 22:12:32 +04:00
23rd
d2e940f1ff Added initial implementation of color chooser for userpic builder. 2023-02-02 22:12:32 +04:00
23rd
5150ca054e Added ability to paint circle buttons of accent colors with custom size. 2023-02-02 22:12:32 +04:00
23rd
a7e2de53f5 Moved out size of result file for userpic to public interface. 2023-02-02 22:12:31 +04:00
23rd
f077c555e2 Moved out styles of ripples with shadowFg color to single place. 2023-02-02 22:12:31 +04:00
John Preston
54117cc762 Fix styles in reactions expanded panel. 2023-02-02 22:12:31 +04:00
John Preston
22f9e87fbe Grab/return focus in status/reactions search. 2023-02-02 22:12:31 +04:00
John Preston
2e88ada392 Improve reactions expanding animation. 2023-02-02 22:12:31 +04:00
John Preston
1f6ccf59cb Improve status selector design. 2023-02-02 22:12:31 +04:00
John Preston
4129664637 Fix animated toggle in tabbed panel. 2023-02-02 22:12:31 +04:00
John Preston
21f3a7b07f Find emoji by words for stickers search. 2023-02-02 22:12:31 +04:00
John Preston
c48ac28204 Search stickers by emoji. 2023-02-02 22:12:31 +04:00
John Preston
65b1a0c9a4 Use TabbedSearch control for stickers panel. 2023-02-02 22:12:31 +04:00
John Preston
d4897c8a95 Remove fake generated Premium Sticker Set. 2023-02-02 22:12:31 +04:00
John Preston
ffb2c5093d Use StickersListFooter for GIFs section. 2023-02-02 22:12:31 +04:00
John Preston
d51d1939b0 Add search with categories to GIF. 2023-02-02 22:12:31 +04:00
John Preston
4f18535f8d Implement nice emoji categories scrolling. 2023-02-02 22:12:31 +04:00
John Preston
04482ef33b Fix emoji set right buttons. 2023-02-02 22:12:31 +04:00
John Preston
f19e343025 Fix cancel search style in emoji panel. 2023-02-02 22:12:31 +04:00
John Preston
88e7f4b662 Improve the tabbed emoji panel design. 2023-02-02 22:12:31 +04:00
John Preston
e73dbf5f65 Implement emoji search / categories. 2023-02-02 22:12:31 +04:00
John Preston
826ec75c33 Update API scheme on layer 152. 2023-02-02 22:12:31 +04:00
John Preston
ea4e2f0952 Fix build with Xcode. 2023-02-02 22:12:31 +04:00
John Preston
554f66f089 Support separate message type group restrictions. 2023-02-02 22:12:31 +04:00
John Preston
de5bbf2cb9 Allow creating group / channel for the bot. 2023-02-02 22:12:31 +04:00
John Preston
809610817e Initial request peer button implementation. 2023-02-02 22:12:31 +04:00
John Preston
90cb61676a Update API scheme to layer 152. 2023-02-02 22:12:31 +04:00
John Preston
37cf12f06e Beta version 4.5.9: Fix new window position. 2023-02-02 22:10:44 +04:00
John Preston
fa4b538e6f Beta version 4.5.9.
- Hide taskbar window preview when Telegram is locked by a passcode
(Windows only).
- More improvements for working with multiple windows.
- Bug fixes and other minor improvements.
2023-02-02 20:22:21 +04:00
John Preston
0495cf4187 Use better initial geometry for new windows. 2023-02-02 20:20:05 +04:00
Ilya Fedin
933f1944c7 Strip binaries in snap 2023-02-02 16:18:53 +04:00
Ilya Fedin
925849858b Use ninja generator for libjxl in snap 2023-02-02 16:18:53 +04:00
Ilya Fedin
3c3829d9c5 Replace some legacy variables in snapcraft.yml 2023-02-02 16:18:53 +04:00
John Preston
88f3aeca5b Show just logo in Dwm Preview when passcoded. 2023-02-02 16:14:36 +04:00
John Preston
c7b3c95dc6 Fix root view pinned bar glitch in comments. 2023-02-02 16:12:44 +04:00
John Preston
e950130da6 Fix date and forward bar overlapping. 2023-02-02 10:55:04 +04:00
John Preston
a4cdd83816 Improve crash report window on Windows. 2023-02-02 10:55:04 +04:00
John Preston
e10964a0bc Allow opening new account in a separate window. 2023-02-02 10:55:04 +04:00
John Preston
42a2f53a11 Fix wrong media controls activations.
Fixes #25778, fixes #25786.
2023-02-02 10:55:04 +04:00
John Preston
f713585f17 Remove non-authed account only without a window. 2023-02-02 10:55:04 +04:00
John Preston
5278ed1f41 Fix account activation after window closing. 2023-02-02 10:55:04 +04:00
John Preston
58cedb796e Fix possible crash on empty options from the server. 2023-02-02 10:55:04 +04:00
Ilya Fedin
de11987312 Fix changelog dates since new year 2023-01-31 13:52:48 +04:00
Ilya Fedin
204cfaa8ca Update patches commit in Dockerfile 2023-01-31 13:52:48 +04:00
Ilya Fedin
5d20d585b3 Don't use alcGetEnumValue for non-ALC enum value
This makes no effective change for openal-soft as alGetEnumValue and alcGetEnumValue do lookup in the same table, but it's more semantically right and openal-soft is not the only implementation of the API
2023-01-26 15:56:01 +04:00
Ilya Fedin
2be4641496 Install launcher on every launch on Linux
Just like AppUserModelId on Windows

This makes the cheat code and having the function outside of private namespace unnecessary
2023-01-23 12:16:59 +04:00
Ilya Fedin
b62e1d5036 Set prgname and application name before glibmm initialization
This ensures possible warnings use right process name
2023-01-22 15:11:02 +04:00
Ilya Fedin
fc8d1e21e8 Merge generate-caches and desktop-qt snap parts 2023-01-22 10:43:03 +04:00
John Preston
8ddbfb7de5 Beta version 4.5.8: Fix build with GCC. 2023-01-22 00:13:13 +04:00
John Preston
89687e5bff Beta version 4.5.8.
- Allow opening another account in a new window
(see Settings > Advanced > Experimental Settings).
- A lot of bugfixes for working with more than one window.
2023-01-21 21:27:45 +04:00
John Preston
fcfacf1f9d Fix scroll in return to a channel I'm not in. 2023-01-21 21:24:54 +04:00
John Preston
a6484e6131 Fix build on MSVC. 2023-01-21 21:12:40 +04:00
John Preston
c2578f9a5a Add an #import statement in lib_webrtc. 2023-01-21 21:08:49 +04:00
John Preston
0de77a051a Fix interface scale padding in non-authed Settings. 2023-01-21 21:08:49 +04:00
John Preston
b0f8846d12 Fix opening topic on non-existent message error display. 2023-01-21 21:08:49 +04:00
23rd
6258aa01b8 Replaced multiple static constants for square root of 2 with Qt define. 2023-01-21 19:40:33 +03:00
Ilya Fedin
c8aa97b6b2 Fix fonts in snap
Regression was introduced in 09bd953c18
2023-01-21 09:44:14 +04:00
Ilya Fedin
d67c48fda1 Generate various caches in snap to speedup launch after updates 2023-01-21 09:44:14 +04:00
John Preston
7caabb8f5a Fix crash in topics disabling. 2023-01-21 09:42:57 +04:00
23rd
37454b4ff4 Added list of active group calls to Calls box. 2023-01-21 07:29:40 +04:00
23rd
cd032f5c16 Fixed update of flag for group calls from mtp chat data. 2023-01-21 07:29:40 +04:00
23rd
0c17bdc783 Replaced Calls box with GenericBox. 2023-01-21 07:29:40 +04:00
23rd
23a1f7b83c Fixed display of empty result of topics search. 2023-01-21 07:29:40 +04:00
23rd
465a33f095 Fixed display of loading peer list item in choose forum topic box. 2023-01-21 07:29:40 +04:00
Ilya Fedin
8820b9046d Map PipeWire's modules in snap 2023-01-20 16:53:30 +04:00
Ilya Fedin
09bd953c18 Add pipewire configs to snap 2023-01-20 14:44:09 +04:00
Ilya Fedin
6f89413c76 Don't get cursor position twice for open with menu 2023-01-20 12:58:48 +04:00
John Preston
a65e25b8ae Fix accidental lib_ui rollback. 2023-01-20 12:13:42 +04:00
Ilya Fedin
24ecd2ac88 Map PipeWire's SPA plugins in snap 2023-01-20 12:12:49 +04:00
John Preston
e8f27be364 Fix build without DBus integration. 2023-01-20 10:58:45 +04:00
John Preston
5e12cd27df Fix web_app_request_[theme|viewport].
Fixes #25752.
2023-01-20 09:35:18 +04:00
John Preston
7d1cc67019 Fix sending modified photos with existing bytes. 2023-01-19 13:05:38 +04:00
John Preston
507a064153 Fix OpenWith dropdown menu positioning on Windows. 2023-01-19 12:52:59 +04:00
John Preston
9751d36788 Fix child geometry for mega-rich popup menus. 2023-01-19 12:52:58 +04:00
John Preston
c46fd66abe Fix custom emoji position in sets. 2023-01-19 11:45:40 +04:00
John Preston
ec3957fcf3 Active round video moving to active window. 2023-01-19 11:42:00 +04:00
John Preston
b80b770631 Fix input field shortcuts on macOS. 2023-01-19 10:36:43 +04:00
John Preston
0f234188e1 Fix crash in SystemMediaControls init. 2023-01-19 09:57:33 +04:00
23rd
df5baba86b Moved out function for painting of color buttons to public interface. 2023-01-19 08:51:57 +03:00
23rd
64bd839d2c Slightly improved code style of color editor. 2023-01-19 08:51:57 +03:00
23rd
9390450049 Moved out color editor to td_ui. 2023-01-19 08:51:57 +03:00
23rd
e3334f7a87 Replaced EditColorBox with Ui::GenericBox. 2023-01-19 08:51:57 +03:00
23rd
58ed30d30e Moved constants of arc angles to td_ui. 2023-01-19 08:51:57 +03:00
John Preston
cdfdccbb66 Detach SystemMediaControls from Window::Controller. 2023-01-19 09:46:20 +04:00
John Preston
6b8f80bd63 Fix starting of video messages. 2023-01-19 09:46:20 +04:00
John Preston
6e5dfc79d4 Fix mouse BackButton with more than one window.
Fixes #24704.
2023-01-19 09:46:20 +04:00
John Preston
f8e76f1b84 Single entry point to search in chat. 2023-01-19 09:46:19 +04:00
John Preston
2c75fe033c Fix inline GIFs play start in separate windows.
Fixes #25694.
2023-01-19 09:46:19 +04:00
John Preston
b3667d69a1 Each MainWindow has its own Global Menu. 2023-01-19 09:46:19 +04:00
John Preston
ba520aadcb Fix hashtags in separate windows. 2023-01-19 09:46:19 +04:00
John Preston
e4c16ccba4 Create tray icon without a parent. 2023-01-19 09:46:19 +04:00
John Preston
3e332ad8e7 Rewrite shortcuts using QAction.
That way they don't depend on the main window.
2023-01-19 09:46:19 +04:00
John Preston
5154fe0044 Fix call bar appearance in a new MainWidget. 2023-01-19 09:46:19 +04:00
John Preston
dcb1315d53 Fix assertion violation in a new window init.
Fixes #24620.

In MainWidget updateControlsGeometry accesses SessionController
and itself through SessionController::content, which is not filled
in the MainWidget constructor yet, so ignore initial updates.
2023-01-19 09:46:19 +04:00
John Preston
7023b013ce Initial support of separate windows for accounts. 2023-01-19 09:45:28 +04:00
John Preston
86ed2745e3 Fix new forum userpic rounding. 2023-01-19 09:42:14 +04:00
Ilya Fedin
7db2acc742 Set UTF-8 code page in Windows manifest 2023-01-19 08:34:46 +04:00
Ilya Fedin
745b01a407 Another attempt to enable UTF-8 charset on Windows 2023-01-19 08:34:46 +04:00
Ilya Fedin
95979b1ad9 Call scheme handler registration after opening main window
To avoid system dialog being under it
2023-01-19 08:33:45 +04:00
John Preston
5910efa0bd Beta version 4.5.7.
- Fix glitches after moving window to another screen (Windows only).
2023-01-13 13:17:39 +04:00
John Preston
037e8f1858 Allow window to receive WM_DPICHANGED in Qt.
Fixes #25726.
2023-01-13 12:46:20 +04:00
John Preston
b1d1d73541 Copy/Paste original JPEG bytes to clipboard. 2023-01-13 12:46:17 +04:00
Ilya Fedin
9b154b3c91 Ensure freedesktop capabilities aren't used when GNotification is used 2023-01-13 10:24:06 +04:00
Ilya Fedin
a1f9b5a96f Get GApplication out of experimental settings
GApplication will always be used on Linux now. GNotification gets a toggle instead.
2023-01-12 21:49:16 +04:00
John Preston
2887c0b564 Beta version 4.5.6.
- Try enabling non-fractional scale
High DPI support on Windows and Linux.
- Experimental setting for fractional scale
High DPI support on Windows and Linux.
- Fix navigation to bottom problems in groups you didn't join.
- Fix a crash in chat export settings changes.
- Fix a crash in sending some of JPEG images.
- Fix CJK fonts on Windows.
2023-01-12 21:35:44 +04:00
Ilya Fedin
9b7826ea0d Get GApplication out of experimental settings
GApplication will always be used on Linux now. GNotification gets a toggle instead.
2023-01-12 21:30:45 +04:00
Ilya Fedin
241be89e5c Enable the new experimental setting for Linux 2023-01-12 21:17:08 +04:00
John Preston
39075538fb Enable RoundPreferFloor HighDpi support on Windows.
Add an experimental setting for exact HighDPI on Windows.
2023-01-12 13:57:09 +04:00
John Preston
1592f70a7c Respect trackUnreadMessages in history jumps.
Fixes #25384.
2023-01-12 12:23:29 +04:00
John Preston
732bb25666 Fix read from clipboard after bot install. 2023-01-12 12:23:28 +04:00
John Preston
5cba1cdc64 Fix blurred background for small images.
Fixes #25707.
2023-01-12 11:45:45 +04:00
John Preston
d346925b9d Fix window title update on accounts switch. 2023-01-12 11:36:00 +04:00
John Preston
02f3985125 Inspect correct url() instead of dragText().
Fixes #25720.

Regression was introduced in 23387d6625.
2023-01-12 11:34:16 +04:00
John Preston
f3db43abc9 Fix sending compressed images. 2023-01-12 11:34:08 +04:00
John Preston
ecf61712cd Fix CJK font fallback on Windows.
Fixes #25714.
2023-01-12 11:34:02 +04:00
John Preston
b47c66155d Beta version 4.5.5.
- Fix crash in Settings.
2023-01-10 22:16:24 +04:00
John Preston
2fda96a375 Fix a crash in non-authorized Settings. 2023-01-10 22:10:58 +04:00
John Preston
12c2e42917 Beta version 4.5.4: Fix build with GCC. 2023-01-10 16:59:05 +04:00
John Preston
94a956ce19 Beta version 4.5.4: Fix build for Windows x64. 2023-01-10 16:47:57 +04:00
John Preston
704f64a0c9 Fix "Limit special config request types." 2023-01-10 16:47:41 +04:00
John Preston
f9ca7f4505 Beta version 4.5.4: Fix "Mark-as-read-inactive setting." 2023-01-10 16:24:27 +04:00
John Preston
0a3d31a91f Beta version 4.5.4: Try updating OpenAL on macOS. 2023-01-10 15:34:33 +04:00
John Preston
3c17fab15a Beta version 4.5.4: Mark-as-read-inactive setting.
In case an experimental setting of auto-scrolling is enabled,
just ignore the window activity check in marking chat as read..
2023-01-10 15:31:15 +04:00
John Preston
2efe409c60 Beta version 4.5.4.
- Allow wide range of interface scale options.
- Show opened chat name in the window title.
- Bug fixes and other minor improvements.
- Fix updating on macOS older than 10.14.
2023-01-10 15:23:19 +04:00
John Preston
1176421bf2 Limit special config request types. 2023-01-10 15:09:49 +04:00
John Preston
05911a7172 Fix initial scale counting from dpi. 2023-01-10 09:51:12 +04:00
Ilya Fedin
1326359745 Don't involve locale in filename timestamp generation
It was batch replaced as part of 7b5781b845, but it's not really semantically valid
2023-01-10 09:50:02 +04:00
John Preston
fc26457218 Show current chat name in the window title. 2023-01-09 18:39:07 +04:00
Ilya Fedin
173108a9cb Differ file download failure reasons
..and uncomment the code for handling incorrect permissions
2023-01-09 17:02:11 +04:00
Ilya Fedin
7307f0b1a5 Use temp directory for downloads in Linux sandbox by default 2023-01-09 16:09:57 +04:00
John Preston
c49dac57b7 Don't use window title for IPC. 2023-01-09 16:08:34 +04:00
Ilya Fedin
6288da2f3d Remove socket errors from Qt adapters 2023-01-09 15:01:14 +04:00
Ilya Fedin
ce37c6ef08 Implement lossless jpeg progression 2023-01-09 15:00:11 +04:00
John Preston
5f93725431 Relax controls hiding conditions in full screen.
Fixes #25499.
2023-01-09 14:03:27 +04:00
23rd
90dfdb0e1f Moved NeverFreedPointer to lib_base. 2023-01-09 12:51:32 +03:00
23rd
7cd330db9a Improved style of box for creation of linked chat. 2023-01-09 12:34:44 +03:00
23rd
b14ac5cafe Moved Info::Profile::FloatingIcon to td_ui. 2023-01-09 12:34:44 +03:00
John Preston
1fc929b78f Add some logs for jump-to-end bugs.
This is related to #25384.
2023-01-09 13:25:15 +04:00
John Preston
fd47fd4d9e Track shared media index better.
Fixes #25667.
2023-01-09 11:48:33 +04:00
John Preston
9b74958fab Fix send-as button appearance after joining the group. 2023-01-09 11:18:58 +04:00
John Preston
7091fb9448 Force weak linking of NaturalLanguage framework.
Fixes #25429.
2023-01-09 10:50:41 +04:00
John Preston
876cdcf26a Show "Photo set by you" in profile photos list. 2023-01-09 09:56:36 +04:00
John Preston
36eca970f2 Pass correct parent to choose folder file dialog.
I hope it fixes #25689, although it didn't work for me, not crash.
2023-01-09 09:44:58 +04:00
John Preston
21232e09a4 Fix a crash in topic from archive search.
Fixes #25609.
2023-01-09 09:36:20 +04:00
John Preston
2d9d373c7f Don't show "Report" for personal contact photos. 2023-01-09 09:20:36 +04:00
John Preston
23387d6625 Don't drag-n-drop "internal:" URLs. 2023-01-09 09:10:53 +04:00
John Preston
6137c64444 Fix scale preview on macOS. 2023-01-09 09:05:07 +04:00
John Preston
43a830f0af Fix in-window preview (Wayland / noCompositing). 2023-01-09 09:05:07 +04:00
John Preston
ff331c040a Allow huge range of interface scales. 2023-01-09 09:05:07 +04:00
John Preston
3532e187fd Write more DPI logs. 2023-01-09 09:05:07 +04:00
23rd
6467ba7739 Fixed painting of photo with spoiler in SendFilesBox on Retina. 2023-01-09 09:05:07 +04:00
23rd
8de3b2c0d3 Fixed painting of non personal photo in UserpicButton on Retina. 2023-01-09 09:05:07 +04:00
23rd
deeb022e0b Fixed possible crash on deleting own channel. 2023-01-09 09:05:07 +04:00
23rd
9e0e28dc45 Improved style of box for editing of linked chat. 2023-01-09 09:05:07 +04:00
23rd
c99ac0a264 Moved creation of divider with text and lottie to single place. 2023-01-09 09:05:07 +04:00
23rd
991fafb30e Fixed clickable online status in profile settings. 2023-01-09 09:05:06 +04:00
23rd
5cf5d4b4c4 Improved opening main menu from top left corner.
Fixed #17423.
2023-01-09 09:05:06 +04:00
23rd
38e42f9a95 Fixed ripple color of main menu button in narrow forum state. 2023-01-09 09:05:06 +04:00
23rd
9b7689993f Fixed phrase of global TTL for new chats. 2023-01-09 09:05:06 +04:00
23rd
0e3eddcb77 Slightly improved TTL badge in dialogs list. 2023-01-09 09:05:06 +04:00
23rd
3f829ef3b9 Accepted tg://login only for started domain. 2023-01-09 09:05:06 +04:00
23rd
de8d93ba73 Added support of multiline subtext for many usernames to info layer. 2023-01-09 09:05:06 +04:00
23rd
dad9f4b87d Flipped icon for rotation button in photo editor. 2023-01-09 09:05:06 +04:00
23rd
0f538e2606 Updated Qt to 5.15.8 on Windows. 2023-01-09 09:05:06 +04:00
John Preston
08fa6a9815 Version 4.5.3.
- Attempt to fix incoming video in calls from mobile apps.
2023-01-06 21:57:04 +04:00
John Preston
a7cf4027ea Attempt to fix calls incoming video. 2023-01-06 21:55:08 +04:00
Ilya Fedin
646c7ecceb Update Qt version for Linux in cmake 2023-01-06 12:57:54 +04:00
Ilya Fedin
3cbbe3d3c2 Update Qt to 6.4.2 on Linux 2023-01-05 23:00:13 +04:00
John Preston
0af26dd353 Capture mouse in PipeWire screen capture. 2023-01-05 10:09:44 +04:00
John Preston
159e366122 Choose screens/windows in Wayland screencapture.
Fixes #25674.
2023-01-05 09:55:46 +04:00
John Preston
b9081c26ba Use tg://settings/edit_profile instead /information. 2023-01-05 09:55:38 +04:00
John Preston
9933c6ba59 Mark topics as read using Ctrl+R shortcut.
Fixes #25669.
2023-01-05 09:53:51 +04:00
525 changed files with 16293 additions and 6059 deletions

View File

@@ -56,11 +56,11 @@ include(cmake/options.cmake)
if (NOT DESKTOP_APP_USE_PACKAGED)
if (WIN32)
set(qt_version 5.15.7)
set(qt_version 5.15.8)
elseif (APPLE)
set(qt_version 6.3.2)
else()
set(qt_version 6.4.1)
set(qt_version 6.4.2)
endif()
endif()
include(cmake/external/qt/package.cmake)

View File

@@ -5,16 +5,14 @@
# https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
add_executable(Telegram WIN32 MACOSX_BUNDLE)
init_non_host_target(Telegram ltcg)
init_non_host_target(Telegram)
add_subdirectory(lib_rpl)
add_subdirectory(lib_crl)
add_subdirectory(lib_base)
add_subdirectory(lib_ui)
add_subdirectory(lib_tl)
if (NOT DESKTOP_APP_DISABLE_SPELLCHECK)
add_subdirectory(lib_spellcheck)
endif()
add_subdirectory(lib_spellcheck)
add_subdirectory(lib_storage)
add_subdirectory(lib_lottie)
add_subdirectory(lib_qr)
@@ -72,6 +70,7 @@ PRIVATE
desktop-app::lib_crl
desktop-app::lib_ui
desktop-app::lib_tl
desktop-app::lib_spellcheck
desktop-app::lib_storage
desktop-app::lib_lottie
desktop-app::lib_qr
@@ -178,6 +177,8 @@ PRIVATE
boxes/peers/add_bot_to_chat_box.h
boxes/peers/add_participants_box.cpp
boxes/peers/add_participants_box.h
boxes/peers/choose_peer_box.cpp
boxes/peers/choose_peer_box.h
boxes/peers/edit_contact_box.cpp
boxes/peers/edit_contact_box.h
boxes/peers/edit_forum_topic_box.cpp
@@ -243,8 +244,6 @@ PRIVATE
boxes/download_path_box.h
boxes/edit_caption_box.cpp
boxes/edit_caption_box.h
boxes/edit_color_box.cpp
boxes/edit_color_box.h
boxes/edit_privacy_box.cpp
boxes/edit_privacy_box.h
boxes/gift_premium_box.cpp
@@ -756,6 +755,10 @@ PRIVATE
history/view/history_view_sticker_toast.h
history/view/history_view_transcribe_button.cpp
history/view/history_view_transcribe_button.h
history/view/history_view_translate_bar.cpp
history/view/history_view_translate_bar.h
history/view/history_view_translate_tracker.cpp
history/view/history_view_translate_tracker.h
history/view/history_view_top_bar_widget.cpp
history/view/history_view_top_bar_widget.h
history/view/history_view_view_button.cpp
@@ -782,6 +785,8 @@ PRIVATE
history/history_inner_widget.h
history/history_location_manager.cpp
history/history_location_manager.h
history/history_translation.cpp
history/history_translation.h
history/history_unread_things.cpp
history/history_unread_things.h
history/history_view_highlight_manager.cpp
@@ -841,8 +846,6 @@ PRIVATE
info/profile/info_profile_cover.h
info/profile/info_profile_emoji_status_panel.cpp
info/profile/info_profile_emoji_status_panel.h
info/profile/info_profile_icon.cpp
info/profile/info_profile_icon.h
info/profile/info_profile_inner_widget.cpp
info/profile/info_profile_inner_widget.h
info/profile/info_profile_members.cpp
@@ -859,6 +862,18 @@ PRIVATE
info/profile/info_profile_widget.h
info/settings/info_settings_widget.cpp
info/settings/info_settings_widget.h
info/userpic/info_userpic_colors_editor.cpp
info/userpic/info_userpic_colors_editor.h
info/userpic/info_userpic_emoji_builder.cpp
info/userpic/info_userpic_emoji_builder.h
info/userpic/info_userpic_emoji_builder_common.cpp
info/userpic/info_userpic_emoji_builder_common.h
info/userpic/info_userpic_emoji_builder_menu_item.cpp
info/userpic/info_userpic_emoji_builder_menu_item.h
info/userpic/info_userpic_emoji_builder_preview.cpp
info/userpic/info_userpic_emoji_builder_preview.h
info/userpic/info_userpic_emoji_builder_widget.cpp
info/userpic/info_userpic_emoji_builder_widget.h
inline_bots/bot_attach_web_view.cpp
inline_bots/bot_attach_web_view.h
inline_bots/inline_bot_layout_internal.cpp
@@ -1139,7 +1154,6 @@ PRIVATE
platform/platform_integration.h
platform/platform_main_window.h
platform/platform_notifications_manager.h
platform/platform_specific.cpp
platform/platform_specific.h
platform/platform_tray.h
platform/platform_window_title.h
@@ -1201,6 +1215,8 @@ PRIVATE
settings/settings_privacy_controllers.h
settings/settings_privacy_security.cpp
settings/settings_privacy_security.h
settings/settings_scale_preview.cpp
settings/settings_scale_preview.h
settings/settings_type.h
storage/details/storage_file_utilities.cpp
storage/details/storage_file_utilities.h

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 859 B

After

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 B

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 647 B

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 700 B

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 774 B

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 899 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 491 B

After

Width:  |  Height:  |  Size: 494 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 589 B

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 717 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 549 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -35,7 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"cloud_lng_passport_in_it" = "Italian";
"cloud_lng_passport_in_ja" = "Japanese";
"cloud_lng_passport_in_ka" = "Georgian";
"cloud_lng_passport_in_km" = "Khmer";
// "cloud_lng_passport_in_km" = "Khmer";
"cloud_lng_passport_in_ko" = "Korean";
"cloud_lng_passport_in_lo" = "Lao";
"cloud_lng_passport_in_lt" = "Lithuanian";
@@ -58,3 +58,99 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"cloud_lng_passport_in_uk" = "Ukrainian";
"cloud_lng_passport_in_uz" = "Uzbek";
"cloud_lng_passport_in_vi" = "Vietnamese";
"cloud_lng_translate_to_ar" = "Arabic";
"cloud_lng_translate_to_az" = "Azerbaijani";
"cloud_lng_translate_to_bg" = "Bulgarian";
// "cloud_lng_translate_to_bn" = "Bangla";
"cloud_lng_translate_to_cs" = "Czech";
"cloud_lng_translate_to_da" = "Danish";
"cloud_lng_translate_to_de" = "German";
// "cloud_lng_translate_to_dv" = "Divehi";
// "cloud_lng_translate_to_dz" = "Dzongkha";
"cloud_lng_translate_to_el" = "Greek";
"cloud_lng_translate_to_en" = "English";
"cloud_lng_translate_to_es" = "Spanish";
"cloud_lng_translate_to_et" = "Estonian";
"cloud_lng_translate_to_fa" = "Persian";
"cloud_lng_translate_to_fr" = "French";
"cloud_lng_translate_to_he" = "Hebrew";
"cloud_lng_translate_to_hr" = "Croatian";
"cloud_lng_translate_to_hu" = "Hungarian";
"cloud_lng_translate_to_hy" = "Armenian";
"cloud_lng_translate_to_id" = "Indonesian";
"cloud_lng_translate_to_is" = "Icelandic";
"cloud_lng_translate_to_it" = "Italian";
"cloud_lng_translate_to_ja" = "Japanese";
"cloud_lng_translate_to_ka" = "Georgian";
// "cloud_lng_translate_to_km" = "Khmer";
"cloud_lng_translate_to_ko" = "Korean";
"cloud_lng_translate_to_lo" = "Lao";
"cloud_lng_translate_to_lt" = "Lithuanian";
"cloud_lng_translate_to_lv" = "Latvian";
"cloud_lng_translate_to_mk" = "Macedonian";
"cloud_lng_translate_to_mn" = "Mongolian";
"cloud_lng_translate_to_ms" = "Malay";
"cloud_lng_translate_to_my" = "Burmese";
"cloud_lng_translate_to_ne" = "Nepali";
"cloud_lng_translate_to_nl" = "Dutch";
"cloud_lng_translate_to_pl" = "Polish";
"cloud_lng_translate_to_pt" = "Portuguese";
"cloud_lng_translate_to_ro" = "Romanian";
"cloud_lng_translate_to_ru" = "Russian";
"cloud_lng_translate_to_sk" = "Slovak";
"cloud_lng_translate_to_sl" = "Slovenian";
"cloud_lng_translate_to_th" = "Thai";
"cloud_lng_translate_to_tk" = "Turkmen";
"cloud_lng_translate_to_tr" = "Turkish";
"cloud_lng_translate_to_uk" = "Ukrainian";
"cloud_lng_translate_to_uz" = "Uzbek";
"cloud_lng_translate_to_vi" = "Vietnamese";
"cloud_lng_language_ar" = "Arabic";
"cloud_lng_language_az" = "Azerbaijani";
"cloud_lng_language_bg" = "Bulgarian";
// "cloud_lng_language_bn" = "Bangla";
"cloud_lng_language_cs" = "Czech";
"cloud_lng_language_da" = "Danish";
"cloud_lng_language_de" = "German";
// "cloud_lng_language_dv" = "Divehi";
// "cloud_lng_language_dz" = "Dzongkha";
"cloud_lng_language_el" = "Greek";
"cloud_lng_language_en" = "English";
"cloud_lng_language_es" = "Spanish";
"cloud_lng_language_et" = "Estonian";
"cloud_lng_language_fa" = "Persian";
"cloud_lng_language_fr" = "French";
"cloud_lng_language_he" = "Hebrew";
"cloud_lng_language_hr" = "Croatian";
"cloud_lng_language_hu" = "Hungarian";
"cloud_lng_language_hy" = "Armenian";
"cloud_lng_language_id" = "Indonesian";
"cloud_lng_language_is" = "Icelandic";
"cloud_lng_language_it" = "Italian";
"cloud_lng_language_ja" = "Japanese";
"cloud_lng_language_ka" = "Georgian";
// "cloud_lng_language_km" = "Khmer";
"cloud_lng_language_ko" = "Korean";
"cloud_lng_language_lo" = "Lao";
"cloud_lng_language_lt" = "Lithuanian";
"cloud_lng_language_lv" = "Latvian";
"cloud_lng_language_mk" = "Macedonian";
"cloud_lng_language_mn" = "Mongolian";
"cloud_lng_language_ms" = "Malay";
"cloud_lng_language_my" = "Burmese";
"cloud_lng_language_ne" = "Nepali";
"cloud_lng_language_nl" = "Dutch";
"cloud_lng_language_pl" = "Polish";
"cloud_lng_language_pt" = "Portuguese";
"cloud_lng_language_ro" = "Romanian";
"cloud_lng_language_ru" = "Russian";
"cloud_lng_language_sk" = "Slovak";
"cloud_lng_language_sl" = "Slovenian";
"cloud_lng_language_th" = "Thai";
"cloud_lng_language_tk" = "Turkmen";
"cloud_lng_language_tr" = "Turkish";
"cloud_lng_language_uk" = "Ukrainian";
"cloud_lng_language_uz" = "Uzbek";
"cloud_lng_language_vi" = "Vietnamese";

View File

@@ -13,7 +13,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_menu_settings" = "Settings";
"lng_menu_about" = "About";
"lng_menu_update" = "Update";
"lng_menu_back" = "Back";
"lng_menu_night_mode" = "Night Mode";
"lng_menu_add_account" = "Add Account";
"lng_menu_activate" = "Activate";
@@ -125,8 +124,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_continue" = "Continue";
"lng_close" = "Close";
"lng_connecting" = "Connecting...";
"lng_connecting_to_proxy" = "Connecting to proxy...";
"lng_connecting_settings" = "Settings";
"lng_reconnecting#one" = "Reconnect in {count} s...";
"lng_reconnecting#other" = "Reconnect in {count} s...";
"lng_reconnecting_try_now" = "Try now";
@@ -242,12 +239,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_animated_emoji_text" = "Subscribe to **Telegram Premium** to unlock this emoji.";
"lng_animated_emoji_saved" = "Try sending these emoji in **Saved Messages** for free to test.";
"lng_animated_emoji_saved_open" = "Open";
"lng_reaction_premium_info" = "Click on the reaction to preview the animation.";
"lng_reaction_premium_no_group" = "Some reactions are restricted in this group.";
"lng_reaction_premium_no_channel" = "Some reactions are restricted in this channel.";
"lng_flood_error" = "Too many tries. Please try again later.";
"lng_gif_error" = "An error has occurred while reading GIF animation :(";
"lng_edit_error" = "You cannot edit this message";
"lng_error_phone_flood" = "Sorry, you have deleted and re-created your account too many times recently. Please wait for a few days before signing up again.";
"lng_error_start_minimized_passcoded" = "You have set a local passcode, so Telegram Desktop can't be launched minimised; it will ask you to enter your passcode before it can start working.";
@@ -282,8 +275,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_deleted_message" = "Deleted message";
"lng_pinned_message" = "Pinned message";
"lng_pinned_previous" = "Previous message";
"lng_pinned_poll" = "Pinned poll";
"lng_pinned_quiz" = "Pinned quiz";
"lng_pinned_unpin_sure" = "Would you like to unpin this message?";
"lng_pinned_pin_sure" = "Would you like to pin this message?";
"lng_pinned_pin_sure_group" = "Do you want to pin this message for all members in the group?";
@@ -340,13 +331,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_code_desc" = "We have sent you a message with activation\ncode to your phone. Please enter it below.";
"lng_code_from_telegram" = "Please enter the code you've just received\nin your previous **Telegram** app.";
"lng_code_no_telegram" = "Send code via SMS";
"lng_code_register_phone" = "If you already signed up for Telegram, please enter the code which was sent to your mobile app.\n\nIf you havent signed up yet, please register from your phone or tablet first.";
"lng_code_call" = "Telegram will call you in {minutes}:{seconds}";
"lng_code_calling" = "Requesting a call from Telegram...";
"lng_code_called" = "Telegram dialed your number";
"lng_bad_phone" = "Invalid phone number. Please try again.";
"lng_bad_phone_noreg" = "Phone number not registered.";
"lng_bad_code" = "You have entered an invalid code.";
"lng_bad_name" = "Please enter your first and last name.";
"lng_bad_photo" = "Sorry, Telegram can't process that type of image.";
@@ -363,7 +352,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_signin_bad_password" = "You have entered a wrong password.";
"lng_signin_wrong_code" = "You have entered an invalid code.";
"lng_signin_try_password" = "Having trouble accessing your email?";
"lng_signin_password_removed" = "Your cloud password was disabled.\nYou can set up a new one in Settings.";
"lng_signin_no_email_forgot" = "Since you didn't provide a recovery email when setting up your password, your remaining options are either to remember your password or to reset your account.";
"lng_signin_cant_email_forgot" = "If you can't restore access to the email, your remaining options are either to remember your password or to reset your account.";
"lng_signin_reset_account" = "Reset your account";
@@ -385,20 +373,17 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_dlg_filter" = "Search";
"lng_dlg_new_group_name" = "Group name";
"lng_dlg_new_channel_name" = "Channel name";
"lng_no_contacts" = "You have no contacts";
"lng_no_chats" = "Your chats will be here";
"lng_no_chats_filter" = "No chats currently belong to this folder.";
"lng_contacts_loading" = "Loading...";
"lng_contacts_not_found" = "No contacts found";
"lng_topics_not_found" = "No topics found.";
"lng_dlg_search_for_messages" = "Search for messages";
"lng_update_telegram" = "Update Telegram";
"lng_dlg_search_in" = "Search messages in";
"lng_dlg_search_from" = "From: {user}";
"lng_settings_save" = "Save";
"lng_settings_upload" = "Set Profile Photo";
"lng_settings_edit" = "Edit";
"lng_settings_drop_area_subtitle" = "to set it as your photo";
"lng_username_title" = "Username";
"lng_username_description" = "You can choose a username on Telegram. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use **a-z**, **0-9** and **underscores**.\nMinimum length is **5 characters**.";
@@ -411,7 +396,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_username_available" = "This username is available.";
"lng_username_not_found" = "User @{user} not found.";
"lng_username_by_phone_not_found" = "User {phone} not found.";
"lng_username_link_willbe" = "This link will open a chat with you:";
"lng_username_link" = "This link opens a chat with you:";
"lng_username_copied" = "Link copied to clipboard.";
@@ -430,17 +414,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_channel_usernames_activate_description" = "Do you want to show this link on the channel info page?";
"lng_channel_usernames_deactivate_description" = "Do you want to hide this link from the channel info page?";
"lng_channel_usernames_deactivate_error" = "Sorry, you can't deactivate this link from the channel info page. ";
"lng_channel_usernames_description" = "Drag and drop links to change the order in which they will be displayed on the channel info page.";
"lng_bio_title" = "Edit your bio";
"lng_bio_placeholder" = "Bio";
"lng_bio_about" = "You can add a few lines about yourself. Anyone who opens your profile will see this text.";
"lng_settings_section_info" = "My info";
"lng_settings_username" = "Username:";
"lng_settings_choose_username" = "Choose username";
"lng_settings_empty_bio" = "None";
"lng_settings_section_notify" = "Notifications";
"lng_settings_show_from" = "Show notifications from";
@@ -486,15 +464,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_reaction_voice_message" = "{reaction} to your voice message";
"lng_reaction_contact" = "{reaction} to your contact {name}";
"lng_reaction_location" = "{reaction} to your map";
"lng_reaction_live_location" = "{reaction} to your live location";
"lng_reaction_poll" = "{reaction} to your poll {title}";
"lng_reaction_quiz" = "{reaction} to your quiz {title}";
"lng_reaction_game" = "{reaction} to your game";
"lng_reaction_invoice" = "{reaction} to your invoice";
"lng_reaction_gif" = "{reaction} to your GIF";
"lng_settings_section_general" = "General";
"lng_settings_change_lang" = "Change language";
"lng_languages" = "Languages";
"lng_languages_none" = "No languages found.";
"lng_languages_count#one" = "{count} language";
@@ -502,18 +477,19 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_sure_save_language" = "Telegram will restart in order to change language";
"lng_settings_update_automatically" = "Update automatically";
"lng_settings_install_beta" = "Install beta versions";
"lng_settings_current_version_label" = "Version {version}:";
"lng_settings_current_version" = "Version {version}";
"lng_settings_check_now" = "Check for updates";
"lng_settings_update_checking" = "Checking for updates...";
"lng_settings_latest_installed" = "Latest version is installed";
"lng_settings_downloading" = "Downloading update {ready} / {total} MB...";
"lng_settings_update_ready" = "New version is ready";
"lng_settings_update_now" = "Restart Now";
"lng_settings_update_fail" = "Update check failed :(";
"lng_settings_workmode_tray" = "Show tray icon";
"lng_settings_workmode_window" = "Show taskbar icon";
"lng_settings_close_to_taskbar" = "Close to taskbar";
"lng_settings_window_system" = "Window title";
"lng_settings_title_chat_name" = "Show chat name";
"lng_settings_title_account_name" = "Show active account";
"lng_settings_title_total_count" = "Total unread count";
"lng_settings_native_frame" = "Use system window frame";
"lng_settings_auto_start" = "Launch Telegram when system starts";
"lng_settings_start_min" = "Launch minimized";
@@ -521,8 +497,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_open_system_settings" = "Open Settings";
"lng_settings_add_sendto" = "Place Telegram in \"Send to\" menu";
"lng_settings_mac_warn_before_quit" = "Show warning before quitting with {text}";
"lng_settings_section_scale" = "Interface Scale";
"lng_settings_scale_auto" = "Auto ({cur})";
"lng_settings_experimental" = "Experimental settings";
"lng_settings_experimental_about" = "Warning! Those are experimental settings. Some may not work. Others may break the app. Any of them may disappear in the next version without a trace. Use at your own risk.";
@@ -536,7 +510,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_suggest_by_emoji" = "Suggest popular stickers by emoji";
"lng_settings_loop_stickers" = "Loop animated stickers";
"lng_settings_large_emoji" = "Large emoji";
"lng_settings_view_emojis" = "View list";
"lng_settings_send_enter" = "Send by Enter";
"lng_settings_send_ctrlenter" = "Send by Ctrl+Enter";
"lng_settings_send_cmdenter" = "Send by Cmd+Enter";
@@ -553,7 +526,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_section_filters" = "Folders";
"lng_settings_section_background" = "Chat background";
"lng_settings_bg_use_default" = "Use default color theme";
"lng_settings_bg_from_gallery" = "Choose from gallery";
"lng_settings_bg_from_file" = "Choose from file";
"lng_settings_bg_theme_edit" = "Edit theme";
@@ -569,15 +541,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_call_section_input" = "Microphone";
"lng_settings_call_input_device" = "Input device";
"lng_settings_call_output_device" = "Output device";
"lng_settings_call_input_volume" = "Input volume: {percent}%";
"lng_settings_call_output_volume" = "Output volume: {percent}%";
"lng_settings_call_test_mic" = "Test microphone";
"lng_settings_call_stop_mic_test" = "Stop test";
"lng_settings_call_section_other" = "Other settings";
"lng_settings_call_open_system_prefs" = "Open system sound preferences";
"lng_settings_call_accept_calls" = "Accept calls from this device";
"lng_settings_call_device_default" = "Same as the System";
"lng_settings_call_audio_ducking" = "Mute other sounds during calls";
"lng_settings_language" = "Language";
"lng_settings_default_scale" = "Default interface scale";
@@ -589,25 +556,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_calls_peer_to_peer_title" = "Peer-to-peer";
"lng_settings_calls_peer_to_peer_button" = "Use peer-to-peer with";
"lng_settings_groups_invite" = "Groups";
"lng_settings_group_privacy_about" = "Change who can add you to groups and channels.";
"lng_settings_phone_number_privacy" = "Phone number";
"lng_settings_forwards_privacy" = "Forwarded messages";
"lng_settings_profile_photo_privacy" = "Profile photo";
"lng_settings_voices_privacy" = "Voice messages";
"lng_settings_privacy_premium" = "Only subscribers of {link} can restrict receiving voice messages.";
"lng_settings_privacy_premium_link" = "Telegram Premium";
"lng_settings_sessions_about" = "Control your sessions on other devices.";
"lng_settings_passcode_disable" = "Disable Passcode";
"lng_settings_passcode_disable_sure" = "Are you sure you want to disable passcode?";
"lng_settings_password_disable" = "Disable Cloud Password";
"lng_settings_password_abort" = "Abort two-step verification setup";
"lng_settings_password_reenter_email" = "Re-enter recovery email";
"lng_settings_about_bio" = "Any details such as age, occupation or city.\nExample: 23 y.o. designer from San Francisco";
"lng_settings_name_label" = "Name";
"lng_settings_username_label" = "Username";
"lng_settings_phone_label" = "Phone number";
"lng_settings_username_add" = "Add username";
"lng_settings_close_sure" = "Are you sure you want to close this page? You didn't save your changes.";
"lng_settings_peer_to_peer_about" = "Disabling peer-to-peer will relay all calls through Telegram servers to avoid revealing your IP address, but may slightly decrease audio quality.";
"lng_settings_advanced" = "Advanced";
"lng_settings_stickers_emoji" = "Stickers and emoji";
@@ -622,13 +585,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_information" = "Edit profile";
"lng_settings_security" = "Security";
"lng_settings_passcode_title" = "Local passcode";
"lng_settings_password_title" = "Two-step verification";
"lng_settings_sessions_title" = "Active sessions";
"lng_settings_new_unknown" = "New chats from unknown users";
"lng_settings_auto_archive" = "Archive and Mute";
"lng_settings_auto_archive_about" = "Automatically archive and mute new chats, groups and channels from non-contacts.";
"lng_settings_destroy_title" = "Delete my account";
"lng_settings_network_proxy" = "Network and proxy";
"lng_settings_version_info" = "Version and updates";
"lng_settings_system_integration" = "System integration";
"lng_settings_performance" = "Performance";
@@ -694,9 +655,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_ttl_after_sure" = "Are you sure you want all messages in new chats started by you to be automatically deleted for everyone {after_duration} after they have been sent?";
"lng_settings_ttl_after_toast" = "Messages in all new chats you start will be automatically deleted after {after_duration}.";
"lng_settings_ttl_select_chats_title" = "Select Chats";
"lng_settings_ttl_select_chats_subtitle" = "to apply the self-destruct timer";
"lng_settings_ttl_select_chats_subtitle_chosen" = "will have the self-destruct timer";
"lng_settings_ttl_select_chats_sorry" = "Sorry, you can't set self-destruct timer for this chat.";
"lng_settings_ttl_select_chats_status" = "auto-delete after {after_duration}";
"lng_settings_ttl_select_chats_status_disabled" = "auto-deletion disabled";
@@ -744,7 +702,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_background_text1" = "Ah, you kids today with techno music! You should enjoy the classics, like Hasselhoff!";
"lng_background_text2" = "I can't even take you seriously right now.";
"lng_background_bad_link" = "This background link appears to be invalid.";
"lng_background_gradient_unsupported" = "Telegram Desktop doesn't support gradient backgrounds yet.";
"lng_background_apply" = "Apply";
"lng_background_share" = "Share";
"lng_background_link_copied" = "Link copied to clipboard";
@@ -755,19 +712,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_download_path" = "Download path";
"lng_download_path_temp" = "Temp folder";
"lng_download_path_default" = "Default folder";
"lng_download_path_unset" = "Unset";
"lng_download_path_clear" = "Clear all";
"lng_download_path_header" = "Choose download path";
"lng_download_path_default_radio" = "Telegram folder in system «Downloads»";
"lng_download_path_temp_radio" = "Temp folder, cleared on logout or uninstall";
"lng_download_path_dir_radio" = "Custom folder, cleared only manually";
"lng_download_path_choose" = "Choose download path";
"lng_sure_clear_downloads" = "Do you want to remove all downloaded files from temp folder? It is done automatically on logout or program uninstall.";
"lng_download_path_failed" = "File download could not be started.\n\nThis might be because the download location you've selected is invalid. Try changing the \"Download path\" in Settings.";
"lng_download_path_settings" = "Settings";
"lng_download_path_failed" = "File download could not be started.\n\nThe default download location will be used now. You can always change it in Settings > Advanced > Download Path.\n\nPlease try once again.";
"lng_download_finish_failed" = "File download could not be finished.\n\nWould you like to try again?";
"lng_download_path_clearing" = "Clearing...";
"lng_download_path_cleared" = "Cleared!";
"lng_settings_section_privacy" = "Privacy and Security";
@@ -793,17 +744,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_local_storage_clear" = "Clear all";
"lng_local_storage_clearing" = "Clearing...";
"lng_settings_section_advanced_settings" = "Advanced Settings";
"lng_settings_enable_night_theme" = "Enable night mode";
"lng_settings_disable_night_theme" = "Disable night mode";
"lng_passcode_remove_button" = "Remove";
"lng_passcode_turn_on" = "Turn on local passcode";
"lng_passcode_change" = "Change Passcode";
"lng_passcode_create" = "Local passcode";
"lng_passcode_remove" = "Remove local passcode";
"lng_passcode_turn_off" = "Turn off";
"lng_passcode_autolock" = "Auto-Lock";
"lng_passcode_autolock_away" = "Auto-Lock if away for...";
"lng_passcode_autolock_inactive" = "Auto-Lock if inactive for...";
@@ -823,7 +768,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_passcode_ph" = "Your passcode";
"lng_passcode_submit" = "Submit";
"lng_passcode_logout" = "Log out";
"lng_passcode_need_unblock" = "You need to unlock me first.";
"lng_passcode_create_button" = "Save Passcode";
"lng_passcode_check_button" = "Submit";
"lng_passcode_change_button" = "Save Passcode";
@@ -836,11 +780,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_cloud_password_change" = "Change cloud password";
"lng_cloud_password_create" = "Cloud password";
"lng_cloud_password_remove" = "Remove cloud password";
"lng_cloud_password_set" = "Enable two-step verification";
"lng_cloud_password_edit" = "Change cloud password";
"lng_cloud_password_reset_in" = "Reset password in";
"lng_cloud_password_reset_ready" = "Reset password";
"lng_cloud_password_reset_cancel" = "Cancel password reset";
"lng_cloud_password_enter_old" = "Enter current password";
"lng_cloud_password_enter_first" = "Enter a password";
"lng_cloud_password_enter_new" = "Enter password";
@@ -853,7 +793,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_cloud_password_about" = "This password will be asked when you log in on a new device in addition to the SMS code.";
"lng_cloud_password_about_recover" = "Warning! Are you sure you don't want to\nadd a password recovery email?\n\nIf you forget your password, you will\nlose access to your Telegram account.";
"lng_cloud_password_skip_email" = "Skip email";
"lng_cloud_password_almost" = "A confirmation link was sent to the\nemail you provided. Two-step verification will be enabled as soon as you follow that link.";
"lng_cloud_password_was_set" = "Two-step verification enabled.";
"lng_cloud_password_updated" = "Your cloud password was updated.";
"lng_cloud_password_removed" = "Two-step verification was disabled.";
@@ -863,7 +802,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_cloud_password_passport_losing" = "Warning! All data saved in your Telegram Passport will be lost!";
"lng_cloud_password_resend" = "Resend code";
"lng_cloud_password_resent" = "Code was resent.";
"lng_cloud_password_reset_title" = "Reset password";
"lng_cloud_password_reset_no_email" = "Since you didn't provide a recovery email when setting up your password, your remaining options are either to remember your password or wait 7 days until your password is reset.";
"lng_cloud_password_reset_with_email" = "If you don't have access to your recovery email, your remaining options are either to remember your password or wait 7 days until your password resets.";
"lng_cloud_password_reset_ok" = "Reset";
@@ -876,10 +814,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_connection_auto" = "Default ({transport} used)";
"lng_connection_proxy_connecting" = "Connecting through proxy...";
"lng_connection_proxy" = "{transport} with proxy";
"lng_connection_header" = "Connection type";
"lng_connection_auto_rb" = "Auto (TCP if available or HTTP)";
"lng_connection_http_proxy_rb" = "HTTP with custom http-proxy";
"lng_connection_tcp_proxy_rb" = "TCP with custom socks5-proxy";
"lng_connection_try_ipv6" = "Try connecting through IPv6";
"lng_connection_host_ph" = "Hostname";
"lng_connection_port_ph" = "Port";
@@ -922,11 +856,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_settings_show_sessions" = "Show all sessions";
"lng_settings_export_data" = "Export Telegram data";
"lng_settings_destroy_if" = "If away for...";
"lng_settings_change_phone" = "Change phone number";
"lng_settings_terminate_title" = "Terminate old sessions";
"lng_settings_terminate_if" = "If inactive for...";
"lng_settings_reset" = "Terminate all other sessions";
"lng_settings_reset_sure" = "Are you sure you want to terminate\nall other sessions?";
"lng_settings_reset_one_sure" = "Do you want to terminate this session?";
"lng_settings_reset_button" = "Terminate";
@@ -1057,14 +989,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_edit_privacy_profile_photo_header" = "Who can see my profile photo";
"lng_edit_privacy_profile_photo_always_empty" = "Always allow";
"lng_edit_privacy_profile_photo_never_empty" = "Never allow";
"lng_edit_privacy_profile_photo_exceptions" = "These settings will override the values above.";
"lng_edit_privacy_profile_photo_always_title" = "Always allow";
"lng_edit_privacy_profile_photo_never_title" = "Never allow";
"lng_edit_privacy_profile_photo_public_set" = "Set Public Photo";
"lng_edit_privacy_profile_photo_public_update" = "Update Public Photo";
"lng_edit_privacy_profile_photo_public_remove" = "Remove Public Photo";
"lng_edit_privacy_profile_photo_public_about" = "You can upload a public photo for those who are restricted from viewing your real profile photo.";
"lng_edit_privacy_profile_photo_public_toast" = "This photo is now set for those who are restricted from viewing your main photo.";
"lng_edit_privacy_voices_title" = "Voice messages settings";
"lng_edit_privacy_voices_header" = "Who can send me voice messages";
@@ -1093,8 +1023,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mute_menu_mute" = "Mute";
"lng_mute_menu_unmute" = "Unmute";
"lng_mute_menu_duration_hours#one" = "Mute for {count} hour";
"lng_mute_menu_duration_hours#other" = "Mute for {count} hours";
"lng_mute_menu_duration_any" = "Mute for {duration}";
"lng_mute_menu_duration" = "Mute for...";
"lng_mute_menu_duration_forever" = "Mute forever";
@@ -1104,41 +1032,23 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mute_menu_sound_select" = "Select sound";
"lng_mute_box_title" = "Mute notifications for...";
"lng_mute_duration_hours#one" = "For {count} hour";
"lng_mute_duration_hours#other" = "For {count} hours";
"lng_mute_duration_days#one" = "For {count} day";
"lng_mute_duration_days#other" = "For {count} days";
"lng_mute_duration_forever" = "Forever";
"lng_mute_box_tip" = "Choose for how long you would like to turn off notifications for the following chat";
"lng_preview_loading" = "Getting Link Info...";
"lng_profile_settings_section" = "Settings";
"lng_profile_actions_section" = "Actions";
"lng_profile_bot_settings" = "Bot Settings";
"lng_profile_bot_help" = "Bot Help";
"lng_profile_bot_privacy" = "Bot Privacy Policy";
"lng_profile_invite_link_section" = "Invite link";
"lng_profile_create_public_link" = "Create public link";
"lng_profile_edit_public_link" = "Edit public link";
"lng_profile_search_members" = "Search members";
"lng_profile_common_groups#one" = "{count} group in common";
"lng_profile_common_groups#other" = "{count} groups in common";
"lng_profile_participants_section" = "Members";
"lng_profile_subscribers_section" = "Subscribers";
"lng_profile_mobile_number" = "Mobile:";
"lng_profile_username" = "Username:";
"lng_profile_link" = "Link:";
"lng_profile_bio" = "Bio:";
"lng_profile_add_contact" = "Add Contact";
"lng_profile_edit_contact" = "Edit";
"lng_profile_clear_and_exit" = "Delete and exit";
"lng_profile_leave_channel" = "Leave channel";
"lng_profile_delete_channel" = "Delete channel";
"lng_profile_leave_group" = "Leave group";
"lng_profile_delete_group" = "Delete group";
"lng_profile_report" = "Report";
"lng_profile_search_messages" = "Search for messages";
"lng_profile_block_bot" = "Stop and block bot";
"lng_profile_restart_bot" = "Restart bot";
"lng_profile_invite_to_group" = "Add to Group";
@@ -1147,8 +1057,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_profile_invite_to_group_about" = "This bot is able to manage a group.";
"lng_profile_invite_to_channel_about" = "This bot is able to manage a channel.";
"lng_profile_add_bot_as_admin_about" = "This bot is able to manage a group or channel.";
"lng_profile_delete_contact" = "Delete";
"lng_profile_set_group_photo" = "Set Photo";
"lng_profile_add_participant" = "Add Members";
"lng_profile_add_via_link" = "Invite via Link";
"lng_profile_hide_participants" = "Hide Members";
@@ -1158,7 +1066,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_profile_join_channel" = "Join Channel";
"lng_profile_join_group" = "Join Group";
"lng_profile_apply_to_join_group" = "Apply to Join Group";
"lng_profile_delete_and_exit" = "Leave";
"lng_profile_kick" = "Remove";
"lng_profile_delete_removed" = "Delete";
"lng_profile_sure_kick" = "Remove {user} from the group?";
@@ -1167,35 +1074,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_profile_loading" = "Loading...";
"lng_profile_photos#one" = "{count} photo";
"lng_profile_photos#other" = "{count} photos";
"lng_profile_photos_header" = "Photos";
"lng_profile_gifs#one" = "{count} GIF";
"lng_profile_gifs#other" = "{count} GIFs";
"lng_profile_gifs_header" = "GIFs";
"lng_profile_videos#one" = "{count} video";
"lng_profile_videos#other" = "{count} videos";
"lng_profile_videos_header" = "Videos";
"lng_profile_songs#one" = "{count} audio file";
"lng_profile_songs#other" = "{count} audio files";
"lng_profile_songs_header" = "Audio files";
"lng_profile_files#one" = "{count} file";
"lng_profile_files#other" = "{count} files";
"lng_profile_files_header" = "Files";
"lng_profile_audios#one" = "{count} voice message";
"lng_profile_audios#other" = "{count} voice messages";
"lng_profile_audios_header" = "Voice messages";
"lng_profile_shared_links#one" = "{count} shared link";
"lng_profile_shared_links#other" = "{count} shared links";
"lng_profile_shared_links_header" = "Shared links";
"lng_profile_copy_phone" = "Copy Phone Number";
"lng_profile_copy_fullname" = "Copy Name";
"lng_profile_drop_area_title" = "Drop your image here";
"lng_profile_drop_area_subtitle" = "to set it as a group photo";
"lng_profile_drop_area_subtitle_channel" = "to set it as a channel photo";
"lng_profile_top_bar_share_contact" = "Share";
"lng_profile_info_section" = "Info";
"lng_info_tab_media" = "Media";
"lng_info_public_photo" = "public photo";
"lng_info_mobile_label" = "Mobile";
"lng_info_mobile_context_menu_fragment_about" = "This number is not tied to a SIM card and was acquired on {link}.";
"lng_info_mobile_context_menu_fragment_about_link" = "Fragment";
@@ -1218,7 +1111,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_profile_suggest_photo" = "Suggest Profile Photo";
"lng_profile_set_photo_for" = "Set Profile Photo";
"lng_profile_photo_reset" = "Reset to Original";
"lng_profile_set_for_done" = "You will now always see this photo for {user}'s account.";
"lng_profile_suggest_sure" = "You can suggest {user} to set this photo for their page.";
"lng_profile_suggest_button" = "Suggest";
"lng_profile_set_personal_sure" = "Only you will see this photo and it will replace any photo {user} sets for themselves.";
@@ -1238,7 +1130,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_media_type_links" = "Shared links";
"lng_media_type_rounds" = "Video messages";
"lng_profile_common_groups_section" = "Groups in common";
"lng_profile_share_contact" = "Share Contact";
"lng_info_edit_contact" = "Edit contact";
"lng_info_delete_contact" = "Delete contact";
"lng_info_share_contact" = "Share contact";
@@ -1247,7 +1138,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_profile_block_user" = "Block user";
"lng_profile_unblock_user" = "Unblock user";
"lng_profile_export_chat" = "Export history";
"lng_profile_export_channel" = "Export history";
"lng_profile_gift_premium" = "Gift Premium";
"lng_media_selected_photo#one" = "{count} Photo";
"lng_media_selected_photo#other" = "{count} Photos";
@@ -1276,8 +1166,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_manage_group_title" = "Manage Group";
"lng_manage_channel_title" = "Manage Channel";
"lng_manage_group_info" = "Group Info";
"lng_manage_channel_info" = "Channel Info";
"lng_manage_peer_recent_actions" = "Recent Actions";
"lng_manage_peer_members" = "Members";
"lng_manage_peer_subscribers" = "Subscribers";
@@ -1332,8 +1220,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_manage_discussion_group_add" = "Add a group";
"lng_manage_linked_channel" = "Linked channel";
"lng_manage_linked_channel_restore" = "Restore linked channel";
"lng_manage_discussion_group_about" = "Select a group chat for discussion that will be displayed in your channel.";
"lng_manage_discussion_group_about_chosen" = "A link to {group} is shown to all subscribers in the bottom panel.";
"lng_manage_discussion_group_about" = "Select a group chat that will host comments from your channel.";
"lng_manage_discussion_group_about_chosen" = "{group} is selected as the group that hosts comments for your channel.";
"lng_manage_discussion_group_create" = "Create a new group";
"lng_manage_discussion_group_unlink" = "Unlink group";
"lng_manage_discussion_group_posted" = "Everything you post in the channel is forwarded to this group.";
@@ -1369,7 +1257,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_ttl_edit_about_channel" = "Automatically delete new messages sent in this channel after a certain period of time.";
"lng_ttl_edit_about2" = "You can also set your default {link} for all chats in Settings.";
"lng_ttl_edit_about2_link" = "self-destruct timer";
"lng_ttl_edit_save" = "Confirm";
"lng_ttl_about_tooltip" = "New messages in this chat will be automatically deleted in {duration}.";
"lng_ttl_about_tooltip_channel" = "New messages in this chat will be automatically deleted in {duration}.";
"lng_ttl_about_tooltip_off" = "Auto-delete is now disabled.";
@@ -1400,7 +1287,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_report_reason_illegal_drugs" = "Illegal Drugs";
"lng_report_reason_personal_details" = "Personal Details";
"lng_report_reason_other" = "Other";
"lng_report_reason_description" = "Description";
"lng_report_button" = "Report";
"lng_report_thanks" = "Thank you! Your report will be reviewed by our team very soon.";
@@ -1419,10 +1305,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_channel_removed_list_about" = "Users removed from the channel by admins cannot rejoin it via invite links.";
"lng_group_removed_list_about" = "Users removed from the group by admins cannot rejoin it via invite links.";
"lng_chat_all_members_admins" = "All Members Are Admins";
"lng_chat_about_all_admins" = "Group members can add new members, edit name and photo of the group.";
"lng_chat_about_admins" = "Group admins can add and remove members, edit name and photo of the group.";
"lng_participant_filter" = "Search";
"lng_participant_invite" = "Invite";
"lng_participant_invite_history" = "Show the last 100 messages";
@@ -1436,7 +1318,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_create_group_next" = "Next";
"lng_create_group_create" = "Create";
"lng_create_group_title" = "New Group";
"lng_create_group_ttl_about" = "Automatically delete messages in this group for everyone after a period of time.";
"lng_create_channel_title" = "New Channel";
"lng_create_public_channel_title" = "Public Channel";
"lng_create_public_channel_about" = "Anyone can find the channel in search and join";
@@ -1464,7 +1345,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_failed_add_participant" = "Could not add user. Please try again later.";
"lng_failed_add_not_mutual" = "Sorry, if a person leaves a group, only a mutual contact can bring them back (they need to have your phone number, and you need theirs).";
"lng_failed_add_not_mutual_channel" = "Sorry, if a person leaves a channel, only a mutual contact can bring them back (they need to have your phone number, and you need theirs).";
"lng_sure_delete_contact" = "Are you sure you want to delete {contact} from your contact list?";
"lng_sure_delete_history" = "Are you sure you want to clear your chat history with **{contact}**?\n\nThis action cannot be undone.";
@@ -1529,6 +1409,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_action_ttl_changed_you" = "You set messages to auto-delete in {duration}";
"lng_action_ttl_changed_channel" = "New messages will auto-delete in {duration}";
"lng_action_ttl_global" = "{from} uses a self-destruct timer for all chats. All new messages in this chat will be automatically deleted after {duration} they've been sent.";
"lng_action_ttl_global_me" = "You set a self-destruct timer for all chats. All new messages in this chat will be automatically deleted after {duration} theyve been sent.";
"lng_action_ttl_removed" = "{from} has set messages not to auto-delete";
"lng_action_ttl_removed_you" = "You disabled the auto-delete timer";
"lng_action_ttl_removed_channel" = "New messages will not auto-delete";
@@ -1605,6 +1486,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_action_topic_renamed" = "{from} renamed the {link} to «{title}»";
"lng_action_topic_icon_changed" = "{from} changed the {link} icon to {emoji}";
"lng_action_topic_icon_removed" = "{from} removed the {link} icon";
"lng_action_shared_chat_with_bot" = "You shared {chat} with {bot}";
"lng_premium_gift_duration_months#one" = "for {count} month";
"lng_premium_gift_duration_months#other" = "for {count} months";
@@ -1618,11 +1500,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_ttl_video_sent" = "You sent a self-destructing video.";
"lng_ttl_video_expired" = "Video has expired";
"lng_profile_migrate_reached#one" = "{count} member limit reached";
"lng_profile_migrate_reached#other" = "{count} members limit reached";
"lng_profile_migrate_body" = "To add more members, you can upgrade your group to a supergroup.";
"lng_profile_migrate_learn_more" = "Learn more »";
"lng_profile_migrate_button" = "Upgrade to supergroup";
"lng_profile_add_more_after_create" = "You will be able to add more members after you create the group.";
"lng_profile_camera_title" = "Capture yourself";
@@ -1630,7 +1507,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_not_accessible" = "Sorry, this group is not accessible.";
"lng_group_full" = "Sorry, this group is full.";
"lng_channels_too_much_public_about" = "Sorry, you have reserved too many public usernames. You can revoke the link from one of your older groups or channels.";
"lng_channels_too_much_public_revoke_confirm_group" = "Are you sure you want to revoke the link {link}?\n\nThe group «{group}» will become private.";
"lng_channels_too_much_public_revoke_confirm_channel" = "Are you sure you want to revoke the link {link}?\n\nThe channel «{group}» will become private.";
"lng_channels_too_much_public_revoke" = "Revoke";
@@ -1638,7 +1514,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_channels_too_much_located_other" = "Sorry, the target user has too many location-based groups already. Please ask them to delete or transfer one of their existing ones first.";
"lng_group_invite_bad_link" = "This invite link is broken or has expired.";
"lng_group_invite_join" = "Join";
"lng_group_invite_members#one" = "{count} member, among them:";
"lng_group_invite_members#other" = "{count} members, among them:";
@@ -1649,10 +1524,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_invite_copied" = "Invite link copied to clipboard.";
"lng_group_invite_no_room" = "Unable to join this group because there are too many members in it already.";
"lng_group_invite_permanent" = "Permanent link";
"lng_group_invite_copy" = "Copy Link";
"lng_group_invite_share" = "Share Link";
"lng_group_invite_revoke" = "Revoke Link";
"lng_group_invite_reactivate" = "Reactivate Link";
"lng_group_invite_delete" = "Delete Link";
"lng_group_invite_no_joined" = "No one joined yet";
@@ -1670,8 +1543,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_invite_days_left#other" = "{count} days left";
"lng_group_invite_about_permanent_group" = "Anyone who has Telegram installed will be able to join your group by following this link.";
"lng_group_invite_about_permanent_channel" = "Anyone who has Telegram installed will be able to join your channel by following this link.";
"lng_group_invite_manage" = "Manage Invite Links";
"lng_group_invite_manage_about" = "You can create additional invite links that have limited time or number of usages.";
"lng_group_invite_title" = "Invite links";
"lng_group_invite_add" = "Create a New Link";
"lng_group_invite_add_about" = "You can generate invite links that will expire after they've been used.";
@@ -1708,7 +1579,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_invite_other_title" = "Links created by other admins";
"lng_group_invite_other_count#one" = "{count} invite link";
"lng_group_invite_other_count#other" = "{count} invite links";
"lng_group_invite_permanent_other" = "Permanent link of this admin";
"lng_group_invite_other_list" = "Links created by this admin";
"lng_group_invite_expired_about" = "The time limit for this link has expired.";
"lng_group_invite_used_about" = "This link reached its usage limit.";
@@ -1755,7 +1625,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_forwarded_hidden" = "The account was hidden by the user.";
"lng_forwarded_imported" = "This message was imported from another app. It may not be real.";
"lng_signed_author" = "Author: {user}";
"lng_in_reply_to" = "In reply to";
"lng_sponsored" = "sponsored";
"lng_recommended" = "recommended";
"lng_edited" = "edited";
@@ -1785,6 +1654,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_attach_camera" = "Camera";
"lng_attach_document" = "Document";
"lng_attach_photo_or_video" = "Photo or video";
"lng_attach_profile_emoji" = "Use an Emoji";
"lng_media_open_with" = "Open With";
"lng_media_download" = "Download";
@@ -1815,7 +1685,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_emoji_category5" = "Travel & Places";
"lng_emoji_category6" = "Objects";
"lng_emoji_category7" = "Symbols & Flags";
"lng_emoji_hide_panel" = "Click here to hide the emoji sidebar";
"lng_emoji_manage_sets" = "Choose emoji set";
"lng_emoji_set_ready" = "Downloaded";
"lng_emoji_set_active" = "Current set";
@@ -1829,7 +1698,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_stickers" = "Group stickers";
"lng_group_stickers_description" = "You can choose a sticker set which will be available for every member while in the group chat.";
"lng_group_stickers_add" = "Choose sticker set";
"lng_premium_stickers" = "Premium stickers";
"lng_premium" = "Premium";
"lng_premium_free" = "Free";
@@ -1852,7 +1720,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_premium_summary_user_title" = "{user} is a subscriber of Telegram Premium.";
"lng_premium_summary_user_about" = "Owners of Telegram Premium accounts have exclusive access to multiple additional features.";
"lng_premium_summary_user_button" = "Learn More";
"lng_premium_summary_title" = "Telegram Premium";
"lng_premium_summary_top_about" = "Go **beyond the limits**, get **exclusive features** and support us by subscribing to **Telegram Premium**.";
@@ -1885,6 +1752,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_premium_summary_about_profile_badge" = "A badge next to your name showing that you are helping support Telegram.";
"lng_premium_summary_subtitle_animated_userpics" = "Animated Profile Pictures";
"lng_premium_summary_about_animated_userpics" = "Video avatars animated in chat lists and chats to allow for additional self-expression.";
"lng_premium_summary_subtitle_translation" = "Real-Time Translation";
"lng_premium_summary_about_translation" = "Real-time translation of channels and chats into other languages.";
"lng_premium_summary_bottom_subtitle" = "About Telegram Premium";
"lng_premium_summary_bottom_about" = "While the free version of Telegram already gives its users more than any other messaging application, **Telegram Premium** pushes its capabilities even further.\n\n**Telegram Premium** is a paid option, because most Premium Features require additional expenses from Telegram to third parties such as data center providers and server manufacturers. Contributions from **Telegram Premium** users allow us to cover such costs and also help Telegram stay free for everyone.";
"lng_premium_summary_button" = "Subscribe for {cost} per month";
@@ -2001,14 +1870,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_stickers_remove_group_set" = "Remove group sticker set?";
"lng_stickers_group_from_your" = "Choose from your stickers";
"lng_stickers_group_from_featured" = "Choose from trending stickers";
"lng_stickers_search_sets" = "Search sticker sets";
"lng_stickers_nothing_found" = "No stickers found";
"lng_stickers_remove_pack_confirm" = "Remove";
"lng_stickers_archive_pack" = "Archive Stickers";
"lng_stickers_remove_pack_button" = "Remove Stickers";
"lng_stickers_has_been_archived" = "Sticker pack has been archived.";
"lng_masks_archive_pack" = "Archive Masks";
"lng_masks_remove_pack_button" = "Remove Masks";
"lng_masks_has_been_archived" = "Mask pack has been archived.";
"lng_masks_installed" = "Mask pack has been installed.";
@@ -2064,7 +1930,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_cant_more_info" = "More info »";
"lng_cant_invite_banned" = "Sorry, only admin can add this user.";
"lng_cant_invite_privacy" = "Sorry, you cannot add this user to groups because of their privacy settings.";
"lng_cant_invite_privacy_channel" = "Sorry, you cannot add this user to channels because of their privacy settings.";
"lng_cant_invite_bot_to_channel" = "Sorry, bots can only be added to channels as administrators.";
"lng_cant_do_this" = "Sorry, this action is unavailable.";
"lng_cant_invite_offer_admin" = "Bots can only be added as administrators.";
@@ -2082,6 +1947,18 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_broadcast_ph" = "Broadcast a message...";
"lng_broadcast_silent_ph" = "Silent broadcast...";
"lng_send_anonymous_ph" = "Send anonymously...";
"lng_send_text_no" = "Text not allowed.";
"lng_send_text_no_about" = "The admins of this group only allow sending {types}.";
"lng_send_text_type_and_last" = "{types} and {last}";
"lng_send_text_type_photos" = "Photos";
"lng_send_text_type_videos" = "Video files";
"lng_send_text_type_video_messages" = "Video Messages";
"lng_send_text_type_music" = "Music";
"lng_send_text_type_voice_messages" = "Voice Messages";
"lng_send_text_type_files" = "Files";
"lng_send_text_type_stickers" = "Stickers & GIFs";
"lng_send_text_type_polls" = "Polls";
"lng_send_as_title" = "Send message as...";
"lng_send_as_anonymous_admin" = "Anonymous admin";
"lng_send_as_premium_required" = "Subscribe to {link} to be able to comment on behalf of your channels in group chats.";
@@ -2147,8 +2024,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_dialogs_text_media" = "{media_part} {caption}";
"lng_dialogs_text_media_wrapped" = "{media},";
"lng_dialogs_text_from_in_topic" = "{from} {topic}";
"lng_dialogs_show_all_chats" = "Show all chats";
"lng_dialogs_hide_muted_chats" = "Hide muted chats";
"lng_dialogs_skip_archive_in_search" = "Skip results from archive";
"lng_dialogs_show_archive_in_search" = "With results from archive";
@@ -2182,10 +2057,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_bot_as_admin_check" = "Admin rights";
"lng_bot_add_as_admin" = "Add Bot as Admin";
"lng_bot_add_as_member" = "Add Bot as Member";
"lng_bot_sure_add_title" = "Add bot as admin";
"lng_bot_sure_add_text_group" = "Are you sure you want to add this bot as an admin in the group {group}?";
"lng_bot_sure_add_text_channel" = "Are you sure you want to add this bot as an admin in the channel {group}?";
"lng_bot_sure_add" = "Add as admin";
"lng_bot_no_webview" = "Unfortunately, you can't open such menu with current system configuration.";
"lng_bot_remove_from_menu" = "Remove From Menu";
"lng_bot_remove_from_menu_sure" = "Remove {bot} from the attachment menu?";
@@ -2250,6 +2123,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_choose_files" = "Choose files";
"lng_game_tag" = "Game";
"lng_context_new_window" = "Open in new window";
"lng_context_view_profile" = "View profile";
"lng_context_send_message" = "Send message";
"lng_context_view_group" = "View group info";
@@ -2357,6 +2231,20 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_context_spoiler_effect" = "Hide with Spoiler";
"lng_context_disable_spoiler" = "Remove Spoiler";
"lng_translate_show_original" = "Show Original";
"lng_translate_bar_to" = "Translate to {name}";
"lng_translate_bar_to_other" = "Translate to {name}";
"lng_translate_menu_to" = "Translate To";
"lng_translate_menu_dont" = "Don't translate {name}";
"lng_translate_menu_dont_other" = "Don't translate {name}";
"lng_translate_menu_hide" = "Hide";
"lng_translate_hidden_user" = "Translation bar is now hidden for this chat.";
"lng_translate_hidden_group" = "Translation bar is now hidden for this group.";
"lng_translate_hidden_channel" = "Translation bar is now hidden for this channel.";
"lng_translate_dont_added" = "{name} is added to the Do Not Translate list.";
"lng_translate_settings" = "Settings";
"lng_translate_undo" = "Undo";
"lng_downloads_section" = "Downloads";
"lng_downloads_view_in_chat" = "View in chat";
"lng_downloads_view_in_section" = "View in downloads";
@@ -2498,6 +2386,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mediaview_channel_photo" = "Channel Photo";
"lng_mediaview_profile_photo" = "Profile Photo";
"lng_mediaview_profile_public_photo" = "Public Photo";
"lng_mediaview_profile_photo_by_you" = "Photo set by you";
"lng_mediaview_file_n_of_amount" = "{file} {n} of {amount}";
"lng_mediaview_n_of_amount" = "Photo {n} of {amount}";
"lng_mediaview_doc_image" = "File";
@@ -2510,7 +2399,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mediaview_saved_to" = "Image was saved to your {downloads} folder";
"lng_mediaview_saved_images_to" = "Images were saved to your {downloads} folder";
"lng_mediaview_downloads" = "Downloads";
"lng_mediaview_video_loading" = "Loading - {percent}";
"lng_mediaview_playback_speed" = "Playback speed: {speed}";
"lng_mediaview_rotate_video" = "Rotate video";
@@ -2521,8 +2409,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_theme_preview_users#one" = "{count} person is using this theme";
"lng_theme_preview_users#other" = "{count} people are using this theme";
"lng_new_authorization" = "{name},\nWe detected a login into your account from a new device on {day}, {date} at {time}\n\nDevice: {device}\nLocation: {location}\n\nIf this wasn't you, you can go to Settings — Show all sessions and terminate that session.\n\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Settings.\n\nSincerely,\nThe Telegram Team";
"lng_new_version_wrap" = "Telegram Desktop was updated to version {version}\n\n{changes}\n\nFull version history is available here:\n{link}";
"lng_new_version_minor" = "— Bug fixes and other minor improvements";
@@ -2566,9 +2452,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_theme_editor_saved_to_jpg" = "Saved to JPEG, {size}";
"lng_theme_editor_read_from_jpg" = "JPEG image, {size}";
"lng_theme_editor_read_from_png" = "PNG image, {size}";
"lng_theme_editor_export" = "Export";
"lng_theme_editor_choose_image" = "Choose background image";
"lng_theme_editor_save_palette" = "Save palette file";
"lng_theme_editor_choose_name" = "Save theme file";
"lng_theme_editor_error" = "The editor encountered an error :( See 'log.txt' for details.";
"lng_theme_editor_sure_close" = "Are you sure you want to close the editor? Your changes won't be saved.";
@@ -2579,7 +2463,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_theme_editor_save_button" = "Save theme";
"lng_theme_editor_create_title" = "Create theme";
"lng_theme_editor_attach_title" = "Attach desktop theme";
"lng_theme_editor_create" = "Create";
"lng_theme_editor_name" = "Theme name";
"lng_theme_editor_create_description" = "New theme will be based on your currently selected colors and wallpaper. Alternatively, you can import existing theme or color palette from file.";
@@ -2592,7 +2475,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_theme_editor_menu_import" = "Import theme";
"lng_theme_editor_menu_show" = "Show palette file";
"lng_payments_not_supported" = "Sorry, Telegram Desktop doesn't support payments yet. Please use one of our mobile apps to do this.";
"lng_payments_webview_no_use" = "Unfortunately, you can't use payments with current system configuration.";
"lng_payments_webview_install_edge" = "Please install {link}.";
"lng_payments_webview_install_webkit" = "Please install WebKitGTK (webkit2gtk-5.0/webkit2gtk-4.1/webkit2gtk-4.0) using your package manager.";
@@ -2692,6 +2574,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_call_box_clear_all" = "Clear All";
"lng_call_box_clear_sure" = "Are you sure you want to completely clear your calls log?";
"lng_call_box_clear_button" = "Clear";
"lng_call_box_groupcalls_subtitle" = "Active video chats";
"lng_call_outgoing" = "Outgoing call";
"lng_call_video_outgoing" = "Outgoing video call";
@@ -2728,22 +2611,17 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_group_call_inactive" = "listening";
"lng_group_call_raised_hand_status" = "wants to speak";
"lng_group_call_settings" = "Settings";
"lng_group_call_share_button" = "Share";
"lng_group_call_video" = "Video";
"lng_group_call_screen_share_start" = "Share Screen";
"lng_group_call_screen_share_stop" = "Stop Sharing";
"lng_group_call_screen_title" = "Screen {index}";
"lng_group_call_screen_share_audio" = "Share System Audio";
"lng_group_call_unmute_small" = "Unmute";
"lng_group_call_more" = "More";
"lng_group_call_unmute" = "Unmute";
"lng_group_call_unmute_sub" = "Hold space bar to temporarily unmute.";
"lng_group_call_you_are_live" = "You are Live";
"lng_group_call_force_muted" = "Muted by admin";
"lng_group_call_force_muted_sub" = "You are in Listen Only mode";
"lng_group_call_raise_hand_tip" = "Click if you want to speak";
"lng_group_call_raised_hand" = "You asked to speak";
"lng_group_call_raised_hand_sub" = "We let the speakers know";
"lng_group_call_connecting" = "Connecting...";
"lng_group_call_leave" = "Leave";
"lng_group_call_leave_title" = "Leave voice chat";
@@ -3005,13 +2883,19 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_rights_group_delete" = "Delete messages";
"lng_rights_group_anonymous" = "Remain Anonymous";
"lng_rights_add_admins" = "Add new admins";
"lng_rights_chat_read" = "Read messages";
"lng_rights_chat_send_text" = "Send messages";
"lng_rights_chat_send_media" = "Send media";
"lng_rights_chat_send_stickers" = "Send stickers & GIFs";
"lng_rights_chat_send_links" = "Embed links";
"lng_rights_chat_send_polls" = "Send polls";
"lng_rights_chat_add_members" = "Add members";
"lng_rights_chat_photos" = "Photos";
"lng_rights_chat_videos" = "Video files";
"lng_rights_chat_stickers" = "Stickers & GIFs";
"lng_rights_chat_music" = "Music";
"lng_rights_chat_files" = "Files";
"lng_rights_chat_voice_messages" = "Voice messages";
"lng_rights_chat_video_messages" = "Video messages";
"lng_rights_chat_banned_until_header" = "Restricted until";
"lng_rights_chat_banned_forever" = "Forever";
"lng_rights_chat_banned_day#one" = "For {count} day";
@@ -3041,21 +2925,36 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_bots_password_confirm_description" = "Please enter your password to confirm the action.";
"lng_restricted_send_message" = "The admins of this group restricted you from writing here.";
"lng_restricted_send_media" = "The admins of this group restricted you from posting media content here.";
"lng_restricted_send_photos" = "The admins of this group restricted you from posting photos here.";
"lng_restricted_send_videos" = "The admins of this group restricted you from posting video files here.";
"lng_restricted_send_music" = "The admins of this group restricted you from posting music here.";
"lng_restricted_send_files" = "The admins of this group restricted you from posting files here.";
"lng_restricted_send_voice_messages_group" = "The admins of this group restricted you from posting voice messages here.";
"lng_restricted_send_video_messages_group" = "The admins of this group restricted you from posting video messages here.";
"lng_restricted_send_stickers" = "The admins of this group restricted you from posting stickers here.";
"lng_restricted_send_gifs" = "The admins of this group restricted you from posting GIFs here.";
"lng_restricted_send_inline" = "The admins of this group restricted you from posting inline content here.";
"lng_restricted_send_polls" = "The admins of this group restricted you from posting polls here.";
"lng_restricted_send_message_until" = "The admins of this group restricted you from writing here until {date}, {time}.";
"lng_restricted_send_media_until" = "The admins of this group restricted you from posting media content here until {date}, {time}.";
"lng_restricted_send_photos_until" = "The admins of this group restricted you from posting photos here until {date}, {time}.";
"lng_restricted_send_videos_until" = "The admins of this group restricted you from posting video files here until {date}, {time}.";
"lng_restricted_send_music_until" = "The admins of this group restricted you from posting music here until {date}, {time}.";
"lng_restricted_send_files_until" = "The admins of this group restricted you from posting files here until {date}, {time}.";
"lng_restricted_send_voice_messages_until" = "The admins of this group restricted you from posting voice messages here until {date}, {time}.";
"lng_restricted_send_video_messages_until" = "The admins of this group restricted you from posting video messages here until {date}, {time}.";
"lng_restricted_send_stickers_until" = "The admins of this group restricted you from posting stickers here until {date}, {time}.";
"lng_restricted_send_gifs_until" = "The admins of this group restricted you from posting GIFs here until {date}, {time}.";
"lng_restricted_send_inline_until" = "The admins of this group restricted you from posting inline content here until {date}, {time}.";
"lng_restricted_send_polls_until" = "The admins of this group restricted you from posting polls here until {date}, {time}.";
"lng_restricted_send_message_all" = "Writing messages isn't allowed in this group.";
"lng_restricted_send_media_all" = "Posting media content isn't allowed in this group.";
"lng_restricted_send_photos_all" = "Posting photos isn't allowed in this group.";
"lng_restricted_send_videos_all" = "Posting video files isn't allowed in this group.";
"lng_restricted_send_music_all" = "Posting music isn't allowed in this group.";
"lng_restricted_send_files_all" = "Posting files isn't allowed in this group.";
"lng_restricted_send_voice_messages_all" = "Posting voice messages isn't allowed in this group.";
"lng_restricted_send_video_messages_all" = "Posting video messages isn't allowed in this group.";
"lng_restricted_send_stickers_all" = "Posting stickers isn't allowed in this group.";
"lng_restricted_send_gifs_all" = "Posting GIFs isn't allowed in this group.";
"lng_restricted_send_inline_all" = "Posting inline content isn't allowed in this group.";
@@ -3099,7 +2998,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_admin_log_no_events_text_channel" = "There were no service actions\ntaken by the channels's admins\nin the last 48 hours.";
"lng_admin_log_empty_text" = "Empty";
"lng_admin_log_changed_title_group" = "{from} changed group name to «{title}»";
"lng_admin_log_changed_title_channel" = "{from} changed channel name to «{title}»";
"lng_admin_log_changed_description_group" = "{from} edited group description:";
"lng_admin_log_removed_description_group" = "{from} removed group description";
@@ -3216,7 +3114,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_admin_log_restricted_until" = "until {date}";
"lng_admin_log_banned_view_messages" = "Read messages";
"lng_admin_log_banned_send_messages" = "Send messages";
"lng_admin_log_banned_send_media" = "Send media";
"lng_admin_log_banned_send_photos" = "Send photos";
"lng_admin_log_banned_send_videos" = "Send video files";
"lng_admin_log_banned_send_music" = "Send music";
"lng_admin_log_banned_send_files" = "Send files";
"lng_admin_log_banned_send_voice_messages" = "Send voice messages";
"lng_admin_log_banned_send_video_messages" = "Send video messages";
"lng_admin_log_banned_send_stickers" = "Send stickers & GIFs";
"lng_admin_log_banned_embed_links" = "Embed links";
"lng_admin_log_banned_send_polls" = "Send polls";
@@ -3321,8 +3224,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_passport_authorize" = "Authorize";
"lng_passport_form_error" = "Could not get authorization form.";
"lng_passport_save_value" = "Save";
"lng_passport_saving" = "Saving...";
"lng_passport_uploading" = "Uploading...";
"lng_passport_scan_index" = "Scan {index}";
"lng_passport_upload_scans" = "Upload scans";
"lng_passport_upload_more" = "Upload additional scans";
@@ -3448,7 +3349,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_export_state_userpics" = "Profile pictures";
"lng_export_state_chats_list" = "Processing chats...";
"lng_export_state_chats" = "Chats";
"lng_export_state_ready_progress" = "{ready} / {total}";
"lng_export_skip_file" = "Skip this file";
"lng_export_progress" = "You can close this window now. Please don't quit Telegram until the data export is completed.";
"lng_export_stop" = "Stop";
@@ -3484,13 +3384,14 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_language_not_ready_about" = "Unfortunately, this custom language pack ({lang_name}) doesn't contain data for Telegram Desktop. You can contribute to this language pack using the {link}.";
"lng_language_not_ready_link" = "translations platform";
"lng_translate_box_original" = "Original";
"lng_translate_box_error" = "Translate failed.";
"lng_translate_settings_subtitle" = "Translate Messages";
"lng_translate_settings_show" = "Show Translate Button";
"lng_translate_settings_chat" = "Translate Entire Chat";
"lng_translate_settings_choose" = "Do Not Translate";
"lng_translate_settings_about" = "The 'Translate' button will appear when you open a context menu on a text message.";
"lng_translate_settings_one" = "Please choose at least one language so that it can be used as the \"Translate to\" language.";
"lng_launch_exe_warning" = "This file has a {extension} extension.\nAre you sure you want to run it?";
"lng_launch_svg_warning" = "Opening this file can potentially expose your IP address to its sender. Continue?";
@@ -3574,18 +3475,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_filters_edit_types" = "Chat types";
"lng_filters_edit_chats" = "Chats";
"lng_filters_include_contacts" = "Contacts";
"lng_filters_include_non_contacts" = "Non-Contacts";
"lng_filters_include_groups" = "Groups";
"lng_filters_include_channels" = "Channels";
"lng_filters_include_bots" = "Bots";
"lng_filters_exclude_muted" = "Muted";
"lng_filters_exclude_read" = "Read";
"lng_filters_exclude_archived" = "Archived";
"lng_filters_name_people" = "People";
"lng_filters_name_unread" = "Unread";
"lng_filters_name_unmuted" = "Unmuted";
"lng_filters_add" = "Done";
"lng_filters_limit" = "Sorry, you have reached folders limit.";
"lng_filters_empty" = "Please choose at least one chat for this folder.";
"lng_filters_default" = "Please change at least one rule for this folder.";
"lng_filters_type_contacts" = "Contacts";
@@ -3597,22 +3492,17 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_filters_type_no_muted" = "Muted";
"lng_filters_type_no_read" = "Read";
"lng_filters_icon_header" = "Choose an icon";
"lng_filters_error_pinned_max" = "Sorry, you can't pin any more chats to the top.";
"lng_filters_context_edit" = "Edit Folder";
"lng_filters_context_remove" = "Remove";
"lng_filters_remove_sure" = "This will remove the folder, your chats will not be deleted.";
"lng_filters_remove_yes" = "Remove";
"lng_filters_menu_add" = "Add to folder";
"lng_filters_menu_remove" = "Remove from folder";
"lng_filters_add_box_title" = "Add to...";
"lng_filters_toast_add" = "{chat} added to {folder} folder";
"lng_filters_toast_remove" = "{chat} removed from {folder} folder";
"lng_chat_theme_change" = "Change colors";
"lng_chat_theme_none" = "No\nTheme";
"lng_chat_theme_apply" = "Apply Theme";
"lng_chat_theme_reset" = "Reset Theme";
"lng_chat_theme_dont" = "Do Not Set Theme";
"lng_chat_theme_title" = "Select theme";
"lng_chat_theme_cant_voice" = "Sorry, you can't change the chat theme while you're having an unsent voice message.";
@@ -3681,6 +3571,57 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_forum_messages#other" = "{count} messages";
"lng_forum_show_topics_list" = "Show Topics List";
"lng_request_peer_requirements" = "Requirements";
"lng_request_peer_rights" = "You should have the admin rights to {rights}.";
"lng_request_peer_rights_and" = "{rights} and {last}";
"lng_request_peer_confirm" = "Are you sure you want to send {chat} to {bot}?";
"lng_request_peer_confirm_add" = "This will also add {bot} to {chat}.";
"lng_request_peer_confirm_rights" = "This will also add {bot} to {chat} with the following rights: {rights}.";
"lng_request_peer_confirm_send" = "Send";
"lng_request_user_title" = "Choose User";
"lng_request_user_premium_yes" = "The user should have a Premium subscription.";
"lng_request_user_premium_no" = "The user shouldn't have a Premium subscription.";
"lng_request_user_no" = "No such users";
"lng_request_user_no_about" = "You don't have users that meet the requirements for this bot.";
"lng_request_bot_title" = "Choose Bot";
"lng_request_bot_no" = "No bots";
"lng_request_bot_no_about" = "You don't have any bots.";
"lng_request_group_title" = "Choose Group";
"lng_request_group_no" = "No such groups";
"lng_request_group_no_about" = "You don't have groups that meet the requirements for this bot.";
"lng_request_group_public_yes" = "The group should be public.";
"lng_request_group_public_no" = "The group should be private.";
"lng_request_group_topics_yes" = "The group should have topics turned on.";
"lng_request_group_topics_no" = "The group should have topics turned off.";
"lng_request_group_am_owner" = "You should be the owner of the group.";
"lng_request_group_change_info" = "change group info";
"lng_request_group_delete_messages" = "delete messages";
"lng_request_group_ban_users" = "ban users";
"lng_request_group_invite" = "invite users via link";
"lng_request_group_pin_messages" = "pin messages";
"lng_request_group_manage_topics" = "manage topics";
"lng_request_group_manage_video_chats" = "manage video chats";
"lng_request_group_anonymous" = "remain anonymous";
"lng_request_group_add_admins" = "add new admins";
"lng_request_group_create" = "Create a New Group for This";
"lng_request_channel_title" = "Choose Channel";
"lng_request_channel_no" = "No such channels";
"lng_request_channel_no_about" = "You don't have channels that meet the requirements for this bot.";
"lng_request_channel_public_yes" = "The channel should be public.";
"lng_request_channel_public_no" = "The channel should be private.";
"lng_request_channel_am_owner" = "You should be the owner of the channel.";
"lng_request_channel_change_info" = "change channel info";
"lng_request_channel_post_messages" = "post messages";
"lng_request_channel_edit_messages" = "edit messages of others";
"lng_request_channel_delete_messages" = "delete messages";
"lng_request_channel_add_subscribers" = "add subscribers";
"lng_request_channel_manage_livestreams" = "manage live streams";
"lng_request_channel_add_admins" = "add new admins";
"lng_request_channel_create" = "Create a New Channel for This";
"lng_userpic_builder_color_subtitle" = "Choose background";
"lng_userpic_builder_emoji_subtitle" = "Choose sticker or emoji";
// Wnd specific
"lng_wnd_choose_program_menu" = "Choose Default Program...";
@@ -3740,7 +3681,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
"lng_mac_menu_player_resume" = "Resume";
"lng_mac_menu_player_next" = "Next";
"lng_mac_menu_player_previous" = "Previous";
"lng_mac_menu_player_stop" = "Stop";
"lng_mac_touchbar_favorite_stickers" = "Favorite stickers";

View File

@@ -9,5 +9,6 @@
<file alias="cloud_password/hint.tgs">../../animations/cloud_password/hint.tgs</file>
<file alias="cloud_password/email.tgs">../../animations/cloud_password/email.tgs</file>
<file alias="ttl.tgs">../../animations/ttl.tgs</file>
<file alias="discussion.tgs">../../animations/discussion.tgs</file>
</qresource>
</RCC>

View File

@@ -74,7 +74,7 @@ inputMediaPoll#f94e5f1 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> s
inputMediaDice#e66fbf7b emoticon:string = InputMedia;
inputChatPhotoEmpty#1ca48f57 = InputChatPhoto;
inputChatUploadedPhoto#c642724e flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = InputChatPhoto;
inputChatUploadedPhoto#bdcdaec0 flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.3?VideoSize = InputChatPhoto;
inputChatPhoto#8953ad37 id:InputPhoto = InputChatPhoto;
inputGeoPointEmpty#e4c123d6 = InputGeoPoint;
@@ -128,8 +128,8 @@ chatForbidden#6592a1a7 id:long title:string = Chat;
channel#83259464 flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true forum:flags.30?true flags2:# id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int usernames:flags2.0?Vector<Username> = Chat;
channelForbidden#17d493d5 flags:# broadcast:flags.5?true megagroup:flags.8?true id:long access_hash:long title:string until_date:flags.16?int = Chat;
chatFull#c9d31138 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?ChatReactions = ChatFull;
channelFull#f2355507 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions = ChatFull;
chatFull#c9d31138 flags:# can_set_username:flags.7?true has_scheduled:flags.8?true translations_disabled:flags.19?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?ChatReactions = ChatFull;
channelFull#f2355507 flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions = ChatFull;
chatParticipant#c02d4007 user_id:long inviter_id:long date:int = ChatParticipant;
chatParticipantCreator#e46bcee4 user_id:long = ChatParticipant;
@@ -196,6 +196,7 @@ messageActionTopicCreate#d999256 flags:# title:string icon_color:int icon_emoji_
messageActionTopicEdit#c0944820 flags:# title:flags.0?string icon_emoji_id:flags.1?long closed:flags.2?Bool hidden:flags.3?Bool = MessageAction;
messageActionSuggestProfilePhoto#57de635e photo:Photo = MessageAction;
messageActionAttachMenuBotAllowed#e7e75f97 = MessageAction;
messageActionRequestedPeer#fe77345d button_id:int peer:Peer = MessageAction;
dialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
dialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;
@@ -214,8 +215,9 @@ geoPointEmpty#1117dd5f = GeoPoint;
geoPoint#b2a2f663 flags:# long:double lat:double access_hash:long accuracy_radius:flags.0?int = GeoPoint;
auth.sentCode#5e002502 flags:# type:auth.SentCodeType phone_code_hash:string next_type:flags.1?auth.CodeType timeout:flags.2?int = auth.SentCode;
auth.sentCodeSuccess#2390fe44 authorization:auth.Authorization = auth.SentCode;
auth.authorization#33fb7bb8 flags:# setup_password_required:flags.1?true otherwise_relogin_days:flags.1?int tmp_sessions:flags.0?int user:User = auth.Authorization;
auth.authorization#2ea2c0d4 flags:# setup_password_required:flags.1?true otherwise_relogin_days:flags.1?int tmp_sessions:flags.0?int future_auth_token:flags.2?bytes user:User = auth.Authorization;
auth.authorizationSignUpRequired#44747e9a flags:# terms_of_service:flags.0?help.TermsOfService = auth.Authorization;
auth.exportedAuthorization#b434e2b8 id:long bytes:bytes = auth.ExportedAuthorization;
@@ -246,7 +248,7 @@ inputReportReasonFake#f5ddd6e7 = ReportReason;
inputReportReasonIllegalDrugs#a8eb2be = ReportReason;
inputReportReasonPersonalDetails#9ec7863d = ReportReason;
userFull#f8d32aed flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> = UserFull;
userFull#f8d32aed flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> = UserFull;
contact#145ade0b user_id:long mutual:Bool = Contact;
@@ -405,6 +407,7 @@ updateMessageExtendedMedia#5a73a98c peer:Peer msg_id:int extended_media:MessageE
updateChannelPinnedTopic#192efbe3 flags:# pinned:flags.0?true channel_id:long topic_id:int = Update;
updateChannelPinnedTopics#fe198602 flags:# channel_id:long order:flags.0?Vector<int> = Update;
updateUser#20529438 user_id:long = Update;
updateAutoSaveSettings#ec05b097 = Update;
updates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;
@@ -622,6 +625,7 @@ inputKeyboardButtonUserProfile#e988037b text:string user_id:InputUser = Keyboard
keyboardButtonUserProfile#308660c1 text:string user_id:long = KeyboardButton;
keyboardButtonWebView#13767230 text:string url:string = KeyboardButton;
keyboardButtonSimpleWebView#a0c0505c text:string url:string = KeyboardButton;
keyboardButtonRequestPeer#d0b468c text:string button_id:int peer_type:RequestPeerType = KeyboardButton;
keyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;
@@ -736,6 +740,7 @@ auth.sentCodeTypeMissedCall#82006484 prefix:string length:int = auth.SentCodeTyp
auth.sentCodeTypeEmailCode#5a159841 flags:# apple_signin_allowed:flags.0?true google_signin_allowed:flags.1?true email_pattern:string length:int next_phone_login_date:flags.2?int = auth.SentCodeType;
auth.sentCodeTypeSetUpEmailRequired#a5491dea flags:# apple_signin_allowed:flags.0?true google_signin_allowed:flags.1?true = auth.SentCodeType;
auth.sentCodeTypeFragmentSms#d9565c39 url:string length:int = auth.SentCodeType;
auth.sentCodeTypeFirebaseSms#e57b1432 flags:# nonce:flags.0?bytes receipt:flags.1?string push_timeout:flags.1?int length:int = auth.SentCodeType;
messages.botCallbackAnswer#36585ea4 flags:# alert:flags.1?true has_url:flags.3?true native_ui:flags.4?true message:flags.0?string url:flags.2?string cache_time:int = messages.BotCallbackAnswer;
@@ -1136,7 +1141,7 @@ statsURL#47a971e0 url:string = StatsURL;
chatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true manage_call:flags.11?true other:flags.12?true manage_topics:flags.13?true = ChatAdminRights;
chatBannedRights#9f120418 flags:# view_messages:flags.0?true send_messages:flags.1?true send_media:flags.2?true send_stickers:flags.3?true send_gifs:flags.4?true send_games:flags.5?true send_inline:flags.6?true embed_links:flags.7?true send_polls:flags.8?true change_info:flags.10?true invite_users:flags.15?true pin_messages:flags.17?true manage_topics:flags.18?true until_date:int = ChatBannedRights;
chatBannedRights#9f120418 flags:# view_messages:flags.0?true send_messages:flags.1?true send_media:flags.2?true send_stickers:flags.3?true send_gifs:flags.4?true send_games:flags.5?true send_inline:flags.6?true embed_links:flags.7?true send_polls:flags.8?true change_info:flags.10?true invite_users:flags.15?true pin_messages:flags.17?true manage_topics:flags.18?true send_photos:flags.19?true send_videos:flags.20?true send_roundvideos:flags.21?true send_audios:flags.22?true send_voices:flags.23?true send_docs:flags.24?true send_plain:flags.25?true until_date:int = ChatBannedRights;
inputWallPaper#e630b979 id:long access_hash:long = InputWallPaper;
inputWallPaperSlug#72091c80 slug:string = InputWallPaper;
@@ -1145,7 +1150,7 @@ inputWallPaperNoFile#967a462e id:long = InputWallPaper;
account.wallPapersNotModified#1c199183 = account.WallPapers;
account.wallPapers#cdc3858c hash:long wallpapers:Vector<WallPaper> = account.WallPapers;
codeSettings#8a6469c2 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true allow_missed_call:flags.5?true logout_tokens:flags.6?Vector<bytes> = CodeSettings;
codeSettings#ad253d78 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true allow_missed_call:flags.5?true allow_firebase:flags.7?true logout_tokens:flags.6?Vector<bytes> token:flags.8?string app_sandbox:flags.8?Bool = CodeSettings;
wallPaperSettings#1dc1bca4 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int third_background_color:flags.5?int fourth_background_color:flags.6?int intensity:flags.3?int rotation:flags.4?int = WallPaperSettings;
@@ -1243,6 +1248,8 @@ help.promoDataEmpty#98f6ac75 expires:int = help.PromoData;
help.promoData#8c39793f flags:# proxy:flags.0?true expires:int peer:Peer chats:Vector<Chat> users:Vector<User> psa_type:flags.1?string psa_message:flags.2?string = help.PromoData;
videoSize#de33b094 flags:# type:string w:int h:int size:int video_start_ts:flags.0?double = VideoSize;
videoSizeEmojiMarkup#f85c413c emoji_id:long background_colors:Vector<int> = VideoSize;
videoSizeStickerMarkup#da082fe stickerset:InputStickerSet sticker_id:long background_colors:Vector<int> = VideoSize;
statsGroupTopPoster#9d04af9b user_id:long messages:int avg_chars:int = StatsGroupTopPoster;
@@ -1367,9 +1374,6 @@ availableReaction#c077ec01 flags:# inactive:flags.0?true premium:flags.2?true re
messages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;
messages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;
messages.translateNoResult#67ca4737 = messages.TranslatedText;
messages.translateResultText#a214f7d0 text:string = messages.TranslatedText;
messagePeerReaction#b156fe9c flags:# big:flags.0?true unread:flags.1?true peer_id:Peer reaction:Reaction = MessagePeerReaction;
groupCallStreamChannel#80eb48af channel:int scale:int last_timestamp_ms:long = GroupCallStreamChannel;
@@ -1425,7 +1429,7 @@ messages.transcribedAudio#93752c52 flags:# pending:flags.0?true transcription_id
help.premiumPromo#5334759c status_text:string status_entities:Vector<MessageEntity> video_sections:Vector<string> videos:Vector<Document> period_options:Vector<PremiumSubscriptionOption> users:Vector<User> = help.PremiumPromo;
inputStorePaymentPremiumSubscription#a6751e66 flags:# restore:flags.0?true = InputStorePaymentPurpose;
inputStorePaymentPremiumSubscription#a6751e66 flags:# restore:flags.0?true upgrade:flags.1?true = InputStorePaymentPurpose;
inputStorePaymentGiftPremium#616f7fe8 user_id:InputUser currency:string amount:long = InputStorePaymentPurpose;
premiumGiftOption#74c34319 flags:# months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumGiftOption;
@@ -1461,7 +1465,7 @@ emailVerificationApple#96d074fd token:string = EmailVerification;
account.emailVerified#2b96cd1b email:string = account.EmailVerified;
account.emailVerifiedLogin#e1bb0d61 email:string sent_code:auth.SentCode = account.EmailVerified;
premiumSubscriptionOption#b6f11ebe flags:# current:flags.1?true can_purchase_upgrade:flags.2?true months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumSubscriptionOption;
premiumSubscriptionOption#5f2d1df2 flags:# current:flags.1?true can_purchase_upgrade:flags.2?true transaction:flags.3?string months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumSubscriptionOption;
sendAsPeer#b81c7034 flags:# premium_required:flags.0?true peer:Peer = SendAsPeer;
@@ -1481,6 +1485,28 @@ defaultHistoryTTL#43b46b20 period:int = DefaultHistoryTTL;
exportedContactToken#41bf109b url:string expires:int = ExportedContactToken;
requestPeerTypeUser#5f3b8a00 flags:# bot:flags.0?Bool premium:flags.1?Bool = RequestPeerType;
requestPeerTypeChat#c9f06e1b flags:# creator:flags.0?true bot_participant:flags.5?true has_username:flags.3?Bool forum:flags.4?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType;
requestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flags.3?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType;
emojiListNotModified#481eadfa = EmojiList;
emojiList#7a1e11d1 hash:long document_id:Vector<long> = EmojiList;
emojiGroup#7a9abda9 title:string icon_emoji_id:long emoticons:Vector<string> = EmojiGroup;
messages.emojiGroupsNotModified#6fb4ad87 = messages.EmojiGroups;
messages.emojiGroups#881fb94b hash:int groups:Vector<EmojiGroup> = messages.EmojiGroups;
textWithEntities#751f3146 text:string entities:Vector<MessageEntity> = TextWithEntities;
messages.translateResult#33db32f8 result:Vector<TextWithEntities> = messages.TranslatedText;
autoSaveSettings#c84834ce flags:# photos:flags.0?true videos:flags.1?true video_max_size:flags.2?long = AutoSaveSettings;
autoSaveException#81602d47 peer:Peer settings:AutoSaveSettings = AutoSaveException;
account.autoSaveSettings#4c3e069d users_settings:AutoSaveSettings chats_settings:AutoSaveSettings broadcasts_settings:AutoSaveSettings exceptions:Vector<AutoSaveException> chats:Vector<Chat> users:Vector<User> = account.AutoSaveSettings;
---functions---
invokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;
@@ -1511,6 +1537,7 @@ auth.importLoginToken#95ac5ce4 token:bytes = auth.LoginToken;
auth.acceptLoginToken#e894ad4d token:bytes = Authorization;
auth.checkRecoveryPassword#d36bf79 code:string = Bool;
auth.importWebTokenAuthorization#2db873a9 api_id:int api_hash:string web_auth_token:string = auth.Authorization;
auth.requestFirebaseSms#89464b50 flags:# phone_number:string phone_code_hash:string safety_net_token:flags.0?string ios_push_secret:flags.1?string = Bool;
account.registerDevice#ec86017a flags:# no_muted:flags.0?true token_type:int token:string app_sandbox:Bool secret:bytes other_uids:Vector<long> = Bool;
account.unregisterDevice#6a0d3206 token_type:int token:string other_uids:Vector<long> = Bool;
@@ -1594,6 +1621,11 @@ account.getRecentEmojiStatuses#f578105 hash:long = account.EmojiStatuses;
account.clearRecentEmojiStatuses#18201aae = Bool;
account.reorderUsernames#ef500eab order:Vector<string> = Bool;
account.toggleUsername#58d6b376 username:string active:Bool = Bool;
account.getDefaultProfilePhotoEmojis#e2750328 hash:long = EmojiList;
account.getDefaultGroupPhotoEmojis#915860ae hash:long = EmojiList;
account.getAutoSaveSettings#adcbbcda = account.AutoSaveSettings;
account.saveAutoSaveSettings#d69b8361 flags:# users:flags.0?true chats:flags.1?true broadcasts:flags.2?true peer:flags.3?InputPeer settings:AutoSaveSettings = Bool;
account.deleteAutoSaveExceptions#53bc0020 = Bool;
users.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;
users.getFullUser#b60f5918 id:InputUser = users.UserFull;
@@ -1778,7 +1810,7 @@ messages.getMessageReactionsList#461b3f48 flags:# peer:InputPeer id:int reaction
messages.setChatAvailableReactions#feb16771 peer:InputPeer available_reactions:ChatReactions = Updates;
messages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;
messages.setDefaultReaction#4f47a016 reaction:Reaction = Bool;
messages.translateText#24ce6dee flags:# peer:flags.0?InputPeer msg_id:flags.0?int text:flags.1?string from_lang:flags.2?string to_lang:string = messages.TranslatedText;
messages.translateText#63183030 flags:# peer:flags.0?InputPeer id:flags.0?Vector<int> text:flags.1?Vector<TextWithEntities> to_lang:string = messages.TranslatedText;
messages.getUnreadReactions#3223495b flags:# peer:InputPeer top_msg_id:flags.0?int offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;
messages.readReactions#54aa7f8e flags:# peer:InputPeer top_msg_id:flags.0?int = messages.AffectedHistory;
messages.searchSentMedia#107e31a0 q:string filter:MessagesFilter limit:int = messages.Messages;
@@ -1802,16 +1834,22 @@ messages.clearRecentReactions#9dfeefb4 = Bool;
messages.getExtendedMedia#84f80814 peer:InputPeer id:Vector<int> = Updates;
messages.setDefaultHistoryTTL#9eb51445 period:int = Bool;
messages.getDefaultHistoryTTL#658b7188 = DefaultHistoryTTL;
messages.sendBotRequestedPeer#fe38d01b peer:InputPeer msg_id:int button_id:int requested_peer:InputPeer = Updates;
messages.getEmojiGroups#7488ce5b hash:int = messages.EmojiGroups;
messages.getEmojiStatusGroups#2ecd56cd hash:int = messages.EmojiGroups;
messages.getEmojiProfilePhotoGroups#21a548f3 hash:int = messages.EmojiGroups;
messages.searchCustomEmoji#2c11c0d7 emoticon:string hash:long = EmojiList;
messages.togglePeerTranslations#e47cb579 flags:# disabled:flags.0?true peer:InputPeer = Bool;
updates.getState#edd4882a = updates.State;
updates.getDifference#25939651 flags:# pts:int pts_total_limit:flags.0?int date:int qts:int = updates.Difference;
updates.getChannelDifference#3173d78 flags:# force:flags.0?true channel:InputChannel filter:ChannelMessagesFilter pts:int limit:int = updates.ChannelDifference;
photos.updateProfilePhoto#1c3d5956 flags:# fallback:flags.0?true id:InputPhoto = photos.Photo;
photos.uploadProfilePhoto#89f30f69 flags:# fallback:flags.3?true file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = photos.Photo;
photos.uploadProfilePhoto#93c9a51 flags:# fallback:flags.3?true file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.4?VideoSize = photos.Photo;
photos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;
photos.getUserPhotos#91cd32a8 user_id:InputUser offset:int max_id:long limit:int = photos.Photos;
photos.uploadContactProfilePhoto#b91a83bf flags:# suggest:flags.3?true save:flags.4?true user_id:InputUser file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double = photos.Photo;
photos.uploadContactProfilePhoto#e14c4a71 flags:# suggest:flags.3?true save:flags.4?true user_id:InputUser file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.5?VideoSize = photos.Photo;
upload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;
upload.getFile#be5335be flags:# precise:flags.0?true cdn_supported:flags.1?true location:InputFileLocation offset:long limit:int = upload.File;
@@ -1854,7 +1892,7 @@ channels.getParticipants#77ced9d0 channel:InputChannel filter:ChannelParticipant
channels.getParticipant#a0ab6cc6 channel:InputChannel participant:InputPeer = channels.ChannelParticipant;
channels.getChannels#a7f6bbb id:Vector<InputChannel> = messages.Chats;
channels.getFullChannel#8736a09 channel:InputChannel = messages.ChatFull;
channels.createChannel#91006707 flags:# broadcast:flags.0?true megagroup:flags.1?true for_import:flags.3?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string ttl_period:flags.4?int = Updates;
channels.createChannel#91006707 flags:# broadcast:flags.0?true megagroup:flags.1?true for_import:flags.3?true forum:flags.5?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string ttl_period:flags.4?int = Updates;
channels.editAdmin#d33c8902 channel:InputChannel user_id:InputUser admin_rights:ChatAdminRights rank:string = Updates;
channels.editTitle#566decd0 channel:InputChannel title:string = Updates;
channels.editPhoto#f12e57c9 channel:InputChannel photo:InputChatPhoto = Updates;
@@ -1979,4 +2017,4 @@ stats.getMegagroupStats#dcdf8607 flags:# dark:flags.0?true channel:InputChannel
stats.getMessagePublicForwards#5630281b channel:InputChannel msg_id:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
stats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats;
// LAYER 151
// LAYER 152

View File

@@ -10,7 +10,7 @@
<Identity Name="TelegramMessengerLLP.TelegramDesktop"
ProcessorArchitecture="ARCHITECTURE"
Publisher="CN=536BC709-8EE1-4478-AF22-F0F0F26FF64A"
Version="4.5.2.0" />
Version="4.6.2.0" />
<Properties>
<DisplayName>Telegram Desktop</DisplayName>
<PublisherDisplayName>Telegram Messenger LLP</PublisherDisplayName>

View File

@@ -14,4 +14,9 @@
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
</windowsSettings>
</application>
</assembly>

View File

@@ -44,8 +44,8 @@ IDI_ICON1 ICON "..\\art\\icon256.ico"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,5,2,0
PRODUCTVERSION 4,5,2,0
FILEVERSION 4,6,2,0
PRODUCTVERSION 4,6,2,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -62,10 +62,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop"
VALUE "FileVersion", "4.5.2.0"
VALUE "FileVersion", "4.6.2.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2023"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "4.5.2.0"
VALUE "ProductVersion", "4.6.2.0"
END
END
BLOCK "VarFileInfo"

View File

@@ -35,8 +35,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,5,2,0
PRODUCTVERSION 4,5,2,0
FILEVERSION 4,6,2,0
PRODUCTVERSION 4,6,2,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -53,10 +53,10 @@ BEGIN
BEGIN
VALUE "CompanyName", "Telegram FZ-LLC"
VALUE "FileDescription", "Telegram Desktop Updater"
VALUE "FileVersion", "4.5.2.0"
VALUE "FileVersion", "4.6.2.0"
VALUE "LegalCopyright", "Copyright (C) 2014-2023"
VALUE "ProductName", "Telegram Desktop"
VALUE "ProductVersion", "4.5.2.0"
VALUE "ProductVersion", "4.6.2.0"
END
END
BLOCK "VarFileInfo"

View File

@@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "boxes/share_box.h"
#include "boxes/passcode_box.h"
#include "boxes/url_auth_box.h"
#include "boxes/peers/choose_peer_box.h"
#include "lang/lang_keys.h"
#include "core/core_cloud_password.h"
#include "core/click_handler_types.h"
@@ -404,6 +405,32 @@ void ActivateBotCommand(ClickHandlerContext context, int row, int column) {
disabled);
} break;
case ButtonType::RequestPeer: {
HideSingleUseKeyboard(controller, item);
auto query = RequestPeerQuery();
Assert(button->data.size() == sizeof(query));
memcpy(&query, button->data.data(), sizeof(query));
const auto peer = item->history()->peer;
const auto itemId = item->id;
const auto id = int32(button->buttonId);
const auto chosen = [=](not_null<PeerData*> result) {
peer->session().api().request(MTPmessages_SendBotRequestedPeer(
peer->input,
MTP_int(itemId),
MTP_int(id),
result->input
)).done([=](const MTPUpdates &result) {
peer->session().api().applyUpdates(result);
}).send();
};
if (const auto bot = item->getMessageBot()) {
ShowChoosePeerBox(controller, bot, query, chosen);
} else {
LOG(("API Error: Bot not found for RequestPeer button."));
}
} break;
case ButtonType::SwitchInlineSame:
case ButtonType::SwitchInline: {
if (const auto bot = item->getMessageBot()) {

View File

@@ -31,7 +31,11 @@ void ConfirmPhone::resolve(
}
_sendRequestId = _api.request(MTPaccount_SendConfirmPhoneCode(
MTP_string(hash),
MTP_codeSettings(MTP_flags(0), MTP_vector<MTPbytes>())
MTP_codeSettings(
MTP_flags(0),
MTPVector<MTPbytes>(),
MTPstring(),
MTPBool())
)).done([=](const MTPauth_SentCode &result) {
_sendRequestId = 0;
@@ -54,6 +58,8 @@ void ConfirmPhone::resolve(
return bad("FlashCall");
}, [&](const MTPDauth_sentCodeTypeMissedCall &) {
return bad("MissedCall");
}, [&](const MTPDauth_sentCodeTypeFirebaseSms &) {
return bad("FirebaseSms");
}, [&](const MTPDauth_sentCodeTypeEmailCode &) {
return bad("EmailCode");
}, [&](const MTPDauth_sentCodeTypeSetUpEmailRequired &) {
@@ -89,7 +95,7 @@ void ConfirmPhone::resolve(
_api.request(MTPauth_ResendCode(
MTP_string(phone),
MTP_string(phoneHash)
)).done([=](const MTPauth_SentCode &result) {
)).done([=] {
if (boxWeak) {
boxWeak->callDone();
}
@@ -135,6 +141,9 @@ void ConfirmPhone::resolve(
}, box->lifetime());
controller->show(std::move(box), Ui::LayerOption::CloseOther);
}, [](const MTPDauth_sentCodeSuccess &) {
LOG(("API Error: Unexpected auth.sentCodeSuccess "
"(Api::ConfirmPhone)."));
});
}).fail([=](const MTP::Error &error) {
_sendRequestId = 0;

View File

@@ -148,6 +148,7 @@ void EditMessageWithUploadedMedia(
MTPInputMedia media) {
const auto done = [=](Fn<void()> applyUpdates) {
if (item) {
item->removeFromSharedMediaIndex();
item->clearSavedMedia();
item->setIsLocalUpdateMedia(true);
applyUpdates();

View File

@@ -11,8 +11,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "apiwrap.h"
#include "base/random.h"
#include "base/unixtime.h"
#include "data/stickers/data_stickers.h"
#include "data/data_channel.h"
#include "data/data_chat.h"
#include "data/data_document.h"
#include "data/data_file_origin.h"
#include "data/data_peer.h"
#include "data/data_photo.h"
@@ -32,7 +34,7 @@ namespace {
constexpr auto kSharedMediaLimit = 100;
SendMediaReady PreparePeerPhoto(
[[nodiscard]] SendMediaReady PreparePeerPhoto(
MTP::DcId dcId,
PeerId peerId,
QImage &&image) {
@@ -99,6 +101,57 @@ SendMediaReady PreparePeerPhoto(
0);
}
[[nodiscard]] std::optional<MTPVideoSize> PrepareMtpMarkup(
not_null<Main::Session*> session,
const PeerPhoto::UserPhoto &d) {
const auto &documentId = d.markupDocumentId;
const auto &colors = d.markupColors;
if (!documentId || colors.empty()) {
return std::nullopt;
}
const auto document = session->data().document(documentId);
if (const auto sticker = document->sticker()) {
if (sticker->isStatic()) {
return std::nullopt;
}
const auto serializeColor = [](const QColor &color) {
return (quint32(std::clamp(color.red(), 0, 255)) << 16)
| (quint32(std::clamp(color.green(), 0, 255)) << 8)
| quint32(std::clamp(color.blue(), 0, 255));
};
auto mtpColors = QVector<MTPint>();
mtpColors.reserve(colors.size());
ranges::transform(
colors,
ranges::back_inserter(mtpColors),
[&](const QColor &c) { return MTP_int(serializeColor(c)); });
if (sticker->setType == Data::StickersType::Emoji) {
return MTP_videoSizeEmojiMarkup(
MTP_long(document->id),
MTP_vector(mtpColors));
} else if (sticker->set.id && sticker->set.accessHash) {
return MTP_videoSizeStickerMarkup(
MTP_inputStickerSetID(
MTP_long(sticker->set.id),
MTP_long(sticker->set.accessHash)),
MTP_long(document->id),
MTP_vector(mtpColors));
} else if (!sticker->set.shortName.isEmpty()) {
return MTP_videoSizeStickerMarkup(
MTP_inputStickerSetShortName(
MTP_string(sticker->set.shortName)),
MTP_long(document->id),
MTP_vector(mtpColors));
} else {
return MTP_videoSizeEmojiMarkup(
MTP_long(document->id),
MTP_vector(mtpColors));
}
}
return std::nullopt;
}
} // namespace
PeerPhoto::PeerPhoto(not_null<ApiWrap*> api)
@@ -109,20 +162,20 @@ PeerPhoto::PeerPhoto(not_null<ApiWrap*> api)
// only queued, because it is not constructed yet.
_session->uploader().photoReady(
) | rpl::start_with_next([=](const Storage::UploadedMedia &data) {
ready(data.fullId, data.info.file);
ready(data.fullId, data.info.file, std::nullopt);
}, _session->lifetime());
});
}
void PeerPhoto::upload(
not_null<PeerData*> peer,
QImage &&image,
UserPhoto &&photo,
Fn<void()> done) {
upload(peer, std::move(image), UploadType::Default, std::move(done));
upload(peer, std::move(photo), UploadType::Default, std::move(done));
}
void PeerPhoto::uploadFallback(not_null<PeerData*> peer, QImage &&image) {
upload(peer, std::move(image), UploadType::Fallback, nullptr);
void PeerPhoto::uploadFallback(not_null<PeerData*> peer, UserPhoto &&photo) {
upload(peer, std::move(photo), UploadType::Fallback, nullptr);
}
void PeerPhoto::updateSelf(
@@ -159,14 +212,11 @@ void PeerPhoto::updateSelf(
void PeerPhoto::upload(
not_null<PeerData*> peer,
QImage &&image,
UserPhoto &&photo,
UploadType type,
Fn<void()> done) {
peer = peer->migrateToOrMe();
const auto ready = PreparePeerPhoto(
_api.instance().mainDcId(),
peer->id,
std::move(image));
const auto mtpMarkup = PrepareMtpMarkup(_session, photo);
const auto fakeId = FullMsgId(
peer->id,
@@ -182,11 +232,19 @@ void PeerPhoto::upload(
_uploads.emplace(
fakeId,
UploadValue{ peer, type, std::move(done) });
_session->uploader().uploadMedia(fakeId, ready);
if (mtpMarkup) {
ready(fakeId, std::nullopt, mtpMarkup);
} else {
const auto ready = PreparePeerPhoto(
_api.instance().mainDcId(),
peer->id,
base::take(photo.image));
_session->uploader().uploadMedia(fakeId, ready);
}
}
void PeerPhoto::suggest(not_null<PeerData*> peer, QImage &&image) {
upload(peer, std::move(image), UploadType::Suggestion, nullptr);
void PeerPhoto::suggest(not_null<PeerData*> peer, UserPhoto &&photo) {
upload(peer, std::move(photo), UploadType::Suggestion, nullptr);
}
void PeerPhoto::clear(not_null<PhotoData*> photo) {
@@ -240,7 +298,8 @@ void PeerPhoto::clearPersonal(not_null<UserData*> user) {
user->inputUser,
MTPInputFile(),
MTPInputFile(), // video
MTPdouble() // video_start_ts
MTPdouble(), // video_start_ts
MTPVideoSize() // video_emoji_markup
)).done([=](const MTPphotos_Photo &result) {
result.match([&](const MTPDphotos_photo &data) {
_session->data().processPhoto(data.vphoto());
@@ -287,7 +346,10 @@ void PeerPhoto::set(not_null<PeerData*> peer, not_null<PhotoData*> photo) {
}
}
void PeerPhoto::ready(const FullMsgId &msgId, const MTPInputFile &file) {
void PeerPhoto::ready(
const FullMsgId &msgId,
std::optional<MTPInputFile> file,
std::optional<MTPVideoSize> videoSize) {
const auto maybeUploadValue = _uploads.take(msgId);
if (!maybeUploadValue) {
return;
@@ -302,14 +364,16 @@ void PeerPhoto::ready(const FullMsgId &msgId, const MTPInputFile &file) {
}
};
if (peer->isSelf()) {
using Flag = MTPphotos_UploadProfilePhoto::Flag;
const auto none = MTPphotos_UploadProfilePhoto::Flags(0);
_api.request(MTPphotos_UploadProfilePhoto(
MTP_flags(MTPphotos_UploadProfilePhoto::Flag::f_file
| ((type == UploadType::Fallback)
? MTPphotos_UploadProfilePhoto::Flag::f_fallback
: MTPphotos_UploadProfilePhoto::Flags(0))),
file,
MTP_flags((file ? Flag::f_file : none)
| (videoSize ? Flag::f_video_emoji_markup : none)
| ((type == UploadType::Fallback) ? Flag::f_fallback : none)),
file ? (*file) : MTPInputFile(),
MTPInputFile(), // video
MTPdouble() // video_start_ts
MTPdouble(), // video_start_ts
videoSize ? (*videoSize) : MTPVideoSize() // video_emoji_markup
)).done([=](const MTPphotos_Photo &result) {
const auto photoId = _session->data().processPhoto(
result.data().vphoto())->id;
@@ -325,35 +389,46 @@ void PeerPhoto::ready(const FullMsgId &msgId, const MTPInputFile &file) {
}).send();
} else if (const auto chat = peer->asChat()) {
const auto history = _session->data().history(chat);
using Flag = MTPDinputChatUploadedPhoto::Flag;
const auto none = MTPDinputChatUploadedPhoto::Flags(0);
history->sendRequestId = _api.request(MTPmessages_EditChatPhoto(
chat->inputChat,
MTP_inputChatUploadedPhoto(
MTP_flags(MTPDinputChatUploadedPhoto::Flag::f_file),
file,
MTP_flags((file ? Flag::f_file : none)
| (videoSize ? Flag::f_video_emoji_markup : none)),
file ? (*file) : MTPInputFile(),
MTPInputFile(), // video
MTPdouble()) // video_start_ts
MTPdouble(), // video_start_ts
videoSize ? (*videoSize) : MTPVideoSize()) // video_emoji_markup
)).done(applier).afterRequest(history->sendRequestId).send();
} else if (const auto channel = peer->asChannel()) {
using Flag = MTPDinputChatUploadedPhoto::Flag;
const auto none = MTPDinputChatUploadedPhoto::Flags(0);
const auto history = _session->data().history(channel);
history->sendRequestId = _api.request(MTPchannels_EditPhoto(
channel->inputChannel,
MTP_inputChatUploadedPhoto(
MTP_flags(MTPDinputChatUploadedPhoto::Flag::f_file),
file,
MTP_flags((file ? Flag::f_file : none)
| (videoSize ? Flag::f_video_emoji_markup : none)),
file ? (*file) : MTPInputFile(),
MTPInputFile(), // video
MTPdouble()) // video_start_ts
MTPdouble(), // video_start_ts
videoSize ? (*videoSize) : MTPVideoSize()) // video_emoji_markup
)).done(applier).afterRequest(history->sendRequestId).send();
} else if (const auto user = peer->asUser()) {
using Flag = MTPphotos_UploadContactProfilePhoto::Flag;
const auto none = MTPphotos_UploadContactProfilePhoto::Flags(0);
_api.request(MTPphotos_UploadContactProfilePhoto(
MTP_flags(Flag::f_file
MTP_flags((file ? Flag::f_file : none)
| (videoSize ? Flag::f_video_emoji_markup : none)
| ((type == UploadType::Suggestion)
? Flag::f_suggest
: Flag::f_save)),
user->inputUser,
file,
file ? (*file) : MTPInputFile(),
MTPInputFile(), // video
MTPdouble() // video_start_ts
MTPdouble(), // video_start_ts
videoSize ? (*videoSize) : MTPVideoSize() // video_emoji_markup
)).done([=](const MTPphotos_Photo &result) {
result.match([&](const MTPDphotos_photo &data) {
_session->data().processPhoto(data.vphoto());
@@ -424,6 +499,42 @@ void PeerPhoto::requestUserPhotos(
_userPhotosRequests.emplace(user, requestId);
}
void PeerPhoto::requestEmojiList(EmojiListType type) {
if (_requestIdEmojiList) {
return;
}
const auto isGroup = (type == EmojiListType::Group);
const auto d = [=](const MTPEmojiList &result) {
_requestIdEmojiList = 0;
result.match([](const MTPDemojiListNotModified &data) {
}, [&](const MTPDemojiList &data) {
auto &list = isGroup ? _profileEmojiList : _groupEmojiList;
list = ranges::views::all(
data.vdocument_id().v
) | ranges::views::transform(&MTPlong::v) | ranges::to_vector;
});
};
const auto f = [=] { _requestIdEmojiList = 0; };
_requestIdEmojiList = isGroup
? _api.request(
MTPaccount_GetDefaultGroupPhotoEmojis()
).done(d).fail(f).send()
: _api.request(
MTPaccount_GetDefaultProfilePhotoEmojis()
).done(d).fail(f).send();
}
rpl::producer<PeerPhoto::EmojiList> PeerPhoto::emojiListValue(
EmojiListType type) {
auto &list = (type == EmojiListType::Group)
? _profileEmojiList
: _groupEmojiList;
if (list.current().empty() && !_requestIdEmojiList) {
requestEmojiList(type);
}
return list.value();
}
// Non-personal photo in case a personal photo is set.
void PeerPhoto::registerNonPersonalPhoto(
not_null<UserData*> user,

Some files were not shown because too many files have changed in this diff Show More