├── Generate add-on file.bat ├── Generate pot file.bat ├── addon ├── appModules │ ├── telegram.py │ ├── media │ │ ├── delete.wav │ │ ├── RecognitionStart.wav │ │ ├── RecognitionFinish.wav │ │ ├── send_voice_message.wav │ │ ├── cancel_voice_message_recording.wav │ │ ├── start_recording_video_message.wav │ │ └── start_recording_voice_message.wav │ ├── text_window.py │ ├── cnf.py │ └── data.py ├── installTasks.py ├── doc │ ├── pt_BR │ │ └── readme.md │ ├── pt_PT │ │ └── readme.md │ ├── zh │ │ └── readme.md │ ├── fa │ │ └── readme.md │ └── NE │ │ └── readme.md ├── GlobalPlugins │ └── UnigramPlus │ │ └── __init__.py └── locale │ ├── pl │ └── LC_MESSAGES │ │ └── nvda.po │ ├── pt_BR │ └── LC_MESSAGES │ │ └── nvda.po │ ├── pt_PT │ └── LC_MESSAGES │ │ └── nvda.po │ └── cs │ └── LC_MESSAGES │ └── nvda.po ├── manifest-translated.ini.tpl ├── .gitignore ├── donate ├── pt.txt ├── ar.txt ├── hr.txt ├── ro.txt ├── sr.txt ├── tr.txt ├── en.txt ├── it.txt ├── uk.txt ├── fa.txt ├── es.txt ├── fr.txt └── ru.txt ├── manifest.ini.tpl ├── .gitattributes ├── style.css ├── doc ├── zh.txt ├── ar.txt ├── tr.txt ├── en.txt ├── ro.txt ├── uk.txt └── sr.txt ├── 4.9.0.json ├── 5.0.0.json ├── 5.0.3.json ├── 5.1.1.json ├── 5.2.0.json ├── site_scons └── site_tools │ └── gettexttool │ └── __init__.py ├── doc.py └── sconstruct /Generate add-on file.bat: -------------------------------------------------------------------------------- 1 | scons -------------------------------------------------------------------------------- /Generate pot file.bat: -------------------------------------------------------------------------------- 1 | scons pot -------------------------------------------------------------------------------- /addon/appModules/telegram.py: -------------------------------------------------------------------------------- 1 | from .unigram import * -------------------------------------------------------------------------------- /manifest-translated.ini.tpl: -------------------------------------------------------------------------------- 1 | summary = "{addon_summary}" 2 | description = """{addon_description}""" 3 | -------------------------------------------------------------------------------- /addon/appModules/media/delete.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/delete.wav -------------------------------------------------------------------------------- /addon/appModules/media/RecognitionStart.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/RecognitionStart.wav -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | addon/doc/*.css 2 | *_docHandler.py 3 | *.html 4 | *.ini 5 | *.mo 6 | *.pot 7 | *.py[co] 8 | *.nvda-addon 9 | .sconsign.dblite 10 | -------------------------------------------------------------------------------- /addon/appModules/media/RecognitionFinish.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/RecognitionFinish.wav -------------------------------------------------------------------------------- /addon/appModules/media/send_voice_message.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/send_voice_message.wav -------------------------------------------------------------------------------- /addon/appModules/media/cancel_voice_message_recording.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/cancel_voice_message_recording.wav -------------------------------------------------------------------------------- /addon/appModules/media/start_recording_video_message.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/start_recording_video_message.wav -------------------------------------------------------------------------------- /addon/appModules/media/start_recording_voice_message.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Kostya-Gladkiy/UnigramPlus/HEAD/addon/appModules/media/start_recording_voice_message.wav -------------------------------------------------------------------------------- /donate/pt.txt: -------------------------------------------------------------------------------- 1 | Se deseja, e, pode, apoiar o desenvolvedor deste complemento, pode fazê-lo usando os seguintes detalhes: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Sistema de doação ucraniano: https://unigramplus.diaka.ua/donate. 4 | * Número do cartão: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/ar.txt: -------------------------------------------------------------------------------- 1 | إذا كانت لديك الرغبة، والأهم من ذلك، الإمكانية لدعم مطور هذه الإضافة ، يمكنك القيام بذلك باستخدام التفاصيل التالية: 2 | * باي بال: gladkiy.kostya@gmail.com. 3 | * نظام التبرعات الأوكراني: https://unigramplus.diaka.ua/donate. 4 | * رقم البطاقة: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/hr.txt: -------------------------------------------------------------------------------- 1 | Ako imate želju, i što je najvažnije priliku, podržati programera ovog dodatka, možete to učiniti pomoću sljedećih podataka: 2 | * PayPal: gladkiy.kostya@gmail.com 3 | * Ukrajinski sustav donacija: https://unigramplus.diaka.ua/donate. 4 | * Broj kartice: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/ro.txt: -------------------------------------------------------------------------------- 1 | Dacă ai dorința și, mai ales, posibilitatea de a sprijini dezvoltatorul acestui add-on, o poți face folosind următoarele detalii: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Sistemul ucrainean de donații: https://unigramplus.diaka.ua/donate. 4 | * Număr card: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/sr.txt: -------------------------------------------------------------------------------- 1 | Ako imate želju, a što je najvažnije, priliku, da biste podržali programera ovog dodatka, možete to učiniti koristeći sledeće detalje: 2 | * Peipal: gladkii.kostia@gmail.com. 3 | * Ukrajinski sistem donacija: http://unigramlus.diaka.ua/donate. 4 | * Broj kartice: 5169360009004502 ( Gladkij Konstantin). -------------------------------------------------------------------------------- /donate/tr.txt: -------------------------------------------------------------------------------- 1 | Bu eklentinin geliştiricisini destekleme isteğiniz ve en önemlisi fırsatınız varsa, aşağıdaki ayrıntıları kullanarak bunu yapabilirsiniz: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Ukrayna bağış sistemi: https://unigramplus.diaka.ua/donate. 4 | * Kart numarası: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/en.txt: -------------------------------------------------------------------------------- 1 | If you have the desire, and most importantly the opportunity, to support the developer of this add-on, you can do so using the following details: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Ukrainian donation system: https://unigramplus.diaka.ua/donate. 4 | * Card number: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /addon/installTasks.py: -------------------------------------------------------------------------------- 1 | # -*- coding: UTF-8 -*- 2 | 3 | import addonHandler 4 | import gui 5 | import wx 6 | import os 7 | import globalVars 8 | 9 | addonHandler.initTranslation() 10 | 11 | def onInstall(): 12 | for addon in addonHandler.getAvailableAddons(): 13 | if addon.manifest['name'] == "UnigramPlus": 14 | addon.requestRemove() -------------------------------------------------------------------------------- /donate/it.txt: -------------------------------------------------------------------------------- 1 | Se hai il desiderio, e soprattutto l'opportunità, di supportare lo sviluppatore di questo componente aggiuntivo, puoi farlo utilizzando i seguenti metodi: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Sistema di donazione Ucraino: https://unigramplus.diaka.ua/donate. 4 | * Numero carta di credito: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /manifest.ini.tpl: -------------------------------------------------------------------------------- 1 | name = {addon_name} 2 | summary = "{addon_summary}" 3 | description = """{addon_description}""" 4 | author = "{addon_author}" 5 | url = {addon_url} 6 | version = {addon_version} 7 | docFileName = {addon_docFileName} 8 | minimumNVDAVersion = {addon_minimumNVDAVersion} 9 | lastTestedNVDAVersion = {addon_lastTestedNVDAVersion} 10 | updateChannel = {addon_updateChannel} 11 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set default behaviour, in case users don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Try to ensure that po files in the repo does not include 5 | # source code line numbers. 6 | # Every person expected to commit po files should change their personal config file as described here: 7 | # https://mail.gnome.org/archives/kupfer-list/2010-June/msg00002.html 8 | *.po filter=cleanpo 9 | -------------------------------------------------------------------------------- /donate/uk.txt: -------------------------------------------------------------------------------- 1 | Якщо вам дуже подобається цей додаток і ви маєте бажання, а головне можливість фінансово підтримати розробника і тим самим мотивувати його продовжувати розвивати цей додаток, ви можете це зробити, переказавши навіть незначну суму за такими реквізитами: 2 | * Українська система пожертв: https://unigramplus.diaka.ua/donate 3 | * PayPal: gladkiy.kostya@gmail.com 4 | * Номер карти: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/fa.txt: -------------------------------------------------------------------------------- 1 | اگر شما واقعاً این افزونه را دوست دارید و تمایل و مهمتر از همه این فرصت را دارید که از توسعه دهنده حمایت مالی کرده و در نتیجه او را در ادامه توسعه این افزونه ترغیب کنید ، می توانید این کار را با انتقال مقدار کمی با استفاده از جزئیات بانکی زیر انجام دهید. :: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * سیستم کمک مالی اوکراینی: https://unigramplus.diaka.ua/donate. 4 | * شماره کارت: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/es.txt: -------------------------------------------------------------------------------- 1 | Si realmente te gusta este complemento y lo deseas, Y lo más importante, tienes la oportunidad de apoyar financieramente al desarrollador Y por ende motivarlo a seguir desarrollándolo, puedes hacerlo transfiriendo un pequeño monto usando los siguientes detalles bancarios: 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Sistema de donación ucraniano: https://unigramplus.diaka.ua/donate. 4 | * Número de tarjeta: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/fr.txt: -------------------------------------------------------------------------------- 1 | Si vous appréciez vraiment cette extension et que vous avez l'envie, mais surtout la possibilité de soutenir financièrement le développeur, le motivant ainsi à faire évoluer cette extension, vous pouvez le faire en envoyant votre contribution à l'aide des moyens suivants : 2 | * PayPal: gladkiy.kostya@gmail.com. 3 | * Système de donation ukrainien: https://unigramplus.diaka.ua/donate. 4 | * Numéro de carte: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /donate/ru.txt: -------------------------------------------------------------------------------- 1 | Если вам нравится это дополнение и у вас есть желание, а главное возможность, финансово поддержать разработчика и тем самым мотивировать его на дальнейшее развитие этого дополнения, вы можете сделать это, переведя небольшую сумму на следующие банковские реквизиты: 2 | * Украинская система донатов: https://unigramplus.diaka.ua/donate](https://unigramplus.diaka.ua/donate) 3 | * PayPal: gladkiy.kostya@gmail.com 4 | * Номер карты: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | body { 3 | font-family : Verdana, Arial, Helvetica, Sans-serif; 4 | line-height: 1.2em; 5 | } 6 | h1, h2 {text-align: center} 7 | dt { 8 | font-weight : bold; 9 | float : left; 10 | width: 10%; 11 | clear: left 12 | } 13 | dd { 14 | margin : 0 0 0.4em 0; 15 | float : left; 16 | width: 90%; 17 | display: block; 18 | } 19 | p { clear : both; 20 | } 21 | a { text-decoration : underline; 22 | } 23 | :active { 24 | text-decoration : none; 25 | } 26 | a:focus, a:hover {outline: solid} 27 | -------------------------------------------------------------------------------- /doc/zh.txt: -------------------------------------------------------------------------------- 1 | * 新增選取附加到訊息的檔案和使用空格鍵開啟該檔案的功能。 2 | * 訊息中的連結不會完整讀出,只會到問號。 3 | * 當您關閉照片和影片檢視器, UnigramPlus 會嘗試把焦點移動到您正在檢視的訊息。 4 | * 開啟 UnigramPlus 設定的快速鍵已變更為 NVDA+ALT+U。 5 | * 代碼最佳化 已完成,改進瀏覽聊天清單和訊息清單。 特別是訊息中含有嵌入式物件。 6 | * 修正許多小錯誤。 7 | * 移除過時的代碼。 8 | 9 | If you have the desire, and most importantly the opportunity, to support the developer of this add-on, you can do so using the following details: 10 | * PayPal: gladkiy.kostya@gmail.com. 11 | * Ukrainian donation system: https://unigramplus.diaka.ua/donate. 12 | * Card number: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /addon/appModules/text_window.py: -------------------------------------------------------------------------------- 1 | import wx 2 | import gui 3 | 4 | 5 | class TextWindow(wx.Frame): 6 | 7 | def __init__(self, text, title, readOnly=True, insertionPoint=0): 8 | super(TextWindow, self).__init__(gui.mainFrame, title=title) 9 | sizer = wx.BoxSizer(wx.VERTICAL) 10 | style = wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_RICH 11 | self.outputCtrl = wx.TextCtrl(self, style=style) 12 | self.outputCtrl.Bind(wx.EVT_KEY_DOWN, self.onOutputKeyDown) 13 | sizer.Add(self.outputCtrl, proportion=1, flag=wx.EXPAND) 14 | self.SetSizer(sizer) 15 | sizer.Fit(self) 16 | self.outputCtrl.SetValue(text) 17 | self.outputCtrl.SetFocus() 18 | self.outputCtrl.SetInsertionPoint(insertionPoint) 19 | self.Raise() 20 | self.Maximize() 21 | self.Show() 22 | 23 | def onOutputKeyDown(self, event): 24 | if event.GetKeyCode() == wx.WXK_ESCAPE: 25 | self.Close() 26 | event.Skip() 27 | -------------------------------------------------------------------------------- /doc/ar.txt: -------------------------------------------------------------------------------- 1 | * أصبح الآن بإمكانك استخدام الأسهم يمين ويسار لتحديد الملفات المُرفقة بالرسائل، وفتح الملف المُحدد باستخدام مفتاح المسافة. 2 | * لن تتم قراءة الروابط في الرسائل بالكامل، بل ستتم قراءتها حتى علامة الاستفهام فقط. 3 | * عند إغلاق عارض الصور أو الفيديو، ستحاول UnigramPlus إعادة التركيز على الرسالة التي كنت تشاهدها. 4 | * تم تغيير اختصار لوحة المفاتيح لفتح إعدادات UnigramPlus إلى NVDA+ALT+U. 5 | * تم إجراء تحسينات على الكود البرمجي، مما أدى إلى تحسين ملحوظ في سرعة الاستجابة عند التنقل في قائمة الدردشات وقائمة الرسائل، خاصةً في الرسائل التي تحتوي على العديد من العناصر المتداخلة. 6 | * تم إصلاح العديد من المشكلات البسيطة في هذا التحديث. 7 | * تم إزالة الكثير من الأكواد البرمجية القديمة والتي لم تعد مستخدمة. 8 | 9 | إذا كانت لديك الرغبة، والأهم من ذلك، الإمكانية لدعم مطور هذه الإضافة ، يمكنك القيام بذلك باستخدام التفاصيل التالية: 10 | * باي بال: gladkiy.kostya@gmail.com. 11 | * نظام التبرعات الأوكراني: https://unigramplus.diaka.ua/donate. 12 | * رقم البطاقة: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /4.9.0.json: -------------------------------------------------------------------------------- 1 | { 2 | "addonId": "unigramPlus", 3 | "displayName": "UnigramPlus", 4 | "URL": "", 5 | "description": "This add-on adds a lot of hotkeys for quick navigation through the main elements of the Unigram application, convenient interaction with Chat messages, and also adds many small improvements that make working in Unigram much easier", 6 | "sha256": "73cf081f8930693474e86f87b080b32949650d21868137366a642f2e1cddbcee", 7 | "homepage": "https://github.com/Kostya-Gladkiy/UnigramPlus", 8 | "addonVersionName": "4.9.0", 9 | "addonVersionNumber": { 10 | "major": 4, 11 | "minor": 9, 12 | "patch": 0 13 | }, 14 | "minNVDAVersion": { 15 | "major": 2021, 16 | "minor": 2, 17 | "patch": 0 18 | }, 19 | "lastTestedVersion": { 20 | "major": 2023, 21 | "minor": 1, 22 | "patch": 0 23 | }, 24 | "channel": "stable", 25 | "publisher": "", 26 | "sourceURL": "https://github.com/Kostya-Gladkiy/UnigramPlus", 27 | "license": "GPL 2", 28 | "licenseURL": "https://www.gnu.org/licenses/gpl-2.0.html" 29 | } -------------------------------------------------------------------------------- /5.0.0.json: -------------------------------------------------------------------------------- 1 | { 2 | "addonId": "unigramPlus", 3 | "displayName": "UnigramPlus", 4 | "URL": "", 5 | "description": "This add-on adds a lot of hotkeys for quick navigation through the main elements of the Unigram application, convenient interaction with Chat messages, and also adds many small improvements that make working in Unigram much easier", 6 | "sha256": "0e0c89443fb8f67be20a7a96d9406ede52a5d84624e94b9d1f692a1ae168c0d5", 7 | "homepage": "https://github.com/Kostya-Gladkiy/UnigramPlus", 8 | "addonVersionName": "5.0.0", 9 | "addonVersionNumber": { 10 | "major": 5, 11 | "minor": 0, 12 | "patch": 0 13 | }, 14 | "minNVDAVersion": { 15 | "major": 2021, 16 | "minor": 2, 17 | "patch": 0 18 | }, 19 | "lastTestedVersion": { 20 | "major": 2023, 21 | "minor": 3, 22 | "patch": 0 23 | }, 24 | "channel": "stable", 25 | "publisher": "", 26 | "sourceURL": "https://github.com/Kostya-Gladkiy/UnigramPlus", 27 | "license": "GPL 2", 28 | "licenseURL": "https://www.gnu.org/licenses/gpl-2.0.html" 29 | } -------------------------------------------------------------------------------- /5.0.3.json: -------------------------------------------------------------------------------- 1 | { 2 | "addonId": "unigramPlus", 3 | "displayName": "UnigramPlus", 4 | "URL": "", 5 | "description": "This add-on adds a lot of hotkeys for quick navigation through the main elements of the Unigram application, convenient interaction with Chat messages, and also adds many small improvements that make working in Unigram much easier", 6 | "sha256": "2692881bb6d18a1b761aca9edbcb63275ce4f5ce77791f3ef3589452343ac3ca", 7 | "homepage": "https://github.com/Kostya-Gladkiy/UnigramPlus", 8 | "addonVersionName": "5.0.3", 9 | "addonVersionNumber": { 10 | "major": 5, 11 | "minor": 0, 12 | "patch": 3 13 | }, 14 | "minNVDAVersion": { 15 | "major": 2021, 16 | "minor": 2, 17 | "patch": 0 18 | }, 19 | "lastTestedVersion": { 20 | "major": 2023, 21 | "minor": 3, 22 | "patch": 0 23 | }, 24 | "channel": "stable", 25 | "publisher": "", 26 | "sourceURL": "https://github.com/Kostya-Gladkiy/UnigramPlus", 27 | "license": "GPL 2", 28 | "licenseURL": "https://www.gnu.org/licenses/gpl-2.0.html" 29 | } -------------------------------------------------------------------------------- /5.1.1.json: -------------------------------------------------------------------------------- 1 | { 2 | "addonId": "unigramPlus", 3 | "displayName": "UnigramPlus", 4 | "URL": "", 5 | "description": "This add-on adds a lot of hotkeys for quick navigation through the main elements of the Unigram application, convenient interaction with Chat messages, and also adds many small improvements that make working in Unigram much easier", 6 | "sha256": "437a9a99efb54c7cd30023ec6b3357d51e2acf949c7c0341a855d6659f50aade", 7 | "homepage": "https://github.com/Kostya-Gladkiy/UnigramPlus", 8 | "addonVersionName": "5.1.1", 9 | "addonVersionNumber": { 10 | "major": 5, 11 | "minor": 1, 12 | "patch": 1 13 | }, 14 | "minNVDAVersion": { 15 | "major": 2021, 16 | "minor": 2, 17 | "patch": 0 18 | }, 19 | "lastTestedVersion": { 20 | "major": 2023, 21 | "minor": 3, 22 | "patch": 0 23 | }, 24 | "channel": "stable", 25 | "publisher": "", 26 | "sourceURL": "https://github.com/Kostya-Gladkiy/UnigramPlus", 27 | "license": "GPL 2", 28 | "licenseURL": "https://www.gnu.org/licenses/gpl-2.0.html" 29 | } -------------------------------------------------------------------------------- /5.2.0.json: -------------------------------------------------------------------------------- 1 | { 2 | "addonId": "unigramPlus", 3 | "displayName": "UnigramPlus", 4 | "URL": "", 5 | "description": "This add-on adds a lot of hotkeys for quick navigation through the main elements of the Unigram application, convenient interaction with Chat messages, and also adds many small improvements that make working in Unigram much easier", 6 | "sha256": "903ecede398f193d923c2c26a7141d4bf820ce76f51db6e23b21a55478c6ec33", 7 | "homepage": "https://github.com/Kostya-Gladkiy/UnigramPlus", 8 | "addonVersionName": "5.2.0", 9 | "addonVersionNumber": { 10 | "major": 5, 11 | "minor": 2, 12 | "patch": 0 13 | }, 14 | "minNVDAVersion": { 15 | "major": 2021, 16 | "minor": 2, 17 | "patch": 0 18 | }, 19 | "lastTestedVersion": { 20 | "major": 2024, 21 | "minor": 1, 22 | "patch": 0 23 | }, 24 | "channel": "stable", 25 | "publisher": "", 26 | "sourceURL": "https://github.com/Kostya-Gladkiy/UnigramPlus", 27 | "license": "GPL 2", 28 | "licenseURL": "https://www.gnu.org/licenses/gpl-2.0.html" 29 | } -------------------------------------------------------------------------------- /doc/tr.txt: -------------------------------------------------------------------------------- 1 | * Mesajlara eklenmiş dosyaları sağ sol oklarla seçme ve seçilen dosyayı boşluk çubuğuyla açma seçeneği eklendi. 2 | * Artık mesajlardaki bağlantılar tam olarak okunmayacak, yalnızca soru işaretine kadar okunacaktır. 3 | * Artık fotoğraf veya video görüntüleyiciyi kapattığınızda, UnigramPlus görüntülediğiniz mesaja odaklanmaya çalışacaktır. 4 | * UnigramPlus ayarlarını açmak için klavye kısayolu değiştirildi. Şimdi bu işlev NVDA + ALT + U kombinasyonuna atanmıştır. 5 | * Kod optimizasyonu yapıldı, böylece sohbet ve mesaj listesinde gezinirken yanıt süresinde önemli bir iyileşme sağlandı. Bu, birçok iç içe geçmiş öğe içeren mesajlarda özellikle fark edilir. 6 | * Birçok küçük sorun düzeltildi. 7 | * Çok sayıda eski kod kaldırıldı. 8 | 9 | Bu eklentinin geliştiricisini destekleme isteğiniz ve en önemlisi fırsatınız varsa, aşağıdaki ayrıntıları kullanarak bunu yapabilirsiniz: 10 | * PayPal: gladkiy.kostya@gmail.com. 11 | * Ukrayna bağış sistemi: https://unigramplus.diaka.ua/donate. 12 | * Kart numarası: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /doc/en.txt: -------------------------------------------------------------------------------- 1 | * Added the ability to select files attached to messages with horizontal arrows and open the selected file with the space bar. 2 | * Now links in messages will not be read in full, but only up to the question mark. 3 | * Now, when you close the photo or video viewer, UnigramPlus will try to set the focus on the message you were viewing. 4 | * The keyboard shortcut to open UnigramPlus settings has been changed. Now this function is assigned to the combination NVDA+ALT+U. 5 | * Code optimisation has been done, resulting in significantly improved response time when navigating the chat list and message list. This is especially noticeable on messages that contain many nested elements. 6 | * Many minor issues have been fixed. 7 | * A lot of outdated code has been removed. 8 | 9 | If you have the desire, and most importantly the opportunity, to support the developer of this add-on, you can do so using the following details: 10 | * PayPal: gladkiy.kostya@gmail.com. 11 | * Ukrainian donation system: https://unigramplus.diaka.ua/donate. 12 | * Card number: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /doc/ro.txt: -------------------------------------------------------------------------------- 1 | * A fost adăugată posibilitatea de a selecta fișiere atașate la mesaje cu ajutorul săgeților și de a deschide fișierul selectat cu ajutorul tastei spațiu. 2 | * Acum, linkurile din mesaje nu vor fi citite în întregime, ci doar până la semnul de întrebare. 3 | * Acum, când închizi vizualizatorul foto sau video, UnigramPlus va încerca să se focalizeze pe mesajul pe care îl vizualizezi. 4 | * A fost modificată comanda rapidă de la tastatură pentru a deschide setările UnigramPlus. Acum, această funcție este atribuită combinației NVDA+ALT+U. 5 | * A fost efectuată o optimizare a codului, ceea ce a dus la o îmbunătățire semnificativă a timpului de răspuns la navigarea în lista de chat și în lista de mesaje. Acest lucru este vizibil în special în cazul mesajelor care conțin multe fișiere. 6 | * Au fost rezolvate multe probleme minore. 7 | * A fost eliminat o mulțime de cod învechit. 8 | 9 | Dacă ai dorința și, mai ales, posibilitatea de a sprijini dezvoltatorul acestui add-on, o poți face folosind următoarele detalii: 10 | * PayPal: gladkiy.kostya@gmail.com. 11 | * Sistemul ucrainean de donații: https://unigramplus.diaka.ua/donate. 12 | * Număr card: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /doc/uk.txt: -------------------------------------------------------------------------------- 1 | * Додано можливість горизонтальними стрілочками обирати файли які вкладені в повідомлення і відкривати обраний файл клавішею пробіл. 2 | * Тепер посилання в повідомленнях будуть читатись не повністю, а лише до знаку запитання. 3 | * Тепер після закриття перегляду фото або відео, UnigramPlus намагатиметься встановити фокус на повідомлення, яке ви переглядали. 4 | * Змінено комбінацію клавіш для відкриття налаштувань UnigramPlus. Тепер ця функція призначена на комбінацію NVDA+ALT+U. 5 | * Виконано суттєву оптимізацію коду, в наслідок чого значно покращено швидкодію відгуку при навігації в списку чатів і в списку повідомлень. Особливо це помітно на повідомленнях, які містять в собі багато вкладених елементів. 6 | * Виправлено багато дрібних проблем. 7 | * Видалено багато застарілого коду. 8 | 9 | Якщо вам дуже подобається цей додаток і ви маєте бажання, а головне можливість фінансово підтримати розробника і тим самим мотивувати його продовжувати розвивати цей додаток, ви можете це зробити, переказавши навіть незначну суму за такими реквізитами: 10 | * Українська система пожертв: https://unigramplus.diaka.ua/donate 11 | * PayPal: gladkiy.kostya@gmail.com 12 | * Номер карти: 5169360009004502 (Gladkiy Constantine). -------------------------------------------------------------------------------- /site_scons/site_tools/gettexttool/__init__.py: -------------------------------------------------------------------------------- 1 | """ This tool allows generation of gettext .mo compiled files, pot files from source code files 2 | and pot files for merging. 3 | 4 | Three new builders are added into the constructed environment: 5 | 6 | - gettextMoFile: generates .mo file from .pot file using msgfmt. 7 | - gettextPotFile: Generates .pot file from source code files. 8 | - gettextMergePotFile: Creates a .pot file appropriate for merging into existing .po files. 9 | 10 | To properly configure get text, define the following variables: 11 | 12 | - gettext_package_bugs_address 13 | - gettext_package_name 14 | - gettext_package_version 15 | 16 | 17 | """ 18 | from SCons.Action import Action 19 | 20 | 21 | def exists(env): 22 | return True 23 | 24 | 25 | XGETTEXT_COMMON_ARGS = ( 26 | "--msgid-bugs-address='$gettext_package_bugs_address' " 27 | "--package-name='$gettext_package_name' " 28 | "--package-version='$gettext_package_version' " 29 | "--keyword=pgettext:1c,2 " 30 | "-c -o $TARGET $SOURCES" 31 | ) 32 | 33 | 34 | def generate(env): 35 | env.SetDefault(gettext_package_bugs_address="example@example.com") 36 | env.SetDefault(gettext_package_name="") 37 | env.SetDefault(gettext_package_version="") 38 | 39 | env['BUILDERS']['gettextMoFile'] = env.Builder( 40 | action=Action("msgfmt -o $TARGET $SOURCE", "Compiling translation $SOURCE"), 41 | suffix=".mo", 42 | src_suffix=".po" 43 | ) 44 | 45 | env['BUILDERS']['gettextPotFile'] = env.Builder( 46 | action=Action("xgettext " + XGETTEXT_COMMON_ARGS, "Generating pot file $TARGET"), 47 | suffix=".pot") 48 | 49 | env['BUILDERS']['gettextMergePotFile'] = env.Builder( 50 | action=Action( 51 | "xgettext " + "--omit-header --no-location " + XGETTEXT_COMMON_ARGS, 52 | "Generating pot file $TARGET" 53 | ), 54 | suffix=".pot" 55 | ) 56 | -------------------------------------------------------------------------------- /addon/appModules/cnf.py: -------------------------------------------------------------------------------- 1 | from configobj import ConfigObj 2 | from configobj.validate import Validator 3 | import os 4 | import globalVars 5 | import languageHandler 6 | import addonHandler 7 | addonHandler.initTranslation() 8 | 9 | lang = languageHandler.getLanguage().split("_")[0] 10 | 11 | listLanguages = { 12 | "ar": _("Arabic"), 13 | "be": _("Belarus"), 14 | "cs": _("Czech"), 15 | "en": _("English"), 16 | "fr": _("French"), 17 | "fi": _("Finnish"), 18 | "sl": _("Slovak"), 19 | "nb": _("Norwegian"), 20 | "de": _("German"), 21 | "it": _("Italian"), 22 | "fa": _("Persian"), 23 | "pl": _("Polish"), 24 | "pt": _("Portuguese"), 25 | "ru": _("Russian"), 26 | "es": _("Spanish"), 27 | "tr": _("Turkish"), 28 | "uk": _("Ukrainian"), 29 | "hr": _("Croatian"), 30 | "sr": _("Serbian"), 31 | "zh": _("Chinese (Traditional)"), 32 | } 33 | 34 | spec = ( 35 | f"lang = string(default={lang if lang in listLanguages else 'en'})", 36 | "voiceTypeAfterChatName = string(default=beforeName)", 37 | "unreadBeforeMessageContent = boolean(default=True)", 38 | "voiceFolderNames = boolean(default=True)", 39 | "voiceMessageRecordingIndicator = string(default=audio)", 40 | "voicingPerformanceIndicators = string(default=none)", 41 | "audioPlaybackWhenDeleted = boolean(default=False)", 42 | "confirmation_at_deletion = boolean(default=False)", 43 | "actionDescriptionForLinks = boolean(default=True)", 44 | "voiceFullDescriptionOfLinkToYoutube = boolean(default=True)", 45 | "isAnnouncesAnswers = boolean(default=True)", 46 | "is_automatically_check_for_updates = boolean(default=True)", 47 | "isFixedToggleButton = boolean(default=False)", 48 | "saySenderName = string(default=none)", 49 | "voice_the_presence_of_a_reaction = boolean(default=True)", 50 | "report premium accounts = boolean(default=True)", 51 | "automatically announce new messages = boolean(default=False)", 52 | "automatically announce activity in chats = boolean(default=False)", 53 | "notify administrators in messages = boolean(default=True)", 54 | "action_when_pressing_up_arrow_in_text_field = string(default=normal)", 55 | ) 56 | 57 | class cnf: 58 | def __init__(self): 59 | self.path = os.path.join(globalVars.appArgs.configPath, "UnigramPlus.ini") 60 | self.conf = ConfigObj(self.path, configspec=spec ) 61 | validator = Validator() 62 | self.conf.validate(validator, copy=True) 63 | self.conf.write() 64 | def get(self, key): 65 | return self.conf[key] 66 | def set(self, key, value): 67 | self.conf[key] = value 68 | self.conf.write() 69 | 70 | try: conf = cnf() 71 | except: 72 | path = os.path.join(globalVars.appArgs.configPath, "UnigramPlus.ini") 73 | os.remove(path) 74 | conf = cnf() -------------------------------------------------------------------------------- /doc.py: -------------------------------------------------------------------------------- 1 | # -*- coding:utf-8 -*- 2 | import os 3 | version = input("Введіть версію доповнення:") 4 | 5 | 6 | def delete_files(): 7 | dirfiles = os.listdir("addon/doc") 8 | dirfiles = ["addon/doc/"+file for file in dirfiles] 9 | dirfiles = [dir+"/readme.html" for dir in dirfiles if os.path.isdir(dir)] 10 | 11 | locale_files = os.listdir("addon/locale") 12 | locale_files = ["addon/locale/"+file for file in locale_files] 13 | locale_files = [dir+"/LC_MESSAGES/nvda.mo" for dir in locale_files if os.path.isdir(dir)] 14 | 15 | files = [ 16 | "addon/manifest.ini", 17 | "addon/doc/style.css", 18 | "addon/appModules/__pycache__", 19 | "addon/GlobalPlugins/UnigramPlus/__pycache__", 20 | "addon/GlobalPlugins/WhatsAppPlus/__pycache__", 21 | ] 22 | for file in dirfiles+files+locale_files: 23 | try: 24 | os.remove(file) 25 | print("Видалено: "+file) 26 | except: print("Не видалено: "+file) 27 | 28 | 29 | def get_doc(): 30 | path_to_doc = "addon/doc" 31 | dirfiles = os.listdir(path_to_doc) 32 | dirfiles = map(lambda name: os.path.join(path_to_doc, name), dirfiles) 33 | dirfiles = [dir for dir in dirfiles if os.path.isdir(dir)] 34 | 35 | for file in dirfiles: 36 | lang = file[-2:] 37 | file_object = open(file+"/readme.md", "r", encoding="utf-8") 38 | text = file_object.read() 39 | file_object.close() 40 | action_doc(text, lang) 41 | 42 | def action_doc(file, lang): 43 | global version 44 | file = file.split("\n") 45 | file = [row for row in file if row != ""] 46 | url_for_donate = "https://unigramplus.diaka.ua/donate" 47 | def is_version(s): 48 | if s.startswith("###") and version in s: return True 49 | else: return False 50 | start_index = next((index for index in range(2, len(file)) if file[index].startswith("*") and is_version(file[index-1])), 0) 51 | if start_index == 0: return 52 | end_index = next((index for index in range(start_index, len(file)) if file[index] == "" or file[index].startswith("###")), len(file)) 53 | print("Результат") 54 | text = "\n".join(file[start_index:end_index]) 55 | print(text) 56 | text_donate = "" 57 | # Перевіримо чи наявна інформація про донати цією мовою 58 | if os.path.exists("donate/"+lang+".txt"): 59 | file_object = open("donate/"+lang+".txt", "r", encoding="utf-8") 60 | text_donate = file_object.read() 61 | file_object.close() 62 | else: 63 | file_object = open("donate/en.txt", "r", encoding="utf-8") 64 | text_donate = file_object.read() 65 | file_object.close() 66 | text = text+"\n\n"+text_donate 67 | file_object = open("doc/"+lang+".txt", "w", encoding="utf-8") 68 | file_object.write(text) 69 | file_object.close() 70 | 71 | 72 | get_doc() 73 | delete_files() 74 | input("Натисніть щось для закриття вікна") -------------------------------------------------------------------------------- /doc/sr.txt: -------------------------------------------------------------------------------- 1 | * Dodata je mogućnost odabira datoteka priloženih porukama sa horizontalnim strelicama i otvaranja izabrane datoteke pomoću razmaka. 2 | * Sada se linkovi u porukama neće čitati u podpunosti, već samo do znaka pitanja. 3 | * Sada, kada zatvorite pregledač fotografija ili video zapisa, unigramplus će pokušati da postavi fokus na poruku koju gledate. 4 | * Prečica na tastaturi za otvaranje unigramplus podešavanja je promenjena. Sada je ova funkcija dodeljena kombinaciji nvda+alt+u. 5 | * Urađena je optimizacija koda, što je rezultiralo značajno poboljšanim vremenom odgovora prilikom navigacije po listi za ćaskanje i listi poruka. Ovo je posebno primetno na porukama koje sadrže mnogo ugnežđenih elemenata. 6 | * mnogi manji problemi su popravljeni. 7 | * Mnogo zastarelih kodova je uklonjeno. 8 | Verzija 5.1.0 9 | * Dodate prečice na tastaturi za navigaciju do sledećeg i prethodnog rezultata pretrage u ćaskanju. Podrazumevano, ove funkcije su dodeljene kombinacijama tastera ALT+K i ALT+J. 10 | * Dodata je prečica na tastaturi za otvaranje liste sa svim rezultatima pretrage u ćaskanju. Podrazumevano, ova funkcija je dodeljena kombinaciji tastera ALT+I. 11 | * Sada, dvostrukim pritiskom na strelicu levo na poruci, fokus će se pomeriti na poruku na koju trenutna poruka odgovara. 12 | * Rešen je problem gde se opisi linkova ugrađenih u poruku nisu čitali. 13 | * Unigramplus više neće predlagati ažuriranja na zaštićenim ekranima. Međutim, korisnici će morati još jednom da otvore nvda podešavanja i kliknu na koristi poslednje sačuvane postavke tokom prijavljivanja i čitanja zaštićenih ekrana (potrebna su administratorska prava) dugme. 14 | * Uklonjena je funkcija za premotavanje glasovnih poruka i funkcija podešavanje reakcija na poruke, jer ove funkcije nisu radile pouzdano. 15 | * Uklonjena je funkcija kopiranja poruka jer unigram sada ima ovu funkciju. Imajte na umu da ponekad kopiranje poruka može dovesti do blagog zamrzavanja programa, ali to nije povezano sa unigramplus dodatkom. 16 | * Ispravljene neke druge manje greške. 17 | Verzija 5.0.0 18 | * Rešen je problem gde su poruke u četovima čitane dva puta. 19 | * Rešen je problem gde prečica za navigaciju do otvorenog profila nije ispravno funkcionisala. 20 | * Rešen je problem gde prečica na tastaturi za otvaranje menija za navigaciju nije radila. 21 | * Rešeni su svi problemi sa dugmetom za uključivanje/isključivanje mikrofona u glasovnim razgovorima. 22 | * Rešen je problem na poljskom jeziku gde je unošenje znaka blokirano kombinacijom ALT+C. 23 | * Ispravljen je izgovor fraza vlasnik i administrator u porukama. 24 | * Rešeno je nekoliko drugih manjih problema. 25 | 26 | Ako imate želju, a što je najvažnije, priliku, da biste podržali programera ovog dodatka, možete to učiniti koristeći sledeće detalje: 27 | * Peipal: gladkii.kostia@gmail.com. 28 | * Ukrajinski sistem donacija: http://unigramlus.diaka.ua/donate. 29 | * Broj kartice: 5169360009004502 ( Gladkij Konstantin). -------------------------------------------------------------------------------- /addon/appModules/data.py: -------------------------------------------------------------------------------- 1 | # Phrase indicating whether the message has been read 2 | # Phrase indicating message not read 3 | # Phrase indicating that the message has been sent 4 | # Phrase indicating that the message has been received 5 | # The phrase that precedes the text of the message in sent messages 6 | # The phrase that precedes the message text in received messages 7 | keywordsInMessages = { 8 | "ar": (". تم قرائتها.", ". غير مقروءة.", ", تم الإرسال ⁨الساعة ⁨‎", ", تم التسليم ⁨الساعة ⁨‎", ", تم الإرسال ⁨الساعة ⁨‎", ", تم التسليم ⁨الساعة ⁨‎"), 9 | "en": (". Seen.", ". Not seen.", ", Sent at ‎", ", Received at ‎", ", Sent at ‎", ", Received at ‎"), 10 | "cs": (". Viděno.", ". Neviděno.", ", Odesláno v ‎", ", Přijato v ‎", ", Odesláno v ‎", ", Přijato v ‎"), 11 | "fr": (". Vu.", ". Non vu.", ", Envoyé à ‎", ", Reçu à ‎", ", Envoyé à ‎", ", Reçu à ‎"), 12 | "de": (". Gesehen.", ". Noch nicht gesehen.", ", Gesendet um ‎", ", Empfangen um ‎", ", Gesendet um ‎", ", Empfangen um ‎"), 13 | "it": (". Visto.", ". Non visto.", ", Inviato alle ‎", ", Ricevuto alle ‎", ", Inviato alle ‎", ", Ricevuto alle ‎"), 14 | "fa": (". دیده شده.", ". دیده نشده.", ", ⁨در ⁨‎", ", ⁨در ⁨‎", ", ⁨در ⁨‎", ", ⁨در ⁨‎"), 15 | "fi": (". Nähty.", ". Ei nähty.", ", Lähetetty klo ‎", ", Vastaanotettu klo ‎", ", Lähetetty klo ‎", ", Vastaanotettu klo ‎"), 16 | "sl": (". Videné.", ". Nevidené.", ", Odoslať o ‎", ", Prijaté o ‎", ", Odoslať o ‎", ", Prijaté o ‎"), 17 | "nb": (". Sett.", ". Ikke sett.", ", Sendt ‎", ", Mottatt ‎", ", Sendt ‎", ", Mottatt ‎"), 18 | "pl": (". Wyświetlono.", ". Nie wyświetlono.", ", Wysłana o ‎", ", Odebrane o ‎", ", Wysłana o ‎", ", Odebrane o ‎"), 19 | "pt": (". Visto.", ". Não visto.", ", Enviado às ‎", ", Recebido às ‎", ", Enviado às ‎", ", Recebido às ‎"), 20 | "ru": (". Прочитано.", ". Не прочитано.", ", Отправлено в ‎", ", Получено в ‎", ", Отправлено в ‎", ", Получено в ‎"), 21 | "es": (". Visto.", ". No visto.", ", Enviado a las ‎", ", Recibido el a las ‎", ", Enviado a las ‎", ", Recibido el a las ‎"), 22 | "tr": (". Görüldü.", ". Görülmedi.", "tarihinde gönderildi.", "tarihinde alındı.", ", bugün ‎", ", bugün ‎"), 23 | "uk": (". Прочитане.", ". Непрочитане.", ", Надіслано ‎", ", Отримано ‎", ", Надіслано ‎", ", Отримано ‎"), 24 | "be": (". Прагледжана.", ". Не прагледжана.", ", Адпраўлена а ‎", ", Атрымана а ‎", ", Адпраўлена а ‎", ", Атрымана а ‎"), 25 | "zh": (". 已讀.", ". 未讀.", ", 傳了 今天‎", ", 收到了 今天‎", ", 傳了 今天‎", ", 收到了 今天‎"), 26 | "sr": (". Viđeno.", ". Nije viđeno.", ", Poslato u ‎", ", Primljeno u ‎", ", Poslato u ‎", ", Primljeno u ‎"), 27 | "hr": (". Viđeno.", ". Nije viđeno.", ", Poslano u ‎", ", Primljeno u ‎", ", Poslano u ‎", ", Primljeno u ‎"), 28 | } 29 | 30 | icons_from_context_menu = { 31 | "attach": "\ue840", 32 | "unpin": "\ue77a", 33 | "reply": "\ue248", 34 | "copy": "\ue8c8", 35 | "edit": "\ue104", 36 | "forward": "\ue72d", 37 | "delete": "\ue74d", 38 | "save_as": "\ue792", 39 | "select": "\ue97e", 40 | "read": "\ue91d", 41 | "unread": "\ue91c" 42 | } 43 | 44 | labels_for_buttons = { 45 | "Back": _("Back"), 46 | "Menu": _("Menu"), 47 | "Pin": _("Attach"), 48 | "Edit": _("Edit"), 49 | "Photo": _("Photo"), 50 | "Image": _("Image"), 51 | "InviteLink": _("Invite link"), 52 | "FieldSeconds": _("Choose time"), 53 | "TitleField": _("Title field"), 54 | } 55 | 56 | labels_in_buttons = { 57 | "\ue987": _("Go to next reaction"), 58 | "\ue76e": _("Insert emojis"), 59 | "\ue10b": _("Done"), 60 | "\ue722": _("Next"), 61 | "\ue90c": _("Merge files"), 62 | "\ue721": _("Search"), 63 | "\ue74d": _("Delete"), 64 | "\ue711": _("Close"), 65 | } 66 | 67 | phrase_administrator_in_message = { 68 | "uk": ("Адміністратор", "Власник"), 69 | "fr": ("Administrateur", "Propriétaire"), 70 | "en": ("Admin", "Owner"), 71 | "zh": ("管理員", "擁有者"), 72 | "hr": ("Administrator", "Vlasnik"), 73 | "ar": ("مشرف", "المالك"), 74 | "sr": ("Administrator", "Vlasnik"), 75 | "it": ("Proprietario", "Amministratore"), 76 | "ne": ("मालिक", "प्रसाशक"), 77 | "es": ("Administrador", "Propietario"), 78 | "cs": ("Správce", "Vlastník"), 79 | "ru": ("Администратор", "Владелец"), 80 | } -------------------------------------------------------------------------------- /addon/doc/pt_BR/readme.md: -------------------------------------------------------------------------------- 1 | # Unigram Plus 2 | 3 | * Autor: Kostya Gladkiy (Ucrânia) 4 | * [Canal no Telegram](https://t.me/unigramPlus) 5 | * Telegram: @unigramPlus 6 | * Link de donactivos: [https://unigramplus.diaka.ua/donate](https://unigramplus.diaka.ua/donate) 7 | 8 | Use o Unigram de uma forma mais confortável e produtiva. Este extra fornece muitas teclas de atalho para o uso rápido e confortável do Unigram e introduz muitas melhorias. 9 | ## Algumas das maiores melhorias são: 10 | * Quando o foco está na lista de chat, informações como "chat, separadores, lista selecionada" não são anunciadas e se o cursor estiver na lista de mensagens, não ouvirá a palavra "Lista". 11 | * Quando o foco está no botão abrir ficheiro ou descarregar ficheiro, o nome e o tamanho do ficheiro serão falados, e se estiver no botão reproduzir de um ficheiro de áudio, ouvirá o seu nome e duração. 12 | * Quando estiver numa mensagem de voz que está a ser reproduzida, ouvirá primeiro o tempo de reprodução e, em seguida, o restante das informações relevantes. 13 | * Quando o foco fica numa mensagem contendo informações sobre uma chamada, a duração dessa chamada é anunciada. 14 | * Quando o foco está numa mensagem seleccionada de Conversas, primeiro ouvirá a informação se ela foi seleccionada e, em seguida, o conteúdo da mensagem. 15 | * Agora, ao rolar por uma lista de mensagens ou Conversas, não ouvirá a palavra "lida", mas "não lida" será falada antes de ler a mensagem em si. atualmente, esse recurso funciona apenas em inglês, russo e ucraniano. 16 | * A função de gravação de mensagem de voz foi significativamente modernizada. gravar, enviar e cancelar mensagens de voz são acompanhados por sons distintos. além disso, quando essas operações são realizadas, o foco permanece na mesma posição e não salta para o botão de gravação ou o campo de edição. 17 | * Adicionada a capacidade de rastrear a actividade de Conversas. Esta função é activada pressionando a combinação "ALT + T" duas vezes. 18 | * Se os ficheiros de mídia anexados a uma mensagem forem abertos pressionando espaço, após fechá-los, o cursor retorna ao local onde estava anteriormente. 19 | * Todos os sons de prompt de função ou apenas os prompts de reprodução de mensagem de voz podem ser desactivados. 20 | 21 | ## Informações do desenvolvedor, sobre donativos: 22 | Se realmente gosta deste extra e deseja, e o mais importante, tem a oportunidade de apoiar o desenvolvedor financeiramente e, portanto, motivá-lo a continuar a desenvolver este extra, pode fazer isso transferindo uma pequena quantia usando os seguintes dados bancários: (link de doação ) (https://unigramplus.diaka.ua/donate), o número do cartão é 5169360009004502. 23 | E lembre-se que todos que leram este post pensaram que alguém definitivamente apoiaria o desenvolvedor, mas não serei eu. 24 | (nota dos tradutores: não se entende o que se quer dizer com a frase anterior) 25 | 26 | ## lista de teclas de atalho: 27 | * ALT + 1 - mover o foco para a lista de Conversas. 28 | * ALT + 2 - mover o foco para a última mensagem da lista de conversas. 29 | * ALT + 3 - mover o foco para o rótulo da mensagem não lida. 30 | * ALT + D - Mover o foco para o campo de edição. Se o foco já estiver no campo de edição, após pressionar as teclas de atalho ele mover-se-á para onde estava anteriormente. 31 | * ALT + T - Ler o nome e o estado do perfil em Conversas públicas. Pressione duas vezes para alternar entre "Activar o seguimento da actividade de chat até que o aplicativo feche", ou "Activar o seguimento da actividade das chat" e "Desactivar o seguimento da actividade de chat". 32 | * espaço - Reproduzir / pausar mensagem de voz ou vídeo em foco ou abrir mídia anexada à mensagem actual. 33 | * ALT + P - Reproduzir / pausar a mensagem de voz actualmente em execução. 34 | * ALT + S - Aumentar / diminuir a velocidade de reprodução da mensagem de voz. 35 | * ALT + E - Fechar o reprodutor de áudio. 36 | * control + C - Copiar mensagem se ela contiver texto. 37 | * ALT + shift + C - pressionar o botão "ligar". 38 | * ALT + shift + V - Pressionar o botão de videochamada. 39 | * ALT + Y - aceitar chamada 40 | * ALT + N - Pressionar o botão "rejeitar chamada" se houver uma chamada recebida, encerrar a chamada se houver uma chamada em andamento ou sair do chat de voz se estiver activo. 41 | * ALT + A - Pressionar o botão "microfone on / off". 42 | * ALT + V - Pressionar o botão "activar / desactivar câmera". 43 | * ALT + Q - pressionar o botão "visualização rápida", se a mensagem actual o contiver. 44 | * ALT + O - Pressionar o botão "mais opções" num chat de alerta, chat de voz ou janela de chamada. 45 | * ALT + M - abrir o menu de navegação. 46 | * control + R - Começar a gravar mensagem de voz / enviar mensagem de voz. 47 | * control + D - Cancelar a gravação da mensagem de voz. Pressioná-lo duas vezes altera o tipo de notificação quando começa a gravar, enviar ou cancelar a gravação de mensagens de voz. 48 | * ALT + U - Alternar anúncios da barra de progresso. 49 | 50 | ### Observação 51 | Todas as teclas de atalho podem ser reatribuídas no menu NVDA> preferências> definir comandos. 52 | o facto de que o recurso que coloca o cursor na marca de mensagens não lidas às vezes responde com um atraso é um problema conhecido. Isso pode depender do número de mensagens enviadas no momento. 53 | 54 | ## Lista de alterações: 55 | 56 | ### Versão 1.9.0 57 | * Adicionada uma combinação que alterna o nível de prompts auditivos entre valores como: "anunciar todas as barras de progresso", "anunciar todas as barras de progresso, exceto para reprodução de mensagem de voz" e "não anunciar barras de progresso". Para aqueles utilizadores que têm o carregamento automático de mídia desactivado no Unigram, o valor pode ser definido como "anunciar todas as barras de progresso, exceto aquelas para reprodução de mensagens de voz", e para aqueles que o têm activado, é preferível deixá-lo em "sem anúncio de barras de progresso". 58 | * Adicionadas traduções para espanhol, croata e persa 59 | * Corrigidos pequenos bugs de versões anteriores 60 | 61 | ### Versão 1.8.0 62 | * Quando o foco é colocado no botão abrir ficheiro ou baixar ficheiro, o nome e o tamanho do ficheiro em questão serão falados, E quando o foco estiver no botão reproduzir em um ficheiro de áudio, ouvirá o seu nome e duração. 63 | * Adicionada função para mover o foco para o campo de edição de mensagem. Se o foco já estiver neste campo, clicar irá mover para o último item em foco. 64 | * Agora a função de seguimento de actividade de chat é activada pressionando ALT + T duas vezes. Ppode simplesmente activá-la, activá-la temporariamente, até a próxima vez que fechar o aplicativo. 65 | * Agora também foi adicionada a capacidade de seleccionar o tipo de notificação para gravar mensagens de voz. Isso é feito pressionando a combinação control + d duas vezes. Aqui pode escolher entre um alerta de áudio, um alerta de texto e retornar ao comportamento padrão de gravação de mensagem de voz. 66 | 67 | ### Versão 1.7.0 68 | * A função de gravação de mensagem de voz foi significativamente modernizada. gravar, enviar e cancelar são acompanhados por sons distintos. Além disso, enquanto essas operações estão a ser realizadas, o foco permanece na mesma posição e não salta para o botão de gravação ou o campo de edição. 69 | ### Versão 1.7.0 70 | * Adicionada capacidade de seguir a actividade de Conversas. Esta opção pode ser activada pressionando ALT + shift + T e permanecerá activa até que o Unigram seja fechado ou até a próxima reinicialização do NVDA. 71 | * As teclas de atalho que activam o botão de mais opções agora funcionam no chat de voz e na janela de chamada. 72 | 73 | ### Versão 1.6.0 74 | * Se a mídia anexada de uma mensagem for aberta pressionando espaço, após fechá-la, o cursor retornará à sua posição anterior. 75 | * Agora pode retornar ao chat de voz activo, não apenas do grupo actual, mas também de qualquer outro chat. 76 | * Pressionar ALT + shift + C num chat aberto retornará ao chat de voz em vez de ligar para o contacto em questão. 77 | * Se uma mensagem não for enviada, será notificado assim que a mensagem estiver em foco. 78 | * Se uma mensagem em destaque contiver um link, ouvirá apenas o texto do link em si, não a mensagem em sua totalidade. 79 | * Corrigido um problema em que a mudança de estado não era anunciada para botões como ligar / desligar o microfone e ligar / desligar a câmera em chamadas privadas e chats de voz. 80 | * Agora, o recurso de cópia de mensagem permite que copie o conteúdo dos elementos na janela de visualização rápida de uma postagem. 81 | 82 | ### Versão 1.5.1 83 | 84 | Esta actualização corrige um grande número de bugs e melhora o desempenho do extra. 85 | 86 | ### Versão 1.5.0 87 | Esta actualização adiciona uma combinação que pressiona o botão "visualização rápida" na mensagem, se houver. Por padrão, esta função é activada com a combinação ALT + Q. Após a abertura deste artigo, o foco será automaticamente colocado no primeiro item, e após o fechamento, o foco retornará para a última mensagem vista. Também corrigimos um problema em que todos os itens de um artigo não eram lidos na janela de visualização rápida, mesmo que contivessem texto. 88 | ### Versão 1.1.7 89 | 90 | Adicionada tradução turca 91 | 92 | ## Tradução Portuguesa: 93 | Equipa Portuguesa do NVDA: Ângelo Abrantes e Rui Fontes 94 | 14-08-2021 -------------------------------------------------------------------------------- /addon/doc/pt_PT/readme.md: -------------------------------------------------------------------------------- 1 | # Unigram Plus 2 | 3 | * Autor: Kostya Gladkiy (Ucrânia) 4 | * [Canal no Telegram](https://t.me/unigramPlus) 5 | * Telegram: @unigramPlus 6 | * Link de donactivos: [https://unigramplus.diaka.ua/donate](https://unigramplus.diaka.ua/donate) 7 | 8 | Use o Unigram de uma forma mais confortável e produtiva. Este extra fornece muitas teclas de atalho para o uso rápido e confortável do Unigram e introduz muitas melhorias. 9 | ## Algumas das maiores melhorias são: 10 | * Quando o foco está na lista de chat, informações como "chat, separadores, lista selecionada" não são anunciadas e se o cursor estiver na lista de mensagens, não ouvirá a palavra "Lista". 11 | * Quando o foco está no botão abrir ficheiro ou descarregar ficheiro, o nome e o tamanho do ficheiro serão falados, e se estiver no botão reproduzir de um ficheiro de áudio, ouvirá o seu nome e duração. 12 | * Quando estiver numa mensagem de voz que está a ser reproduzida, ouvirá primeiro o tempo de reprodução e, em seguida, o restante das informações relevantes. 13 | * Quando o foco fica numa mensagem contendo informações sobre uma chamada, a duração dessa chamada é anunciada. 14 | * Quando o foco está numa mensagem seleccionada de Conversas, primeiro ouvirá a informação se ela foi seleccionada e, em seguida, o conteúdo da mensagem. 15 | * Agora, ao rolar por uma lista de mensagens ou Conversas, não ouvirá a palavra "lida", mas "não lida" será falada antes de ler a mensagem em si. atualmente, esse recurso funciona apenas em inglês, russo e ucraniano. 16 | * A função de gravação de mensagem de voz foi significativamente modernizada. gravar, enviar e cancelar mensagens de voz são acompanhados por sons distintos. além disso, quando essas operações são realizadas, o foco permanece na mesma posição e não salta para o botão de gravação ou o campo de edição. 17 | * Adicionada a capacidade de rastrear a actividade de Conversas. Esta função é activada pressionando a combinação "ALT + T" duas vezes. 18 | * Se os ficheiros de mídia anexados a uma mensagem forem abertos pressionando espaço, após fechá-los, o cursor retorna ao local onde estava anteriormente. 19 | * Todos os sons de prompt de função ou apenas os prompts de reprodução de mensagem de voz podem ser desactivados. 20 | 21 | ## Informações do desenvolvedor, sobre donativos: 22 | Se realmente gosta deste extra e deseja, e o mais importante, tem a oportunidade de apoiar o desenvolvedor financeiramente e, portanto, motivá-lo a continuar a desenvolver este extra, pode fazer isso transferindo uma pequena quantia usando os seguintes dados bancários: (link de doação ) (https://unigramplus.diaka.ua/donate), o número do cartão é 5169360009004502. 23 | E lembre-se que todos que leram este post pensaram que alguém definitivamente apoiaria o desenvolvedor, mas não serei eu. 24 | (nota dos tradutores: não se entende o que se quer dizer com a frase anterior) 25 | 26 | ## lista de teclas de atalho: 27 | * ALT + 1 - mover o foco para a lista de Conversas. 28 | * ALT + 2 - mover o foco para a última mensagem da lista de conversas. 29 | * ALT + 3 - mover o foco para o rótulo da mensagem não lida. 30 | * ALT + D - Mover o foco para o campo de edição. Se o foco já estiver no campo de edição, após pressionar as teclas de atalho ele mover-se-á para onde estava anteriormente. 31 | * ALT + T - Ler o nome e o estado do perfil em Conversas públicas. Pressione duas vezes para alternar entre "Activar o seguimento da actividade de chat até que o aplicativo feche", ou "Activar o seguimento da actividade das chat" e "Desactivar o seguimento da actividade de chat". 32 | * espaço - Reproduzir / pausar mensagem de voz ou vídeo em foco ou abrir mídia anexada à mensagem actual. 33 | * ALT + P - Reproduzir / pausar a mensagem de voz actualmente em execução. 34 | * ALT + S - Aumentar / diminuir a velocidade de reprodução da mensagem de voz. 35 | * ALT + E - Fechar o reprodutor de áudio. 36 | * control + C - Copiar mensagem se ela contiver texto. 37 | * ALT + shift + C - pressionar o botão "ligar". 38 | * ALT + shift + V - Pressionar o botão de videochamada. 39 | * ALT + Y - aceitar chamada 40 | * ALT + N - Pressionar o botão "rejeitar chamada" se houver uma chamada recebida, encerrar a chamada se houver uma chamada em andamento ou sair do chat de voz se estiver activo. 41 | * ALT + A - Pressionar o botão "microfone on / off". 42 | * ALT + V - Pressionar o botão "activar / desactivar câmera". 43 | * ALT + Q - pressionar o botão "visualização rápida", se a mensagem actual o contiver. 44 | * ALT + O - Pressionar o botão "mais opções" num chat de alerta, chat de voz ou janela de chamada. 45 | * ALT + M - abrir o menu de navegação. 46 | * control + R - Começar a gravar mensagem de voz / enviar mensagem de voz. 47 | * control + D - Cancelar a gravação da mensagem de voz. Pressioná-lo duas vezes altera o tipo de notificação quando começa a gravar, enviar ou cancelar a gravação de mensagens de voz. 48 | * ALT + U - Alternar anúncios da barra de progresso. 49 | 50 | ### Observação 51 | Todas as teclas de atalho podem ser reatribuídas no menu NVDA> preferências> definir comandos. 52 | o facto de que o recurso que coloca o cursor na marca de mensagens não lidas às vezes responde com um atraso é um problema conhecido. Isso pode depender do número de mensagens enviadas no momento. 53 | 54 | ## Lista de alterações: 55 | 56 | ### Versão 1.9.0 57 | * Adicionada uma combinação que alterna o nível de prompts auditivos entre valores como: "anunciar todas as barras de progresso", "anunciar todas as barras de progresso, exceto para reprodução de mensagem de voz" e "não anunciar barras de progresso". Para aqueles utilizadores que têm o carregamento automático de mídia desactivado no Unigram, o valor pode ser definido como "anunciar todas as barras de progresso, exceto aquelas para reprodução de mensagens de voz", e para aqueles que o têm activado, é preferível deixá-lo em "sem anúncio de barras de progresso". 58 | * Adicionadas traduções para espanhol, croata e persa 59 | * Corrigidos pequenos bugs de versões anteriores 60 | 61 | ### Versão 1.8.0 62 | * Quando o foco é colocado no botão abrir ficheiro ou baixar ficheiro, o nome e o tamanho do ficheiro em questão serão falados, E quando o foco estiver no botão reproduzir em um ficheiro de áudio, ouvirá o seu nome e duração. 63 | * Adicionada função para mover o foco para o campo de edição de mensagem. Se o foco já estiver neste campo, clicar irá mover para o último item em foco. 64 | * Agora a função de seguimento de actividade de chat é activada pressionando ALT + T duas vezes. Ppode simplesmente activá-la, activá-la temporariamente, até a próxima vez que fechar o aplicativo. 65 | * Agora também foi adicionada a capacidade de seleccionar o tipo de notificação para gravar mensagens de voz. Isso é feito pressionando a combinação control + d duas vezes. Aqui pode escolher entre um alerta de áudio, um alerta de texto e retornar ao comportamento padrão de gravação de mensagem de voz. 66 | 67 | ### Versão 1.7.0 68 | * A função de gravação de mensagem de voz foi significativamente modernizada. gravar, enviar e cancelar são acompanhados por sons distintos. Além disso, enquanto essas operações estão a ser realizadas, o foco permanece na mesma posição e não salta para o botão de gravação ou o campo de edição. 69 | ### Versão 1.7.0 70 | * Adicionada capacidade de seguir a actividade de Conversas. Esta opção pode ser activada pressionando ALT + shift + T e permanecerá activa até que o Unigram seja fechado ou até a próxima reinicialização do NVDA. 71 | * As teclas de atalho que activam o botão de mais opções agora funcionam no chat de voz e na janela de chamada. 72 | 73 | ### Versão 1.6.0 74 | * Se a mídia anexada de uma mensagem for aberta pressionando espaço, após fechá-la, o cursor retornará à sua posição anterior. 75 | * Agora pode retornar ao chat de voz activo, não apenas do grupo actual, mas também de qualquer outro chat. 76 | * Pressionar ALT + shift + C num chat aberto retornará ao chat de voz em vez de ligar para o contacto em questão. 77 | * Se uma mensagem não for enviada, será notificado assim que a mensagem estiver em foco. 78 | * Se uma mensagem em destaque contiver um link, ouvirá apenas o texto do link em si, não a mensagem em sua totalidade. 79 | * Corrigido um problema em que a mudança de estado não era anunciada para botões como ligar / desligar o microfone e ligar / desligar a câmera em chamadas privadas e chats de voz. 80 | * Agora, o recurso de cópia de mensagem permite que copie o conteúdo dos elementos na janela de visualização rápida de uma postagem. 81 | 82 | ### Versão 1.5.1 83 | 84 | Esta actualização corrige um grande número de bugs e melhora o desempenho do extra. 85 | 86 | ### Versão 1.5.0 87 | Esta actualização adiciona uma combinação que pressiona o botão "visualização rápida" na mensagem, se houver. Por padrão, esta função é activada com a combinação ALT + Q. Após a abertura deste artigo, o foco será automaticamente colocado no primeiro item, e após o fechamento, o foco retornará para a última mensagem vista. Também corrigimos um problema em que todos os itens de um artigo não eram lidos na janela de visualização rápida, mesmo que contivessem texto. 88 | ### Versão 1.1.7 89 | 90 | Adicionada tradução turca 91 | 92 | ## Tradução Portuguesa: 93 | Equipa Portuguesa do NVDA: Ângelo Abrantes e Rui Fontes 94 | 14-08-2021 -------------------------------------------------------------------------------- /addon/doc/zh/readme.md: -------------------------------------------------------------------------------- 1 | # Unigram Plus 2 | 3 | * 作者: Kostya Gladkiy (Ukrain) 4 | * [Telegram 頻道](https://t.me/unigramPlus) 5 | * Telegram: @unigramPlus 6 | * 贊助連結: [https://unigramplus.diaka.ua/donate](https://unigramplus.diaka.ua/donate) 7 | * PayPal: gladkiy.kostya@gmail.com 8 | 9 | 10 | 以更方便和更有效率的方式使用Unigram。 這個附加元件提供許多快速鍵用來快速和方便的使用Unigram,並且增加了許多小改進。 11 | ##幾個重要改進為 12 | 13 | * 對訊息(如投票、連結或帶有附加媒體的訊息)的顯示進行了重大改進。 14 | * 當焦點到達消息清單時,報讀"清單"。 15 | * 當游標到達「開啟檔案」按鈕或「下載」按鈕上時,檔案的名稱和大小將被朗讀,當游標到達音訊檔案的播放按鈕上時,您將聽到其名稱和持續時間。 16 | * 當焦點到達目前正在播放的語音訊息上時,首先讀出有關其播放時間的資訊,然後讀出所有其他資訊。 17 | * 當焦點到達包含通話資訊的訊息上時,將讀出此通話的持續時間。 18 | * 當焦點到達聊天中已選取的訊息時,您將聽到該訊息被選取的資訊,然後聽到內容。 19 | * 當在聊天中移動時,"已讀" 不會被讀出,"未讀" 會在讀出訊息內容之前讀出。 這個功能目前只能使用於英文、俄文、烏克蘭文、西班牙文、葡萄牙文、波瀾文、克羅埃西亞文、土耳其文和波斯文. 20 | * 改進了錄製語音訊息的功能。錄製、傳送和取消錄製語音訊息時會播放特殊音效。此外,在執行這些功能時,焦點將保持在其位置,並且不會跳轉到錄製按鈕或訊息輸入編輯區。 21 | * 如果使用空格鍵打開附加到訊息的媒體,則在關閉後,焦點將返回到焦點中的最後一個元素。 22 | * 允許完全關閉讀出進度列的功能,或只有當播放語音訊息時關閉。 23 | 24 | ##關於贊助開發者的資訊: 25 | 如果您喜歡這個附加元件且有能力,最重要的是透過金錢贊助開發者讓未來繼續開發此元件,您可以小額轉帳到以下銀行帳戶:[贊助連結](https://unigramplus.diaka.ua/donate), or card number is 5169360009004502(Ukraine). 26 | 也記住大家讀完這行之後表示有人會實際支持開發者,但是可能不是我。 27 | 28 | ## 快速鍵列表: 29 | * ALT+1:移動焦點到聊天清單; 30 | * ALT+2:移動焦點到目前開啟聊天的最後一則訊息; 31 | * ALT+3:移動焦點到未讀訊息; 32 | * ALT+D:移動焦點到輸入訊息的編輯區。 如果焦點已經到達該編輯區, 再次按下該快速鍵,會移動到先前的位置; 33 | * ALT+T:讀出目前開啟聊天的名稱和狀態; 34 | * 空格鍵:播放或暫停焦點上的語音或視訊訊息,或開啟附加到目前訊息的媒體檔案; 35 | * ALT+P:播放或暫停正在播放的語音訊息; 36 | * ALT+S:增加或減少語音訊息的播放速度; 37 | * ALT+E:關閉音訊播放器; 38 | * control+C:複製含有文字的訊息。 如果焦點在連結上,則複製連結; 39 | * ALT+shift+C:如果是聯絡人則通話,如果是群組則加入群組通話。; 40 | * ALT+shift+V:視訊通話; 41 | * ALT+Y:接聽通話; 42 | * ALT+N:如果有未接來電則拒絕,通話中則結束通話,在群組通話中則退出; 43 | * ALT+A:靜音或解除靜音麥克風; 44 | * ALT+V:開啟或關閉視訊鏡頭; 45 | * ALT+Q:及時瀏覽,如果該訊息含有該按鈕; 46 | * ALT+M:開啟主選單; 47 | * control+R:開始或停止錄製語音訊息; 48 | * control+D:按一次,取消語音訊息錄製。按兩次,變更錄製語音訊息的通知方式; 49 | * ALT+U:切換讀出進度列的方式; 50 | * control+P:開啟目前聊天的資料頁; 51 | * delete:刪除訊息或聊天; 52 | * shift+delete:從兩端刪除訊息或聊天; 53 | * control+ALT+C:開啟留言; 54 | * Enter:回覆訊息; 55 | * ALT+F:轉傳訊息; 56 | * 倒退鍵:編輯訊息; 57 | * ALT+shift+R:標示一個聊天為已讀; 58 | * control+空格鍵:切換到選取模式; 59 | * ALT+shift+L:複製用來直播的資訊到剪貼簿; 60 | * ALT+C:在快顯視窗中顯示訊息的文字 61 | * NVDA+ALT+U:開啟 UnigramPlus 的設定視窗。 62 | * ALT+4:移動焦點到聊天資料夾。 63 | * control+shift+A:按下附加媒體按鈕 64 | * control+N:按下新的聊天按鈕。 65 | * 沒有預設快速鍵:置頂訊息或聊天。 66 | * ALT+5:移動焦點到已開啟的資料頁。 67 | * ALT+L:開啟在目前的聊天自動讀出新的訊息。 68 | * NVDA+ALT+R:轉換語音訊息成文字,(譯者註:不是Telegram Premium的用戶每星期只能轉換兩則語音訊息)。 69 | * 方向鍵左:讀出被回覆訊息的原始訊息。按兩次跳到該訊息。 70 | * ALT+6:移動焦點到群組話題清單 71 | * ALT+H:顯示所有 UnigramPlus 的快速鍵。 72 | * ALT+I:開啟所有聊天搜尋結果的清單。 73 | * ALT+J:在聊天中跳到上一個搜尋結果。 74 | * ALT+K:在聊天中跳到下一個搜尋結果。 75 | 76 | ### 備註 77 | 78 | * 所有快速鍵可以在NVDA功能表>偏好>輸入手勢變更。 79 | * 讓焦點到達 "未讀訊息" 的功能有時可能延遲,這是一個已知問題。 這個問題取決於快取訊息的數量。 80 | 81 | ##更新紀錄: 82 | 83 | ### 5.2.0版 84 | 85 | * 新增選取附加到訊息的檔案和使用空格鍵開啟該檔案的功能。 86 | * 訊息中的連結不會完整讀出,只會到問號。 87 | * 當您關閉照片和影片檢視器, UnigramPlus 會嘗試把焦點移動到您正在檢視的訊息。 88 | * 開啟 UnigramPlus 設定的快速鍵已變更為 NVDA+ALT+U。 89 | * 代碼最佳化 已完成,改進瀏覽聊天清單和訊息清單。 特別是訊息中含有嵌入式物件。 90 | * 修正許多小錯誤。 91 | * 移除過時的代碼。 92 | 93 | ### 5.1.0版 94 | 95 | * 新增在聊天中跳到下一個或上一個搜尋結果的快速鍵。 預設情況下,快速鍵為 ALT+K 和 ALT+J 組合。 96 | * 新增在聊天中開起所有搜尋結果清單的快速鍵。 預設情況下,快速鍵為 ALT+I 組合。 97 | * 在訊息中按兩次方向鍵左會把焦點跳到被回覆的訊息。 98 | * 修正訊息中聯結預覽的說明文字不會讀出的問題。 99 | * UnigramPlus 不會在安全畫面顯示建議更新的資訊。 然而,使用者需要再次開啟NVDA的設定並按下 "在登入或安全畫面使用目前儲存的設定 (需要系統管理員權限)"的按鈕。 100 | * 移除快轉和重新播放語音訊息和設定訊息表情符號的功能,由於這些功能無法正常運作。 101 | * 移除複製訊息的功能, Unigram 現在已包含此功能。請注意有時複製訊息可能造成程式稍微卡頓, 這個現象和 UnigramPlus 無關. 102 | * 修正其他小錯誤。 103 | 104 | 105 | ### 5.0.0版 106 | 107 | * 修正在聊天中訊息會讀出兩次的錯誤。 108 | * 修正瀏覽到開啟資料頁的快速鍵無法正常運作。 109 | * 修正開啟主選單的快速鍵無法正常運作。 110 | * 修正所有關於在視訊聊天中開啟或關閉麥克風的按鈕的錯誤。 111 | * 修正再波瀾文當輸入字元時的 ALT+C 快速鍵衝突。 112 | * 修正訊息中擁有者和管理員的發音。 113 | * 修正其他錯誤。 114 | 115 | ### Version 4.9.0 116 | 117 | * 新增一個選項用來調整當在空白的訊息編輯區按下方向鍵上時執行的動作。您可以從以下的選項中選擇:編輯上一則傳送的訊息、跳轉到上一則訊息或不值行動做。 118 | * 修正使用鍵盤接聽或拒絕通話。 119 | * 修正部分錯誤例如 ALT+H 快速鍵無法使用和按方向鍵左無法讀出被回覆的訊息。 120 | * 修正部分元素的表示方式 121 | 122 | ### 4.8.0版 123 | 124 | * 在 Unigram 設定中, 可以透過按 Enter 鍵開啟設定的類別。 當您開啟任何類別的設定,焦點將停留在該設定類別。 125 | * 當在測驗按下註解按鈕時,註解將另開新視窗以方便瀏覽。 126 | * 修正聊天列表切換無法讀出名稱的錯誤。 127 | * 修正無法關閉或變更讀出聊天類型的方式的錯誤。 128 | * 修正無法知道正確測驗答案的錯誤。 129 | * 修正無法透過按 快速鍵複製訊息的錯誤。 130 | * 修正小錯誤和最佳化代碼。 131 | 132 | ### 4.7.0版 133 | 134 | * UnigramPlus 已支援最新版本的 Unigram。 135 | * 相容 NVDA 2023 版本。 136 | * 快速鍵 ALT+1 除了可以移動焦點到聊天列表,還可以移動到聯絡人列表和設定。 137 | * 自動讀出新訊息和聊天活動追蹤的功能改進,提高穩定性。 138 | * 新增顯示所有 UnigramPlus 快速鍵的列表。 預設情況下, 快速鍵為 ALT+H。 139 | * 修正錯誤。 140 | 141 | ### 4.6.0版 142 | 143 | * 新增移動焦點到群組話題清單的快速鍵。 預設情況下,這個功能的快速鍵是 ALT+6。 144 | 請注意,常常在開啟想開啟的群組按 enter 鍵時,話題列表可能不會顯示,然後需要重新在群組設定一次焦點然後按 enter 鍵。在這個情況下,在按第二次之後,聊天列表將顯示,之後我們可以按一個快速鍵,讓焦點移動到這個列表。 145 | * ALT+2 快速鍵不只可以移動焦點到訊息列表,也可以到開啟個人資料頁,到開啟的群組話題清單,或開啟設定。 146 | * 在 UnigramPlus 的設定中,您可以停用在群組的訊息中提示管理員或擁有者。 147 | * 接聽電話或拒絕通話的快速鍵可以正常運作。 148 | * 自動讀出新訊息和聊天活動不會在NVDA重新啟動之後停用,該功能會運作直到您手動停用。 149 | * 改進部分介面元素的顯示。 150 | 151 | ### 4.5.0版 152 | 153 | * 相容於最新版 Unigram 154 | * 如果一則訊息被回覆,按下左方向鍵可以讀出原始訊息。 155 | * 新增法文翻譯 156 | * 移除透過快速鍵反映訊息的功能,因為無法相容最新的uNIGRAM介面變更。 157 | * 修正錯誤 158 | 159 | ### 4.4.0版 160 | 161 | * 新增聊天活動追蹤功能。 預設情況下,透過按兩次 ALT+T 啟用。 這個功能將持續運作直到下次 NVDA 重新啟動。 162 | * 新增自動讀出目前聊天中的新訊息的功能。 預設情況下,透過按兩次 ALT+L 啟用。 這個功能將持續運作直到下次 NVDA 重新啟動。 如果聊天中出現太多新訊息,則可能存在穩定性問題。 163 | * 新增轉換語音訊息成文字的快速鍵。 預設情況下,這個功能的快速鍵為 NVDA+ALT+R。 請注意,如果語音訊息很長,將分次轉換成文字。 所以,可能發生 UnigramPlus 通知您語音訊息已轉換完成,實際上只有一部份的轉換完成。 幾秒之後,這些文字將新增。 164 | 請注意,轉換語音訊息成文字的功能只適用於 Telegram Premium 訂閱用戶。 165 | * 當透過聊天清單瀏覽時,UnigramPlus 將讀出 Premium 帳戶和已認證的帳戶的資訊。 166 | 167 | ### 4.3.0版 168 | 169 | * 當使用不同的視窗開啟不同聊天時,Unigram將正確運作。 170 | * 新增移動焦點到使用者資料頁(若開啟),預設快速鍵為 alt+5。 171 | * 修正錯誤。 172 | 173 | ###4.2.0版 174 | 175 | * 變更儲存 UnigramPlus 設定檔的方式。 設定將不會儲存到 NVDA 的組態檔中,而會儲存到獨立的組態檔中。 這會解決當更新或 UnigramPlus 停止運作時存取 NVDA 組態檔的問題。 不幸的是,使用者將需要在這次 UnigramPlus 更新之後重新調整 UnigramPlus 的設定,這次更新之後,所有 UnigramPlus 的設定都會重製。 176 | * 修正 UnigramPlus 和藍芽音訊附加元件不相容的問題。 177 | * 不會通知當訊息未選取。 如果訊息已選取,該訊息已選取的通知會在讀出訊息內容之前讀出。 178 | * 若您在 NVDA 設定中啟用讀出元素清單,會讀出聊天中的訂單號碼。 179 | * 新增部分按鈕的標籤。 180 | 181 | ### 4.1.0版 182 | 183 | * 新增可用來置頂訊息或聊天的輸入手勢,預設情況下,沒有預先設定快速鍵。 184 | * 新增按下 "新的聊天" 按鈕的快速鍵。 預設的快速鍵為 ctrl+n. 185 | * 新增按下 "附加媒體" 按鈕的快速鍵。 預設的快速鍵為 ctrl+shift+a. 186 | * 新增跳到聊天資料夾的快速鍵。 預設的快速鍵為 alt+4。 這個功能當設定超過九個聊天資料夾時將很有用。 187 | * 當使用方向鍵移動資料夾時,焦點將不會隨意移動。 188 | * 當使用鍵盤切換聊天資料夾時,會讀出移動到的資料夾的未讀訊息數量。 189 | * "標示一個聊天為已讀" 和 "置頂訊息或聊天" 的功能可以反向動作。 190 | * 新增羅馬尼亞文翻譯。 191 | 192 | ### 4.0.0版 193 | 194 | * 相容於Unigram8.8版本。 自從Unigram介面變更,必須重寫許多程式代碼。 195 | * 可以慢轉或快轉語音訊息。 使用快速鍵 control+方向鍵右 快轉,使用 Control+方向鍵左 慢轉。 196 | * 現在 UnigramPlus 不只可以報讀訊息中含有表情符號反映,還可以報讀表情符號反映中的詳細資訊。 197 | * 可以在快顯視窗中查看訊息文字。 預設的快速鍵為 ALT+C。 198 | * 新增開啟 UnigramPlus 設定視窗的快速鍵。 預設的快速鍵為 NVDA+control+U 199 | * 新增捷克文翻譯。 200 | * 修復烏克蘭用戶更新 UnigramPlus 的問題。 201 | 202 | ### 3.2.3版 203 | 204 | * 新增正體中文翻譯。 205 | * 更新現有翻譯,包含英文。 206 | * 錯誤修正。 207 | 208 | ### 3.2.0版 209 | 210 | * 刪除功能,例如: "聊天活動追蹤" 和 "在目前開啟的聊天讀出新訊息" ,因為我目前無法讓這些功能在NVDA2022.1版正常運作。 211 | * 改進對通話中靜音或解除靜音、開啟或關閉攝影鏡頭的無障礙支援,現在,按下這些快速鍵之後,會讀出狀態。 212 | * 修正 Enter 鍵無法在部分元素中正常運作,現在可以在錄製語音訊息的按鈕按住 Enter 鍵錄製語音訊息。 213 | * 您可以新增一些功能的快速鍵,例如 "回覆訊息" 和 "編輯訊息"。 您也可以使用這些鍵,例如Enter, Backspace 或甚至方向鍵左或右來新增快速鍵,不會與其他程式的相同快速鍵衝突。 注意,這些功能沒有預設的快速鍵,您只能在焦點在聊天訊息中時新增這些快速鍵。 214 | * 讀出傳送者姓名的功能更準確。 215 | * 當焦點在一個包含連結的訊息,訊息的文字不會先讀出,會先讀出連結的文字。 216 | * 新增小改進和修正錯誤。 217 | * 現在 UnigramPlus 會執行的更快速。 218 | 219 | ### 3.1.0版 220 | 221 | * 改進投票報讀方式。 可以讀出投票結果視窗的投票者姓名,也會讀出投票的正確選項。 222 | * 可以對訊息做出表情符號反映,但是僅限於私人訊息。 這個功能無法正常在群組和頻道使用。 在私人訊息中,按下 NVD + ALT + 數字從 1 到 5,您可以選擇以下表情符號: 1 - 👍, 2 - 👎, 3 - ❤, 4 - 🔥, 5 - 🥰。 223 | * 可以讀出現有的表情符號反映資訊。 不幸的是,目前無法正確讀出可用的表情符號反映選項。 224 | * 新增快速複製直播資訊到剪貼簿的快速鍵。 225 | * 修正最新版 Unigram 顯示 inline 結果的問題。 226 | 227 | ### 3.0.0 版 228 | 229 | 警告! UnigramPlus 不再支援NVDA版本2021.2之前的版本。 230 | * 新增對許多介面元素的標籤。 231 | * 修正一些錯誤。 232 | 233 | ### 2.9.0版 234 | 235 | * 編輯區的標籤會隨著回覆或編輯訊息而改變。 236 | * 可以在設定中啟用當使用快速鍵刪除訊息或聊天時的確認對話框。 237 | * 新增塞爾維亞文翻譯。 238 | * 修正錯誤。 239 | 240 | ### 2.8.0版 241 | 242 | * 新增自自我新附加元件的功能。 透過開啟 UnigramPlus 設定並按檢查更新按紐。 您也可以開啟在NVDA啟動時自動檢查更新的功能。 243 | * 新增阿拉伯文翻譯。 244 | 245 | ### 2.7.0版 246 | 247 | * 訊息轉傳後會通知您。 248 | * 改進訊息複製功能。 當訊息中含有可點擊的連結且焦點在該連結上,按 Control+C 會複製連結,而不是複製文字。 249 | * 新增複製訊息並保留文字格式的功能。 這個功能模擬啟動應用程式選單中的相應項目。 這個功能的預設快速鍵為 CTRL+shift+C。 因為這個功能,開啟留言的快速鍵變更為 CTRL+ALT+C。 250 | * 新增自動讀出在目前開啟聊天的新訊息。 預設情況下,可以透過按下 ALT + L啟用。 251 | * 新增快速瀏覽聊天的快速鍵。 按下 NVDA + CTRL + 數字鍵盤對應到的訊息順序,例如您想查看最後一則訊息,按下 1, 如果您想查看先前訊息, 按下 2, 依此類推。 252 | * 按下 Alt+T 會讀出目前群組通話的資訊。 253 | 254 | ### 2.6.0版 255 | 256 | * 相容於 NVDA2021.3版。 257 | * 新增選取聊天或訊息的快速鍵。 258 | * 新增轉傳訊息的快速鍵。 259 | * 新增標記聊天為已讀的快速鍵。 260 | * 改進現有功能的效能。 261 | 262 | 263 | ### 2.5.0版 264 | 265 | * 新增選項,如果啟用,修正部分使用者遇到的錄製語音訊息的問題。 266 | * 新增回覆訊息的快速鍵。 您可以透過在一則訊息中按下 Enter ,您也可以變更該快速鍵。 267 | * 新增編輯訊息的快速鍵。 預設快速鍵為 ALT+Backspace. 268 | 269 | ### 2.4.0版 270 | 271 | * 當焦點在一則訊息中時,您將聽到傳送者姓名。 272 | * 當焦點在一個群組中包含未讀訊息時,您將被通知若有人回覆您的訊息。 273 | * 改進先前新增的功能的效能。 274 | 275 | ### 2.3.0版 276 | 277 | * 改進對訊息中含有多個富家媒體的無障礙支援,之前只能透過物件瀏覽查看超過一個富家媒體,現在當焦點在該訊息上時,將自動讀出。 278 | * 改進對含有投票的訊息的無障礙支援。 當焦點在該訊息時,您將聽到投票人數,還有每個選項的結果。 279 | * 改進對含有網址的訊息的無障礙支援。 當網址含有說明,將被讀出,例如,一則訊息含有YouTube的連結,關於該影片的標題和說明將在網址讀出後讀出。 如果網址超過30個字元,將被縮短讓說明更容易閱讀。 280 | * 改進對 inline query results panel 的無障礙支援。 為了瀏覽 inline queries的結果,使用下方快速鍵: control+方向鍵上 和 control+方向鍵下。 281 | * 新增開啟留言的快速鍵。 282 | 283 | ### 2.2.0版 284 | 285 | * 新增為自己或從兩端刪除訊息或聊天的快速鍵。 這個功能和 Unigram 的介面語言有關,所以某些語言可能無法使用,在設定中您可以選擇通知類型,文字或音效。 286 | * 在設定中新增您使用 Unigram 介面語言的確認,某些功能需要此設定才能正確運作。 287 | * 新增開啟目前聊天資料頁的快速鍵。 288 | * 關閉一個聊天之後,焦點將移動到聊天清單,不是開啟主選單按紐。 289 | 290 | ### 2.1.0版 291 | 292 | * 當在聊天清單中切換資料夾時,目前資料夾名稱將被讀出。 293 | * 在聊天清單中,您將聽到聊天類型,然後是名稱。 294 | * 改進移動焦點到聊天清單的功能。 將更準確且不會延遲。 295 | * 附加元件的設定更方便存取,部分 UnigramPlus 的設定出現在NVDA的偏好設定中。 296 | * 新增波瀾文翻譯。 297 | * 許多錯誤修正。 298 | 299 | ### 2.0.0版 300 | 301 | * 不提示"已讀" 並在讀出訊息前提示 "未讀" 的功能可用於 西班牙文、葡萄牙文、克羅埃西亞文、土耳其文和波斯文翻譯。 302 | * 改進進度列輸出的功能。 當該功能啟用時,只會讀出焦點上的進度列。 303 | * 當在一個還沒下載完的檔案上按空格鍵,您將被通知下載已暫停。 304 | * 新增葡萄牙文翻譯。 305 | * 修正錯誤並改善效能 306 | 307 | ### 1.9.0版 308 | * 新增用來切換進度列輸出方式的快速鍵,例如: "讀出所有進度列", "讀出一些進度列", "讀出所有進度列,語音訊息播放進度的進度列除外" 和 "不讀出任何進度列"。 當使用者停用 Unigram 的自動下載媒體功能,建議將進度列輸出設定為 "讀出所有進度列,語音訊息播放進度的進度列除外",若啟用,建議設定為 "不讀出任何進度列"。 309 | * 新增西班牙文、克羅埃西亞文和波斯文翻譯。 310 | * 修正舊版的錯誤。 311 | 312 | ### 1.8.0版 313 | 314 | * 當焦點到達 "開啟檔案" 或 "下載檔案" 的按鈕時,將讀出該檔案的名稱和大小,當焦點到達音訊檔案時,您將聽到名稱和時間長度。 315 | * 新增將焦點跳到編輯區的快速鍵。 若焦點已經在編輯區,再次按下該快速鍵,將會跳到先前位置。 316 | * 聊天活動追蹤功能可以透過按兩次 ALT + T 啟用。 您可以快速啟用或暫時啟用直到應用程式關閉。 317 | * 新增選擇錄製語音訊息的通知方式。 透過按兩次 control+d 快速鍵。您可以選擇用音效、文字或預設通知行為。 318 | 319 | ### 1.7.0版 320 | 321 | 改進錄製語音訊息的功能。開始錄至、傳送和取消錄製都有不同的音效提示。 當執行這些功能,焦點不會跳到錄製按鈕或輸入訊息的編輯區。 322 | 323 | ### 1.7.0版 324 | 325 | * 新增追蹤聊天活動的功能。 可以透過按下 ALT+shift+T 啟用,直到 Unigram 關閉或 NVDA 重新啟動。 326 | * 開啟更多選項的快速鍵可用於群組聊天或通話視窗。 327 | 328 | ### 1.6.0版 329 | 330 | * 當使用空格鍵開啟附加到訊息的媒體時,關閉之後,焦點將返回先前的元素。 331 | * 除了從目前群組之外,您也可以從所有其他群組返回進行中的群組通話。 332 | * 在開啟的聊天中按下 ALT+shift+C 將返回群組聊天,鴯不是向聯絡人通話。 333 | * 若訊息未傳送,將在到達焦點時提示。 334 | * 若置頂訊息含有連結,您將只會聽到該連結,而不是整個訊息。 335 | * 修正在私人通話或群組通話中,靜音或解除靜音、開啟或關閉攝影鏡頭狀態改變時不報讀的錯誤。 336 | * 訊息複製功能允許從快速預覽視窗中複製。 337 | 338 | ### 1.5.1版 339 | 340 | 這個更新修正錯誤並改進效能。 341 | 342 | ### 1.5.0版 343 | 344 | 這次更新新增吉時瀏覽的快速鍵(若訊息中包含該按紐)。 預設情況下,透過 ALT+Q 快速鍵啟用。 在開啟例如文章之後,焦點將自動跳到該文章的第一個元素,關閉之後,焦點將返回剛才瀏覽的訊息。 修正並非所有可用即時瀏覽的文章(即使包含文字)不可讀的問題。 345 | 346 | ### 1.1.7版 347 | 348 | 新增土耳其文翻譯 349 | 350 | -------------------------------------------------------------------------------- /sconstruct: -------------------------------------------------------------------------------- 1 | # NVDA add-on template SCONSTRUCT file 2 | # Copyright (C) 2012-2023 Rui Batista, Noelia Martinez, Joseph Lee 3 | # This file is covered by the GNU General Public License. 4 | # See the file COPYING.txt for more details. 5 | 6 | import codecs 7 | import gettext 8 | import os 9 | import os.path 10 | import zipfile 11 | import sys 12 | 13 | # While names imported below are available by default in every SConscript 14 | # Linters aren't aware about them. 15 | # To avoid Flake8 F821 warnings about them they are imported explicitly. 16 | # When using other Scons functions please add them to the line below. 17 | from SCons.Script import BoolVariable, Builder, Copy, Environment, Variables 18 | 19 | sys.dont_write_bytecode = True 20 | 21 | # Bytecode should not be written for build vars module to keep the repository root folder clean. 22 | import buildVars # NOQA: E402 23 | 24 | 25 | def md2html(source, dest): 26 | import markdown 27 | # Use extensions if defined. 28 | mdExtensions = buildVars.markdownExtensions 29 | lang = os.path.basename(os.path.dirname(source)).replace('_', '-') 30 | localeLang = os.path.basename(os.path.dirname(source)) 31 | try: 32 | _ = gettext.translation("nvda", localedir=os.path.join("addon", "locale"), languages=[localeLang]).gettext 33 | summary = _(buildVars.addon_info["addon_summary"]) 34 | except Exception: 35 | summary = buildVars.addon_info["addon_summary"] 36 | title = "{addonSummary} {addonVersion}".format( 37 | addonSummary=summary, addonVersion=buildVars.addon_info["addon_version"] 38 | ) 39 | headerDic = { 40 | "[[!meta title=\"": "# ", 41 | "\"]]": " #", 42 | } 43 | with codecs.open(source, "r", "utf-8") as f: 44 | mdText = f.read() 45 | for k, v in headerDic.items(): 46 | mdText = mdText.replace(k, v, 1) 47 | htmlText = markdown.markdown(mdText, extensions=mdExtensions) 48 | # Optimization: build resulting HTML text in one go instead of writing parts separately. 49 | docText = "\n".join([ 50 | "", 51 | "" % lang, 52 | "", 53 | "" 54 | "", 55 | "", 56 | "%s" % title, 57 | "\n", 58 | htmlText, 59 | "\n" 60 | ]) 61 | with codecs.open(dest, "w", "utf-8") as f: 62 | f.write(docText) 63 | 64 | 65 | def mdTool(env): 66 | mdAction = env.Action( 67 | lambda target, source, env: md2html(source[0].path, target[0].path), 68 | lambda target, source, env: 'Generating % s' % target[0], 69 | ) 70 | mdBuilder = env.Builder( 71 | action=mdAction, 72 | suffix='.html', 73 | src_suffix='.md', 74 | ) 75 | env['BUILDERS']['markdown'] = mdBuilder 76 | 77 | 78 | def validateVersionNumber(key, val, env): 79 | # Used to make sure version major.minor.patch are integers to comply with NV Access add-on store. 80 | # Ignore all this if version number is not specified, in which case json generator will validate this info. 81 | if val == "0.0.0": 82 | return 83 | versionNumber = val.split(".") 84 | if len(versionNumber) < 3: 85 | raise ValueError("versionNumber must have three parts (major.minor.patch)") 86 | if not all([part.isnumeric() for part in versionNumber]): 87 | raise ValueError("versionNumber (major.minor.patch) must be integers") 88 | 89 | 90 | vars = Variables() 91 | vars.Add("version", "The version of this build", buildVars.addon_info["addon_version"]) 92 | vars.Add("versionNumber", "Version number of the form major.minor.patch", "0.0.0", validateVersionNumber) 93 | vars.Add(BoolVariable("dev", "Whether this is a daily development version", False)) 94 | vars.Add("channel", "Update channel for this build", buildVars.addon_info["addon_updateChannel"]) 95 | 96 | env = Environment(variables=vars, ENV=os.environ, tools=['gettexttool', mdTool]) 97 | env.Append(**buildVars.addon_info) 98 | 99 | if env["dev"]: 100 | import datetime 101 | buildDate = datetime.datetime.now() 102 | year, month, day = str(buildDate.year), str(buildDate.month), str(buildDate.day) 103 | versionTimestamp = "".join([year, month.zfill(2), day.zfill(2)]) 104 | env["addon_version"] = f"{versionTimestamp}.0.0" 105 | env["versionNumber"] = f"{versionTimestamp}.0.0" 106 | env["channel"] = "dev" 107 | elif env["version"] is not None: 108 | env["addon_version"] = env["version"] 109 | if "channel" in env and env["channel"] is not None: 110 | env["addon_updateChannel"] = env["channel"] 111 | 112 | buildVars.addon_info["addon_version"] = env["addon_version"] 113 | buildVars.addon_info["addon_updateChannel"] = env["addon_updateChannel"] 114 | 115 | addonFile = env.File("${addon_name}-${addon_version}.nvda-addon") 116 | 117 | 118 | def addonGenerator(target, source, env, for_signature): 119 | action = env.Action( 120 | lambda target, source, env: createAddonBundleFromPath(source[0].abspath, target[0].abspath) and None, 121 | lambda target, source, env: "Generating Addon %s" % target[0] 122 | ) 123 | return action 124 | 125 | 126 | def manifestGenerator(target, source, env, for_signature): 127 | action = env.Action( 128 | lambda target, source, env: generateManifest(source[0].abspath, target[0].abspath) and None, 129 | lambda target, source, env: "Generating manifest %s" % target[0] 130 | ) 131 | return action 132 | 133 | 134 | def translatedManifestGenerator(target, source, env, for_signature): 135 | dir = os.path.abspath(os.path.join(os.path.dirname(str(source[0])), "..")) 136 | lang = os.path.basename(dir) 137 | action = env.Action( 138 | lambda target, source, env: generateTranslatedManifest(source[1].abspath, lang, target[0].abspath) and None, 139 | lambda target, source, env: "Generating translated manifest %s" % target[0] 140 | ) 141 | return action 142 | 143 | 144 | env['BUILDERS']['NVDAAddon'] = Builder(generator=addonGenerator) 145 | env['BUILDERS']['NVDAManifest'] = Builder(generator=manifestGenerator) 146 | env['BUILDERS']['NVDATranslatedManifest'] = Builder(generator=translatedManifestGenerator) 147 | 148 | 149 | def createAddonHelp(dir): 150 | docsDir = os.path.join(dir, "doc") 151 | if os.path.isfile("style.css"): 152 | cssPath = os.path.join(docsDir, "style.css") 153 | cssTarget = env.Command(cssPath, "style.css", Copy("$TARGET", "$SOURCE")) 154 | env.Depends(addon, cssTarget) 155 | if os.path.isfile("readme.md"): 156 | readmePath = os.path.join(docsDir, buildVars.baseLanguage, "readme.md") 157 | readmeTarget = env.Command(readmePath, "readme.md", Copy("$TARGET", "$SOURCE")) 158 | env.Depends(addon, readmeTarget) 159 | 160 | 161 | def createAddonBundleFromPath(path, dest): 162 | """ Creates a bundle from a directory that contains an addon manifest file.""" 163 | basedir = os.path.abspath(path) 164 | with zipfile.ZipFile(dest, 'w', zipfile.ZIP_DEFLATED) as z: 165 | # FIXME: the include/exclude feature may or may not be useful. Also python files can be pre-compiled. 166 | for dir, dirnames, filenames in os.walk(basedir): 167 | relativePath = os.path.relpath(dir, basedir) 168 | for filename in filenames: 169 | pathInBundle = os.path.join(relativePath, filename) 170 | absPath = os.path.join(dir, filename) 171 | if pathInBundle not in buildVars.excludedFiles: 172 | z.write(absPath, pathInBundle) 173 | createAddonStoreJson(dest) 174 | return dest 175 | 176 | 177 | def createAddonStoreJson(bundle): 178 | """Creates add-on store JSON file from an add-on package and manifest data.""" 179 | import json 180 | import hashlib 181 | # Set different json file names and version number properties based on version number parsing results. 182 | if env["versionNumber"] == "0.0.0": 183 | env["versionNumber"] = buildVars.addon_info["addon_version"] 184 | versionNumberParsed = env["versionNumber"].split(".") 185 | if all([part.isnumeric() for part in versionNumberParsed]): 186 | if len(versionNumberParsed) == 1: 187 | versionNumberParsed += ["0", "0"] 188 | elif len(versionNumberParsed) == 2: 189 | versionNumberParsed.append("0") 190 | else: 191 | versionNumberParsed = [] 192 | if len(versionNumberParsed): 193 | major, minor, patch = [int(part) for part in versionNumberParsed] 194 | jsonFilename = f'{major}.{minor}.{patch}.json' 195 | else: 196 | jsonFilename = f'{buildVars.addon_info["addon_version"]}.json' 197 | major, minor, patch = 0, 0, 0 198 | print('Generating % s' % jsonFilename) 199 | sha256 = hashlib.sha256() 200 | with open(bundle, "rb") as f: 201 | for byte_block in iter(lambda: f.read(65536), b""): 202 | sha256.update(byte_block) 203 | hashValue = sha256.hexdigest() 204 | try: 205 | minimumNVDAVersion = buildVars.addon_info["addon_minimumNVDAVersion"].split(".") 206 | except AttributeError: 207 | minimumNVDAVersion = [0, 0, 0] 208 | minMajor, minMinor = minimumNVDAVersion[:2] 209 | minPatch = minimumNVDAVersion[-1] if len(minimumNVDAVersion) == 3 else "0" 210 | try: 211 | lastTestedNVDAVersion = buildVars.addon_info["addon_lastTestedNVDAVersion"].split(".") 212 | except AttributeError: 213 | lastTestedNVDAVersion = [0, 0, 0] 214 | lastTestedMajor, lastTestedMinor = lastTestedNVDAVersion[:2] 215 | lastTestedPatch = lastTestedNVDAVersion[-1] if len(lastTestedNVDAVersion) == 3 else "0" 216 | channel = buildVars.addon_info["addon_updateChannel"] 217 | if channel is None: 218 | channel = "stable" 219 | addonStoreEntry = { 220 | "addonId": buildVars.addon_info["addon_name"], 221 | "displayName": buildVars.addon_info["addon_summary"], 222 | "URL": "", 223 | "description": buildVars.addon_info["addon_description"], 224 | "sha256": hashValue, 225 | "homepage": buildVars.addon_info["addon_url"], 226 | "addonVersionName": buildVars.addon_info["addon_version"], 227 | "addonVersionNumber": { 228 | "major": major, 229 | "minor": minor, 230 | "patch": patch 231 | }, 232 | "minNVDAVersion": { 233 | "major": int(minMajor), 234 | "minor": int(minMinor), 235 | "patch": int(minPatch) 236 | }, 237 | "lastTestedVersion": { 238 | "major": int(lastTestedMajor), 239 | "minor": int(lastTestedMinor), 240 | "patch": int(lastTestedPatch) 241 | }, 242 | "channel": channel, 243 | "publisher": "", 244 | "sourceURL": buildVars.addon_info["addon_sourceURL"], 245 | "license": buildVars.addon_info["addon_license"], 246 | "licenseURL": buildVars.addon_info["addon_licenseURL"], 247 | } 248 | with open(jsonFilename, "w") as addonStoreJson: 249 | json.dump(addonStoreEntry, addonStoreJson, indent="\t") 250 | 251 | 252 | def generateManifest(source, dest): 253 | addon_info = buildVars.addon_info 254 | with codecs.open(source, "r", "utf-8") as f: 255 | manifest_template = f.read() 256 | manifest = manifest_template.format(**addon_info) 257 | with codecs.open(dest, "w", "utf-8") as f: 258 | f.write(manifest) 259 | 260 | 261 | def generateTranslatedManifest(source, language, out): 262 | _ = gettext.translation("nvda", localedir=os.path.join("addon", "locale"), languages=[language]).gettext 263 | vars = {} 264 | for var in ("addon_summary", "addon_description"): 265 | vars[var] = _(buildVars.addon_info[var]) 266 | with codecs.open(source, "r", "utf-8") as f: 267 | manifest_template = f.read() 268 | result = manifest_template.format(**vars) 269 | with codecs.open(out, "w", "utf-8") as f: 270 | f.write(result) 271 | 272 | 273 | def expandGlobs(files): 274 | return [f for pattern in files for f in env.Glob(pattern)] 275 | 276 | 277 | addon = env.NVDAAddon(addonFile, env.Dir('addon')) 278 | 279 | langDirs = [f for f in env.Glob(os.path.join("addon", "locale", "*"))] 280 | 281 | # Allow all NVDA's gettext po files to be compiled in source/locale, and manifest files to be generated 282 | for dir in langDirs: 283 | poFile = dir.File(os.path.join("LC_MESSAGES", "nvda.po")) 284 | moFile = env.gettextMoFile(poFile) 285 | env.Depends(moFile, poFile) 286 | translatedManifest = env.NVDATranslatedManifest( 287 | dir.File("manifest.ini"), 288 | [moFile, os.path.join("manifest-translated.ini.tpl")] 289 | ) 290 | env.Depends(translatedManifest, ["buildVars.py"]) 291 | env.Depends(addon, [translatedManifest, moFile]) 292 | 293 | pythonFiles = expandGlobs(buildVars.pythonSources) 294 | for file in pythonFiles: 295 | env.Depends(addon, file) 296 | 297 | # Convert markdown files to html 298 | # We need at least doc in English and should enable the Help button for the add-on in Add-ons Manager 299 | createAddonHelp("addon") 300 | for mdFile in env.Glob(os.path.join('addon', 'doc', '*', '*.md')): 301 | htmlFile = env.markdown(mdFile) 302 | env.Depends(htmlFile, [mdFile, moFile]) 303 | env.Depends(addon, htmlFile) 304 | 305 | # Pot target 306 | i18nFiles = expandGlobs(buildVars.i18nSources) 307 | gettextvars = { 308 | 'gettext_package_bugs_address': 'nvda-translations@groups.io', 309 | 'gettext_package_name': buildVars.addon_info['addon_name'], 310 | 'gettext_package_version': buildVars.addon_info['addon_version'] 311 | } 312 | 313 | pot = env.gettextPotFile("${addon_name}.pot", i18nFiles, **gettextvars) 314 | env.Alias('pot', pot) 315 | env.Depends(pot, i18nFiles) 316 | mergePot = env.gettextMergePotFile("${addon_name}-merge.pot", i18nFiles, **gettextvars) 317 | env.Alias('mergePot', mergePot) 318 | env.Depends(mergePot, i18nFiles) 319 | 320 | # Generate Manifest path 321 | manifest = env.NVDAManifest(os.path.join("addon", "manifest.ini"), os.path.join("manifest.ini.tpl")) 322 | # Ensure manifest is rebuilt if buildVars is updated. 323 | env.Depends(manifest, "buildVars.py") 324 | 325 | env.Depends(addon, manifest) 326 | env.Default(addon) 327 | env.Clean(addon, ['.sconsign.dblite', 'addon/doc/' + buildVars.baseLanguage + '/']) 328 | -------------------------------------------------------------------------------- /addon/GlobalPlugins/UnigramPlus/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import globalPluginHandler 3 | import globalVars 4 | import addonHandler 5 | from scriptHandler import script 6 | import api 7 | import gui 8 | from gui import guiHelper, nvdaControls 9 | from gui.settingsDialogs import SettingsPanel 10 | import wx 11 | import urllib.request 12 | import core 13 | import globalVars 14 | import os 15 | addonHandler.initTranslation() 16 | import languageHandler 17 | import queueHandler 18 | from utils.security import objectBelowLockScreenAndWindowsIsLocked 19 | import threading, time, queue, random 20 | from appModules.cnf import conf, listLanguages, lang 21 | from appModules.unigram import AppModule 22 | from ui import message 23 | 24 | path_to_server = "http://46.254.107.124/addons/unigramplus/" 25 | 26 | def no_updates_dialog(): 27 | res = gui.messageBox( 28 | _("No updates available"), 29 | _("UnigramPlus update"), 30 | wx.OK | wx.ICON_INFORMATION) 31 | 32 | def onCheckForUpdates(event = False, is_start = False): 33 | import versionInfo 34 | NVDAVersion = f"{versionInfo.version_year}.{versionInfo.version_major}.{versionInfo.version_minor}" 35 | NVDAVersion = int(NVDAVersion.replace(".", "")) 36 | fp = os.path.join(globalVars.appArgs.configPath, "unigramplus.nvda-addon") 37 | addon_version = addonHandler.getCodeAddon().manifest["version"] 38 | addon_version = int(addon_version.replace(".", "")) 39 | try: response = urllib.request.urlopen(path_to_server+"version.txt").read().decode('utf-8') 40 | except: 41 | if not is_start: wx.CallAfter(no_updates_dialog) 42 | return 43 | response = str(response) 44 | str_last_version = response.split("\n")[0] 45 | last_version = int(str_last_version.replace(".", "")) 46 | minimum_version = response.split("\n")[1] 47 | minimum_version = int(minimum_version.replace(".", "")) 48 | url = response.split("\n")[-1] 49 | if last_version > addon_version and NVDAVersion >= minimum_version: 50 | wx.CallAfter(window_for_update, None, str_last_version, url) 51 | elif not is_start: wx.CallAfter(no_updates_dialog) 52 | 53 | class window_for_update(wx.Frame): 54 | def __init__(self, parent, str_last_version, url): 55 | title = _("UnigramPlus update") 56 | text = _("A new version of the add-on is available. Do you want to update UnigramPlus to version %version?").replace("%version", str_last_version) 57 | no_resize = wx.DEFAULT_FRAME_STYLE & ~ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX) 58 | wx.Frame.__init__(self, parent, title = title, size = (640, 360), style=no_resize) 59 | self.url = str(url) 60 | self.str_last_version = str_last_version 61 | self.Centre() 62 | panel = wx.Panel(self, wx.ID_ANY) 63 | self.text = wx.TextCtrl(panel, -1, text, style = wx.TE_MULTILINE | wx.TE_READONLY) 64 | self.text.SetValue(text) 65 | self.text.SetFocus() 66 | self.button_ok = wx.Button(panel, label=_("Yes, update"), id=-1) 67 | self.button_close= wx.Button(panel, label=_("No, not now"), id=-1) 68 | self.button_ok.Bind(wx.EVT_BUTTON,self.download_update) 69 | self.button_close.Bind(wx.EVT_BUTTON,self.window_close) 70 | sizer = wx.BoxSizer(wx.VERTICAL) 71 | buttons_sizer = wx.BoxSizer(wx.HORIZONTAL) 72 | buttons_sizer.Add(self.button_ok) 73 | buttons_sizer.Add(self.button_close) 74 | sizer.Add(self.text, 1, wx.EXPAND) 75 | sizer.Add(buttons_sizer, flag = wx.ALL | wx.ALIGN_RIGHT, border=5) 76 | panel.SetSizer(sizer) 77 | self.Raise() 78 | self.Show(True) 79 | self.get_documentation() 80 | 81 | def download_update(self, event): 82 | self.text.SetValue(_("Download in progress")) 83 | self.text.SetFocus() 84 | self.button_ok.Disable() 85 | self.button_close.Disable() 86 | try: response_addon = urllib.request.urlopen(self.url).read() 87 | except: 88 | no_updates_dialog() 89 | self.Close() 90 | return 91 | fp = os.path.join(globalVars.appArgs.configPath, "unigramplus.nvda-addon") 92 | with open(fp, 'wb') as addon: 93 | addon.write(response_addon) 94 | self.setup_update(fp) 95 | 96 | def window_close(self, event): 97 | self.Close() 98 | 99 | def get_documentation(self): 100 | doc = False 101 | url = path_to_server+"documentation/"+self.str_last_version+"/"+lang+".txt" 102 | try: doc = urllib.request.urlopen(url).read().decode('utf-8') 103 | except: pass 104 | try: 105 | url = path_to_server+"documentation/"+self.str_last_version+"/en.txt" 106 | if not doc: doc = urllib.request.urlopen(url).read().decode('utf-8') 107 | except: pass 108 | if doc: text = "\n"+_("Changes in this version:")+"\n"+str(doc) 109 | else: text = "\n"+_(_("No update information")) 110 | self.text.SetValue(self.text.GetValue()+text) 111 | 112 | def setup_update(self, fp): 113 | curAddons = addonHandler.getAvailableAddons() 114 | bundle = addonHandler.AddonBundle(fp) 115 | bundleName = bundle.manifest['name'] 116 | prevAddon = next((addon for addon in curAddons if not addon.isPendingRemove and bundleName == addon.manifest['name']), None) 117 | if prevAddon: prevAddon.requestRemove() 118 | addonHandler.installAddonBundle(bundle) 119 | core.restart() 120 | 121 | 122 | class GlobalPlugin(globalPluginHandler.GlobalPlugin): 123 | scriptCategory = "UnigramPlus" 124 | def __init__(self, *args, **kwargs): 125 | super().__init__(*args, **kwargs) 126 | gui.settingsDialogs.NVDASettingsDialog.categoryClasses.append(UnigramPlusSettings) 127 | # Check if the user folder contains a temporary add-on file, if so, then delete it 128 | fp = os.path.join(globalVars.appArgs.configPath, "unigramplus.nvda-addon") 129 | if os.path.exists(fp): os.remove(fp) 130 | # Checking for updates 131 | if conf.get("is_automatically_check_for_updates") and not globalVars.appArgs.secure: 132 | threading.Thread(target=onCheckForUpdates, args=(False, True,)).start() 133 | 134 | @script(description=_("Open UnigramPlus settings window"), gesture="kb:NVDA+ALT+U") 135 | def script_open_settings_dialog(self, gesture, arg = False): 136 | wx.CallAfter(gui.mainFrame._popupSettingsDialog, gui.settingsDialogs.NVDASettingsDialog, UnigramPlusSettings) 137 | 138 | # Call answer 139 | @script(description=_("Accept call"), gesture="kb:ALT+Y") 140 | def script_answeringCall(self, gesture): 141 | gesture.send() 142 | desctop = api.getDesktopObject() 143 | # notification = next((item.firstChild.firstChild for item in desctop.children if item.firstChild and hasattr(item.firstChild, "UIAAutomationId") and item.firstChild.UIAAutomationId == "PriorityToastView"), False) 144 | notification = next((item.firstChild.firstChild for item in desctop.children if item.firstChild and hasattr(item.firstChild, "UIAAutomationId") and item.firstChild.UIAAutomationId == "ToastCenterScrollViewer"), False) 145 | if not notification: 146 | return 147 | button = next((item for item in notification.children if item.UIAAutomationId == "VerbButton"), None) 148 | if button: button.doAction() 149 | 150 | # End a call, decline call, or leave a voice chat 151 | @script(description=_("Press \"Decline call\" button if there is an incoming call, \"End call\" button if a call is in progress or leave voice chat if it is active."), gesture="kb:ALT+N") 152 | def script_callCancellation(self, gesture): 153 | gesture.send() 154 | desctop = api.getDesktopObject() 155 | # notification = next((item.firstChild for item in desctop.children if item.firstChild and hasattr(item.firstChild, "UIAAutomationId") and item.firstChild.UIAAutomationId == "PriorityToastView"), False) 156 | notification = next((item.firstChild.firstChild for item in desctop.children if item.firstChild and hasattr(item.firstChild, "UIAAutomationId") and item.firstChild.UIAAutomationId == "ToastCenterScrollViewer"), False) 157 | button = None 158 | if notification: 159 | button = next((item.next for item in notification.children if item.UIAAutomationId == "VerbButton"), None) 160 | if button: 161 | button.doAction() 162 | return 163 | AppModule.script_callCancellation(AppModule, gesture) 164 | 165 | 166 | class UnigramPlusSettings(SettingsPanel): 167 | title = "UnigramPlus" 168 | listVoiceTypeAfterChatName = { 169 | "beforeName": _("Before chat name"), 170 | "afterName": _("After chat name"), 171 | "don'tVoice": _("Do not speak chat type") 172 | } 173 | listVoiceMessageRecordingIndicator = { 174 | "none": _("Revert to standard voice message recording behavior"), 175 | "text": _("Text notification"), 176 | "audio": _("sound notification") 177 | } 178 | listVoicingPerformanceIndicators = { 179 | "all": _("Announce all progress bars"), 180 | "none": _("Do not announce any progress bars"), 181 | # "normal": _("Announce some progress bars") 182 | } 183 | listSaySenderName = { 184 | "none": _("Do not say at all"), 185 | "sent": _("Only in sent messages"), 186 | "received": _("Only in received messages"), 187 | "all": _("In all messages") 188 | } 189 | list_actions_when_pressing_up_arrow_in_text_field = { 190 | "block": _("Do nothing"), 191 | "normal": _("Activate editing of last sent message"), 192 | "to_messages": _("Move focus to the last message in a chat"), 193 | } 194 | 195 | def makeSettings(self, settingsSizer): 196 | settingsSizerHelper = gui.guiHelper.BoxSizerHelper(self, sizer=settingsSizer) 197 | # Selecting an interface language 198 | # self.lang = settingsSizerHelper.addLabeledControl(_("Interface language in Unigram:"), wx.Choice, choices=[listLanguages[item] for item in listLanguages]) 199 | self.lang = settingsSizerHelper.addLabeledControl(_("Interface language in Unigram:"), wx.Choice, choices=list(listLanguages.values())) 200 | self.lang.SetStringSelection(listLanguages[conf.get("lang")]) 201 | # Chat type announce mode 202 | self.voiceTypeAfterChatName = settingsSizerHelper.addLabeledControl(_("Speak the type of chat in the chat list:"), wx.Choice, choices=[self.listVoiceTypeAfterChatName[item] for item in self.listVoiceTypeAfterChatName]) 203 | self.voiceTypeAfterChatName.SetStringSelection(self.listVoiceTypeAfterChatName[conf.get("voiceTypeAfterChatName")]) 204 | # Message sender announcement 205 | self.saySenderName = settingsSizerHelper.addLabeledControl(_("Say the sender's name in:"), wx.Choice, choices=[self.listSaySenderName[item] for item in self.listSaySenderName]) 206 | self.saySenderName.SetStringSelection(self.listSaySenderName[conf.get("saySenderName")]) 207 | # Selecting the action when pressing the up arrow in the text editor 208 | self.action_when_pressing_up_arrow_in_text_field = settingsSizerHelper.addLabeledControl( 209 | _("Action when pressing the up arrow in the message edit field"), wx.Choice, choices=list(self.list_actions_when_pressing_up_arrow_in_text_field.values())) 210 | self.action_when_pressing_up_arrow_in_text_field.SetStringSelection(self.list_actions_when_pressing_up_arrow_in_text_field[conf.get("action_when_pressing_up_arrow_in_text_field")]) 211 | # Report not seen before message content 212 | self.unreadBeforeMessageContent = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Speak \"Not Seen\" before reading contents of a message"))) 213 | self.unreadBeforeMessageContent.SetValue(conf.get("unreadBeforeMessageContent")) 214 | # Announce the phrases "Administrator" and "Owner" on messages in communities 215 | self.notify_administrators_in_messages = settingsSizerHelper.addItem(wx.CheckBox( 216 | self, label=_('Announce the phrases "Administrator" and "Owner" on messages in communities'))) 217 | self.notify_administrators_in_messages.SetValue( 218 | conf.get("notify administrators in messages")) 219 | # Speak active folder name when switching between them 220 | self.voiceFolderNames = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Speak folder names when switching between them"))) 221 | self.voiceFolderNames.SetValue(conf.get("voiceFolderNames")) 222 | # Delete alert type 223 | self.audioPlaybackWhenDeleted = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Notify about deleting a message and chat with a sound"))) 224 | self.audioPlaybackWhenDeleted.SetValue(conf.get("audioPlaybackWhenDeleted")) 225 | # Show confirmation window when deleting 226 | self.confirmation_at_deletion = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Display confirmation dialog when deleting messages and chats"))) 227 | self.confirmation_at_deletion.SetValue(conf.get("confirmation_at_deletion")) 228 | # Type of notification when recording voice messages 229 | self.voiceMessageRecordingIndicator = settingsSizerHelper.addLabeledControl(_("Set voice message recording notification method as:"), wx.Choice, choices=[self.listVoiceMessageRecordingIndicator[item] for item in self.listVoiceMessageRecordingIndicator]) 230 | self.voiceMessageRecordingIndicator.SetStringSelection(self.listVoiceMessageRecordingIndicator[conf.get("voiceMessageRecordingIndicator")]) 231 | # Progress bar announce 232 | self.voicingPerformanceIndicators = settingsSizerHelper.addLabeledControl(_("Select the progress bar notification level:"), wx.Choice, choices=[self.listVoicingPerformanceIndicators[item] for item in self.listVoicingPerformanceIndicators]) 233 | self.voicingPerformanceIndicators.SetStringSelection(self.listVoicingPerformanceIndicators[conf.get("voicingPerformanceIndicators")]) 234 | # Processing messages containing links 235 | self.actionDescriptionForLinks = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Read description of URLs attached to messages"))) 236 | self.actionDescriptionForLinks.SetValue(conf.get("actionDescriptionForLinks")) 237 | # Announcement of the full description of YouTube links 238 | self.voiceFullDescriptionOfLinkToYoutube = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Read full video description in YouTube URLs"))) 239 | self.voiceFullDescriptionOfLinkToYoutube.SetValue(conf.get("voiceFullDescriptionOfLinkToYoutube")) 240 | # Report if the group has replies for you 241 | # self.isAnnouncesAnswers = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Announce if there is a reply in the group"))) 242 | # self.isAnnouncesAnswers.SetValue(conf.get("isAnnouncesAnswers")) 243 | # Report information about premium and verified accounts 244 | # self.report_premium_accounts = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Announce premium and confirmed accounts"))) 245 | # self.report_premium_accounts.SetValue(conf.get("report premium accounts")) 246 | # Report if the message contains a reaction 247 | self.voice_the_presence_of_a_reaction = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Announce if the message contains a reaction"))) 248 | self.voice_the_presence_of_a_reaction.SetValue(conf.get("voice_the_presence_of_a_reaction")) 249 | # Fix toggle buttons for some users 250 | self.isFixedToggleButton = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Check this box if the voice message recording function or the voice message playback speed change function does not work properly"))) 251 | self.isFixedToggleButton.SetValue(conf.get("isFixedToggleButton")) 252 | # Checking for Updates on NVDA Startup 253 | self.is_automatically_check_for_updates = settingsSizerHelper.addItem(wx.CheckBox(self, label=_("Check for UnigramPlus updates on NVDA startup"))) 254 | self.is_automatically_check_for_updates.SetValue(conf.get("is_automatically_check_for_updates")) 255 | # Button to check for updates 256 | self.checkForUpdates = settingsSizerHelper.addItem(wx.Button(self, label=_("Check for &updates"))) 257 | self.checkForUpdates.Bind(wx.EVT_BUTTON, onCheckForUpdates) 258 | 259 | def get_key(self, d, value): 260 | for k, v in d.items(): 261 | if v == value: return k 262 | 263 | def onSave(self): 264 | conf.set("voiceTypeAfterChatName", self.get_key(self.listVoiceTypeAfterChatName, self.voiceTypeAfterChatName.GetStringSelection())) 265 | conf.set("saySenderName", self.get_key(self.listSaySenderName, self.saySenderName.GetStringSelection())) 266 | conf.set("unreadBeforeMessageContent", self.unreadBeforeMessageContent.IsChecked()) 267 | conf.set("notify administrators in messages", 268 | self.notify_administrators_in_messages.IsChecked()) 269 | conf.set("voiceFolderNames", self.voiceFolderNames.IsChecked()) 270 | conf.set("confirmation_at_deletion", self.confirmation_at_deletion.IsChecked()) 271 | conf.set("audioPlaybackWhenDeleted", self.audioPlaybackWhenDeleted.IsChecked()) 272 | conf.set("voiceMessageRecordingIndicator", self.get_key(self.listVoiceMessageRecordingIndicator, self.voiceMessageRecordingIndicator.GetStringSelection())) 273 | conf.set("voicingPerformanceIndicators", self.get_key(self.listVoicingPerformanceIndicators, self.voicingPerformanceIndicators.GetStringSelection())) 274 | conf.set("lang", self.get_key(listLanguages, self.lang.GetStringSelection())) 275 | conf.set("action_when_pressing_up_arrow_in_text_field", self.get_key(self.list_actions_when_pressing_up_arrow_in_text_field, self.action_when_pressing_up_arrow_in_text_field.GetStringSelection())) 276 | conf.set("actionDescriptionForLinks", self.actionDescriptionForLinks.IsChecked()) 277 | conf.set("voiceFullDescriptionOfLinkToYoutube", self.voiceFullDescriptionOfLinkToYoutube.IsChecked()) 278 | # conf.set("isAnnouncesAnswers", self.isAnnouncesAnswers.IsChecked()) 279 | # conf.set("report premium accounts", self.report_premium_accounts.IsChecked()) 280 | conf.set("voice_the_presence_of_a_reaction", self.voice_the_presence_of_a_reaction.IsChecked()) 281 | conf.set("isFixedToggleButton", self.isFixedToggleButton.IsChecked()) 282 | conf.set("is_automatically_check_for_updates", self.is_automatically_check_for_updates.IsChecked()) 283 | -------------------------------------------------------------------------------- /addon/doc/fa/readme.md: -------------------------------------------------------------------------------- 1 | #یونیگرام پلاس 2 | 3 | * نویسنده: Kostya Gladkiy (اوکراین) 4 | * [کانال تلگرام] (https://t.me/unigramPlus) 5 | * تلگرام: @unigramPlus 6 | * پیوند اهدا: [https://unigramplus.diaka.ua/donate](https://unigramplus.diaka.ua/donate) 7 | * پی پال: gladkiy.kostya@gmail.com 8 | 9 | 10 | از Unigram به روشی راحت تر و سازنده تر استفاده کنید. این افزونه کلیدهای میانبر بسیاری را برای استفاده سریع و راحت از Unigram فراهم می کند و پیشرفت های کوچک زیادی را ایجاد می کند. 11 | ##برخی از پیشرفت های عمده عبارتند از: 12 | 13 | * بهبود قابل توجهی را در نمایش پیام هایی مانند نظرسنجی، پیوند یا پیام با رسانه پیوست اضافه می کند. 14 | * هنگامی که فوکوس وارد لیست چت ها می شود، عباراتی مانند "چت، برگه، لیست انتخاب شده" را حذف می کند. و هنگامی که فوکوس به لیست پیام ها می رسد، عبارت "فهرست" را نشان می دهد. 15 | * زمانی که مکان نما بر روی دکمه "باز کردن فایل" یا "دانلود فایل" متمرکز شود، نام و اندازه فایل گفته می شود و هنگامی که مکان نما بر روی دکمه پخش فایل صوتی متمرکز شود، آن را می شنوید. نام و مدت 16 | * وقتی روی پیام صوتی که در حال پخش است فوکوس می شود، ابتدا اطلاعات مربوط به زمان پخش آن و سپس تمام اطلاعات دیگر اعلام می شود. 17 | * وقتی تمرکز روی پیامی است که حاوی اطلاعات تماس است، مدت زمان این تماس اعلام می شود. 18 | * هنگام فوکوس بر روی یک پیام انتخابی در چت، ابتدا اطلاعات انتخاب شده و سپس محتوای پیام را می شنوید. 19 | * اکنون هنگام حرکت در چت، عبارت "دیده شده" به هیچ وجه تلفظ نمی شود و عبارت "دیده نشده" قبل از محتوای پیام تلفظ می شود. این ویژگی در حال حاضر فقط به زبان های انگلیسی، روسی، اوکراینی، اسپانیایی، پرتغالی، لهستانی، کرواتی، ترکی و فارسی کار می کند. 20 | * عملکرد ضبط پیام های صوتی به طور قابل توجهی بهبود یافته است. ضبط، ارسال و لغو ضبط یک پیام صوتی با صداهای مشخصه همراه است. همچنین هنگام انجام این عملکردها، فوکوس در موقعیت خود باقی می‌ماند و به دکمه ضبط یا فیلد ورودی پیام نمی‌پرد. 21 | * اگر رسانه متصل به پیام با استفاده از نوار فاصله باز شود، پس از بستن آن، فوکوس به آخرین عنصری که در فوکوس بود باز می گردد. 22 | * افزونه به شما این امکان را می دهد که اعلام نوار پیشرفت را به طور کامل غیرفعال کنید و همچنین فقط اعلام نوار پیشرفت را برای پخش پیام های صوتی غیرفعال کنید. 23 | 24 | ##اطلاعات در مورد فرصت اهدا به توسعه دهنده: 25 | اگر واقعاً این افزونه را دوست دارید و تمایل و مهمتر از همه این فرصت را دارید که از توسعه دهنده حمایت مالی کنید و از این طریق او را برای توسعه بیشتر این افزونه ترغیب کنید، می توانید با واریز مبلغ ناچیزی به بانک زیر این کار را انجام دهید. جزئیات: [پیوند اهدا] (https://unigramplus.diaka.ua/donate)، یا شماره کارت 5169360009004502 (اوکراین) است. 26 | و به یاد داشته باشید که همه کسانی که این خط را می خوانند فکر می کردند که کسی قطعاً از توسعه دهنده حمایت می کند ، اما من نخواهم بود. 27 | ## لیست کلیدهای میانبر: 28 | * ALT+1: انتقال فوکوس به لیست چت. 29 | * ALT+2: انتقال فوکوس به آخرین پیام در یک چت باز. 30 | * ALT+3: انتقال فوکوس به برچسب "پیام های خوانده نشده". 31 | * ALT+D: فوکوس را به قسمت ویرایش منتقل کنید. اگر فوکوس از قبل در قسمت ویرایش باشد، پس از فشار دادن کلید میانبر، به جایی که قبلا بود منتقل می شود. 32 | * ALT+T: نام و وضعیت یک چت باز را اعلام کنید. 33 | * فضا: پخش/توقف پیام صوتی یا ویدیویی متمرکز شده، یا باز کردن یک فایل رسانه ای پیوست شده به پیام فعلی. 34 | * ALT+P: پخش/مکث پیام صوتی در حال پخش. 35 | * ALT+S: افزایش/کاهش سرعت پخش پیام های صوتی. 36 | * ALT+E: بستن پخش کننده صوتی. 37 | * control+C: اگر پیام حاوی متن باشد کپی کنید. اگر تمرکز روی یک پیوند باشد، پیوند کپی می شود. 38 | * ALT+shift+C: اگر مخاطب است تماس بگیرید یا اگر گروهی است وارد چت صوتی شوید. 39 | * ALT+shift+V: دکمه تماس ویدیویی را فشار دهید. 40 | * ALT+Y: پذیرش تماس. 41 | * ALT+N: در صورت وجود تماس ورودی، دکمه \"رد تماس\"، اگر تماس در حال انجام است دکمه \"پایان تماس\" را فشار دهید یا در صورت فعال بودن چت صوتی را ترک کنید. 42 | * ALT+A: دکمه \"بی‌صدا/لغو میکروفون\" را فشار دهید. 43 | * ALT + C: دکمه "فعال/غیرفعال کردن دوربین" را فشار دهید. 44 | * ALT+Q: دکمه \"نمای فوری\" را فشار دهید، اگر در پیام فعلی موجود است. 45 | * ALT+O: دکمه "گزینه های بیشتر" را در یک گپ باز، چت صوتی یا پنجره تماس فشار دهید. 46 | * ALT+M: منوی ناوبری را باز کنید. 47 | * control+R: شروع/توقف ضبط پیام صوتی. 48 | * control+D: اگر یک بار فشار داده شود، ضبط یک پیام صوتی را لغو می کند. اگر دو بار فشار داده شود، هنگام شروع، ارسال یا لغو ضبط پیام صوتی، نوع اعلان را تغییر می‌دهد. 49 | * ALT+U: اعلان‌های نوار پیشرفت را تغییر دهید. 50 | * control+P: نمایه چت فعلی را باز کنید. 51 | * حذف: حذف یک پیام یا چت. 52 | * shift+delete: پیام یا چت را از هر دو طرف حذف کنید. 53 | * control+ALT+C: نظرات را باز کنید. 54 | * تعیین نشده: پاسخ به پیام. 55 | * ALT+F: پیام را فوروارد کنید. 56 | * تعیین نشده: ویرایش پیام. 57 | * ALT+shift+R: علامت گذاری یک چت به عنوان خوانده شده. 58 | * کنترل + فضا: تغییر به حالت انتخاب. 59 | * control+shift+C: کپی پیام ها با قالب بندی حفظ شده. 60 | * ALT+shift+L: کپی داده ها برای پخش در کلیپ بورد. 61 | * کنترل + ALT + پیکان سمت راست: پیام صوتی را سریع به جلو بفرستید. 62 | * کنترل + ALT + پیکان چپ: پیام صوتی را به عقب برگردانید. 63 | * ALT+C: نمایش متن پیام در پنجره بازشو. 64 | * NVDA+control+U: پنجره تنظیمات UnigramPlus را باز کنید 65 | * ALT+4: فوکوس را به لیست پوشه های چت منتقل کنید. 66 | * control+shift+A: دکمه "Attach file" را فشار دهید. 67 | * control+N: دکمه «چت جدید» را فشار دهید. 68 | * اختصاص داده نشده: پین کردن یک پیام یا چت. 69 | 70 | ### توجه داشته باشید 71 | 72 | * همه کلیدهای میانبر را می توان در منوی NVDA > تنظیمات برگزیده > حرکات ورودی مجدداً اختصاص داد. 73 | * این واقعیت که تابعی که مکان نما را روی برچسب "پیام خوانده نشده" متمرکز می کند، گاهی اوقات می تواند با تاخیر واکنش نشان دهد، یک مسئله شناخته شده است. این ممکن است به تعداد پیام های نقدی در حال حاضر بستگی داشته باشد. 74 | 75 | ##فهرست تغییرات: 76 | 77 | ###نسخه 4.3.0 78 | 79 | * اکنون UnigramPlus هنگامی که چندین چت در پنجره های مختلف باز است به درستی کار می کند. 80 | * اضافه شدن میانبر صفحه کلید برای انتقال فوکوس به قسمت نمایه کاربر در صورت باز بودن. ژست پیش فرض alt+5 است. 81 | * رفع اشکالات جزئی. 82 | 83 | ###نسخه 4.2.0 84 | 85 | * مکانیسم ذخیره تنظیمات UnigramPlus به طور قابل توجهی دوباره طراحی شده است. اکنون تنظیمات در فایل کانفیگ NVDA ذخیره نمی شود، بلکه در فایل پیکربندی خودش ذخیره می شود. زمانی که کاربران پس از به‌روزرسانی یا ناگهان UnigramPlus به دلیل مشکلات دسترسی به فایل پیکربندی NVDA، کار خود را متوقف کردند، این مشکل را حل می‌کند. متأسفانه کاربران مجبور خواهند بود UnigramPlus را مجدداً برای خود پیکربندی کنند، زیرا پس از نصب این به روز رسانی، تمام تنظیمات بازنشانی می شود. 86 | * مشکل سازگاری UnigramPlus با افزونه BluetoothAudio برطرف شد. 87 | * اکنون اطلاعاتی که پیام انتخاب نشده است گزارش نمی شود. اگر پیامی انتخاب شود، اطلاعات مربوط به آن قبل از محتوای پیام اعلام می شود. 88 | * اکنون اگر موقعیت عنصر را در تنظیمات NVDA فعال کرده باشید، شماره سفارش عناصر در چت اعلام می شود. 89 | * اضافه شدن برچسب به برخی از دکمه ها. 90 | 91 | ###نسخه 4.1.0 92 | 93 | * یک حرکت برای پین کردن یک پیام یا چت اضافه شده است. به طور پیش فرض، هیچ میانبری صفحه کلید به این ویژگی اختصاص داده نمی شود. 94 | * یک میانبر صفحه کلید برای فشار دادن دکمه "مکالمه جدید" اضافه شده است. ژست پیش فرض برای این ویژگی ctrl+n است. 95 | * یک میانبر صفحه کلید برای فشار دادن دکمه "Attach media" اضافه شده است. ژست پیش فرض ctrl+shift+a است. 96 | * یک میانبر صفحه کلید برای رفتن به لیست پوشه های چت اضافه شده است. ژست پیش فرض alt+4 است. این ویژگی برای کسانی که از بیش از نه پوشه چت استفاده می کنند مفید خواهد بود. 97 | * اکنون، هنگام جابجایی بین پوشه ها با استفاده از فلش ها، فوکوس به جایی نخواهد رفت. 98 | * اکنون هنگام جابجایی بین پوشه ها با استفاده از کلیدهای میانبر، علاوه بر نام پوشه فعال، تعداد چت های خوانده نشده در این پوشه نیز اعلام می شود. 99 | * اکنون ویژگی هایی مانند "علامت گذاری یک چت به عنوان خوانده شده" و "پین کردن یک پیام یا چت" نیز به صورت معکوس کار خواهند کرد. 100 | * اضافه شدن بومی سازی رومانیایی. 101 | 102 | ###نسخه 4.0.0 103 | 104 | * سازگاری با Unigram 8.8 ارائه شده است. از آنجایی که رابط Unigram تغییر کرده است، مجبور شدم بخش قابل توجهی از کد افزونه را بازنویسی کنم. 105 | * اضافه شدن قابلیت به عقب و جلو بردن سریع پیام های صوتی. برای جلو بردن سریع از ترکیب کنترل + فلش راست و برای عقب بردن از کنترل + فلش چپ استفاده کنید. 106 | * اکنون یونیگرام پلاس نه تنها حضور واکنش ها در پیام ها را گزارش می دهد، بلکه اطلاعات دقیقی از واکنش ها را نیز اعلام می کند. 107 | * امکان مشاهده متن پیام در پنجره بازشو اضافه شد. ژست پیش فرض برای این ویژگی ALT+C است. 108 | * اضافه شدن میانبر صفحه کلید برای باز کردن پنجره تنظیمات UnigramPlus. ژست پیش فرض برای این ویژگی NVDA+control+U است 109 | * اضافه شدن بومی سازی های چک و رومانیایی. 110 | * رفع مشکل به روز رسانی UnigramPlus برای ساکنان اوکراین. 111 | 112 | ###نسخه 3.2.3 113 | 114 | * اضافه شدن محلی سازی چینی. 115 | * به روز رسانی محلی سازی های موجود، از جمله انگلیسی. 116 | * رفع اشکالات جزئی. 117 | 118 | ###نسخه 3.2.0 119 | 120 | * ویژگی‌هایی مانند «ردیابی فعالیت چت» و «خواندن پیام‌های جدید در گپ باز» حذف شد، زیرا نتوانستم آنها را به درستی در NVDA 2022.1 کار کنم. 121 | * بهبود دسترسی به قطع / باصدا کردن و روشن / خاموش کردن دوربین در تماس ها. حال پس از فشار دادن میانبر هر دو عملکرد، وضعیت آنها اعلام می شود. 122 | * رفع مشکلی که در آن کلید Enter روی برخی از عناصر به درستی کار نمی کرد. اکنون می توانید با نگه داشتن کلید Enter روی دکمه ضبط، پیام های صوتی را ضبط کنید. 123 | * اکنون می توانید میانبرهای صفحه کلید را به ویژگی هایی مانند "پاسخ به پیام" و "ویرایش پیام" مجددا اختصاص دهید. همچنین می‌توانید این عملکردها را به کلیدهایی مانند Enter، Backspace یا حتی فلش‌های چپ یا راست اختصاص دهید و با آن کلیدها در موارد دیگر تداخلی ایجاد نخواهد کرد. توجه داشته باشید که در ابتدا هیچ کلیدی به این ویژگی ها اختصاص داده نمی شود، اما تنها زمانی می توانید آنها را اختصاص دهید که تمرکز روی یکی از پیام های چت باشد. 124 | * حالا تابع "Say the فرستنده نام" باید به درستی کار کند. 125 | * وقتی روی پیوند موجود در یک پیام تمرکز می کنید، متن پیام ابتدا گفته نمی شود، اما متن پیوند بلافاصله گفته می شود. 126 | * بهبودهای کوچک بسیاری انجام داد و بسیاری از اشکالات و کاستی ها را برطرف کرد. 127 | * اکنون UnigramPlus باید به طور قابل توجهی سریعتر اجرا شود. 128 | 129 | ###نسخه 3.1.0 130 | 131 | * اعلام نظرسنجی بهبود یافته است. اسامی کاربرانی که در نظرسنجی شرکت کرده اند اکنون در پنجره نتایج اعلام می شود. نظرسنجی ها همچنین اطلاعاتی را در مورد اینکه کدام گزینه صحیح بوده ارائه می دهد. 132 | * قابلیت واکنش به پیام ها اضافه شده است، اما فقط در چت های خصوصی. این ویژگی در گروه ها و کانال ها به درستی کار نمی کند. در چت های خصوصی، با فشار دادن NVD + ALT + اعداد از 1 تا 5، می توانید واکنش های زیر را تایپ کنید: 1 - 👍، 2 - 👎، 3 - ❤، 4 - 🔥، 5 - 🥰. 133 | * قابلیت اعلام اطلاعات در مورد پاسخ های موجود به پیام ها اضافه شده است. متاسفانه هنوز نمی توان نام واکنش های موجود را اعلام کرد. 134 | * اضافه شدن کلید میانبر برای کپی سریع داده های مورد نیاز برای پخش. 135 | * مشکل نمایش نتایج درون خطی که در آخرین نسخه‌های Unigram ظاهر می‌شد، برطرف شد. 136 | 137 | ###نسخه 3.0.0 138 | 139 | هشدار! UnigramPlus اکنون از نسخه‌های NVDA که قدیمی‌تر از 21.2.0 نیستند پشتیبانی می‌کند. 140 | * اضافه شدن برچسب برای بسیاری از عناصر UI. 141 | * رفع برخی از اشکالات. 142 | 143 | ###نسخه 2.9.0 144 | 145 | * اکنون فیلد ویرایش بسته به اینکه به پیام پاسخ می دهیم یا در حال ویرایش آن هستیم، برچسب خود را تغییر می دهد. 146 | * قابلیت فعال کردن گفتگوی تایید برای حذف پیام ها یا چت ها با استفاده از کلیدهای میانبر در تنظیمات اضافه شده است. 147 | * اضافه شدن بومی سازی صربستان. 148 | * رفع مشکلات کوچک 149 | 150 | ###نسخه 2.8.0 151 | 152 | * قابلیت به روز رسانی افزونه از داخل افزونه اضافه شد. حال برای بررسی آپدیت ها و نصب آنها کافیست تنظیمات UnigramPlus را باز کرده و دکمه مربوطه را کلیک کنید. همچنین می‌توانید بررسی خودکار به‌روزرسانی‌ها را در راه‌اندازی NVDA فعال کنید. 153 | * اضافه شدن بومی سازی عربی. 154 | 155 | ###نسخه 2.7.0 156 | 157 | * اکنون به شما اطلاع داده می شود که پیام فوروارد شده است. 158 | * عملکرد کپی پیام بهبود یافته است. حال، اگر متن حاوی یک لینک قابل کلیک باشد و تمرکز روی آن لینک باشد، با فشار دادن CTRL+C، لینک به جای کل متن کپی می شود. 159 | * اضافه شدن کلید میانبر برای کپی کردن پیام ها با حفظ قالب بندی متن. این تابع فعال سازی مورد مربوطه را در منوی برنامه شبیه سازی می کند. کلید میانبر پیش فرض این ویژگی CTRL+shift+C است. به دلیل این ویژگی، کلید میانبر برای باز کردن نظرات به CTRL+ALT+C تغییر کرده است. 160 | * قابلیت اعلام خودکار پیام های جدید در چت باز اضافه شد. به طور پیش فرض، می توان آن را با فشار دادن ALT + L فعال کرد. 161 | * اضافه شدن کلیدهای میانبر برای مشاهده سریع پیام های چت. NVDA + CTRL + شماره مربوط به شماره یک پیام خاص را به ترتیب معکوس فشار دهید، یعنی اگر می خواهید آخرین پیام را مشاهده کنید، 1 را فشار دهید، اگر می خواهید پیام قبلی را مشاهده کنید، 2 و غیره را فشار دهید. 162 | * اکنون با فشار دادن ALT+T اطلاعاتی در مورد چت صوتی فعال در گروه فعلی به شما می دهد. 163 | 164 | ###نسخه 2.6.0 165 | 166 | * سازگاری با NVDA 21.3 ارائه شده است. 167 | * اضافه شدن کلید میانبر برای فعال کردن انتخاب پیام ها یا چت ها. 168 | * اضافه شدن کلید میانبر برای ارسال پیام ها. 169 | * اضافه شدن کلید میانبر برای علامت گذاری یک چت به عنوان خوانده شده. 170 | * بهبود عملکرد ویژگی های موجود. 171 | 172 | 173 | ###نسخه 2.5.0 174 | 175 | * اکنون یک چک باکس وجود دارد که در صورت علامت زدن، مشکل ضبط پیام صوتی که برخی از کاربران با آن مواجه هستند را برطرف می کند. 176 | * یک کلید میانبر برای پاسخ به یک پیام اضافه شده است. می‌توانید این کار را با فشار دادن Enter روی پیام انجام دهید یا می‌توانید کلیدهای میانبر جایگزین برای این ویژگی را به چیز دیگری اختصاص دهید. 177 | * اضافه شدن کلید میانبر برای ویرایش پیام ها. میانبر پیش فرض صفحه کلید ALT+Backspace است. 178 | 179 | ###نسخه 2.4.0 180 | 181 | * اکنون هنگام تمرکز روی یک پیام، نام فرستنده را خواهید شنید. 182 | * هنگام تمرکز روی یک چت گروهی که حاوی پیام‌های خوانده نشده است، اگر در آن گروه پاسخ‌هایی برای شما وجود داشته باشد، به شما اطلاع داده می‌شود. 183 | * عملکرد ویژگی های اضافه شده در به روز رسانی قبلی نیز بهبود یافته است. 184 | 185 | ###نسخه 2.3.0 186 | 187 | * بهبود دسترسی به پیام های حاوی پیوست های چند رسانه ای. پیش از این، عنوان پیام حاوی بیش از یک پیوست رسانه تنها با استفاده از ناوبری شی قابل دسترسی بود. حالا این کپشن بلافاصله پس از تمرکز روی چنین پیامی خوانده می شود. 188 | * بهبود دسترسی به پیام های حاوی نظرسنجی. حالا وقتی روی چنین پیامی تمرکز می کنید، تعداد افرادی که قبلا رای داده اند و همچنین تمام گزینه های پاسخ با نتیجه هر گزینه را می شنوید. 189 | * بهبود دسترسی به پیام های حاوی URL. حالا اگر URL توضیحاتی داشته باشد، خوانده می شود، به عنوان مثال، اگر پیام دارای URL برای یوتیوب باشد، عنوان و توضیحات آن ویدیو درست بعد از خود URL خوانده می شود. همچنین، اگر URL بیشتر از 30 کاراکتر باشد، برای سهولت خواندن توضیحات زیر کوتاه می شود. 190 | * دسترسی بهتر به پانل نتایج جستجوی درون خطی. برای پیمایش در نتایج پرس و جوهای درون خطی، از ترکیب های زیر استفاده کنید: کنترل+بالا و کنترل+پایین. 191 | * کلید میانبر برای باز کردن نظرات اضافه شد. 192 | 193 | ###نسخه 2.2.0 194 | 195 | * کلید میانبر برای حذف پیام ها یا چت ها فقط برای شما و همچنین در هر دو طرف اضافه شده است. این تابع مربوط به زبان رابط Unigram است، بنابراین ممکن است در برخی از محلی سازی ها کار نکند. در تنظیمات می توانید نوع اعلان ها، متن یا صدا را انتخاب کنید. 196 | * قابلیت تعیین زبان رابط کاربری در Unigram در تنظیمات اضافه شد. این برای عملکرد صحیح توابع مرتبط با محلی سازی های خاص ضروری است. 197 | * کلید میانبر برای باز کردن نمایه چت فعلی اضافه شد. 198 | * اکنون، پس از بستن یک چت، تمرکز به لیست چت ها منتقل می شود و نه روی دکمه "Open navigation menu". 199 | 200 | ###نسخه 2.1.0 201 | 202 | * هنگام جابجایی بین پوشه ها در لیست چت، نام پوشه فعلی اعلام می شود. 203 | * در لیست چت، نام چت و به دنبال آن نوع آن را می شنوید. 204 | * بهبود عملکرد انتقال تمرکز به لیست چت ها. حالا باید دقیق تر و بدون تاخیر کار کند. 205 | * اکنون تنظیمات افزونه حتی انعطاف‌پذیرتر شده‌اند، زیرا بخشی با برخی از گزینه‌های UnigramPlus در منوی تنظیمات NVDA ظاهر شده است. 206 | * اضافه شدن محلی سازی لهستانی. 207 | * بسیاری از اصلاحات و پیشرفت های کوچک. 208 | 209 | ###نسخه 2.0.0 210 | 211 | * قابلیتی که در آن کلمه "Seen" اعلام نمی شود و کلمه "Not See" قبل از خواندن محتوای پیام گفته می شود اکنون به زبان های اسپانیایی، پرتغالی، کرواتی، ترکی و فارسی کار می کند. 212 | * بهبود عملکرد اطلاعیه های نوار پیشرفت. حالا با فعال شدن این حالت، همه شاخص های پیشرفت اعلام نمی شوند، بلکه فقط آنهایی که در تمرکز هستند، اعلام می شوند. 213 | * اگر در پیامی که حاوی فایلی است که دانلود کامل نشده است، کلید فاصله را فشار دهید، به شما اطلاع داده می شود که دانلود متوقف شده است. 214 | * اضافه شدن بومی سازی پرتغالی. 215 | * رفع برخی از مشکلات کوچک و بهبود عملکرد. 216 | 217 | ###نسخه 1.9.0 218 | * یک کلید میانبر اضافه شده است که سطح اعلام نوار پیشرفت را بین مقادیری مانند: "اعلام همه نوارهای پیشرفت"، "اعلام برخی نوارهای پیشرفت"، "اعلام همه نوارهای پیشرفت به جز پخش پیام صوتی pr" تغییر می دهد. 219 | * اضافه شدن بومی سازی های اسپانیایی، کرواتی و فارسی. 220 | * رفع اشکالات جزئی از نسخه های قبلی. 221 | 222 | ###نسخه 1.8.0 223 | 224 | * زمانی که مکان نما بر روی دکمه "باز کردن فایل" یا "دانلود فایل" متمرکز شود، نام و اندازه فایل گفته می شود و هنگامی که مکان نما بر روی دکمه پخش فایل صوتی متمرکز شود، آن را می شنوید. نام و مدت 225 | * اضافه شدن کلید میانبر برای انتقال تمرکز به قسمت ویرایش. اگر فوکوس از قبل در قسمت ویرایش باشد، پس از فشار دادن کلید داغ، به جایی که قبلا بود منتقل می شود. 226 | * ویژگی ردیابی فعالیت چت اکنون با دو بار فشار دادن ALT + T فعال می شود. شما به سادگی می توانید آن را روشن یا موقتاً تا دفعه بعد که برنامه را ببندید روشن کنید. 227 | * امکان انتخاب نوع اعلان برای ضبط پیام های صوتی اضافه شد. این کار با دوبار فشار دادن کلید میانبر control+d انجام می شود. در آنجا می توانید بین صدا، اعلان متنی یا بازگشت به رفتار استاندارد ضبط پیام صوتی یکی را انتخاب کنید. 228 | 229 | ###نسخه 1.7.0 230 | 231 | عملکرد ضبط پیام های صوتی به طور قابل توجهی بهبود یافته است. ضبط، ارسال و لغو ضبط یک پیام صوتی با صداهای مشخصه همراه است. همچنین هنگام انجام این عملکردها، فوکوس در موقعیت خود باقی می‌ماند و به دکمه ضبط یا فیلد ورودی پیام نمی‌پرد. 232 | 233 | ###نسخه 1.7.0 234 | 235 | * اضافه شدن قابلیت پیگیری فعالیت چت. این گزینه را می توان با فشار دادن ALT+shift+T فعال کرد و تا زمانی که Unigram بسته شود یا NVDA مجدداً راه اندازی شود فعال باقی می ماند. 236 | * کلید میانبر که دکمه "گزینه های بیشتر" را فعال می کند اکنون در پنجره چت صوتی و پنجره تماس کار می کند. 237 | 238 | ###نسخه 1.6.0 239 | 240 | * اگر رسانه متصل به پیام با استفاده از نوار فاصله باز شود، پس از بستن آن، فوکوس به آخرین عنصری که فوکوس شده بود باز می گردد. 241 | * اکنون می توانید نه تنها از گروه فعلی، بلکه از هر چت دیگری نیز به چت صوتی فعال بازگردید. 242 | * با فشار دادن ALT+shift+C در یک چت باز، به جای تماس با مخاطب، به چت صوتی باز می‌گردید. 243 | * اگر پیامی ارسال نشده باشد، به محض فوکوس شدن آن پیام به شما اطلاع داده خواهد شد. 244 | * اگر پیام متمرکز حاوی یک پیوند باشد، فقط متن خود پیوند را می شنوید، نه کل پیام را. 245 | * مشکلی را برطرف کرد که در آن تغییرات وضعیت دکمه‌هایی مانند Mute/Unmute Mic و Enable/Disable Camera در تماس‌های خصوصی و چت‌های صوتی گزارش نشده بود. 246 | * اکنون عملکرد کپی پیام به شما امکان می دهد محتویات موارد را در پنجره مشاهده سریع پیام کپی کنید. 247 | 248 | ###نسخه 1.5.1 249 | 250 | این به روز رسانی تعداد زیادی از باگ ها را برطرف کرده و عملکرد افزونه را بهبود می بخشد. 251 | 252 | ###نسخه 1.5.0 253 | 254 | این به‌روزرسانی یک کلید میانبر اضافه می‌کند که در صورت وجود در پیام، روی دکمه «نمای فوری» در پیام کلیک می‌کند. به طور پیش فرض، این ویژگی با کلید میانبر ALT+Q فعال می شود. پس از باز کردن چنین مقاله ای، فوکوس به طور خودکار به اولین عنصر این مقاله می رود و پس از بسته شدن، تمرکز به آخرین پیام مشاهده شده باز می گردد. ما همچنین مشکلی را برطرف کردیم که در آن همه عناصر مقاله در پنجره Instant View قابل خواندن نبودند، حتی اگر حاوی محتوای متنی باشند. 255 | 256 | ###نسخه 1.1.7 257 | 258 | بومی سازی ترکی اضافه شد. 259 | 260 | -------------------------------------------------------------------------------- /addon/locale/pl/LC_MESSAGES/nvda.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: UnigramPlus\n" 4 | "POT-Creation-Date: 2022-05-16 13:39+0300\n" 5 | "PO-Revision-Date: 2022-05-16 13:39+0300\n" 6 | "Last-Translator: zvonimir stanecic \n" 7 | "Language-Team: \n" 8 | "Language: pl\n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 " 13 | "|| n%100>14) ? 1 : 2);\n" 14 | "X-Generator: Poedit 3.0.1\n" 15 | "X-Poedit-Basepath: ../../..\n" 16 | "X-Poedit-SourceCharset: UTF-8\n" 17 | "X-Poedit-SearchPath-0: appModules\n" 18 | "X-Poedit-SearchPath-1: GlobalPlugins/UnigramPlus\n" 19 | 20 | #: GlobalPlugins/UnigramPlus/__init__.py:19 21 | msgid "Arabic" 22 | msgstr "" 23 | 24 | #: GlobalPlugins/UnigramPlus/__init__.py:20 25 | msgid "Czech" 26 | msgstr "" 27 | 28 | #: GlobalPlugins/UnigramPlus/__init__.py:21 29 | msgid "English" 30 | msgstr "" 31 | 32 | #: GlobalPlugins/UnigramPlus/__init__.py:22 33 | msgid "French" 34 | msgstr "" 35 | 36 | #: GlobalPlugins/UnigramPlus/__init__.py:23 37 | msgid "German" 38 | msgstr "" 39 | 40 | #: GlobalPlugins/UnigramPlus/__init__.py:24 41 | msgid "Italian" 42 | msgstr "" 43 | 44 | #: GlobalPlugins/UnigramPlus/__init__.py:25 45 | msgid "Persian" 46 | msgstr "" 47 | 48 | #: GlobalPlugins/UnigramPlus/__init__.py:26 49 | msgid "Polish" 50 | msgstr "" 51 | 52 | #: GlobalPlugins/UnigramPlus/__init__.py:27 53 | msgid "Portuguese" 54 | msgstr "" 55 | 56 | #: GlobalPlugins/UnigramPlus/__init__.py:28 57 | msgid "Russian" 58 | msgstr "" 59 | 60 | #: GlobalPlugins/UnigramPlus/__init__.py:29 61 | msgid "Spanish" 62 | msgstr "" 63 | 64 | #: GlobalPlugins/UnigramPlus/__init__.py:30 65 | msgid "Turkish" 66 | msgstr "" 67 | 68 | #: GlobalPlugins/UnigramPlus/__init__.py:31 69 | msgid "Ukrainian" 70 | msgstr "" 71 | 72 | #: GlobalPlugins/UnigramPlus/__init__.py:32 73 | msgid "Croatian" 74 | msgstr "" 75 | 76 | #: GlobalPlugins/UnigramPlus/__init__.py:33 77 | msgid "Serbian" 78 | msgstr "" 79 | 80 | #: GlobalPlugins/UnigramPlus/__init__.py:76 81 | #, fuzzy 82 | #| msgid "Video call unavailable" 83 | msgid "No updates available" 84 | msgstr "Rozmowa wideo niedostępna" 85 | 86 | #: GlobalPlugins/UnigramPlus/__init__.py:77 87 | #: GlobalPlugins/UnigramPlus/__init__.py:88 88 | #: GlobalPlugins/UnigramPlus/__init__.py:96 89 | msgid "UnigramPlus update" 90 | msgstr "" 91 | 92 | #: GlobalPlugins/UnigramPlus/__init__.py:87 93 | msgid "" 94 | "A new version of the add-on is available. Would you like to update " 95 | "UnigramPlus to version %version?" 96 | msgstr "" 97 | 98 | #: GlobalPlugins/UnigramPlus/__init__.py:146 99 | msgid "Before chat name" 100 | msgstr "" 101 | 102 | #: GlobalPlugins/UnigramPlus/__init__.py:147 103 | msgid "After chat name" 104 | msgstr "" 105 | 106 | #: GlobalPlugins/UnigramPlus/__init__.py:148 107 | msgid "Do not speak chat type" 108 | msgstr "" 109 | 110 | #: GlobalPlugins/UnigramPlus/__init__.py:151 111 | msgid "Revert to standard behavior of voice message recordingmes" 112 | msgstr "" 113 | 114 | #: GlobalPlugins/UnigramPlus/__init__.py:152 115 | msgid "Text notification" 116 | msgstr "" 117 | 118 | #: GlobalPlugins/UnigramPlus/__init__.py:153 119 | msgid "sound notification" 120 | msgstr "" 121 | 122 | #: GlobalPlugins/UnigramPlus/__init__.py:156 appModules/unigram.py:656 123 | msgid "Announce all progress bars" 124 | msgstr "czytanie wszystkich pasków postępu" 125 | 126 | #: GlobalPlugins/UnigramPlus/__init__.py:157 appModules/unigram.py:662 127 | msgid "Do not announce any progress bars" 128 | msgstr "Nie czytaj żadnych pasków postępu" 129 | 130 | #: GlobalPlugins/UnigramPlus/__init__.py:158 131 | #, fuzzy 132 | #| msgid "Announce all progress bars" 133 | msgid "Announce some progress bars" 134 | msgstr "czytanie wszystkich pasków postępu" 135 | 136 | #: GlobalPlugins/UnigramPlus/__init__.py:161 137 | msgid "Do not say at all" 138 | msgstr "" 139 | 140 | #: GlobalPlugins/UnigramPlus/__init__.py:162 141 | msgid "Only in sent messages" 142 | msgstr "" 143 | 144 | #: GlobalPlugins/UnigramPlus/__init__.py:163 145 | msgid "Only in received messages" 146 | msgstr "" 147 | 148 | #: GlobalPlugins/UnigramPlus/__init__.py:164 149 | msgid "In all messages" 150 | msgstr "" 151 | 152 | #: GlobalPlugins/UnigramPlus/__init__.py:169 153 | msgid "Interface language in Unigram:" 154 | msgstr "" 155 | 156 | #: GlobalPlugins/UnigramPlus/__init__.py:172 157 | msgid "Speak chat type in the chat list:" 158 | msgstr "" 159 | 160 | #: GlobalPlugins/UnigramPlus/__init__.py:175 161 | msgid "say sender's name in:" 162 | msgstr "" 163 | 164 | #: GlobalPlugins/UnigramPlus/__init__.py:178 165 | msgid "Speak \"Not Seen\" before reading contents of a message" 166 | msgstr "" 167 | 168 | #: GlobalPlugins/UnigramPlus/__init__.py:182 169 | msgid "Speak folder names when switching between them" 170 | msgstr "" 171 | 172 | #: GlobalPlugins/UnigramPlus/__init__.py:186 173 | msgid "Notify about deleting a message and a chat by sound" 174 | msgstr "" 175 | 176 | #: GlobalPlugins/UnigramPlus/__init__.py:190 177 | msgid "Display confirmation dialog when deleting messages and chats" 178 | msgstr "" 179 | 180 | #: GlobalPlugins/UnigramPlus/__init__.py:194 181 | #, fuzzy 182 | #| msgid "Voice message recording notifications are set to text" 183 | msgid "Set method of voice message recording notification as:" 184 | msgstr "Powiadomienia o nagrywaniu wiadomości głosowych są ustawione na tekst" 185 | 186 | #: GlobalPlugins/UnigramPlus/__init__.py:197 187 | msgid "Select level of notification of progress bars: " 188 | msgstr "" 189 | 190 | #: GlobalPlugins/UnigramPlus/__init__.py:200 191 | msgid "Read description of URLs attached to messages" 192 | msgstr "" 193 | 194 | #: GlobalPlugins/UnigramPlus/__init__.py:204 195 | msgid "Read full description of a video in YouTube URLs" 196 | msgstr "" 197 | 198 | #: GlobalPlugins/UnigramPlus/__init__.py:208 199 | msgid "Announces if there are replies for you in the group" 200 | msgstr "" 201 | 202 | #: GlobalPlugins/UnigramPlus/__init__.py:212 203 | msgid "Announce the presence of reaction in the messages" 204 | msgstr "" 205 | 206 | #: GlobalPlugins/UnigramPlus/__init__.py:216 207 | msgid "Reply to messages by pressing Enter" 208 | msgstr "" 209 | 210 | #: GlobalPlugins/UnigramPlus/__init__.py:220 211 | msgid "" 212 | "Check this box if the voice message recording function or changing voice " 213 | "message playback speed function don't work correctly" 214 | msgstr "" 215 | 216 | #: GlobalPlugins/UnigramPlus/__init__.py:224 217 | msgid "Check for updates of UnigramPlus when NVDA is started" 218 | msgstr "" 219 | 220 | #: GlobalPlugins/UnigramPlus/__init__.py:229 221 | msgid "Check for updates" 222 | msgstr "" 223 | 224 | #: appModules/unigram.py:58 225 | msgid "Back" 226 | msgstr "" 227 | 228 | #: appModules/unigram.py:59 229 | msgid "Menu" 230 | msgstr "" 231 | 232 | #: appModules/unigram.py:60 233 | msgid "Attach" 234 | msgstr "" 235 | 236 | #: appModules/unigram.py:61 237 | msgid "Edit" 238 | msgstr "" 239 | 240 | #: appModules/unigram.py:62 241 | msgid "Photo" 242 | msgstr "" 243 | 244 | #: appModules/unigram.py:63 appModules/unigram.py:790 245 | msgid "Image" 246 | msgstr "" 247 | 248 | #: appModules/unigram.py:64 249 | msgid "Invite link" 250 | msgstr "" 251 | 252 | #: appModules/unigram.py:65 253 | msgid "Choose time" 254 | msgstr "" 255 | 256 | #: appModules/unigram.py:66 257 | msgid "Title field" 258 | msgstr "" 259 | 260 | #: appModules/unigram.py:69 261 | msgid "Insert emojis" 262 | msgstr "" 263 | 264 | #: appModules/unigram.py:70 265 | msgid "Done" 266 | msgstr "" 267 | 268 | #: appModules/unigram.py:71 269 | msgid "Next" 270 | msgstr "" 271 | 272 | #: appModules/unigram.py:72 273 | msgid "Merge files" 274 | msgstr "" 275 | 276 | #: appModules/unigram.py:73 277 | msgid "Search" 278 | msgstr "" 279 | 280 | #: appModules/unigram.py:74 281 | msgid "Delete" 282 | msgstr "" 283 | 284 | #: appModules/unigram.py:75 285 | msgid "Close" 286 | msgstr "" 287 | 288 | #: appModules/unigram.py:141 289 | msgid "Chat list not found" 290 | msgstr "Nie znaleziono listy czatów" 291 | 292 | #: appModules/unigram.py:155 293 | msgid "Increase/decrease voice message playback speed" 294 | msgstr "zwiększa/zmniejsza szybkość odtwarzania wiadomości głosowych" 295 | 296 | #: appModules/unigram.py:164 appModules/unigram.py:175 297 | #: appModules/unigram.py:185 appModules/unigram.py:1074 298 | #: appModules/unigram.py:1096 appModules/unigram.py:1127 299 | msgid "Nothing is playing right now" 300 | msgstr "Teraz nic nie jest odtwarzane" 301 | 302 | #: appModules/unigram.py:167 303 | msgid "Close audio player" 304 | msgstr "Zamknij odtwarzacz" 305 | 306 | #: appModules/unigram.py:174 307 | msgid "Audio player has been closed" 308 | msgstr "Odtwarzacz został zamknięty" 309 | 310 | #: appModules/unigram.py:178 311 | msgid "Play/pause the voice message that is currently playing" 312 | msgstr "Odtwarzanie/wstrzymywanie aktualnie otwieranej wiadomości głosowej" 313 | 314 | #: appModules/unigram.py:210 315 | msgid "Move focus to chat list" 316 | msgstr "przenosi fokus do listy czatów" 317 | 318 | #: appModules/unigram.py:222 319 | msgid "Chat list is empty" 320 | msgstr "Lista czatów jest pusta" 321 | 322 | #: appModules/unigram.py:225 323 | msgid "Move focus to the last message in the chat" 324 | msgstr "przenosi fokus do ostatniej wiadomości na czacie" 325 | 326 | #: appModules/unigram.py:237 appModules/unigram.py:265 327 | #: appModules/unigram.py:686 appModules/unigram.py:700 328 | msgid "This chat is empty" 329 | msgstr "Ten czat jest pusty" 330 | 331 | #: appModules/unigram.py:238 appModules/unigram.py:255 332 | #: appModules/unigram.py:262 appModules/unigram.py:474 333 | #: appModules/unigram.py:682 334 | msgid "No open chat" 335 | msgstr "Brak otwartego czatu" 336 | 337 | #: appModules/unigram.py:241 338 | msgid "" 339 | "Read profile name and status in a public chat. Press twice to switch between " 340 | "\"Turn on tracking chat activity until closing of the app\", \"Turn tracking " 341 | "chat activity on\" and \"Turn tracking chat activity off\"" 342 | msgstr "" 343 | "odczytuje nazwę i stan profilu na czacie publicznym. Naciśnij dwukrotnie, " 344 | "aby przełączyć się między \"Włącz śledzenie aktywności czatu do momentu " 345 | "zamknięcia aplikacji\", \"Włącz śledzenie aktywności czatu\" i \"Wyłącz " 346 | "śledzenie aktywności czatu\"" 347 | 348 | #: appModules/unigram.py:258 349 | msgid "Move focus to 'unread messages' label" 350 | msgstr "Przenoszenie fokusu do znacznika \"nieprzeczytane wiadomości\"" 351 | 352 | #: appModules/unigram.py:275 353 | msgid "There are no unread messages in this chat" 354 | msgstr "w tym czacie nie ma nieprzeczytanych wiadomości" 355 | 356 | #: appModules/unigram.py:278 357 | msgid "Call if it is a contact or enter voice chat if it is a group" 358 | msgstr "" 359 | "Zadzwoń, jeśli jest to kontakt lub utwórz czat głosowy, jeśli jest to grupa" 360 | 361 | #: appModules/unigram.py:282 362 | msgid "Call unavailable" 363 | msgstr "Połączenie niedostępne" 364 | 365 | #: appModules/unigram.py:285 366 | msgid "Press video call button" 367 | msgstr "Naciśnij przycisk rozmowy wideo" 368 | 369 | #: appModules/unigram.py:289 370 | msgid "Video call unavailable" 371 | msgstr "Rozmowa wideo niedostępna" 372 | 373 | #: appModules/unigram.py:292 374 | msgid "" 375 | "Press \"Instant view\" button, if it is contained in the current message" 376 | msgstr "" 377 | "Naciśnij przycisk \"Instant view\", jeśli jest on zawarty w bieżącej " 378 | "wiadomości" 379 | 380 | #: appModules/unigram.py:309 381 | msgid "Accept call" 382 | msgstr "Odbierz połączenie" 383 | 384 | #: appModules/unigram.py:318 385 | msgid "" 386 | "Press \"Decline call\" button if there is an incoming call, \"End call\" " 387 | "button if a call is in progress or leave voice chat if it is active." 388 | msgstr "" 389 | "Naciśnij przycisk \"Odrzuć połączenie\", jeśli jest połączenie przychodzące, " 390 | "przycisk \"Zakończ połączenie\", jeśli połączenie jest w toku lub opuść czat " 391 | "głosowy, jeśli jest aktywny." 392 | 393 | #: appModules/unigram.py:337 394 | msgid "Press \"Enable/disable microphone\" button" 395 | msgstr "Naciśnij przycisk \"Włącz/wyłącz mikrofon\"" 396 | 397 | #: appModules/unigram.py:365 398 | msgid "Press \"Enable/disable camera\" button" 399 | msgstr "Naciśnij przycisk \"Włącz/wyłącz kamerę\"" 400 | 401 | #: appModules/unigram.py:384 402 | msgid "Camera on" 403 | msgstr "Kamera włączony" 404 | 405 | #: appModules/unigram.py:386 406 | msgid "Camera off" 407 | msgstr "Kamera wyłączona" 408 | 409 | #: appModules/unigram.py:396 410 | msgid "Copy message if it contains text" 411 | msgstr "Skopiuj wiadomość, jeśli zawiera tekst" 412 | 413 | #: appModules/unigram.py:403 414 | msgid "Message copied" 415 | msgstr "Wiadomość skopiowana" 416 | 417 | #: appModules/unigram.py:406 418 | msgid "Link copied" 419 | msgstr "" 420 | 421 | #: appModules/unigram.py:411 422 | msgid "This message does not contain text" 423 | msgstr "Ta wiadomość nie zawiera tekstu" 424 | 425 | #: appModules/unigram.py:413 426 | #, fuzzy 427 | #| msgid "Copy message if it contains text" 428 | msgid "Copy messages while maintaining formatting" 429 | msgstr "Skopiuj wiadomość, jeśli zawiera tekst" 430 | 431 | #: appModules/unigram.py:418 432 | msgid "" 433 | "Move focus to the edit field. If focus is already in the edit field, after " 434 | "pressing the hotkeys it will move to where it was previously" 435 | msgstr "" 436 | "Przenosi fokus do pole edycji. Jeśli fokus znajduje się już w polu edycji, " 437 | "po naciśnięciu skrótu zostanie ona przemieszczająca się do miejsca, w którym " 438 | "znajdowała się wcześniej" 439 | 440 | #: appModules/unigram.py:434 441 | msgid "Message input field not found" 442 | msgstr "Nie znaleziono pola do wprowadzania wiadomości" 443 | 444 | #: appModules/unigram.py:437 445 | msgid "" 446 | "Press \"More Options\" button in an open chat, voice chat, or call window" 447 | msgstr "" 448 | "naciska przycisk \"Więcej opcji\" w otwartym czacie, czacie głosowym lub " 449 | "oknie połączenia" 450 | 451 | #: appModules/unigram.py:445 452 | msgid "Button not found" 453 | msgstr "Nie znaleziono przycisku" 454 | 455 | #: appModules/unigram.py:448 456 | msgid "Open navigation menu" 457 | msgstr "Otwórz menu nawigacyjne" 458 | 459 | #: appModules/unigram.py:454 460 | msgid "Navigation menu unavailable" 461 | msgstr "Menu nawigacyjne niedostępne" 462 | 463 | #: appModules/unigram.py:457 464 | msgid "Open comments" 465 | msgstr "" 466 | 467 | #: appModules/unigram.py:464 468 | msgid "No opening comments buttons found" 469 | msgstr "" 470 | 471 | #: appModules/unigram.py:467 472 | msgid "Open current chat profile" 473 | msgstr "" 474 | 475 | #: appModules/unigram.py:490 476 | msgid "" 477 | "Recording a voice message will not be possible until the edit field becomes " 478 | "empty" 479 | msgstr "" 480 | "Nagrywanie wiadomości głosowej nie będzie możliwe, dopóki pole edycji nie " 481 | "stanie się puste" 482 | 483 | #: appModules/unigram.py:497 484 | msgid "Record sent" 485 | msgstr "Nagranie wysłane" 486 | 487 | #: appModules/unigram.py:502 488 | msgid "Video" 489 | msgstr "" 490 | 491 | #: appModules/unigram.py:503 492 | msgid "Audio" 493 | msgstr "" 494 | 495 | #: appModules/unigram.py:520 496 | msgid "Voice message recording notifications are set to text" 497 | msgstr "Powiadomienia o nagrywaniu wiadomości głosowych są ustawione na tekst" 498 | 499 | #: appModules/unigram.py:523 500 | msgid "Voice message recording notifications are set to sounds" 501 | msgstr "" 502 | "Powiadomienia o nagrywaniu wiadomości głosowych są ustawione na dźwięki" 503 | 504 | #: appModules/unigram.py:526 505 | msgid "Voice message recording has standard behavior" 506 | msgstr "Nagrywanie wiadomości głosowych ma standardowe zachowanie" 507 | 508 | #: appModules/unigram.py:534 509 | msgid "Record canceled" 510 | msgstr "Nagrywanie zakończone" 511 | 512 | #: appModules/unigram.py:561 513 | msgid "Right answer" 514 | msgstr "" 515 | 516 | #: appModules/unigram.py:564 517 | msgid "Answer options" 518 | msgstr "" 519 | 520 | #: appModules/unigram.py:577 521 | msgid "You" 522 | msgstr "" 523 | 524 | #: appModules/unigram.py:595 525 | msgid "Not sent" 526 | msgstr "Nie wysłane" 527 | 528 | #: appModules/unigram.py:607 529 | msgid "Contains a reaction" 530 | msgstr "" 531 | 532 | #: appModules/unigram.py:609 533 | msgid "Selected" 534 | msgstr "Wybrane" 535 | 536 | #: appModules/unigram.py:634 537 | msgid "there are replies for you" 538 | msgstr "" 539 | 540 | #: appModules/unigram.py:643 541 | msgid "Chat activity tracking disabled" 542 | msgstr "Śledzenie aktywności na czacie wyłączone" 543 | 544 | #: appModules/unigram.py:646 545 | msgid "Chat activity tracking is on until closing of the app" 546 | msgstr "" 547 | "Śledzenie aktywności na czacie jest włączone do momentu zamknięcia aplikacji" 548 | 549 | #: appModules/unigram.py:649 550 | msgid "Chat activity tracking enabled" 551 | msgstr "Włączone śledzenie aktywności na czacie" 552 | 553 | #: appModules/unigram.py:652 554 | msgid "Toggle progress bar announcements" 555 | msgstr "przełącza czytanie pasków postępu" 556 | 557 | #: appModules/unigram.py:659 558 | msgid "Announce all progress bars except voice message playback progress bar" 559 | msgstr "" 560 | "czytanie wszystkich pasków postępu z wyjątkiem paska postępu odtwarzania " 561 | "wiadomości głosowych" 562 | 563 | #: appModules/unigram.py:796 564 | msgid "Editing" 565 | msgstr "" 566 | 567 | #: appModules/unigram.py:797 568 | msgid "Answer" 569 | msgstr "" 570 | 571 | #: appModules/unigram.py:804 572 | msgid "Duration" 573 | msgstr "" 574 | 575 | #: appModules/unigram.py:805 576 | msgid "Size" 577 | msgstr "" 578 | 579 | #: appModules/unigram.py:911 580 | msgid "Delete message or chat" 581 | msgstr "" 582 | 583 | #: appModules/unigram.py:914 584 | msgid "Delete message or chat on both sides" 585 | msgstr "" 586 | 587 | #: appModules/unigram.py:932 appModules/unigram.py:943 588 | msgid "Inline results not detected" 589 | msgstr "" 590 | 591 | #: appModules/unigram.py:954 592 | msgid "Reply to the message" 593 | msgstr "" 594 | 595 | #: appModules/unigram.py:957 596 | msgid "Edit the message" 597 | msgstr "" 598 | 599 | #: appModules/unigram.py:960 600 | msgid "Switch to selection mode" 601 | msgstr "" 602 | 603 | #: appModules/unigram.py:963 604 | msgid "Forward the message" 605 | msgstr "" 606 | 607 | #: appModules/unigram.py:966 608 | msgid "Mark the chat as read" 609 | msgstr "" 610 | 611 | #: appModules/unigram.py:969 612 | msgid "Save file as..." 613 | msgstr "" 614 | 615 | #: appModules/unigram.py:989 616 | msgid "Enable automatic announcement of new messages" 617 | msgstr "" 618 | 619 | #: appModules/unigram.py:992 620 | #, fuzzy 621 | #| msgid "Automatic voicing of new messages in the chat is enabled" 622 | msgid "Automatic announcement of new messages is enabled" 623 | msgstr "Automatyczne czytanie nowych wiadomości na czacie jest włączone" 624 | 625 | #: appModules/unigram.py:993 626 | #, fuzzy 627 | #| msgid "Automatic voicing of new messages in the chat is disabled" 628 | msgid "Automatic announcement of new messages is disabled" 629 | msgstr "Automatyczne czytanie nowych wiadomości na czacie jest wyłączone" 630 | 631 | #: appModules/unigram.py:1011 632 | msgid "Message deleted on both sides" 633 | msgstr "" 634 | 635 | #: appModules/unigram.py:1012 636 | #, fuzzy 637 | #| msgid "Message copied" 638 | msgid "Message deleted" 639 | msgstr "Wiadomość skopiowana" 640 | 641 | #: appModules/unigram.py:1015 642 | msgid "You have left the group" 643 | msgstr "" 644 | 645 | #: appModules/unigram.py:1016 646 | msgid "You have left the channel" 647 | msgstr "" 648 | 649 | #: appModules/unigram.py:1017 650 | msgid "Bot removed and blocked" 651 | msgstr "" 652 | 653 | #: appModules/unigram.py:1018 654 | msgid "Bot removed" 655 | msgstr "" 656 | 657 | #: appModules/unigram.py:1019 658 | msgid "Chat deleted on both sides" 659 | msgstr "" 660 | 661 | #: appModules/unigram.py:1020 662 | msgid "Chat deleted" 663 | msgstr "" 664 | 665 | #: appModules/unigram.py:1049 666 | msgid "Copy data to perform broadcasting on the clipboard" 667 | msgstr "" 668 | 669 | #: appModules/unigram.py:1053 appModules/unigram.py:1057 670 | #, fuzzy 671 | #| msgid "Chat list not found" 672 | msgid "The broadcast window is not found" 673 | msgstr "Nie znaleziono listy czatów" 674 | 675 | #: appModules/unigram.py:1063 676 | msgid "%url and %key copied to the clipboard" 677 | msgstr "" 678 | 679 | #: appModules/unigram.py:1105 680 | #, fuzzy 681 | #| msgid "This message does not contain text" 682 | msgid "This message is not playing" 683 | msgstr "Ta wiadomość nie zawiera tekstu" 684 | 685 | #: appModules/unigram.py:1134 686 | msgid "Rewind voice message forward" 687 | msgstr "" 688 | 689 | #: appModules/unigram.py:1138 690 | msgid "Rewind voice message back" 691 | msgstr "" 692 | -------------------------------------------------------------------------------- /addon/doc/NE/readme.md: -------------------------------------------------------------------------------- 1 | # Unigram Plus 2 | 3 | * लेखक: Kostya Gladkiy(Ukrain) 4 | * [टेलिग्राम च्यानल](https://t.me/unigramPlus) 5 | * टेलिग्राम: @unigramPlus 6 | * दान गर्ने लिङ्क: [https://unigramplus.diaka.ua/donate](https://unigramplus.diaka.ua/donate) 7 | * PayPal: gladkiy.kostya@gmail.com 8 | 9 | 10 | अब अत्यन्त सहज र उत्पादक रुपमा Unigram प्रयोग गर्नुहोस्!!!। यो औजारले Unigram को द्रुत र सहज प्रयोगको लागि धेरै सर्टकर्ट कुन्जिहरू उपलब्ध गराउँदछ, र धेरै ससाना सुधारहरू गर्दछ।##यस औजारका केही प्रमुख सुधारहरू: 11 | 12 | * पोल, लिङ्क, वा संलग्न मिडियाका साथ रहेको सन्देश जस्ता सन्देशहरूको प्रदर्शनमा महत्त्वपूर्ण सुधार थप्छ। 13 | * जब फोकसले च्याटहरूको सूचीमा प्रवेश गर्छ, यसले त्यस्ता वाक्यांशहरूलाई हटाउँछ: "च्याट, ट्याब, चयन गरिएको सूची"। र जब फोकस सन्देशहरूको सूचीमा हिट हुन्छ, वाक्यांश "सूची"। 14 | * जब कर्सर "ओपन फाइल" बटन वा "डाउनलोड फाइल" बटनमा केन्द्रित हुन्छ, त्यतिबेला यसको फाइलको नाम र साइज बोलिनेछ र जब कर्सर अडियो फाइलको प्ले बटनमा केन्द्रित हुन्छ, तपाईंले यसको नाम र गति को बिवरण समेत प्राप्त गर्नुहुँनेछ । 15 | * जब हाल प्ले भइरहेको भ्वाइस सन्देशमा फोकस गरिन्छ, पहिले यसको प्लेब्याकको समयको बारेमा जानकारी घोषणा गरिन्छ, र त्यसपछि अन्य सबै जानकारी घोषणा गरिनेछ । 16 | * जब कलको बारेमा जानकारी समावेश भएको सन्देशमा फोकस हुन्छ, यसले कलको अवधि समेत घोषणा गर्नेछ । 17 | * च्याटमा चयन गरिएको सन्देशमा फोकस गर्दा, तपाईंले पहिले यो चयन गरिएको जानकारी सुन्नुहुनेछ, र त्यसपछि सन्देशको सामग्री सुन्नुहुँनेछ। 18 | * अब, च्याटमा कर्शर सार्दा "हेरिएको" वाक्यांश उच्चारण हुनेछैन, र सन्देशको सामग्री भन्दा पहिले "हेरिएको छैन" वाक्यांश उच्चारण गरिनेछ। यो सुविधा हाल अंग्रेजी, रूसी, युक्रेनी, स्पेनिश, पोर्चुगिज, पोलिश, क्रोएसियाली, टर्की र फारसीमा मात्र काम गर्नेछ । 19 | * भ्वाइस सन्देशहरू रेकर्ड गर्ने कार्यमा उल्लेखनीय सुधार गरियो। रेकर्ड गर्ने, पठाउने र रद्दगर्दा विशेष ध्वनिहरू समेत बज्ने छन्। साथै, यी प्रकार्यहरू प्रदर्शन गर्दा, फोकस यसको स्थितिमानै रहन्छ र रेकर्ड बटन वा सन्देश लेखन बाकसमा जाँदैन। 20 | * यदि सन्देशमा संलग्न मिडिया स्पेसबार प्रयोग गरेर खोलिएको छ भने, त्यसपछि यसलाई बन्द गरेपछि, फोकस पहिलेकै स्थितिमा फर्किनेछ । 21 | * औजारले तपाईंलाई प्रगति पट्टीहरूको घोषणालाई पूर्ण रूपमा असक्षम गर्न अनुमति दिन्छ, साथै आवाज सन्देशहरू बजिरहेको समयमा प्रगति पट्टीको घोषणा मात्र असक्षम पार्छ। 22 | 23 | ##विकासकर्तालाई दान गर्ने अवसरको बारेमा जानकारी: 24 | यदि तपाईंलाई यो औजार साँच्चै मनपर्छ र तपाईंसँग विकासकर्तालाई आर्थिक रूपमा सहयोग गर्ने र यस औजारलाई थप विकास गर्न उत्प्रेरित गर्ने इच्छाछ भने, तपाईंले निम्न बैंकमा थोरै रकम हस्तान्तरण गरेर यो गर्न सक्नुहुन्छ। विवरण:[दान लिङ्क](https://unigramplus.diaka.ua/donate), अथवा कार्ड नम्बर: 5169360009004502(Ukraine). 25 | र याद गर्नुहोस् कि यो लाइन पढ्ने सबैले सोँचेका छनकि कि कसैले निश्चित रूपमा विकासकर्तालाई समर्थन गर्नेछ, तर मैले होईन । 26 | ## Hotkey list: 27 | * ALT+1: च्याट सूचीमा फोकस सार्नुहोस्; 28 | * ALT+2: खुला च्याटको अन्तिम सन्देशमा फोकस सार्नुहोस्; 29 | * ALT+3: "नपढिएका सन्देशहरू" लेबलमा फोकस सार्नुहोस्; 30 | * ALT+D: सम्पादन बाकसमा फोकस सार्नुहोस्। यदि फोकस पहिले नै सम्पादन बाकसमा छ भने, हटकी थिचेपछि, यो पहिलेको स्थानमा सर्नेछ; 31 | * ALT+T: खुला च्याटको नाम र स्थिति घोषणा गर्नुहोस्; 32 | * space: फोकस गरिएको आवाज वा भिडियो सन्देश बजाउँनुहोस/रोक्नुहोस्, वा हालको सन्देशमा संलग्न मिडिया फाइल खोल्नुहोस्; 33 | * ALT+P: हाल चलिरहेको आवाज सन्देश बजाउँनुहोस/रोक्नुहोस। 34 | * ALT+S: आवाज सन्देशहरूको बज्ने गति बढाउनुहोस्/घटाउनुहोस्; 35 | * ALT+E: अडियो प्लेयर बन्द गर्नुहोस्; 36 | * control+C: लिखित सन्देस हो भने सन्देश प्रतिलिपि गर्नुहोस्। यदि फोकस लिङ्कमा छ भने, लिङ्क प्रतिलिपि गरिनेछ; 37 | * ALT+shift+C: यदि यो एक ब्यक्ति हो भने कल गर्नुहोस्, वा यदि यो समूह हो भने भ्वाइस च्याटमा जानुहोस; 38 | * ALT+shift+V: भिडियो कल बटन थिच्नुहोस्; 39 | * ALT+Y: कल स्वीकार गर्नुहोस्; 40 | * ALT+N: यदि आगमन कल हो भने \"कल अस्वीकार गर्नुहोस्\" बटन थिच्नुहोस्, यदि कल प्रगतिमा छ भने \"कल अन्त्य गर्नुहोस्\" बटन, वा भ्वभ्वाईस च्याट शकृय छभने, "छोड्नुहोस" बटनमा थिच्नुहोस; 41 | * ALT+A: \"म्युट/अनम्युट माइक्रोफोन\" बटन थिच्नुहोस्; 42 | * ALT+C: "क्यामेरा सक्षम/असक्षम" बटन थिच्नुहोस्; 43 | * ALT+Q: \यदि तत्काल हेर्ने बटन हालको सन्देशमा समावेश छ भने"तत्काल हेर्नुहोस \" बटन" थिच्नुहोस्; 44 | * ALT+O: हाल चलिरहेको च्याट, भ्वाइस च्याट, वा कल विन्डोमा "थप विकल्पहरू" बटन थिच्नुहोस्; 45 | * ALT+M: नेभिगेसन मेनु खोल्नुहोस्; 46 | * control+R: आवाज सन्देश रेकर्डिङ सुरुगर्नुहोस/रोक्नुहोस्; 47 | * control+D: यस कुन्जिलाई यदि एक पटक थिच्नुभयो भने, आवाज सन्देशको रेकर्डिङ रद्द हुन्छ, र यदि दुई पटक थिच्नुभयो भने, आवाज सन्देश रेकर्डिङ सुरु गर्दा, पठाउँदा वा रद्द गर्दा प्राप्त हुँने सूचनाको प्रकार परिवर्तन हुन्छ; 48 | * ALT+U: प्रगति पट्टी घोषणाहरू टगल गर्नुहोस्; 49 | * control+P: हालको चलिरहेको च्याट प्रोफाइल खोल्नुहोस्; 50 | * delete: सन्देश वा कुराकानि मेटाउनुहोस्; 51 | * shift+delete: दुबै पक्षबाट सन्देश वा कुराकानि मेटाउनुहोस्; 52 | * control+ALT+C: टिप्पणीहरू खोल्नुहोस्; 53 | * Unassigned: सन्देशको जवाफ दिनुहोस्; 54 | * ALT+F: सन्देश फर्वार्ड गर्नुहोस ।; 55 | * Unassigned: सन्देश सम्पादन गर्नुहोस्; 56 | * ALT+shift+R: पढेको च्याटमा चिन्ह लगाउनुहोस्; 57 | * control+space: चयन मोडमा जाँनुहोस; 58 | * control+shift+C: ढाँचा सुरक्षित गरी सन्देशहरू प्रतिलिपि गर्नुहोस्; 59 | * ALT+shift+L: क्लिपबोर्डमा प्रसारणको लागि डेटा प्रतिलिपि गर्नुहोस्; 60 | * control+ALT+right arrow: आवाज शन्देशलाई फर्वार्ड गर्नुहोस; 61 | * control+ALT+left arrow: आवाज सन्देशलाई रिवाइन्ड गर्नुहोस्; 62 | * ALT+C: सन्देश मा लेखिएको बिवरणलाई पपअप विन्डोमा देखाउनुहोस्; 63 | * NVDA+control+U: UnigramPlus सेटिंग्स खोल्नुहोस्; 64 | * ALT+4: च्याट फोल्डरहरूको सूचीमा फोकस सार्नुहोस्; 65 | * control+shift+A: "फाइल संलग्न गर्नुहोस्" बटन थिच्नुहोस्; 66 | * control+N: "नयाँ च्याट" बटन थिच्नुहोस्; 67 | * Unassigned: सन्देश वा च्याट पिन गर्नुहोस्; 68 | * ALT+5: खोलिएको प्रोफाईलमा फोकस सार्नुहोस्; 69 | * ALT+L: हालको च्याटमा नयाँ सन्देशहरूको स्वचालित पठन सक्षम गर्नुहोस्; 70 | * NVDA+ALT+R: आवाज सन्देशलाई लेख्य रुपमा रूपान्तरण गर्नुहोस्; 71 | * Left arrow: कुन शन्देशमा जवाफ प्राप्त भएकोहो भनि वाचन गर्नुहोस; 72 | 73 | ### पुनस्च: 74 | 75 | * सबै हटकीहरू लाई NVDA मेनु> प्राथमिकताहरू> इनपुट इशाराहरूमा गई पुन: परिमार्जन गर्न सकिन्छ। 76 | * "नपढिएको सन्देश" लेबलमा कर्सर फोकस गर्ने कार्यले कहिलेकाहीं ढिलाइको साथ प्रतिक्रिया दिन सक्छ भन्ने तथ्य हाँमिलाई पहिलेदेखिनै थाहा भएको मुद्दा हो, यो तपाइँको कम्प्युटर मा रहेको क्याश सन्देशहरूको संख्यामा निर्भर हुन सक्छ। 77 | 78 | ##यस संस्करणका परिवर्तनहरू: 79 | 80 | ###संस्करण ४.५.० 81 | 82 | * Unigram को नवीनतम संस्करणमा अनुकूलित 83 | * अब यदि कुनै सन्देश अर्को सन्देशको जवाफमा पठाइएको थियो भने, बायाँ एरो कुञ्जी थिचेर, तपाईंले सन्देशको जवाफ सुन्न सक्नुहुन्छ जुन सन्देश पठाइएको थियो। 84 | * फ्रान्सेली स्थानीयकरण थपियो 85 | * किबोर्ड सर्टकटहरूको साथ सन्देशहरूमा प्रतिक्रियाहरू थप्ने क्षमता हटाइएको छ, किनकि मैले यो प्रकार्यलाई युनिग्राम इन्टरफेसमा परिवर्तनहरूमा अनुकूलन गर्न असमर्थ थिएँ। 86 | * केही साना बगहरू फिक्स गरियो 87 | 88 | ###संस्करण ४.४.० 89 | 90 | * च्याटहरूमा गतिविधि घोषणा गर्ने प्रकार्य थपिएको छ। पूर्वनिर्धारित रूपमा, यो प्रकार्य ALT+T संयोजनलाई डबल थिचेर सक्रिय हुन्छ। NVDA पुन: सुरु नभएसम्म मात्र प्रकार्य सक्रिय रहन्छ। 91 | * च्याटमा नयाँ सन्देशहरूको स्वचालित घोषणाहरूको प्रकार्य थपिएको छ। पूर्वनिर्धारित रूपमा, यो प्रकार्य ALT+L थिचेर सक्रिय हुन्छ। NVDA पुन: सुरु नभएसम्म मात्र यो सुविधा सक्रिय रहन्छ। च्याटमा धेरै नयाँ सन्देशहरू द्रुत रूपमा देखा पर्दा स्थिरता समस्याहरू हुन सक्छन्। 92 | * भ्वाइस सन्देशहरूलाई पाठमा रूपान्तरण गर्ने कार्यको लागि किबोर्ड सर्टकट थपियो। पूर्वनिर्धारित रूपमा, यो प्रकार्य NVDA+ALT+R संयोजनमा तोकिएको छ। कृपया ध्यान दिनुहोस् कि भ्वाइस सन्देश धेरै लामो भएको अवस्थामा, पाठमा रूपान्तरण भागहरूमा हुन्छ। त्यो हो, यो हुन सक्छ कि जब Unigramplus ले तपाईंलाई सूचित गर्दछ कि रूपान्तरण पूरा भयो, भ्वाइस सन्देशको मात्र अंश वास्तवमा रूपान्तरण हुनेछ। र केहि सेकेन्ड पछि, यो पाठ थपिनेछ। 93 | * अब, च्याट सूची मार्फत नेभिगेट गर्दा, UnigramPlus ले प्रिमियम खाताहरू र प्रमाणित खाताहरू बारे जानकारी रिपोर्ट गर्दछ। 94 | 95 | ###संस्करण ४.३.० 96 | 97 | * अब UnigramPlus ले सही रूपमा काम गर्दछ जब धेरै च्याटहरू विभिन्न विन्डोहरूमा खुला हुन्छन्। 98 | * यदि यो खुला छ भने प्रयोगकर्ता प्रोफाइल क्षेत्रमा फोकस सार्न किबोर्ड सर्टकट थपियो। पूर्वनिर्धारित इशारा alt+5 हो। 99 | * स-साना बगहरू फिक्स गरियो। 100 | 101 | ###संस्करण ४.४.० 102 | 103 | * UnigramPlus सेटिङहरू बचत गर्नको लागि संयन्त्र महत्त्वपूर्ण रूपमा पुन: डिजाइन गरिएको छ। अब सेटिङहरू NVDA कन्फिगरेसन फाइलमा भण्डारण गरिने छैन, तर आफ्नै कन्फिग फाइलमा भण्डारण गरिनेछ। NVDA कन्फिगरेसन फाइल पहुँच गर्ने समस्याहरूको कारणले गर्दा प्रयोगकर्ताहरूले अपडेट गरेपछि वा अचानक UnigramPlus ले काम गर्न छोड्दा यसले समस्या समाधान गर्नुपर्छ। दुर्भाग्यवश, प्रयोगकर्ताहरूले आफ्नै लागि UnigramPlus पुन: कन्फिगर गर्नुपर्नेछ, किनकि यो अद्यावधिक स्थापना गरेपछि, सबै सेटिङहरू रिसेट हुनेछन्। 104 | * ब्लुटुथ अडियो एड-अनको साथ निश्चित UnigramPlus अनुकूलता मुद्दा। 105 | * अब सन्देश चयन नगरिएको जानकारी रिपोर्ट गरिने छैन। यदि सन्देश चयन गरिएको छ भने, सन्देश सामग्री अघि यसको बारेमा जानकारी घोषणा गरिनेछ। 106 | * यदि तपाईंले NVDA सेटिङहरूमा एलिमेन्ट स्थिति सक्षम गर्नुभएको छ भने अब च्याटमा भएका तत्वहरूको अर्डर नम्बर घोषणा गरिनेछ। 107 | * केही बटनहरूमा लेबलहरू थपियो। 108 | 109 | ###संस्करण ४.१.० 110 | 111 | * सन्देश वा च्याट पिन गर्न इशारा थपियो। पूर्वनिर्धारित रूपमा, यो सुविधामा किबोर्ड सर्टकट तोकिएको छैन। 112 | * "नयाँ कुराकानी" बटन थिच्नको लागि किबोर्ड सर्टकट थपियो। यो सुविधाको लागि पूर्वनिर्धारित इशारा ctrl+n हो। 113 | * "मिडिया संलग्न गर्नुहोस्" बटन थिच्नको लागि किबोर्ड सर्टकट थपियो।पूर्वनिर्धारित इशारा ctrl+shift+a हो। 114 | * च्याट फोल्डरहरूको सूचीमा जानको लागि किबोर्ड सर्टकट थपियो। पूर्वनिर्धारित इशारा alt+4 हो। यो सुविधा नौ भन्दा बढी च्याट फोल्डरहरू प्रयोग गर्नेहरूका लागि उपयोगी हुनेछ। 115 | * अब, एरो प्रयोग गरेर फोल्डरहरू बीच स्विच गर्दा, फोकस कतै उफ्रने छैन। 116 | * अब, हटकीहरू प्रयोग गरेर फोल्डरहरू बीच स्विच गर्दा, सक्रिय फोल्डरको नामको अतिरिक्त, यस फोल्डरमा नपढिएका च्याटहरूको संख्या घोषणा गरिनेछ। 117 | * अब "पढिएको रूपमा च्याट चिन्ह लगाउनुहोस्" र "पिन ए म्यासेज वा च्याट" जस्ता सुविधाहरूले पनि उल्टो काम गर्नेछ। 118 | * रोमानियाई स्थानीयकरण थपियो। 119 | 120 | ###संस्करण ४.०.० 121 | 122 | * Unigram 8.8 संग अनुकूलता प्रदान गरियो। युनिग्राम इन्टरफेस परिवर्तन भएकोले, मैले एडन कोडको महत्त्वपूर्ण भाग पुन: लेख्नुपर्‍यो। 123 | * रिवाइन्ड गर्ने र छिटो फर्वार्ड भ्वाइस सन्देशहरू गर्ने क्षमता थपियो। छिटो अगाडि बढ्न, संयोजन नियन्त्रण+दायाँ तीर प्रयोग गर्नुहोस्, र रिवाइन्ड गर्न, नियन्त्रण+बायाँ तीर प्रयोग गर्नुहोस्। 124 | * अब UnigramPlus ले सन्देशहरूमा प्रतिक्रियाहरूको उपस्थिति मात्र रिपोर्ट गर्दैन, तर प्रतिक्रियाहरूको बारेमा विस्तृत जानकारी पनि घोषणा गर्नेछ। 125 | * पपअप विन्डोमा सन्देशको पाठ हेर्ने क्षमता थपियो। यो सुविधाको लागि पूर्वनिर्धारित इशारा ALT+C हो। 126 | * UnigramPlus सेटिंग्स विन्डो खोल्न किबोर्ड सर्टकट थपियो। यो सुविधाको लागि पूर्वनिर्धारित इशारा NVDA+control+U हो 127 | * चेक र रोमानियाई स्थानीयकरणहरू थपियो। 128 | * युक्रेनी बासिन्दाहरूको लागि UnigramPlus अद्यावधिकको साथ निश्चित मुद्दा। 129 | 130 | ###संस्करण ३.२.३ 131 | 132 | * चिनियाँ स्थानीयकरण थपियो। 133 | * अङ्ग्रेजी सहित अवस्थित स्थानीयकरणहरू अद्यावधिक गरियो। 134 | * स-साना बगहरू फिक्स गरियो। 135 | 136 | ###संस्करण ३.२.० 137 | 138 | * हटाइएका सुविधाहरू जस्तै "च्याट गतिविधि ट्र्याकिङ" र "खुल्ला च्याटमा नयाँ सन्देशहरू पढ्नुहोस्" किनभने मैले तिनीहरूलाई NVDA 2022.1 मा ठीकसँग काम गर्न नसकेकोले। 139 | * म्यूट / अनम्युट र कलहरूमा क्यामेरा अन / अफ गर्ने सुधारिएको पहुँच। अब, दुबै प्रकार्यहरूको लागि सर्टकट थिचेपछि, तिनीहरूको स्थिति घोषणा गरिनेछ। 140 | * एउटा मुद्दा फिक्स गरियो जहाँ Enter कुञ्जीले केही तत्वहरूमा ठीकसँग काम गरिरहेको थिएन। अब तपाइँ अझै पनि रेकर्ड बटनमा इन्टर कुञ्जी होल्ड गरेर भ्वाइस सन्देशहरू रेकर्ड गर्न सक्नुहुन्छ। 141 | * तपाइँ अब "सन्देशलाई जवाफ दिनुहोस्" र "सन्देश सम्पादन गर्नुहोस्" जस्ता सुविधाहरूमा किबोर्ड सर्टकटहरू पुन: नियुक्त गर्न सक्नुहुन्छ। तपाईंले यी प्रकार्यहरू इन्टर, ब्याकस्पेस वा बायाँ वा दायाँ तीरहरू जस्ता कुञ्जीहरूमा पनि असाइन गर्न सक्नुहुन्छ, र यसले अन्य वस्तुहरूमा ती कुञ्जीहरूमा हस्तक्षेप गर्दैन। ध्यान दिनुहोस् कि सुरुमा यी सुविधाहरूमा कुनै पनि कुञ्जीहरू तोकिएका छैनन्, तर तपाईं केवल कुराकानी सन्देशहरूमा ध्यान केन्द्रित हुँदा तिनीहरूलाई तोक्न सक्षम हुनुहुनेछ। 142 | * अब प्रकार्य "प्रेषकको नाम भन्नुहोस्" थप सही काम गर्नुपर्छ। 143 | * जब तपाइँ सन्देशमा रहेको लिङ्कमा फोकस गर्नुहुन्छ, सन्देशको पाठ पहिले बोलिनेछैन, तर लिङ्कको पाठ तुरुन्तै बोलिनेछ। 144 | * धेरै साना सुधारहरू गरे र धेरै बगहरू र कमिहरू फिक्स गरियो। 145 | * अब UnigramPlus उल्लेखनीय रूपमा छिटो चल्नु पर्छ। 146 | 147 | ###संस्करण ३.१.० 148 | 149 | * मतदान घोषणा सुधार गरिएको छ। सर्वेक्षणमा भाग लिने प्रयोगकर्ताहरूको नाम अब नतिजा विन्डोमा घोषणा गरिएको छ। मतदानले कुन विकल्प सही थियो भन्ने जानकारी पनि दिनेछ।* सन्देशहरूमा प्रतिक्रिया गर्ने क्षमता थपिएको छ, तर निजी च्याटहरूमा मात्र। यो सुविधा समूह र च्यानलहरूमा राम्रोसँग काम गर्दैन। निजी च्याटहरूमा, NVD + ALT + नम्बरहरू 1 देखि 5 सम्म थिचेर, तपाईंले निम्न प्रतिक्रियाहरू टाइप गर्न सक्नुहुन्छ: 1 - 👍, 2 - 👎, 3 - ❤, 4 - 🔥, 5 - 🥰। 150 | * सन्देशहरूमा अवस्थित जवाफहरूको बारेमा जानकारी घोषणा गर्ने क्षमता थपियो। दुर्भाग्यवश, उपलब्ध प्रतिक्रियाहरूको नाम घोषणा गर्न अझै सम्भव छैन। 151 | * प्रसारणका लागि आवश्यक डाटा द्रुत रूपमा प्रतिलिपि गर्न हटकी थपियो। 152 | * Unigram को नवीनतम संस्करणहरूमा देखा परेको इनलाइन नतिजाहरू प्रदर्शन गर्ने समस्या समाधान गरियो। 153 | 154 | ###संस्करण ३.०.० 155 | 156 | चेतावनी! UnigramPlus ले अब 21.2.0 भन्दा पुरानो NVDA संस्करणहरूलाई समर्थन गर्नेछ। 157 | * धेरै UI तत्वहरूको लागि लेबलहरू थपियो। 158 | * केही बगहरू फिक्स गरियो। 159 | 160 | ###संस्करण २.९.० 161 | 162 | * अब सम्पादन फिल्डले यसको लेबल परिवर्तन गर्नेछ कि हामीले सन्देशको जवाफ दिइरहेका छौं वा सम्पादन गर्दैछौं। 163 | * सेटिङहरूमा हटकीहरू प्रयोग गरेर सन्देशहरू वा च्याटहरू मेटाउनको लागि पुष्टिकरण संवाद सक्षम गर्ने क्षमता थपियो। 164 | * सर्बियाई स्थानीयकरण थपियो। 165 | * फिक्स्ड साना मुद्दाहरू। 166 | 167 | ###संस्करण २.८.० 168 | 169 | * एड-अन भित्रबाट एड-अन अपडेट गर्ने क्षमता थपियो। अब, अद्यावधिकहरू जाँच गर्न र तिनीहरूलाई स्थापना गर्नको लागि, UnigramPlus सेटिङहरू खोल्नुहोस् र उपयुक्त बटनमा क्लिक गर्नुहोस्। तपाईंले NVDA स्टार्टअपमा अद्यावधिकहरूको लागि स्वचालित जाँच पनि सक्षम गर्न सक्नुहुन्छ। 170 | * अरबी स्थानीयकरण थपियो। 171 | 172 | ###संस्करण २.७.० 173 | 174 | * अब तपाईंलाई सन्देश फर्वार्ड गरिएको छ भनेर सूचित गरिनेछ। 175 | * सुधारिएको सन्देश प्रतिलिपि प्रकार्य। अब, यदि पाठमा क्लिक गर्न मिल्ने लिङ्क छ र फोकस त्यो लिङ्कमा छ भने, CTRL+C थिच्दा सम्पूर्ण पाठको सट्टा लिङ्क प्रतिलिपि हुनेछ। 176 | * पाठ ढाँचा कायम राख्दा सन्देशहरू प्रतिलिपि गर्न हटकी थपियो। यो प्रकार्यले अनुप्रयोग मेनुमा सम्बन्धित वस्तुको सक्रियता अनुकरण गर्दछ। यस सुविधाको लागि पूर्वनिर्धारित हटकी CTRL+shift+C हो। यस सुविधाको कारण, टिप्पणीहरू खोल्नको लागि हट कुञ्जीलाई CTRL+ALT+C मा परिवर्तन गरिएको छ। 177 | * खुल्ला च्याटमा नयाँ सन्देशहरू स्वचालित रूपमा घोषणा गर्ने क्षमता थपियो। पूर्वनिर्धारित रूपमा, यसलाई ALT + L थिचेर सक्षम गर्न सकिन्छ। 178 | * च्याट सन्देशहरू छिटो हेर्नको लागि हटकीहरू थपियो। NVDA + CTRL + उल्टो क्रममा कुनै विशेष सन्देशको संख्यासँग सम्बन्धित नम्बर थिच्नुहोस्, त्यो हो, यदि तपाइँ अन्तिम सन्देश हेर्न चाहनुहुन्छ भने, 1 थिच्नुहोस्, यदि तपाइँ अघिल्लो सन्देश हेर्न चाहनुहुन्छ भने, 2, आदि थिच्नुहोस्। 179 | * अब ALT+T थिच्दा तपाईंलाई हालको समूहमा सक्रिय भ्वाइस च्याटको बारेमा जानकारी दिनेछ। 180 | 181 | ###संस्करण २.६.० 182 | 183 | * NVDA 21.3 संग अनुकूलता प्रदान गरियो। 184 | * सन्देश वा च्याटहरू चयन गर्न सक्षम गर्न हटकी थपियो। 185 | * सन्देशहरू फर्वार्ड गर्न हटकुञ्जी थपियो। 186 | * पढिएको रूपमा च्याट चिन्ह लगाउन हटकी थपियो। 187 | * अवस्थित सुविधाहरूको सुधारिएको प्रदर्शन। 188 | 189 | 190 | ###संस्करण २.५.० 191 | 192 | * त्यहाँ अब एउटा चेकबक्स छ, यदि जाँच गरिएमा, केही प्रयोगकर्ताहरूले अनुभव गरिरहेको भ्वाइस सन्देश रेकर्डिङ समस्या समाधान गर्छ। 193 | * सन्देशको जवाफ दिनको लागि हटकी थपियो। तपाईले सन्देशमा इन्टर थिचेर यो गर्न सक्नुहुन्छ वा तपाईले यो सुविधाको लागि वैकल्पिक हटकीहरू अरू केहिमा पुन: नियुक्त गर्न सक्नुहुन्छ।* सन्देशहरू सम्पादन गर्न हटकुञ्जी थपियो। पूर्वनिर्धारित किबोर्ड सर्टकट ALT+Backspace हो। 194 | 195 | ###संस्करण २.४.० 196 | 197 | * अब तपाईंले सन्देशमा फोकस गर्दा प्रेषकको नाम सुन्नुहुनेछ। 198 | * नपढिएका सन्देशहरू भएको समूह च्याटमा फोकस गर्दा, त्यस समूहमा तपाईंको लागि जवाफहरू छन् भने तपाईंलाई सूचित गरिनेछ। 199 | * अघिल्लो अद्यावधिकमा थपिएका सुविधाहरूको प्रदर्शन पनि सुधार गरिएको छ। 200 | 201 | ###संस्करण २.३.० 202 | 203 | * धेरै मिडिया संलग्नकहरू समावेश सन्देशहरूको सुधारिएको पहुँच। पहिले, एक भन्दा बढी मिडिया संलग्नक समावेश भएको सन्देशको क्याप्शन वस्तु नेभिगेसन प्रयोग गरेर मात्र पहुँच गर्न सकिन्छ। अब यस्तो सन्देशमा फोकस गरेपछि यो क्याप्शन तुरुन्तै पढिनेछ। 204 | * पोल समावेश सन्देशहरूको सुधारिएको पहुँच। अब जब तपाइँ यस्तो सन्देशमा ध्यान केन्द्रित गर्नुहुन्छ, तपाइँ पहिले नै भोट गरिसकेका व्यक्तिहरूको संख्या, साथै प्रत्येक विकल्पको परिणामको साथ सबै उत्तर विकल्पहरू सुन्नुहुनेछ। 205 | * URL हरू भएका सन्देशहरूको सुधारिएको पहुँच। अब, यदि URL मा विवरण छ भने, यो पनि पढिनेछ, उदाहरणका लागि, यदि सन्देशमा YouTube को लागि URL छ भने, उक्त भिडियोको शीर्षक र विवरण URL पछि नै पढिनेछ। साथै, यदि URL 30 वर्ण भन्दा लामो छ भने, निम्न विवरण पढ्न सजिलो बनाउन यसलाई छोटो बनाइनेछ। 206 | * इनलाइन क्वेरी परिणाम प्यानलको सुधारिएको पहुँच।. इनलाइन प्रश्नहरूको परिणामहरू मार्फत नेभिगेट गर्न, निम्न संयोजनहरू प्रयोग गर्नुहोस्: नियन्त्रण+माथि र नियन्त्रण+डाउन। 207 | * टिप्पणीहरू खोल्न हटकुञ्जी थपियो। 208 | 209 | ###संस्करण २.२.० 210 | 211 | * केवल तपाईंको लागि र दुबै छेउमा सन्देशहरू वा च्याटहरू मेटाउन हटकी थपियो। यो प्रकार्य Unigram इन्टरफेस भाषासँग सम्बन्धित छ, त्यसैले यसले केही स्थानीयकरणहरूमा काम नगर्न सक्छ। सेटिङहरूमा तपाईंले सूचनाहरू, पाठ वा ध्वनिको प्रकार चयन गर्न सक्नुहुन्छ। 212 | * सेटिङहरूमा Unigram मा तपाइँ कुन इन्टरफेस भाषा प्रयोग गर्नुहुन्छ निर्दिष्ट गर्ने क्षमता थपियो। यो निश्चित स्थानीयकरण संग सम्बन्धित प्रकार्य को सही सञ्चालन को लागी आवश्यक छ। 213 | * हालको च्याट प्रोफाइल खोल्न हटकी थपियो। 214 | * अब, च्याट बन्द गरेपछि, फोकस च्याटहरूको सूचीमा जान्छ, बटनमा होइन "नेभिगेसन मेनु खोल्नुहोस्"। 215 | 216 | ###संस्करण २.१.० 217 | 218 | * च्याट सूचीमा फोल्डरहरू बीच स्विच गर्दा, हालको फोल्डरको नाम घोषणा गरिनेछ। 219 | * च्याट सूचीमा, तपाईंले च्याटको नाम सुन्नुहुन्छ, त्यसपछि यसको प्रकार। 220 | * च्याटहरूको सूचीमा फोकस सार्ने कार्य सुधार गरियो। अब यो थप सटीक र ढिलाइ बिना काम गर्नुपर्छ। 221 | * अब एड-अन सेटिङहरू अझ लचिलो भएका छन्, किनभने केही UnigramPlus विकल्पहरू भएको खण्ड NVDA प्राथमिकता मेनुमा देखा परेको छ। 222 | * थपिएको पोलिश स्थानीयकरण। 223 | * धेरै साना फिक्स र सुधारहरू। 224 | 225 | ###संस्करण २.०.० 226 | 227 | * यो सुविधा जहाँ "देखेको" शब्द घोषणा गरिएको छैन र सन्देश सामग्री पढिनु अघि "देखिएको छैन" शब्द बोलिएको छ अब स्पेनिश, पोर्तुगाली, क्रोएसियाली, टर्की र फारसी स्थानीयकरणहरूमा काम गर्दछ। 228 | * प्रगति पट्टी घोषणाहरूको प्रकार्य सुधारियो। अब, जब यो मोड सक्षम छ,सबै प्रगति सूचकहरू घोषणा गरिएको छैन, तर केवल ती जो फोकसमा छन्। 229 | * यदि तपाईंले एउटा सन्देशमा स्पेसबार थिच्नुभयो जसमा डाउनलोड पूरा नभएको फाइल समावेश छ, तपाईंलाई सूचित गरिनेछ कि डाउनलोड रोकिएको छ। 230 | * पोर्तुगाली स्थानीयकरण थपियो। 231 | * केही साना मुद्दाहरू र सुधारिएको प्रदर्शन फिक्स गरियो। 232 | 233 | ###संस्करण १.९.० 234 | * एक हटकी थपिएको छ जसले मानहरू बीचको प्रगति पट्टी घोषणाको स्तर टगल गर्दछ जस्तै: "सबै प्रगति पट्टीहरू घोषणा गर्नुहोस्", "केही प्रगति पट्टीहरू घोषणा गर्नुहोस्", "भ्वाइस सन्देश प्लेब्याक प्रगति पट्टी बाहेक सबै प्रगति पट्टीहरू घोषणा गर्नुहोस्" र "नगर्नुहोस्। कुनै पनि प्रगति पट्टी घोषणा गर्नुहोस्।" Unigram मा स्वचालित मिडिया डाउनलोडहरू असक्षम पारिएका प्रयोगकर्ताहरूका लागि, प्रगति पट्टी घोषणा स्तर "भ्वाइस सन्देश प्लेब्याक प्रगति पट्टी बाहेक सबै प्रगति पट्टीहरू घोषणा गर्नुहोस्" मा सेट गर्न सकिन्छ, र जसले यसलाई सक्षम पारेका छन्, यसलाई सेट गर्नु राम्रो हुन्छ। "प्रगति पट्टीहरू घोषणा नगर्नुहोस्"। 235 | * स्पेनिश, क्रोएसियाली र फारसी स्थानीयकरणहरू थपियो। 236 | * अघिल्लो संस्करणहरूबाट स-साना बगहरू फिक्स गरियो। 237 | 238 | ###संस्करण १.८.० 239 | 240 | * फाइलको नाम र साइज बोलिनेछ जब कर्सर "ओपन फाइल" बटन वा "डाउनलोड फाइल" बटनमा केन्द्रित हुन्छ, र जब कर्सर अडियो फाइलको प्ले बटनमा केन्द्रित हुन्छ, तपाईंले यसको आवाज सुन्नुहुनेछ। नाम र अवधि। 241 | * सम्पादन फिल्डमा फोकस सार्न हटकी थपियो। यदि फोकस पहिले नै सम्पादन फिल्डमा छ भने, हट कुञ्जी थिचेपछि, यो पहिले भएको ठाउँमा सर्नेछ। 242 | * च्याट गतिविधि ट्र्याकिङ सुविधा अब ALT + T दोहोरो थिचेर सक्षम गरिएको छ। तपाईले अर्को पटक अनुप्रयोग बन्द नगरेसम्म यसलाई खोल्न वा अस्थायी रूपमा खोल्न सक्नुहुन्छ। 243 | * आवाज सन्देशहरू रेकर्डिङको लागि सूचनाको प्रकार चयन गर्ने क्षमता थपियो। यो कन्ट्रोल + डी हटकीलाई डबल थिचेर गरिन्छ। त्यहाँ तपाईं ध्वनि, पाठ सूचना, वा मानक आवाज सन्देश रेकर्डिङ व्यवहारमा फर्कन बीचमा छनौट गर्न सक्नुहुन्छ। 244 | 245 | ###संस्करण १.७.० 246 | 247 | भ्वाइस सन्देशहरू रेकर्ड गर्ने कार्यमा उल्लेखनीय सुधार गरियो। रेकर्डिङ, पठाउने र भ्वाइस सन्देशको रेकर्डिङ रद्द गर्न विशेषता ध्वनिहरू सँगसँगै छन्। साथै, यी प्रकार्यहरू प्रदर्शन गर्दा, फोकस यसको स्थितिमा रहन्छ र रेकर्ड बटन वा सन्देश इनपुट फिल्डमा जाँदैन। 248 | 249 | ###संस्करण १.७.० 250 | 251 | * च्याट गतिविधि ट्र्याक गर्ने क्षमता थपियो। यो विकल्पलाई ALT+shift+T थिचेर सक्षम गर्न सकिन्छ र Unigram बन्द नभएसम्म वा NVDA फेरि सुरु नभएसम्म सक्रिय रहन्छ। 252 | * "थप विकल्पहरू" बटन सक्रिय गर्ने हटकीले अब भ्वाइस च्याट विन्डो र कल विन्डोमा काम गर्छ। 253 | 254 | ###संस्करण १.६.० 255 | 256 | * यदि सन्देशमा संलग्न मिडिया स्पेसबार प्रयोग गरेर खोलिएको छ भने, यसलाई बन्द गरेपछि, फोकस अन्तिम तत्वमा फर्किनेछ जुन फोकसमा थियो। 257 | * अब तपाईं हालको समूहबाट मात्र होइन, अन्य कुनै च्याटबाट पनि सक्रिय भ्वाइस च्याटमा फर्कन सक्नुहुन्छ। 258 | * खुला च्याटमा ALT+shift+C थिच्दा तपाईंलाई सम्पर्कमा कल गर्नुको सट्टा भ्वाइस च्याटमा फर्किनेछ। 259 | * यदि सन्देश पठाइएको छैन भने, त्यो सन्देश फोकस भएको बित्तिकै तपाईंलाई सूचित गरिनेछ।* यदि फोकस गरिएको सन्देशमा लिङ्क समावेश छ भने, तपाईंले लिङ्कको पाठ मात्र सुन्नुहुनेछ, सम्पूर्ण सन्देश होइन। 260 | * एक मुद्दा फिक्स गरियो जहाँ बटनहरूको स्थिति परिवर्तनहरू जस्तै म्यूट/अनम्युट माइक र क्यामेरा सक्षम/असक्षम गर्नुहोस् निजी कलहरू र भ्वाइस च्याटहरूमा रिपोर्ट गरिएको थिएन। 261 | * अब सन्देश प्रतिलिपि प्रकार्यले तपाईंलाई सन्देश द्रुत दृश्य विन्डोमा वस्तुहरूको सामग्री प्रतिलिपि गर्न अनुमति दिन्छ। 262 | 263 | ###संस्करण १.५.१ 264 | 265 | यो अपडेटले धेरै संख्यामा बगहरू फिक्स गर्छ र एड-अनको कार्यसम्पादनमा सुधार गर्छ। 266 | 267 | ###संस्करण १.५.० 268 | 269 | यो अद्यावधिकले हटकुञ्जी थप्छ जसले सन्देशमा समावेश भएको खण्डमा सन्देशमा "तत्काल दृश्य" बटनमा क्लिक गर्दछ। पूर्वनिर्धारित रूपमा, यो सुविधा ALT+Q हटकीसँग सक्रिय हुन्छ। यस्तो लेख खोलिसकेपछि, फोकस स्वतः यस लेखको पहिलो तत्वमा जान्छ, र बन्द भएपछि, फोकस अन्तिम हेरिएको सन्देशमा फर्किनेछ। हामीले तत्काल दृश्य सञ्झ्यालमा सबै लेख तत्वहरू पाठ सामग्री समावेश भए तापनि पढ्न योग्य नभएको समस्या पनि समाधान गर्यौं। 270 | 271 | ###संस्करण १.१.७ 272 | 273 | टर्की स्थानीयकरण थपियो। -------------------------------------------------------------------------------- /addon/locale/pt_BR/LC_MESSAGES/nvda.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: UnigramPlus1.9\n" 4 | "POT-Creation-Date: 2022-06-19 18:49+0300\n" 5 | "PO-Revision-Date: 2022-06-19 18:49+0300\n" 6 | "Last-Translator: Ângelo Abrantes \n" 7 | "Language-Team: Equipa Portuguesa do NVDA: Ângelo Abrantes e Rui Fontes (14-08-2021)\n" 9 | "Language: pt_PT\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 14 | "X-Generator: Poedit 3.1\n" 15 | "X-Poedit-Basepath: ../../..\n" 16 | "X-Poedit-SourceCharset: UTF-8\n" 17 | "X-Poedit-SearchPath-0: appModules\n" 18 | "X-Poedit-SearchPath-1: GlobalPlugins/UnigramPlus\n" 19 | 20 | #: GlobalPlugins/UnigramPlus/__init__.py:18 21 | msgid "Arabic" 22 | msgstr "" 23 | 24 | #: GlobalPlugins/UnigramPlus/__init__.py:19 25 | msgid "Czech" 26 | msgstr "" 27 | 28 | #: GlobalPlugins/UnigramPlus/__init__.py:20 29 | msgid "English" 30 | msgstr "" 31 | 32 | #: GlobalPlugins/UnigramPlus/__init__.py:21 33 | msgid "French" 34 | msgstr "" 35 | 36 | #: GlobalPlugins/UnigramPlus/__init__.py:22 37 | msgid "German" 38 | msgstr "" 39 | 40 | #: GlobalPlugins/UnigramPlus/__init__.py:23 41 | msgid "Italian" 42 | msgstr "" 43 | 44 | #: GlobalPlugins/UnigramPlus/__init__.py:24 45 | msgid "Persian" 46 | msgstr "" 47 | 48 | #: GlobalPlugins/UnigramPlus/__init__.py:25 49 | msgid "Polish" 50 | msgstr "" 51 | 52 | #: GlobalPlugins/UnigramPlus/__init__.py:26 53 | msgid "Portuguese" 54 | msgstr "" 55 | 56 | #: GlobalPlugins/UnigramPlus/__init__.py:27 57 | msgid "Russian" 58 | msgstr "" 59 | 60 | #: GlobalPlugins/UnigramPlus/__init__.py:28 61 | msgid "Spanish" 62 | msgstr "" 63 | 64 | #: GlobalPlugins/UnigramPlus/__init__.py:29 65 | msgid "Turkish" 66 | msgstr "" 67 | 68 | #: GlobalPlugins/UnigramPlus/__init__.py:30 69 | msgid "Ukrainian" 70 | msgstr "" 71 | 72 | #: GlobalPlugins/UnigramPlus/__init__.py:31 73 | msgid "Croatian" 74 | msgstr "" 75 | 76 | #: GlobalPlugins/UnigramPlus/__init__.py:32 77 | msgid "Serbian" 78 | msgstr "" 79 | 80 | #: GlobalPlugins/UnigramPlus/__init__.py:74 81 | #, fuzzy 82 | #| msgid "Video call unavailable" 83 | msgid "No updates available" 84 | msgstr "Videochamada indisponível" 85 | 86 | #: GlobalPlugins/UnigramPlus/__init__.py:75 87 | #: GlobalPlugins/UnigramPlus/__init__.py:86 88 | #: GlobalPlugins/UnigramPlus/__init__.py:94 89 | msgid "UnigramPlus update" 90 | msgstr "" 91 | 92 | #: GlobalPlugins/UnigramPlus/__init__.py:85 93 | msgid "" 94 | "A new version of the add-on is available. Do you want to update UnigramPlus " 95 | "to version %version?" 96 | msgstr "" 97 | 98 | #: GlobalPlugins/UnigramPlus/__init__.py:144 99 | msgid "Before chat name" 100 | msgstr "" 101 | 102 | #: GlobalPlugins/UnigramPlus/__init__.py:145 103 | msgid "After chat name" 104 | msgstr "" 105 | 106 | #: GlobalPlugins/UnigramPlus/__init__.py:146 107 | msgid "Do not speak chat type" 108 | msgstr "" 109 | 110 | #: GlobalPlugins/UnigramPlus/__init__.py:149 111 | #, fuzzy 112 | #| msgid "Voice message recording has standard behavior" 113 | msgid "Revert to standard voice message recording behavior" 114 | msgstr "A gravação de mensagens de voz tem um comportamento padrão" 115 | 116 | #: GlobalPlugins/UnigramPlus/__init__.py:150 117 | msgid "Text notification" 118 | msgstr "" 119 | 120 | #: GlobalPlugins/UnigramPlus/__init__.py:151 121 | msgid "sound notification" 122 | msgstr "" 123 | 124 | #: GlobalPlugins/UnigramPlus/__init__.py:154 appModules/unigram.py:629 125 | msgid "Announce all progress bars" 126 | msgstr "Anunciar todas as barras de progresso" 127 | 128 | #: GlobalPlugins/UnigramPlus/__init__.py:155 appModules/unigram.py:635 129 | msgid "Do not announce any progress bars" 130 | msgstr "Não anunciar nenhuma barra de progresso" 131 | 132 | #: GlobalPlugins/UnigramPlus/__init__.py:156 133 | #, fuzzy 134 | #| msgid "Announce all progress bars" 135 | msgid "Announce some progress bars" 136 | msgstr "Anunciar todas as barras de progresso" 137 | 138 | #: GlobalPlugins/UnigramPlus/__init__.py:159 139 | msgid "Do not say at all" 140 | msgstr "" 141 | 142 | #: GlobalPlugins/UnigramPlus/__init__.py:160 143 | msgid "Only in sent messages" 144 | msgstr "" 145 | 146 | #: GlobalPlugins/UnigramPlus/__init__.py:161 147 | msgid "Only in received messages" 148 | msgstr "" 149 | 150 | #: GlobalPlugins/UnigramPlus/__init__.py:162 151 | msgid "In all messages" 152 | msgstr "" 153 | 154 | #: GlobalPlugins/UnigramPlus/__init__.py:167 155 | msgid "Interface language in Unigram:" 156 | msgstr "" 157 | 158 | #: GlobalPlugins/UnigramPlus/__init__.py:170 159 | msgid "Speak the type of chat in the chat list:" 160 | msgstr "" 161 | 162 | #: GlobalPlugins/UnigramPlus/__init__.py:173 163 | msgid "Say the sender's name in:" 164 | msgstr "" 165 | 166 | #: GlobalPlugins/UnigramPlus/__init__.py:176 167 | msgid "Speak \"Not Seen\" before reading contents of a message" 168 | msgstr "" 169 | 170 | #: GlobalPlugins/UnigramPlus/__init__.py:180 171 | msgid "Speak folder names when switching between them" 172 | msgstr "" 173 | 174 | #: GlobalPlugins/UnigramPlus/__init__.py:184 175 | msgid "Notify about deleting a message and chat with a sound" 176 | msgstr "" 177 | 178 | #: GlobalPlugins/UnigramPlus/__init__.py:188 179 | msgid "Display confirmation dialog when deleting messages and chats" 180 | msgstr "" 181 | 182 | #: GlobalPlugins/UnigramPlus/__init__.py:192 183 | #, fuzzy 184 | #| msgid "Voice message recording notifications are set to sounds" 185 | msgid "Set voice message recording notification method as:" 186 | msgstr "" 187 | "As notificações de gravação de mensagens de voz estão definidas para sons" 188 | 189 | #: GlobalPlugins/UnigramPlus/__init__.py:195 190 | msgid "Select the progress bar notification level:" 191 | msgstr "" 192 | 193 | #: GlobalPlugins/UnigramPlus/__init__.py:198 194 | msgid "Read description of URLs attached to messages" 195 | msgstr "" 196 | 197 | #: GlobalPlugins/UnigramPlus/__init__.py:202 198 | msgid "Read full video description in YouTube URLs" 199 | msgstr "" 200 | 201 | #: GlobalPlugins/UnigramPlus/__init__.py:206 202 | msgid "Announce if there is a reply in the group" 203 | msgstr "" 204 | 205 | #: GlobalPlugins/UnigramPlus/__init__.py:210 206 | msgid "Announce if the message contains a reaction" 207 | msgstr "" 208 | 209 | #: GlobalPlugins/UnigramPlus/__init__.py:214 210 | msgid "" 211 | "Check this box if the voice message recording function or the voice message " 212 | "playback speed change function does not work properly" 213 | msgstr "" 214 | 215 | #: GlobalPlugins/UnigramPlus/__init__.py:218 216 | msgid "Check for UnigramPlus updates on NVDA startup" 217 | msgstr "" 218 | 219 | #: GlobalPlugins/UnigramPlus/__init__.py:223 220 | msgid "Check for &updates" 221 | msgstr "" 222 | 223 | #: appModules/data.py:31 224 | msgid "Back" 225 | msgstr "" 226 | 227 | #: appModules/data.py:32 228 | msgid "Menu" 229 | msgstr "" 230 | 231 | #: appModules/data.py:33 232 | msgid "Attach" 233 | msgstr "" 234 | 235 | #: appModules/data.py:34 236 | msgid "Edit" 237 | msgstr "" 238 | 239 | #: appModules/data.py:35 240 | msgid "Photo" 241 | msgstr "" 242 | 243 | #: appModules/data.py:36 appModules/unigram.py:731 244 | msgid "Image" 245 | msgstr "" 246 | 247 | #: appModules/data.py:37 248 | msgid "Invite link" 249 | msgstr "" 250 | 251 | #: appModules/data.py:38 252 | msgid "Choose time" 253 | msgstr "" 254 | 255 | #: appModules/data.py:39 256 | msgid "Title field" 257 | msgstr "" 258 | 259 | #: appModules/data.py:43 260 | msgid "Insert emojis" 261 | msgstr "" 262 | 263 | #: appModules/data.py:44 264 | msgid "Done" 265 | msgstr "" 266 | 267 | #: appModules/data.py:45 268 | msgid "Next" 269 | msgstr "" 270 | 271 | #: appModules/data.py:46 272 | msgid "Merge files" 273 | msgstr "" 274 | 275 | #: appModules/data.py:47 276 | msgid "Search" 277 | msgstr "" 278 | 279 | #: appModules/data.py:48 280 | msgid "Delete" 281 | msgstr "" 282 | 283 | #: appModules/data.py:49 284 | msgid "Close" 285 | msgstr "" 286 | 287 | #: appModules/unigram.py:40 appModules/unigram.py:368 288 | msgid "Camera on" 289 | msgstr "Câmera ligada" 290 | 291 | #: appModules/unigram.py:40 appModules/unigram.py:370 292 | msgid "Camera off" 293 | msgstr "Câmera desligada" 294 | 295 | #: appModules/unigram.py:51 296 | msgid "Edit message" 297 | msgstr "" 298 | 299 | #: appModules/unigram.py:56 300 | msgid "Reply to message" 301 | msgstr "" 302 | 303 | #: appModules/unigram.py:127 304 | msgid "Chat list not found" 305 | msgstr "Lista de conversação não encontrada" 306 | 307 | #: appModules/unigram.py:141 308 | #, fuzzy 309 | #| msgid "Increase/decrease voice message playback speed" 310 | msgid "Increase/decrease the playback speed of voice messages" 311 | msgstr "Aumentar/diminuir a velocidade de reprodução de mensagens de voz" 312 | 313 | #: appModules/unigram.py:149 appModules/unigram.py:161 314 | #: appModules/unigram.py:171 315 | msgid "Nothing is playing right now" 316 | msgstr "Nada está a tocar neste momento" 317 | 318 | #: appModules/unigram.py:152 319 | msgid "Close audio player" 320 | msgstr "Fechar o leitor de áudio" 321 | 322 | #: appModules/unigram.py:160 323 | #, fuzzy 324 | #| msgid "Audio player has been closed" 325 | msgid "The audio player has been closed" 326 | msgstr "O leitor de áudio foi encerrado" 327 | 328 | #: appModules/unigram.py:164 329 | #, fuzzy 330 | #| msgid "Play/pause the voice message that is currently playing" 331 | msgid "Play/pause the voice message currently playing" 332 | msgstr "Reproduzir/pausar a mensagem de voz que está actualmente a tocar" 333 | 334 | #: appModules/unigram.py:195 335 | msgid "Move focus to chat list" 336 | msgstr "Mover o foco para a lista de conversação" 337 | 338 | #: appModules/unigram.py:206 339 | msgid "Chat list is empty" 340 | msgstr "A lista de conversação está vazia" 341 | 342 | #: appModules/unigram.py:209 343 | msgid "Move focus to the last message in the chat" 344 | msgstr "Mover o foco para a última mensagem na conversação." 345 | 346 | #: appModules/unigram.py:221 appModules/unigram.py:250 347 | #: appModules/unigram.py:647 appModules/unigram.py:660 348 | msgid "This chat is empty" 349 | msgstr "Esta conversa está vazia" 350 | 351 | #: appModules/unigram.py:222 appModules/unigram.py:241 352 | #: appModules/unigram.py:249 appModules/unigram.py:456 353 | #: appModules/unigram.py:643 354 | msgid "No open chat" 355 | msgstr "Sem conversa aberta" 356 | 357 | #: appModules/unigram.py:226 358 | msgid "Announce the name and status of an open chat" 359 | msgstr "" 360 | 361 | #: appModules/unigram.py:244 362 | msgid "Move focus to 'unread messages' label" 363 | msgstr "Mover o foco para o rótulo de 'mensagens não lidas" 364 | 365 | #: appModules/unigram.py:259 366 | msgid "There are no unread messages in this chat" 367 | msgstr "Não há mensagens não lidas nesta conversação" 368 | 369 | #: appModules/unigram.py:262 370 | #, fuzzy 371 | #| msgid "Call if it is a contact or enter voice chat if it is a group" 372 | msgid "Call if it's a contact, or enter a voice chat if it's a group" 373 | msgstr "" 374 | "Telefonar se for um contacto ou entrar na conversação de voz se for um grupo" 375 | 376 | #: appModules/unigram.py:267 377 | msgid "Call unavailable" 378 | msgstr "Chamada indisponível" 379 | 380 | #: appModules/unigram.py:270 381 | #, fuzzy 382 | #| msgid "Press video call button" 383 | msgid "Press the video call button" 384 | msgstr "Pressionar o botão de videochamada" 385 | 386 | #: appModules/unigram.py:274 387 | #, fuzzy 388 | #| msgid "Video call unavailable" 389 | msgid "Video call not available" 390 | msgstr "Videochamada indisponível" 391 | 392 | #: appModules/unigram.py:277 393 | #, fuzzy 394 | #| msgid "" 395 | #| "Press \"Instant view\" button, if it is contained in the current message" 396 | msgid "Press \"Instant view\" button, if it is included in the current message" 397 | msgstr "" 398 | "Pressione o botão \"Visão instantânea\", se estiver contido na mensagem " 399 | "actual" 400 | 401 | #: appModules/unigram.py:294 402 | msgid "Accept call" 403 | msgstr "Aceitar chamada" 404 | 405 | #: appModules/unigram.py:303 406 | msgid "" 407 | "Press \"Decline call\" button if there is an incoming call, \"End call\" " 408 | "button if a call is in progress or leave voice chat if it is active." 409 | msgstr "" 410 | "Premir botão \"Declinar chamada\" se houver uma chamada recebida, botão " 411 | "\"Terminar chamada\" se uma chamada estiver em curso ou deixar conversa por " 412 | "voz se estiver activa." 413 | 414 | #: appModules/unigram.py:322 415 | #, fuzzy 416 | #| msgid "Press \"Enable/disable microphone\" button" 417 | msgid "Press \"Mute/unmute microphone\" button" 418 | msgstr "Pressionar o botão \"Activar/desactivar microfone\"" 419 | 420 | #: appModules/unigram.py:349 421 | msgid "Press \"Enable/disable camera\" button" 422 | msgstr "Pressionar o botão \"Activar/desactivar câmera" 423 | 424 | #: appModules/unigram.py:380 425 | #, fuzzy 426 | #| msgid "Copy message if it contains text" 427 | msgid "Copy the message if it contains text" 428 | msgstr "Copiar mensagem se contiver texto" 429 | 430 | #: appModules/unigram.py:386 431 | msgid "Message copied" 432 | msgstr "Mensagem copiada" 433 | 434 | #: appModules/unigram.py:389 435 | msgid "Link copied" 436 | msgstr "" 437 | 438 | #: appModules/unigram.py:394 439 | msgid "This message does not contain text" 440 | msgstr "Esta mensagem não contém texto" 441 | 442 | #: appModules/unigram.py:396 443 | #, fuzzy 444 | #| msgid "Copy message if it contains text" 445 | msgid "Copy messages with formatting preserved" 446 | msgstr "Copiar mensagem se contiver texto" 447 | 448 | #: appModules/unigram.py:401 449 | #, fuzzy 450 | #| msgid "" 451 | #| "Move focus to the edit field. If focus is already in the edit field, " 452 | #| "after pressing the hotkeys it will move to where it was previously" 453 | msgid "" 454 | "Move the focus to the edit field. If the focus is already in the edit field, " 455 | "then after pressing the hotkey, it will move to where it was before" 456 | msgstr "" 457 | "Mover o foco para o campo de edição. Se o foco já estiver no campo de " 458 | "edição, depois de premir as teclas de atalho, irá deslocar-se para onde " 459 | "estava anteriormente" 460 | 461 | #: appModules/unigram.py:417 462 | msgid "Message input field not found" 463 | msgstr "Campo de entrada de mensagens não encontrado" 464 | 465 | #: appModules/unigram.py:420 466 | msgid "" 467 | "Press \"More Options\" button in an open chat, voice chat, or call window" 468 | msgstr "" 469 | "Prima o botão \"Mais Opções\" numa conversação aberta, conversa por voz, ou " 470 | "janela de chamada" 471 | 472 | #: appModules/unigram.py:428 473 | msgid "Button not found" 474 | msgstr "Botão não encontrado" 475 | 476 | #: appModules/unigram.py:431 477 | msgid "Open navigation menu" 478 | msgstr "Abrir menu de navegação" 479 | 480 | #: appModules/unigram.py:437 481 | #, fuzzy 482 | #| msgid "Navigation menu unavailable" 483 | msgid "Navigation menu not available" 484 | msgstr "Menu de navegação indisponível" 485 | 486 | #: appModules/unigram.py:440 487 | msgid "Open comments" 488 | msgstr "" 489 | 490 | #: appModules/unigram.py:447 491 | #, fuzzy 492 | #| msgid "Button not found" 493 | msgid "Button to open comments not found" 494 | msgstr "Botão não encontrado" 495 | 496 | #: appModules/unigram.py:450 497 | msgid "Open current chat profile" 498 | msgstr "" 499 | 500 | #: appModules/unigram.py:472 501 | #, fuzzy 502 | #| msgid "" 503 | #| "Recording a voice message will not be possible until the edit field " 504 | #| "becomes empty" 505 | msgid "" 506 | "It will not be possible to record a voice message until the edit field is " 507 | "empty" 508 | msgstr "" 509 | "A gravação de uma mensagem de voz não será possível até que o campo de " 510 | "edição fique vazio" 511 | 512 | #: appModules/unigram.py:479 513 | msgid "Record sent" 514 | msgstr "Gravação enviada" 515 | 516 | #: appModules/unigram.py:484 517 | msgid "Video" 518 | msgstr "" 519 | 520 | #: appModules/unigram.py:485 521 | msgid "Audio" 522 | msgstr "" 523 | 524 | #: appModules/unigram.py:502 525 | #, fuzzy 526 | #| msgid "Voice message recording notifications are set to text" 527 | msgid "Voice recording notifications set to text" 528 | msgstr "" 529 | "As notificações de gravação de mensagens de voz estão definidas para texto" 530 | 531 | #: appModules/unigram.py:505 532 | #, fuzzy 533 | #| msgid "Voice message recording notifications are set to sounds" 534 | msgid "Voice recording notifications set to sounds" 535 | msgstr "" 536 | "As notificações de gravação de mensagens de voz estão definidas para sons" 537 | 538 | #: appModules/unigram.py:508 539 | #, fuzzy 540 | #| msgid "Voice message recording has standard behavior" 541 | msgid "Recording voice messages has standard behavior" 542 | msgstr "A gravação de mensagens de voz tem um comportamento padrão" 543 | 544 | #: appModules/unigram.py:516 545 | #, fuzzy 546 | #| msgid "Record canceled" 547 | msgid "Recording canceled" 548 | msgstr "Gravação cancelada" 549 | 550 | #: appModules/unigram.py:544 551 | msgid "Right answer" 552 | msgstr "" 553 | 554 | #: appModules/unigram.py:547 555 | msgid "Answer options" 556 | msgstr "" 557 | 558 | #: appModules/unigram.py:564 559 | msgid "You" 560 | msgstr "" 561 | 562 | #: appModules/unigram.py:577 563 | msgid "Not sent" 564 | msgstr "Não enviado" 565 | 566 | #: appModules/unigram.py:593 567 | msgid "Contains reaction" 568 | msgstr "" 569 | 570 | #: appModules/unigram.py:595 571 | msgid "Selected" 572 | msgstr "Seleccionado" 573 | 574 | #: appModules/unigram.py:620 575 | msgid "there are replies for you" 576 | msgstr "" 577 | 578 | #: appModules/unigram.py:625 579 | msgid "Toggle progress bar announcements" 580 | msgstr "Alternar anúncios da barra de progresso" 581 | 582 | #: appModules/unigram.py:632 583 | msgid "Announce all progress bars except voice message playback progress bar" 584 | msgstr "" 585 | "Anunciar todas as barras de progresso excepto a barra de progresso de " 586 | "reprodução de mensagens de voz" 587 | 588 | #: appModules/unigram.py:739 589 | msgid "Editing" 590 | msgstr "" 591 | 592 | #: appModules/unigram.py:740 593 | msgid "Reply" 594 | msgstr "" 595 | 596 | #: appModules/unigram.py:748 597 | msgid "Duration" 598 | msgstr "" 599 | 600 | #: appModules/unigram.py:749 601 | msgid "Size" 602 | msgstr "" 603 | 604 | #: appModules/unigram.py:760 605 | msgid "Enable video" 606 | msgstr "" 607 | 608 | #: appModules/unigram.py:761 609 | msgid "Disable video" 610 | msgstr "" 611 | 612 | #: appModules/unigram.py:846 613 | msgid "Delete a message or chat" 614 | msgstr "" 615 | 616 | #: appModules/unigram.py:849 617 | msgid "Delete message or chat from both sides" 618 | msgstr "" 619 | 620 | #: appModules/unigram.py:867 621 | #, fuzzy 622 | #| msgid "Chat list not found" 623 | msgid "Inline results not found" 624 | msgstr "Lista de conversação não encontrada" 625 | 626 | #: appModules/unigram.py:878 627 | msgid "Inline results not detected" 628 | msgstr "" 629 | 630 | #: appModules/unigram.py:881 631 | msgid "Switch to selection mode" 632 | msgstr "" 633 | 634 | #: appModules/unigram.py:884 635 | msgid "Forward message" 636 | msgstr "" 637 | 638 | #: appModules/unigram.py:887 639 | msgid "Mark a chat as read" 640 | msgstr "" 641 | 642 | #: appModules/unigram.py:890 643 | msgid "Save file as..." 644 | msgstr "" 645 | 646 | #: appModules/unigram.py:914 647 | msgid "Message deleted on both sides" 648 | msgstr "" 649 | 650 | #: appModules/unigram.py:915 651 | #, fuzzy 652 | #| msgid "Message copied" 653 | msgid "Message deleted" 654 | msgstr "Mensagem copiada" 655 | 656 | #: appModules/unigram.py:918 657 | msgid "You left the group" 658 | msgstr "" 659 | 660 | #: appModules/unigram.py:919 661 | msgid "You left the channel" 662 | msgstr "" 663 | 664 | #: appModules/unigram.py:920 665 | msgid "Bot removed and blocked" 666 | msgstr "" 667 | 668 | #: appModules/unigram.py:921 669 | msgid "Bot removed" 670 | msgstr "" 671 | 672 | #: appModules/unigram.py:922 673 | msgid "Chat deleted on both sides" 674 | msgstr "" 675 | 676 | #: appModules/unigram.py:923 677 | msgid "Chat deleted" 678 | msgstr "" 679 | 680 | #: appModules/unigram.py:953 681 | msgid "Copy data for broadcasting to the clipboard" 682 | msgstr "" 683 | 684 | #: appModules/unigram.py:957 685 | #, fuzzy 686 | #| msgid "Chat list not found" 687 | msgid "Broadcast window not found" 688 | msgstr "Lista de conversação não encontrada" 689 | 690 | #: appModules/unigram.py:961 691 | #, fuzzy 692 | #| msgid "Chat list not found" 693 | msgid "The broadcast window is not found" 694 | msgstr "Lista de conversação não encontrada" 695 | 696 | #: appModules/unigram.py:967 697 | msgid "%url and %key copied to the clipboard" 698 | msgstr "" 699 | 700 | #~ msgid "" 701 | #~ "Play/Stop voice or video message in focus or open media attached to the " 702 | #~ "current message" 703 | #~ msgstr "" 704 | #~ "Reproduzir/pararar mensagem de voz ou vídeo em foco ou meios abertos " 705 | #~ "anexados à mensagem actual" 706 | 707 | #~ msgid "" 708 | #~ "Read profile name and status in a public chat. Press twice to switch " 709 | #~ "between \"Turn on tracking chat activity until closing of the app\", " 710 | #~ "\"Turn tracking chat activity on\" and \"Turn tracking chat activity off\"" 711 | #~ msgstr "" 712 | #~ "Ler o nome e o estado do perfil numa conversação pública. pressione duas " 713 | #~ "vezes para alternar entre \"Ligar seguimento de actividade de conversação " 714 | #~ "até ao fecho da aplicação\", \"Ligar seguimento da actividade de " 715 | #~ "conversação \" e \"Desligar seguimento da actividade de conversação \"" 716 | 717 | #~ msgid "Record" 718 | #~ msgstr "Gravação" 719 | 720 | #~ msgid "Chat activity tracking disabled" 721 | #~ msgstr "Seguimento da actividade de conversação desactivado" 722 | 723 | #~ msgid "Chat activity tracking is on until closing of the app" 724 | #~ msgstr "" 725 | #~ "O seguimento da actividade de conversação está ligado até ao encerramento " 726 | #~ "da aplicação" 727 | 728 | #~ msgid "Chat activity tracking enabled" 729 | #~ msgstr "Seguimento da actividade de conversação activado" 730 | -------------------------------------------------------------------------------- /addon/locale/pt_PT/LC_MESSAGES/nvda.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: UnigramPlus1.9\n" 4 | "POT-Creation-Date: 2022-06-19 18:49+0300\n" 5 | "PO-Revision-Date: 2022-06-19 18:49+0300\n" 6 | "Last-Translator: Ângelo Abrantes \n" 7 | "Language-Team: Equipa Portuguesa do NVDA: Ângelo Abrantes e Rui Fontes (14-08-2021)\n" 9 | "Language: pt_PT\n" 10 | "MIME-Version: 1.0\n" 11 | "Content-Type: text/plain; charset=UTF-8\n" 12 | "Content-Transfer-Encoding: 8bit\n" 13 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 14 | "X-Generator: Poedit 3.1\n" 15 | "X-Poedit-Basepath: ../../..\n" 16 | "X-Poedit-SourceCharset: UTF-8\n" 17 | "X-Poedit-SearchPath-0: appModules\n" 18 | "X-Poedit-SearchPath-1: GlobalPlugins/UnigramPlus\n" 19 | 20 | #: GlobalPlugins/UnigramPlus/__init__.py:18 21 | msgid "Arabic" 22 | msgstr "" 23 | 24 | #: GlobalPlugins/UnigramPlus/__init__.py:19 25 | msgid "Czech" 26 | msgstr "" 27 | 28 | #: GlobalPlugins/UnigramPlus/__init__.py:20 29 | msgid "English" 30 | msgstr "" 31 | 32 | #: GlobalPlugins/UnigramPlus/__init__.py:21 33 | msgid "French" 34 | msgstr "" 35 | 36 | #: GlobalPlugins/UnigramPlus/__init__.py:22 37 | msgid "German" 38 | msgstr "" 39 | 40 | #: GlobalPlugins/UnigramPlus/__init__.py:23 41 | msgid "Italian" 42 | msgstr "" 43 | 44 | #: GlobalPlugins/UnigramPlus/__init__.py:24 45 | msgid "Persian" 46 | msgstr "" 47 | 48 | #: GlobalPlugins/UnigramPlus/__init__.py:25 49 | msgid "Polish" 50 | msgstr "" 51 | 52 | #: GlobalPlugins/UnigramPlus/__init__.py:26 53 | msgid "Portuguese" 54 | msgstr "" 55 | 56 | #: GlobalPlugins/UnigramPlus/__init__.py:27 57 | msgid "Russian" 58 | msgstr "" 59 | 60 | #: GlobalPlugins/UnigramPlus/__init__.py:28 61 | msgid "Spanish" 62 | msgstr "" 63 | 64 | #: GlobalPlugins/UnigramPlus/__init__.py:29 65 | msgid "Turkish" 66 | msgstr "" 67 | 68 | #: GlobalPlugins/UnigramPlus/__init__.py:30 69 | msgid "Ukrainian" 70 | msgstr "" 71 | 72 | #: GlobalPlugins/UnigramPlus/__init__.py:31 73 | msgid "Croatian" 74 | msgstr "" 75 | 76 | #: GlobalPlugins/UnigramPlus/__init__.py:32 77 | msgid "Serbian" 78 | msgstr "" 79 | 80 | #: GlobalPlugins/UnigramPlus/__init__.py:74 81 | #, fuzzy 82 | #| msgid "Video call unavailable" 83 | msgid "No updates available" 84 | msgstr "Videochamada indisponível" 85 | 86 | #: GlobalPlugins/UnigramPlus/__init__.py:75 87 | #: GlobalPlugins/UnigramPlus/__init__.py:86 88 | #: GlobalPlugins/UnigramPlus/__init__.py:94 89 | msgid "UnigramPlus update" 90 | msgstr "" 91 | 92 | #: GlobalPlugins/UnigramPlus/__init__.py:85 93 | msgid "" 94 | "A new version of the add-on is available. Do you want to update UnigramPlus " 95 | "to version %version?" 96 | msgstr "" 97 | 98 | #: GlobalPlugins/UnigramPlus/__init__.py:144 99 | msgid "Before chat name" 100 | msgstr "" 101 | 102 | #: GlobalPlugins/UnigramPlus/__init__.py:145 103 | msgid "After chat name" 104 | msgstr "" 105 | 106 | #: GlobalPlugins/UnigramPlus/__init__.py:146 107 | msgid "Do not speak chat type" 108 | msgstr "" 109 | 110 | #: GlobalPlugins/UnigramPlus/__init__.py:149 111 | #, fuzzy 112 | #| msgid "Voice message recording has standard behavior" 113 | msgid "Revert to standard voice message recording behavior" 114 | msgstr "A gravação de mensagens de voz tem um comportamento padrão" 115 | 116 | #: GlobalPlugins/UnigramPlus/__init__.py:150 117 | msgid "Text notification" 118 | msgstr "" 119 | 120 | #: GlobalPlugins/UnigramPlus/__init__.py:151 121 | msgid "sound notification" 122 | msgstr "" 123 | 124 | #: GlobalPlugins/UnigramPlus/__init__.py:154 appModules/unigram.py:629 125 | msgid "Announce all progress bars" 126 | msgstr "Anunciar todas as barras de progresso" 127 | 128 | #: GlobalPlugins/UnigramPlus/__init__.py:155 appModules/unigram.py:635 129 | msgid "Do not announce any progress bars" 130 | msgstr "Não anunciar nenhuma barra de progresso" 131 | 132 | #: GlobalPlugins/UnigramPlus/__init__.py:156 133 | #, fuzzy 134 | #| msgid "Announce all progress bars" 135 | msgid "Announce some progress bars" 136 | msgstr "Anunciar todas as barras de progresso" 137 | 138 | #: GlobalPlugins/UnigramPlus/__init__.py:159 139 | msgid "Do not say at all" 140 | msgstr "" 141 | 142 | #: GlobalPlugins/UnigramPlus/__init__.py:160 143 | msgid "Only in sent messages" 144 | msgstr "" 145 | 146 | #: GlobalPlugins/UnigramPlus/__init__.py:161 147 | msgid "Only in received messages" 148 | msgstr "" 149 | 150 | #: GlobalPlugins/UnigramPlus/__init__.py:162 151 | msgid "In all messages" 152 | msgstr "" 153 | 154 | #: GlobalPlugins/UnigramPlus/__init__.py:167 155 | msgid "Interface language in Unigram:" 156 | msgstr "" 157 | 158 | #: GlobalPlugins/UnigramPlus/__init__.py:170 159 | msgid "Speak the type of chat in the chat list:" 160 | msgstr "" 161 | 162 | #: GlobalPlugins/UnigramPlus/__init__.py:173 163 | msgid "Say the sender's name in:" 164 | msgstr "" 165 | 166 | #: GlobalPlugins/UnigramPlus/__init__.py:176 167 | msgid "Speak \"Not Seen\" before reading contents of a message" 168 | msgstr "" 169 | 170 | #: GlobalPlugins/UnigramPlus/__init__.py:180 171 | msgid "Speak folder names when switching between them" 172 | msgstr "" 173 | 174 | #: GlobalPlugins/UnigramPlus/__init__.py:184 175 | msgid "Notify about deleting a message and chat with a sound" 176 | msgstr "" 177 | 178 | #: GlobalPlugins/UnigramPlus/__init__.py:188 179 | msgid "Display confirmation dialog when deleting messages and chats" 180 | msgstr "" 181 | 182 | #: GlobalPlugins/UnigramPlus/__init__.py:192 183 | #, fuzzy 184 | #| msgid "Voice message recording notifications are set to sounds" 185 | msgid "Set voice message recording notification method as:" 186 | msgstr "" 187 | "As notificações de gravação de mensagens de voz estão definidas para sons" 188 | 189 | #: GlobalPlugins/UnigramPlus/__init__.py:195 190 | msgid "Select the progress bar notification level:" 191 | msgstr "" 192 | 193 | #: GlobalPlugins/UnigramPlus/__init__.py:198 194 | msgid "Read description of URLs attached to messages" 195 | msgstr "" 196 | 197 | #: GlobalPlugins/UnigramPlus/__init__.py:202 198 | msgid "Read full video description in YouTube URLs" 199 | msgstr "" 200 | 201 | #: GlobalPlugins/UnigramPlus/__init__.py:206 202 | msgid "Announce if there is a reply in the group" 203 | msgstr "" 204 | 205 | #: GlobalPlugins/UnigramPlus/__init__.py:210 206 | msgid "Announce if the message contains a reaction" 207 | msgstr "" 208 | 209 | #: GlobalPlugins/UnigramPlus/__init__.py:214 210 | msgid "" 211 | "Check this box if the voice message recording function or the voice message " 212 | "playback speed change function does not work properly" 213 | msgstr "" 214 | 215 | #: GlobalPlugins/UnigramPlus/__init__.py:218 216 | msgid "Check for UnigramPlus updates on NVDA startup" 217 | msgstr "" 218 | 219 | #: GlobalPlugins/UnigramPlus/__init__.py:223 220 | msgid "Check for &updates" 221 | msgstr "" 222 | 223 | #: appModules/data.py:31 224 | msgid "Back" 225 | msgstr "" 226 | 227 | #: appModules/data.py:32 228 | msgid "Menu" 229 | msgstr "" 230 | 231 | #: appModules/data.py:33 232 | msgid "Attach" 233 | msgstr "" 234 | 235 | #: appModules/data.py:34 236 | msgid "Edit" 237 | msgstr "" 238 | 239 | #: appModules/data.py:35 240 | msgid "Photo" 241 | msgstr "" 242 | 243 | #: appModules/data.py:36 appModules/unigram.py:731 244 | msgid "Image" 245 | msgstr "" 246 | 247 | #: appModules/data.py:37 248 | msgid "Invite link" 249 | msgstr "" 250 | 251 | #: appModules/data.py:38 252 | msgid "Choose time" 253 | msgstr "" 254 | 255 | #: appModules/data.py:39 256 | msgid "Title field" 257 | msgstr "" 258 | 259 | #: appModules/data.py:43 260 | msgid "Insert emojis" 261 | msgstr "" 262 | 263 | #: appModules/data.py:44 264 | msgid "Done" 265 | msgstr "" 266 | 267 | #: appModules/data.py:45 268 | msgid "Next" 269 | msgstr "" 270 | 271 | #: appModules/data.py:46 272 | msgid "Merge files" 273 | msgstr "" 274 | 275 | #: appModules/data.py:47 276 | msgid "Search" 277 | msgstr "" 278 | 279 | #: appModules/data.py:48 280 | msgid "Delete" 281 | msgstr "" 282 | 283 | #: appModules/data.py:49 284 | msgid "Close" 285 | msgstr "" 286 | 287 | #: appModules/unigram.py:40 appModules/unigram.py:368 288 | msgid "Camera on" 289 | msgstr "Câmera ligada" 290 | 291 | #: appModules/unigram.py:40 appModules/unigram.py:370 292 | msgid "Camera off" 293 | msgstr "Câmera desligada" 294 | 295 | #: appModules/unigram.py:51 296 | msgid "Edit message" 297 | msgstr "" 298 | 299 | #: appModules/unigram.py:56 300 | msgid "Reply to message" 301 | msgstr "" 302 | 303 | #: appModules/unigram.py:127 304 | msgid "Chat list not found" 305 | msgstr "Lista de conversação não encontrada" 306 | 307 | #: appModules/unigram.py:141 308 | #, fuzzy 309 | #| msgid "Increase/decrease voice message playback speed" 310 | msgid "Increase/decrease the playback speed of voice messages" 311 | msgstr "Aumentar/diminuir a velocidade de reprodução de mensagens de voz" 312 | 313 | #: appModules/unigram.py:149 appModules/unigram.py:161 314 | #: appModules/unigram.py:171 315 | msgid "Nothing is playing right now" 316 | msgstr "Nada está a tocar neste momento" 317 | 318 | #: appModules/unigram.py:152 319 | msgid "Close audio player" 320 | msgstr "Fechar o leitor de áudio" 321 | 322 | #: appModules/unigram.py:160 323 | #, fuzzy 324 | #| msgid "Audio player has been closed" 325 | msgid "The audio player has been closed" 326 | msgstr "O leitor de áudio foi encerrado" 327 | 328 | #: appModules/unigram.py:164 329 | #, fuzzy 330 | #| msgid "Play/pause the voice message that is currently playing" 331 | msgid "Play/pause the voice message currently playing" 332 | msgstr "Reproduzir/pausar a mensagem de voz que está actualmente a tocar" 333 | 334 | #: appModules/unigram.py:195 335 | msgid "Move focus to chat list" 336 | msgstr "Mover o foco para a lista de conversação" 337 | 338 | #: appModules/unigram.py:206 339 | msgid "Chat list is empty" 340 | msgstr "A lista de conversação está vazia" 341 | 342 | #: appModules/unigram.py:209 343 | msgid "Move focus to the last message in the chat" 344 | msgstr "Mover o foco para a última mensagem na conversação." 345 | 346 | #: appModules/unigram.py:221 appModules/unigram.py:250 347 | #: appModules/unigram.py:647 appModules/unigram.py:660 348 | msgid "This chat is empty" 349 | msgstr "Esta conversa está vazia" 350 | 351 | #: appModules/unigram.py:222 appModules/unigram.py:241 352 | #: appModules/unigram.py:249 appModules/unigram.py:456 353 | #: appModules/unigram.py:643 354 | msgid "No open chat" 355 | msgstr "Sem conversa aberta" 356 | 357 | #: appModules/unigram.py:226 358 | msgid "Announce the name and status of an open chat" 359 | msgstr "" 360 | 361 | #: appModules/unigram.py:244 362 | msgid "Move focus to 'unread messages' label" 363 | msgstr "Mover o foco para o rótulo de 'mensagens não lidas" 364 | 365 | #: appModules/unigram.py:259 366 | msgid "There are no unread messages in this chat" 367 | msgstr "Não há mensagens não lidas nesta conversação" 368 | 369 | #: appModules/unigram.py:262 370 | #, fuzzy 371 | #| msgid "Call if it is a contact or enter voice chat if it is a group" 372 | msgid "Call if it's a contact, or enter a voice chat if it's a group" 373 | msgstr "" 374 | "Telefonar se for um contacto ou entrar na conversação de voz se for um grupo" 375 | 376 | #: appModules/unigram.py:267 377 | msgid "Call unavailable" 378 | msgstr "Chamada indisponível" 379 | 380 | #: appModules/unigram.py:270 381 | #, fuzzy 382 | #| msgid "Press video call button" 383 | msgid "Press the video call button" 384 | msgstr "Pressionar o botão de videochamada" 385 | 386 | #: appModules/unigram.py:274 387 | #, fuzzy 388 | #| msgid "Video call unavailable" 389 | msgid "Video call not available" 390 | msgstr "Videochamada indisponível" 391 | 392 | #: appModules/unigram.py:277 393 | #, fuzzy 394 | #| msgid "" 395 | #| "Press \"Instant view\" button, if it is contained in the current message" 396 | msgid "Press \"Instant view\" button, if it is included in the current message" 397 | msgstr "" 398 | "Pressione o botão \"Visão instantânea\", se estiver contido na mensagem " 399 | "actual" 400 | 401 | #: appModules/unigram.py:294 402 | msgid "Accept call" 403 | msgstr "Aceitar chamada" 404 | 405 | #: appModules/unigram.py:303 406 | msgid "" 407 | "Press \"Decline call\" button if there is an incoming call, \"End call\" " 408 | "button if a call is in progress or leave voice chat if it is active." 409 | msgstr "" 410 | "Premir botão \"Declinar chamada\" se houver uma chamada recebida, botão " 411 | "\"Terminar chamada\" se uma chamada estiver em curso ou deixar conversa por " 412 | "voz se estiver activa." 413 | 414 | #: appModules/unigram.py:322 415 | #, fuzzy 416 | #| msgid "Press \"Enable/disable microphone\" button" 417 | msgid "Press \"Mute/unmute microphone\" button" 418 | msgstr "Pressionar o botão \"Activar/desactivar microfone\"" 419 | 420 | #: appModules/unigram.py:349 421 | msgid "Press \"Enable/disable camera\" button" 422 | msgstr "Pressionar o botão \"Activar/desactivar câmera" 423 | 424 | #: appModules/unigram.py:380 425 | #, fuzzy 426 | #| msgid "Copy message if it contains text" 427 | msgid "Copy the message if it contains text" 428 | msgstr "Copiar mensagem se contiver texto" 429 | 430 | #: appModules/unigram.py:386 431 | msgid "Message copied" 432 | msgstr "Mensagem copiada" 433 | 434 | #: appModules/unigram.py:389 435 | msgid "Link copied" 436 | msgstr "" 437 | 438 | #: appModules/unigram.py:394 439 | msgid "This message does not contain text" 440 | msgstr "Esta mensagem não contém texto" 441 | 442 | #: appModules/unigram.py:396 443 | #, fuzzy 444 | #| msgid "Copy message if it contains text" 445 | msgid "Copy messages with formatting preserved" 446 | msgstr "Copiar mensagem se contiver texto" 447 | 448 | #: appModules/unigram.py:401 449 | #, fuzzy 450 | #| msgid "" 451 | #| "Move focus to the edit field. If focus is already in the edit field, " 452 | #| "after pressing the hotkeys it will move to where it was previously" 453 | msgid "" 454 | "Move the focus to the edit field. If the focus is already in the edit field, " 455 | "then after pressing the hotkey, it will move to where it was before" 456 | msgstr "" 457 | "Mover o foco para o campo de edição. Se o foco já estiver no campo de " 458 | "edição, depois de premir as teclas de atalho, irá deslocar-se para onde " 459 | "estava anteriormente" 460 | 461 | #: appModules/unigram.py:417 462 | msgid "Message input field not found" 463 | msgstr "Campo de entrada de mensagens não encontrado" 464 | 465 | #: appModules/unigram.py:420 466 | msgid "" 467 | "Press \"More Options\" button in an open chat, voice chat, or call window" 468 | msgstr "" 469 | "Prima o botão \"Mais Opções\" numa conversação aberta, conversa por voz, ou " 470 | "janela de chamada" 471 | 472 | #: appModules/unigram.py:428 473 | msgid "Button not found" 474 | msgstr "Botão não encontrado" 475 | 476 | #: appModules/unigram.py:431 477 | msgid "Open navigation menu" 478 | msgstr "Abrir menu de navegação" 479 | 480 | #: appModules/unigram.py:437 481 | #, fuzzy 482 | #| msgid "Navigation menu unavailable" 483 | msgid "Navigation menu not available" 484 | msgstr "Menu de navegação indisponível" 485 | 486 | #: appModules/unigram.py:440 487 | msgid "Open comments" 488 | msgstr "" 489 | 490 | #: appModules/unigram.py:447 491 | #, fuzzy 492 | #| msgid "Button not found" 493 | msgid "Button to open comments not found" 494 | msgstr "Botão não encontrado" 495 | 496 | #: appModules/unigram.py:450 497 | msgid "Open current chat profile" 498 | msgstr "" 499 | 500 | #: appModules/unigram.py:472 501 | #, fuzzy 502 | #| msgid "" 503 | #| "Recording a voice message will not be possible until the edit field " 504 | #| "becomes empty" 505 | msgid "" 506 | "It will not be possible to record a voice message until the edit field is " 507 | "empty" 508 | msgstr "" 509 | "A gravação de uma mensagem de voz não será possível até que o campo de " 510 | "edição fique vazio" 511 | 512 | #: appModules/unigram.py:479 513 | msgid "Record sent" 514 | msgstr "Gravação enviada" 515 | 516 | #: appModules/unigram.py:484 517 | msgid "Video" 518 | msgstr "" 519 | 520 | #: appModules/unigram.py:485 521 | msgid "Audio" 522 | msgstr "" 523 | 524 | #: appModules/unigram.py:502 525 | #, fuzzy 526 | #| msgid "Voice message recording notifications are set to text" 527 | msgid "Voice recording notifications set to text" 528 | msgstr "" 529 | "As notificações de gravação de mensagens de voz estão definidas para texto" 530 | 531 | #: appModules/unigram.py:505 532 | #, fuzzy 533 | #| msgid "Voice message recording notifications are set to sounds" 534 | msgid "Voice recording notifications set to sounds" 535 | msgstr "" 536 | "As notificações de gravação de mensagens de voz estão definidas para sons" 537 | 538 | #: appModules/unigram.py:508 539 | #, fuzzy 540 | #| msgid "Voice message recording has standard behavior" 541 | msgid "Recording voice messages has standard behavior" 542 | msgstr "A gravação de mensagens de voz tem um comportamento padrão" 543 | 544 | #: appModules/unigram.py:516 545 | #, fuzzy 546 | #| msgid "Record canceled" 547 | msgid "Recording canceled" 548 | msgstr "Gravação cancelada" 549 | 550 | #: appModules/unigram.py:544 551 | msgid "Right answer" 552 | msgstr "" 553 | 554 | #: appModules/unigram.py:547 555 | msgid "Answer options" 556 | msgstr "" 557 | 558 | #: appModules/unigram.py:564 559 | msgid "You" 560 | msgstr "" 561 | 562 | #: appModules/unigram.py:577 563 | msgid "Not sent" 564 | msgstr "Não enviado" 565 | 566 | #: appModules/unigram.py:593 567 | msgid "Contains reaction" 568 | msgstr "" 569 | 570 | #: appModules/unigram.py:595 571 | msgid "Selected" 572 | msgstr "Seleccionado" 573 | 574 | #: appModules/unigram.py:620 575 | msgid "there are replies for you" 576 | msgstr "" 577 | 578 | #: appModules/unigram.py:625 579 | msgid "Toggle progress bar announcements" 580 | msgstr "Alternar anúncios da barra de progresso" 581 | 582 | #: appModules/unigram.py:632 583 | msgid "Announce all progress bars except voice message playback progress bar" 584 | msgstr "" 585 | "Anunciar todas as barras de progresso excepto a barra de progresso de " 586 | "reprodução de mensagens de voz" 587 | 588 | #: appModules/unigram.py:739 589 | msgid "Editing" 590 | msgstr "" 591 | 592 | #: appModules/unigram.py:740 593 | msgid "Reply" 594 | msgstr "" 595 | 596 | #: appModules/unigram.py:748 597 | msgid "Duration" 598 | msgstr "" 599 | 600 | #: appModules/unigram.py:749 601 | msgid "Size" 602 | msgstr "" 603 | 604 | #: appModules/unigram.py:760 605 | msgid "Enable video" 606 | msgstr "" 607 | 608 | #: appModules/unigram.py:761 609 | msgid "Disable video" 610 | msgstr "" 611 | 612 | #: appModules/unigram.py:846 613 | msgid "Delete a message or chat" 614 | msgstr "" 615 | 616 | #: appModules/unigram.py:849 617 | msgid "Delete message or chat from both sides" 618 | msgstr "" 619 | 620 | #: appModules/unigram.py:867 621 | #, fuzzy 622 | #| msgid "Chat list not found" 623 | msgid "Inline results not found" 624 | msgstr "Lista de conversação não encontrada" 625 | 626 | #: appModules/unigram.py:878 627 | msgid "Inline results not detected" 628 | msgstr "" 629 | 630 | #: appModules/unigram.py:881 631 | msgid "Switch to selection mode" 632 | msgstr "" 633 | 634 | #: appModules/unigram.py:884 635 | msgid "Forward message" 636 | msgstr "" 637 | 638 | #: appModules/unigram.py:887 639 | msgid "Mark a chat as read" 640 | msgstr "" 641 | 642 | #: appModules/unigram.py:890 643 | msgid "Save file as..." 644 | msgstr "" 645 | 646 | #: appModules/unigram.py:914 647 | msgid "Message deleted on both sides" 648 | msgstr "" 649 | 650 | #: appModules/unigram.py:915 651 | #, fuzzy 652 | #| msgid "Message copied" 653 | msgid "Message deleted" 654 | msgstr "Mensagem copiada" 655 | 656 | #: appModules/unigram.py:918 657 | msgid "You left the group" 658 | msgstr "" 659 | 660 | #: appModules/unigram.py:919 661 | msgid "You left the channel" 662 | msgstr "" 663 | 664 | #: appModules/unigram.py:920 665 | msgid "Bot removed and blocked" 666 | msgstr "" 667 | 668 | #: appModules/unigram.py:921 669 | msgid "Bot removed" 670 | msgstr "" 671 | 672 | #: appModules/unigram.py:922 673 | msgid "Chat deleted on both sides" 674 | msgstr "" 675 | 676 | #: appModules/unigram.py:923 677 | msgid "Chat deleted" 678 | msgstr "" 679 | 680 | #: appModules/unigram.py:953 681 | msgid "Copy data for broadcasting to the clipboard" 682 | msgstr "" 683 | 684 | #: appModules/unigram.py:957 685 | #, fuzzy 686 | #| msgid "Chat list not found" 687 | msgid "Broadcast window not found" 688 | msgstr "Lista de conversação não encontrada" 689 | 690 | #: appModules/unigram.py:961 691 | #, fuzzy 692 | #| msgid "Chat list not found" 693 | msgid "The broadcast window is not found" 694 | msgstr "Lista de conversação não encontrada" 695 | 696 | #: appModules/unigram.py:967 697 | msgid "%url and %key copied to the clipboard" 698 | msgstr "" 699 | 700 | #~ msgid "" 701 | #~ "Play/Stop voice or video message in focus or open media attached to the " 702 | #~ "current message" 703 | #~ msgstr "" 704 | #~ "Reproduzir/pararar mensagem de voz ou vídeo em foco ou meios abertos " 705 | #~ "anexados à mensagem actual" 706 | 707 | #~ msgid "" 708 | #~ "Read profile name and status in a public chat. Press twice to switch " 709 | #~ "between \"Turn on tracking chat activity until closing of the app\", " 710 | #~ "\"Turn tracking chat activity on\" and \"Turn tracking chat activity off\"" 711 | #~ msgstr "" 712 | #~ "Ler o nome e o estado do perfil numa conversação pública. pressione duas " 713 | #~ "vezes para alternar entre \"Ligar seguimento de actividade de conversação " 714 | #~ "até ao fecho da aplicação\", \"Ligar seguimento da actividade de " 715 | #~ "conversação \" e \"Desligar seguimento da actividade de conversação \"" 716 | 717 | #~ msgid "Record" 718 | #~ msgstr "Gravação" 719 | 720 | #~ msgid "Chat activity tracking disabled" 721 | #~ msgstr "Seguimento da actividade de conversação desactivado" 722 | 723 | #~ msgid "Chat activity tracking is on until closing of the app" 724 | #~ msgstr "" 725 | #~ "O seguimento da actividade de conversação está ligado até ao encerramento " 726 | #~ "da aplicação" 727 | 728 | #~ msgid "Chat activity tracking enabled" 729 | #~ msgstr "Seguimento da actividade de conversação activado" 730 | -------------------------------------------------------------------------------- /addon/locale/cs/LC_MESSAGES/nvda.po: -------------------------------------------------------------------------------- 1 | msgid "" 2 | msgstr "" 3 | "Project-Id-Version: UnigramPlus\n" 4 | "POT-Creation-Date: 2022-06-30 15:13+0300\n" 5 | "PO-Revision-Date: 2022-06-30 15:13+0300\n" 6 | "Last-Translator: Petr Řehák\n" 7 | "Language-Team: Adaptech s.r.o.\n" 8 | "Language: cs\n" 9 | "MIME-Version: 1.0\n" 10 | "Content-Type: text/plain; charset=UTF-8\n" 11 | "Content-Transfer-Encoding: 8bit\n" 12 | "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n>=2 && n<=4 ? 1 : 2);\n" 13 | "X-Generator: Poedit 3.1\n" 14 | "X-Poedit-Basepath: ../../..\n" 15 | "X-Poedit-SourceCharset: UTF-8\n" 16 | "X-Poedit-SearchPath-0: appModules\n" 17 | "X-Poedit-SearchPath-1: GlobalPlugins\n" 18 | 19 | #: GlobalPlugins/UnigramPlus/__init__.py:21 20 | msgid "Arabic" 21 | msgstr "Arabština" 22 | 23 | #: GlobalPlugins/UnigramPlus/__init__.py:22 24 | msgid "Czech" 25 | msgstr "Čeština" 26 | 27 | #: GlobalPlugins/UnigramPlus/__init__.py:23 28 | msgid "English" 29 | msgstr "Angličtina" 30 | 31 | #: GlobalPlugins/UnigramPlus/__init__.py:24 32 | msgid "French" 33 | msgstr "Francouzština" 34 | 35 | #: GlobalPlugins/UnigramPlus/__init__.py:25 36 | msgid "Finnish" 37 | msgstr "Finština" 38 | 39 | #: GlobalPlugins/UnigramPlus/__init__.py:26 40 | msgid "Slovak" 41 | msgstr "Slovenština" 42 | 43 | #: GlobalPlugins/UnigramPlus/__init__.py:27 44 | msgid "Norwegian" 45 | msgstr "Norština" 46 | 47 | #: GlobalPlugins/UnigramPlus/__init__.py:28 48 | msgid "German" 49 | msgstr "Němčina" 50 | 51 | #: GlobalPlugins/UnigramPlus/__init__.py:29 52 | msgid "Italian" 53 | msgstr "Italština" 54 | 55 | #: GlobalPlugins/UnigramPlus/__init__.py:30 56 | msgid "Persian" 57 | msgstr "Perština" 58 | 59 | #: GlobalPlugins/UnigramPlus/__init__.py:31 60 | msgid "Polish" 61 | msgstr "Polština" 62 | 63 | #: GlobalPlugins/UnigramPlus/__init__.py:32 64 | msgid "Portuguese" 65 | msgstr "Portugalština" 66 | 67 | #: GlobalPlugins/UnigramPlus/__init__.py:33 68 | msgid "Russian" 69 | msgstr "Ruština" 70 | 71 | #: GlobalPlugins/UnigramPlus/__init__.py:34 72 | msgid "Spanish" 73 | msgstr "Španělština" 74 | 75 | #: GlobalPlugins/UnigramPlus/__init__.py:35 76 | msgid "Turkish" 77 | msgstr "Turečtina" 78 | 79 | #: GlobalPlugins/UnigramPlus/__init__.py:36 80 | msgid "Ukrainian" 81 | msgstr "Ukrajinština" 82 | 83 | #: GlobalPlugins/UnigramPlus/__init__.py:37 84 | msgid "Croatian" 85 | msgstr "Chorvatština" 86 | 87 | #: GlobalPlugins/UnigramPlus/__init__.py:38 88 | msgid "Serbian" 89 | msgstr "Srbština" 90 | 91 | #: GlobalPlugins/UnigramPlus/__init__.py:39 92 | msgid "Chinese (Traditional)" 93 | msgstr "Čínština (tradiční)" 94 | 95 | #: GlobalPlugins/UnigramPlus/__init__.py:76 96 | msgid "No updates available" 97 | msgstr "Žádné aktualizace nejsou k dispozici" 98 | 99 | #: GlobalPlugins/UnigramPlus/__init__.py:77 100 | #: GlobalPlugins/UnigramPlus/__init__.py:103 101 | msgid "UnigramPlus update" 102 | msgstr "Aktualizace doplňku UnigramPlus" 103 | 104 | #: GlobalPlugins/UnigramPlus/__init__.py:104 105 | msgid "" 106 | "A new version of the add-on is available. Do you want to update UnigramPlus " 107 | "to version %version?" 108 | msgstr "" 109 | "K dispozici je nová verze doplňku. Přejete si provést aktualizaci doplňku " 110 | "UnigramPlus na verzi %version?" 111 | 112 | #: GlobalPlugins/UnigramPlus/__init__.py:114 113 | msgid "Yes, update" 114 | msgstr "Ano, aktualizovat" 115 | 116 | #: GlobalPlugins/UnigramPlus/__init__.py:115 117 | msgid "No, not now" 118 | msgstr "Ne, teď ne" 119 | 120 | #: GlobalPlugins/UnigramPlus/__init__.py:122 121 | msgid "Download in progress" 122 | msgstr "Probíhá stahování" 123 | 124 | #: GlobalPlugins/UnigramPlus/__init__.py:147 125 | msgid "Changes in this version:" 126 | msgstr "Změny v této verzi:" 127 | 128 | #: GlobalPlugins/UnigramPlus/__init__.py:148 129 | msgid "No update information" 130 | msgstr "Žádné informace o aktualizaci" 131 | 132 | #: GlobalPlugins/UnigramPlus/__init__.py:179 133 | msgid "Open UnigramPlus settings window" 134 | msgstr "Otevřít okno nastavení UnigramPlus" 135 | 136 | #: GlobalPlugins/UnigramPlus/__init__.py:187 137 | msgid "Before chat name" 138 | msgstr "Před názvem konverzace" 139 | 140 | #: GlobalPlugins/UnigramPlus/__init__.py:188 141 | msgid "After chat name" 142 | msgstr "Za názvem konverzace" 143 | 144 | #: GlobalPlugins/UnigramPlus/__init__.py:189 145 | msgid "Do not speak chat type" 146 | msgstr "Nevyslovovat typ konverzace" 147 | 148 | #: GlobalPlugins/UnigramPlus/__init__.py:192 149 | msgid "Revert to standard voice message recording behavior" 150 | msgstr "Obnovit standardní způsob nahrávání hlasových zpráv" 151 | 152 | #: GlobalPlugins/UnigramPlus/__init__.py:193 153 | msgid "Text notification" 154 | msgstr "Textové oznámení" 155 | 156 | #: GlobalPlugins/UnigramPlus/__init__.py:194 157 | msgid "sound notification" 158 | msgstr "Zvukové oznámení" 159 | 160 | #: GlobalPlugins/UnigramPlus/__init__.py:197 appModules/unigram.py:616 161 | msgid "Announce all progress bars" 162 | msgstr "Oznamovat veškeré indikátory průběhu" 163 | 164 | #: GlobalPlugins/UnigramPlus/__init__.py:198 appModules/unigram.py:619 165 | msgid "Do not announce any progress bars" 166 | msgstr "Neoznamovat žádné indikátory průběhu" 167 | 168 | #: GlobalPlugins/UnigramPlus/__init__.py:199 169 | msgid "Announce some progress bars" 170 | msgstr "Oznamovat některé indikátory průběhu" 171 | 172 | #: GlobalPlugins/UnigramPlus/__init__.py:202 173 | msgid "Do not say at all" 174 | msgstr "Nikdy nevyslovovat" 175 | 176 | #: GlobalPlugins/UnigramPlus/__init__.py:203 177 | msgid "Only in sent messages" 178 | msgstr "Pouze v odeslaných zprávách" 179 | 180 | #: GlobalPlugins/UnigramPlus/__init__.py:204 181 | msgid "Only in received messages" 182 | msgstr "Pouze v přijatých zprávách" 183 | 184 | #: GlobalPlugins/UnigramPlus/__init__.py:205 185 | msgid "In all messages" 186 | msgstr "Ve všech zprávách" 187 | 188 | #: GlobalPlugins/UnigramPlus/__init__.py:210 189 | msgid "Interface language in Unigram:" 190 | msgstr "Jazyk rozhraní Unigramu" 191 | 192 | #: GlobalPlugins/UnigramPlus/__init__.py:213 193 | msgid "Speak the type of chat in the chat list:" 194 | msgstr "Vyslovovat typ konverzace v seznamu konverzací" 195 | 196 | #: GlobalPlugins/UnigramPlus/__init__.py:216 197 | msgid "Say the sender's name in:" 198 | msgstr "Vyslovovat jméno odesílatele:" 199 | 200 | #: GlobalPlugins/UnigramPlus/__init__.py:219 201 | msgid "Speak \"Not Seen\" before reading contents of a message" 202 | msgstr "Vyslovovat \"Neviděno\" před přečtením obsahu zprávy" 203 | 204 | #: GlobalPlugins/UnigramPlus/__init__.py:223 205 | msgid "Speak folder names when switching between them" 206 | msgstr "Vyslovovat názvy složek při přepínání mezi nimi" 207 | 208 | #: GlobalPlugins/UnigramPlus/__init__.py:227 209 | msgid "Notify about deleting a message and chat with a sound" 210 | msgstr "Zvukem oznamovat odstranění zprávy a konverzace" 211 | 212 | #: GlobalPlugins/UnigramPlus/__init__.py:231 213 | msgid "Display confirmation dialog when deleting messages and chats" 214 | msgstr "Při mazání zpráv a konverzací zobrazovat potvrzovací dialogové okno" 215 | 216 | #: GlobalPlugins/UnigramPlus/__init__.py:235 217 | msgid "Set voice message recording notification method as:" 218 | msgstr "Způsob oznamování nahrávání hlasové zprávy:" 219 | 220 | #: GlobalPlugins/UnigramPlus/__init__.py:238 221 | msgid "Select the progress bar notification level:" 222 | msgstr "Úroveň oznamování indikátorů průběhu:" 223 | 224 | #: GlobalPlugins/UnigramPlus/__init__.py:241 225 | msgid "Read description of URLs attached to messages" 226 | msgstr "Číst popis adres URL připojených ke zprávám" 227 | 228 | #: GlobalPlugins/UnigramPlus/__init__.py:245 229 | msgid "Read full video description in YouTube URLs" 230 | msgstr "Číst úplný popis videa v adresách URL YouTube" 231 | 232 | #: GlobalPlugins/UnigramPlus/__init__.py:249 233 | msgid "Announce if there is a reply in the group" 234 | msgstr "Oznámit, že je ve skupině odpověď" 235 | 236 | #: GlobalPlugins/UnigramPlus/__init__.py:253 237 | msgid "Announce if the message contains a reaction" 238 | msgstr "Oznámit, že zpráva obsahuje reakci" 239 | 240 | #: GlobalPlugins/UnigramPlus/__init__.py:257 241 | msgid "" 242 | "Check this box if the voice message recording function or the voice message " 243 | "playback speed change function does not work properly" 244 | msgstr "" 245 | "Toto políčko zaškrtněte, pokud správně nefunguje funkce nahrávání hlasových " 246 | "zpráv nebo funkce změny rychlosti přehrávání hlasových zpráv" 247 | 248 | #: GlobalPlugins/UnigramPlus/__init__.py:261 249 | msgid "Check for UnigramPlus updates on NVDA startup" 250 | msgstr "Kontrolovat aktualizace doplňku UnigramPlus při spouštění NVDA" 251 | 252 | #: GlobalPlugins/UnigramPlus/__init__.py:266 253 | msgid "Check for &updates" 254 | msgstr "Zkontrolovat &aktualizace" 255 | 256 | #: appModules/data.py:41 257 | msgid "Back" 258 | msgstr "Zpět" 259 | 260 | #: appModules/data.py:42 261 | msgid "Menu" 262 | msgstr "Nabídka" 263 | 264 | #: appModules/data.py:43 265 | msgid "Attach" 266 | msgstr "Připojit" 267 | 268 | #: appModules/data.py:44 269 | msgid "Edit" 270 | msgstr "Upravit" 271 | 272 | #: appModules/data.py:45 273 | msgid "Photo" 274 | msgstr "Fotografie" 275 | 276 | #: appModules/data.py:46 appModules/unigram.py:721 277 | msgid "Image" 278 | msgstr "Obrázek" 279 | 280 | #: appModules/data.py:47 281 | msgid "Invite link" 282 | msgstr "Odkaz pozvánky" 283 | 284 | #: appModules/data.py:48 285 | msgid "Choose time" 286 | msgstr "Zvolit čas" 287 | 288 | #: appModules/data.py:49 289 | msgid "Title field" 290 | msgstr "Pole Titulek" 291 | 292 | #: appModules/data.py:53 293 | msgid "Insert emojis" 294 | msgstr "Vložit emoji" 295 | 296 | #: appModules/data.py:54 297 | msgid "Done" 298 | msgstr "Hotovo" 299 | 300 | #: appModules/data.py:55 301 | msgid "Next" 302 | msgstr "Další" 303 | 304 | #: appModules/data.py:56 305 | msgid "Merge files" 306 | msgstr "Sloučit soubory" 307 | 308 | #: appModules/data.py:57 309 | msgid "Search" 310 | msgstr "Hledat" 311 | 312 | #: appModules/data.py:58 313 | msgid "Delete" 314 | msgstr "Odstranit" 315 | 316 | #: appModules/data.py:59 317 | msgid "Close" 318 | msgstr "Zavřít" 319 | 320 | #: appModules/unigram.py:36 appModules/unigram.py:359 321 | msgid "Camera on" 322 | msgstr "Kamera zapnuta" 323 | 324 | #: appModules/unigram.py:36 appModules/unigram.py:360 325 | msgid "Camera off" 326 | msgstr "Kamera vypnuta" 327 | 328 | #: appModules/unigram.py:50 329 | msgid "Edit message" 330 | msgstr "Upravit zprávu" 331 | 332 | #: appModules/unigram.py:54 333 | msgid "Reply to message" 334 | msgstr "Odpovědět na zprávu" 335 | 336 | #: appModules/unigram.py:123 337 | msgid "Chat list not found" 338 | msgstr "Seznam konverzací nenalezen" 339 | 340 | #: appModules/unigram.py:137 341 | msgid "Increase/decrease the playback speed of voice messages" 342 | msgstr "Zvýšit/snížit rychlost přehrávání hlasových zpráv" 343 | 344 | #: appModules/unigram.py:145 appModules/unigram.py:157 345 | #: appModules/unigram.py:167 appModules/unigram.py:956 346 | msgid "Nothing is playing right now" 347 | msgstr "Momentálně se nic nepřehrává" 348 | 349 | #: appModules/unigram.py:148 350 | msgid "Close audio player" 351 | msgstr "Zavřít audiopřehrávač" 352 | 353 | #: appModules/unigram.py:156 354 | msgid "The audio player has been closed" 355 | msgstr "Audiopřehrávač byl zavřen" 356 | 357 | #: appModules/unigram.py:160 358 | msgid "Play/pause the voice message currently playing" 359 | msgstr "Přehrát/pozastavit právě přehrávanou hlasovou zprávu" 360 | 361 | #: appModules/unigram.py:195 362 | msgid "Move focus to chat list" 363 | msgstr "Přemístit fokus do seznamu konverzací" 364 | 365 | #: appModules/unigram.py:206 366 | msgid "Chat list is empty" 367 | msgstr "Seznam konverzací je prázdný" 368 | 369 | #: appModules/unigram.py:209 370 | msgid "Move focus to the last message in an open chat" 371 | msgstr "Přemístit fokus na poslední zprávu v otevřené konverzaci" 372 | 373 | #: appModules/unigram.py:221 appModules/unigram.py:249 374 | #: appModules/unigram.py:631 appModules/unigram.py:644 375 | msgid "This chat is empty" 376 | msgstr "Tato konverzace je prázdná" 377 | 378 | #: appModules/unigram.py:222 appModules/unigram.py:240 379 | #: appModules/unigram.py:248 appModules/unigram.py:452 380 | #: appModules/unigram.py:627 381 | msgid "No open chat" 382 | msgstr "Žádná otevřená konverzace" 383 | 384 | #: appModules/unigram.py:225 385 | msgid "Announce the name and status of an open chat" 386 | msgstr "Oznámit název a stav otevřené konverzace" 387 | 388 | #: appModules/unigram.py:243 389 | msgid "Move focus to 'unread messages' label" 390 | msgstr "Přemístit fokus na popisek \"nepřečtené zprávy\"" 391 | 392 | #: appModules/unigram.py:258 393 | msgid "There are no unread messages in this chat" 394 | msgstr "V této konverzaci nejsou nepřečtené zprávy" 395 | 396 | #: appModules/unigram.py:261 397 | msgid "Call if it's a contact, or enter a voice chat if it's a group" 398 | msgstr "Zavolat kontaktu nebo zahájit hlasový hovor ve skupině" 399 | 400 | #: appModules/unigram.py:266 401 | msgid "Call unavailable" 402 | msgstr "Hovor nedostupný" 403 | 404 | #: appModules/unigram.py:269 405 | msgid "Press the video call button" 406 | msgstr "Stisknout tlačítko Zahájit videohovor" 407 | 408 | #: appModules/unigram.py:273 409 | msgid "Video call not available" 410 | msgstr "Videohovor nedostupný" 411 | 412 | #: appModules/unigram.py:276 413 | msgid "Press \"Instant view\" button, if it is included in the current message" 414 | msgstr "Stisknout tlačítko \"Rychlý náhled\", je-li součástí aktuální zprávy" 415 | 416 | #: appModules/unigram.py:292 417 | msgid "Accept call" 418 | msgstr "Přijmout hovor" 419 | 420 | #: appModules/unigram.py:301 421 | msgid "" 422 | "Press \"Decline call\" button if there is an incoming call, \"End call\" " 423 | "button if a call is in progress or leave voice chat if it is active." 424 | msgstr "" 425 | "Stisknout tlačítko \"Odmítnout hovor\" při příchozím hovoru, tlačítko " 426 | "\"Ukončit hovor\" při probíhajícím hlasovém hovoru nebo pro opuštění " 427 | "aktivního videohovoru." 428 | 429 | #: appModules/unigram.py:315 430 | msgid "Press \"Mute/unmute microphone\" button" 431 | msgstr "Stisknout tlačítko \"Zesílit/Ztlumit mikrofon\"" 432 | 433 | #: appModules/unigram.py:341 434 | msgid "Press \"Enable/disable camera\" button" 435 | msgstr "Stisknout tlačítko \"Povolit/Zakázat kameru\"" 436 | 437 | #: appModules/unigram.py:369 438 | msgid "" 439 | "Copy the message if it contains text. If the focus is on a link, the link " 440 | "will be copied" 441 | msgstr "" 442 | "Zkopírovat zprávu, obsahuje-li text. Je-li fokus na odkazu, bude zkopírován " 443 | "tento odkaz" 444 | 445 | #: appModules/unigram.py:375 446 | msgid "Message copied" 447 | msgstr "Zpráva zkopírována" 448 | 449 | #: appModules/unigram.py:378 450 | msgid "Link copied" 451 | msgstr "Odkaz zkopírován" 452 | 453 | #: appModules/unigram.py:383 appModules/unigram.py:397 454 | msgid "This message does not contain text" 455 | msgstr "Tato zpráva neobsahuje text" 456 | 457 | #: appModules/unigram.py:386 458 | msgid "Copy messages with formatting preserved" 459 | msgstr "Zkopírovat zprávy se zachováním formátování" 460 | 461 | #: appModules/unigram.py:391 462 | msgid "Show message text in popup window" 463 | msgstr "Zobrazit text zprávy ve vyskakovacím okně" 464 | 465 | #: appModules/unigram.py:396 466 | msgid "message text" 467 | msgstr "text zprávy" 468 | 469 | #: appModules/unigram.py:400 470 | msgid "" 471 | "Move the focus to the edit field. If the focus is already in the edit field, " 472 | "then after pressing the hotkey, it will move to where it was before" 473 | msgstr "" 474 | "Přemístit fokus do editačního pole. Jestliže se fokus již v editačním poli " 475 | "nachází, po stisku této klávesové zkratky se vrátí na předchozí místo." 476 | 477 | #: appModules/unigram.py:416 478 | msgid "Message input field not found" 479 | msgstr "Vstupní pole zprávy nenalezeno" 480 | 481 | #: appModules/unigram.py:424 482 | msgid "Button not found" 483 | msgstr "Tlačítko nenalezeno" 484 | 485 | #: appModules/unigram.py:427 486 | msgid "Open navigation menu" 487 | msgstr "Otevřít navigační nabídku" 488 | 489 | #: appModules/unigram.py:432 490 | msgid "Navigation menu not available" 491 | msgstr "Navigační nabídka není k dispozici" 492 | 493 | #: appModules/unigram.py:435 494 | msgid "Open comments" 495 | msgstr "Otevřít komentáře" 496 | 497 | #: appModules/unigram.py:443 498 | msgid "Button to open comments not found" 499 | msgstr "Tlačítko pro otevření komentářů nenalezeno" 500 | 501 | #: appModules/unigram.py:446 502 | msgid "Open current chat profile" 503 | msgstr "Otevřít profil aktuální konverzace" 504 | 505 | #: appModules/unigram.py:468 506 | msgid "" 507 | "It will not be possible to record a voice message until the edit field is " 508 | "empty" 509 | msgstr "Dokud nesmažete editační pole, nebude možné nahrát hlasovou zprávu" 510 | 511 | #: appModules/unigram.py:475 512 | msgid "Record sent" 513 | msgstr "Nahrávka odeslána" 514 | 515 | #: appModules/unigram.py:480 516 | msgid "Video" 517 | msgstr "Video" 518 | 519 | #: appModules/unigram.py:481 520 | msgid "Audio" 521 | msgstr "Zvuk" 522 | 523 | #: appModules/unigram.py:498 524 | msgid "Voice recording notifications set to text" 525 | msgstr "Nastaveno textové oznamování nahrávání hlasových zpráv" 526 | 527 | #: appModules/unigram.py:501 528 | msgid "Voice recording notifications set to sounds" 529 | msgstr "Nastaveno zvukové oznamování nahrávání hlasových zpráv" 530 | 531 | #: appModules/unigram.py:504 532 | msgid "Recording voice messages has standard behavior" 533 | msgstr "Nastaveno standardní chování nahrávání hlasových zpráv" 534 | 535 | #: appModules/unigram.py:512 536 | msgid "Recording canceled" 537 | msgstr "Nahrávání zrušeno" 538 | 539 | #: appModules/unigram.py:538 540 | msgid "Answer options" 541 | msgstr "Možné odpovědi" 542 | 543 | #: appModules/unigram.py:562 544 | msgid "You" 545 | msgstr "Vy" 546 | 547 | #: appModules/unigram.py:565 548 | msgid "Not sent" 549 | msgstr "Neodesláno" 550 | 551 | #: appModules/unigram.py:579 552 | msgid "Reactions" 553 | msgstr "Reakce" 554 | 555 | #: appModules/unigram.py:608 556 | msgid "there are replies for you" 557 | msgstr "máte odpovědi" 558 | 559 | #: appModules/unigram.py:612 560 | msgid "Toggle progress bar announcements" 561 | msgstr "Přepínat oznamování indikátorů průběhů" 562 | 563 | #: appModules/unigram.py:729 564 | msgid "Editing" 565 | msgstr "Úpravy" 566 | 567 | #: appModules/unigram.py:730 568 | msgid "Reply" 569 | msgstr "Odpověď" 570 | 571 | #: appModules/unigram.py:739 572 | msgid "Duration" 573 | msgstr "Doba trvání" 574 | 575 | #: appModules/unigram.py:740 576 | msgid "Size" 577 | msgstr "Velikost" 578 | 579 | #: appModules/unigram.py:752 580 | msgid "Enable video" 581 | msgstr "Povolit video" 582 | 583 | #: appModules/unigram.py:753 584 | msgid "Disable video" 585 | msgstr "Zakázat video" 586 | 587 | #: appModules/unigram.py:825 588 | msgid "Delete a message or chat" 589 | msgstr "Odstranit zprávu nebo konverzaci" 590 | 591 | #: appModules/unigram.py:828 592 | msgid "Delete message or chat from both sides" 593 | msgstr "Odstranit zprávu nebo konverzaci z obou stran" 594 | 595 | #: appModules/unigram.py:846 596 | msgid "Inline results not found" 597 | msgstr "Vložené výsledky nenalezeny" 598 | 599 | #: appModules/unigram.py:857 600 | msgid "Inline results not detected" 601 | msgstr "Vložené výsledky nerozpoznány" 602 | 603 | #: appModules/unigram.py:860 604 | msgid "Switch to selection mode" 605 | msgstr "Přepnout do režimu výběru" 606 | 607 | #: appModules/unigram.py:863 608 | msgid "Forward message" 609 | msgstr "Přeposlat zprávu" 610 | 611 | #: appModules/unigram.py:866 612 | msgid "Mark a chat as read" 613 | msgstr "Označit konverzaci jako přečtenou" 614 | 615 | #: appModules/unigram.py:869 616 | msgid "Save file as..." 617 | msgstr "Uložit soubor jako..." 618 | 619 | #: appModules/unigram.py:894 620 | msgid "Message deleted on both sides" 621 | msgstr "Zpráva odstraněna z obou stran" 622 | 623 | #: appModules/unigram.py:895 624 | msgid "Message deleted" 625 | msgstr "Zpráva odstraněna" 626 | 627 | #: appModules/unigram.py:898 628 | msgid "You left the group" 629 | msgstr "Opustili jste skupinu" 630 | 631 | #: appModules/unigram.py:899 632 | msgid "You left the channel" 633 | msgstr "Opustili jste kanál" 634 | 635 | #: appModules/unigram.py:900 636 | msgid "Bot removed and blocked" 637 | msgstr "Robot odstraněn a zablokován" 638 | 639 | #: appModules/unigram.py:901 640 | msgid "Bot removed" 641 | msgstr "Robot odstraněn" 642 | 643 | #: appModules/unigram.py:902 644 | msgid "Chat deleted on both sides" 645 | msgstr "Konverzace odstraněna z obou stran" 646 | 647 | #: appModules/unigram.py:903 648 | msgid "Chat deleted" 649 | msgstr "Konverzace odstraněna" 650 | 651 | #: appModules/unigram.py:933 652 | msgid "Copy data for broadcasting to the clipboard" 653 | msgstr "Zkopírovat data pro vysílání do schránky" 654 | 655 | #: appModules/unigram.py:937 appModules/unigram.py:941 656 | msgid "Broadcast window not found" 657 | msgstr "Okno vysílání nenalezeno" 658 | 659 | #: appModules/unigram.py:947 660 | msgid "%url and %key copied to clipboard" 661 | msgstr "%url a %key zkopírováno do schránky" 662 | 663 | #: appModules/unigram.py:963 664 | msgid "Fast forward a voice message" 665 | msgstr "Převinout vpřed hlasovou zprávu" 666 | 667 | #: appModules/unigram.py:967 668 | msgid "Rewind voice message" 669 | msgstr "Převinout zpět hlasovou zprávu" 670 | 671 | #: appModules/unigram.py:990 672 | msgid "Right answer" 673 | msgstr "Správná odpověď" 674 | 675 | #~ msgid "Selected" 676 | #~ msgstr "Vybráno" 677 | 678 | #~ msgid "" 679 | #~ "Press \"More Options\" button in an open chat, voice chat, or call window" 680 | #~ msgstr "" 681 | #~ "Stisknout tlačítko \"Více možností\" v otevřeném chatu, videohovoru nebo " 682 | #~ "okně volání" 683 | 684 | #~ msgid "" 685 | #~ "Announce all progress bars except voice message playback progress bar" 686 | #~ msgstr "" 687 | #~ "Oznamovat všechny indikátory průběhu kromě indikátoru průběhu přehrávané " 688 | #~ "hlasové zprávy" 689 | 690 | #~ msgid "Copy the message if it contains text" 691 | #~ msgstr "Zkopírovat zprávu, obsahuje-li text" 692 | 693 | #~ msgid "Contains reaction" 694 | #~ msgstr "Obsahuje reakci" 695 | 696 | #~ msgid "The broadcast window is not found" 697 | #~ msgstr "Okno vysílání nelze najít" 698 | --------------------------------------------------------------------------------