Compare commits

...

297 Commits
v0.84 ... v0.93

Author SHA1 Message Date
Jose Manuel Delicado
51c5820719 Changed to the next version on some files 2017-12-14 20:33:39 +01:00
Jose Manuel Delicado
d6f47259a6 Updated spelling dictionaries. Run git submodule update before submiting new changes 2017-12-14 20:28:05 +01:00
2457fcf8f3 Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-12-14 04:59:56 -06:00
87a6290f74 Updated Spanish documentation 2017-12-14 04:34:51 -06:00
7109d904a2 Updated documentation locales 2017-12-14 04:26:08 -06:00
435ffef6fd Updated interface translations 2017-12-14 04:17:24 -06:00
Jose Manuel Delicado
2fb88924fd URL expansion and audio playback should work well together now. When calling get method, stream parameter is set to True, so the body is not downloaded. We work with response headers, the only thing we need 2017-12-12 16:32:12 +01:00
Jose Manuel Delicado
6ba1fe9eac If an URL shortener does not redirect using head method, call get with allow_redirects set to False instead when expanding. Fixes #179 2017-12-11 21:07:57 +01:00
b184bed1a8 Added a new soundpack to default install of TWBlue 2017-12-11 10:58:09 -06:00
53deb869fc Updated changelog 2017-12-11 10:56:02 -06:00
f9db4d6d51 Updated changelog translation catalog 2017-12-11 09:08:44 -06:00
7861f42d26 Changed 'like' shortcut in win 10 keymap 2017-12-11 09:04:53 -06:00
e8a692a061 Ready for next snapshot 2017-12-11 08:29:38 -06:00
c5a5b187ec Updated interface translations: Turkish 2017-12-11 05:00:52 -06:00
ab18445338 Interface translations updated: German, Spanish, French, Italian, Japanese, Polish and Russian 2017-12-10 10:49:08 -06:00
4d6b589086 Fixed a bug in sound playback. Fixes #197 2017-12-10 10:22:12 -06:00
5a03cc80ca Fixing URL parsing in retweets 2017-12-10 07:53:03 -06:00
fd17d824be Updated translation catalogs 2017-12-06 16:33:29 -06:00
a0fe62a227 Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-12-06 16:30:00 -06:00
00db4ff806 Updated changelog 2017-12-06 16:29:31 -06:00
45430e036c Change data for next stable 2017-12-06 15:56:00 -06:00
29c3f1d194 Removed an unneeded line in streaming tweets management 2017-12-06 12:53:17 -06:00
e10e3b3c49 Create trending buffer is remapped to ctrl+win+t i win10 keymap 2017-12-05 10:43:26 -06:00
d9a9adef1f Code cleanup and a few fixes in streaming API 2017-12-05 10:24:52 -06:00
02538322c6 Important improvements for retweets of long quoted tweets 2017-12-05 09:28:12 -06:00
efc5b481f8 Fixed an error when getting some quoted tweets 2017-12-05 08:43:26 -06:00
2c1bd6a8c8 Spellchecker: allow adding words to personal dictionaries 2017-12-01 12:26:16 -06:00
4d1732b3aa Improvements in quoted tweets handling. Closes #190 2017-11-29 10:55:42 -06:00
a0e41a4450 Ready for next snapshot 2017-11-23 17:53:14 -06:00
2ee3e315b6 Updated changelog 2017-11-23 17:50:41 -06:00
29df2e44b4 Added shortcuts for filter options in GUI #102 2017-11-23 17:44:57 -06:00
8836cb2bda Added title for filters #102 2017-11-23 17:42:26 -06:00
2d9124c336 Added a filter manager for deleting filters #102 2017-11-23 17:12:43 -06:00
b832e36c7d Prevent filtering in some buffers #102 2017-11-23 05:13:44 -06:00
98cf02ee98 Some small UI improvements for #102 2017-11-23 04:50:51 -06:00
519d096f29 Fixed a typo in filter creation GUI #102 2017-11-22 22:12:05 -06:00
34e9b8b89f Hide language options with its radio button #102 2017-11-20 17:15:01 -06:00
beb75ff6d1 Fixed an issue in #102 2017-11-20 03:14:30 -06:00
9fd7c14e32 Filtering by word should work as expected #102 2017-11-20 02:28:40 -06:00
e303d914fe Filters will work in main buffers too. #102 2017-11-20 01:10:25 -06:00
5f7f176892 Code cleanup 2017-11-20 00:38:14 -06:00
8928a64a12 Links in quoted tweets should be opened properly. Fixes #167 and #184 2017-11-15 09:50:59 -06:00
6a3b498d52 Improvements for #102 2017-11-14 16:56:45 -06:00
682ee82aa8 Fixed get_more_items, was broken in #102 2017-11-13 20:26:15 -06:00
1e22ebce61 First filter implementation. Needs lots of tests. #102 2017-11-13 17:45:01 -06:00
c2413489e5 Saves filter config in settings #102 2017-11-13 16:49:12 -06:00
094325cbf0 Put supported languages in combobox and allows people to add or remove languages to the filter #102 2017-11-13 00:10:44 -06:00
a5e1686af6 Get twitter's supported languages for allowing filters by lang #102 2017-11-12 23:39:45 -06:00
54cb099007 Added GUI for filter creation. #102 2017-11-12 23:10:31 -06:00
636c21df94 Increased character limit in display name up to 50 characters 2017-11-12 21:20:56 -06:00
cdad6ff600 Added danish translation 2017-11-12 11:41:11 -06:00
68efc86536 Updated translations 2017-11-12 11:29:47 -06:00
e06ccacda1 Removed translations for arrow. Fixed get_locale 2017-11-11 15:53:24 -06:00
da6eb34500 Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-11-11 15:44:15 -06:00
0f31a776ff Use current arrow version instead 0.6 2017-11-11 15:43:44 -06:00
efc6843ee2 Redirects snapshot users to changelog hosted in the repository 2017-11-10 12:01:43 -06:00
a13dd756b1 Prepare update file for snapshots 2017-11-10 11:53:25 -06:00
1b62eece13 Changed update system in server side 2017-11-10 11:51:20 -06:00
e23ef1ded2 Updated changelog 2017-11-09 17:37:36 -06:00
066de25f95 Mention to all will be checked by default #176 2017-11-09 17:34:56 -06:00
cd128b8e69 Added extended tweets mode in search buffers during creation 2017-11-09 17:25:17 -06:00
Jose Manuel Delicado
9e17abf517 Added mapping for serbian (latin) language in languageHandler.py. Fixes #175 2017-11-09 20:07:20 +01:00
cbd3126a4f Fixed a typo. Closes #176 2017-11-09 08:36:25 -06:00
0d0aed0490 Long tweet and mention to all options won't be saved in config. Closes #170 2017-11-08 12:09:53 -06:00
ed7c9802d1 Fixed extended retweets in Streaming API. Closes #174 2017-11-08 09:43:12 -06:00
68ea029fe3 Remove unneeded code 2017-11-07 17:49:43 -06:00
3a465f2314 display extended retweets properly. Fixes #173 2017-11-07 16:57:46 -06:00
ef2d672b35 Increased limit to 280 characters in tweets. Closes #172 2017-11-07 16:49:49 -06:00
Jose Manuel Delicado
b3c8de9a1f Updated Twython library to version 3.6.0, keeping our customizations 2017-10-07 18:40:27 +02:00
Jose Manuel Delicado
4d75f2db34 Renamed set_description to create_metadata in Twython endpoints. Added a bit more documentation and use the documented channel 2017-10-07 14:53:53 +02:00
Jose Manuel Delicado
f69e4283cd Updated all URL shorteners to use requests library. Useful for proxy servers 2017-10-04 17:24:44 +02:00
Jose Manuel Delicado
cbbf1e475d Updated windows dependencies and readme. 2017-09-23 11:05:21 +02:00
Jose Manuel Delicado
851f711357 Set prepared=False after playing and stopping an audio in URLStream class 2017-09-22 17:38:03 +02:00
Jose Manuel Delicado
11703f50fe Handle special case for Dropbox links when expanding URLS 2017-09-22 17:30:09 +02:00
Jose Manuel Delicado
11ca3a2190 URL shortener now performs step by step expansion, so you possibly will have to expand an URL multiple times to reach the final destination 2017-09-22 17:18:38 +02:00
Jose Manuel Delicado
a1381008d7 Use head instead of get for URL expansion 2017-09-18 10:38:20 +02:00
59504cca57 Fixed a typo 2017-09-17 23:34:51 -05:00
da06c568c5 Fixed issue with url shorteners. Should help to fix #159 2017-09-17 23:28:31 -05:00
d333b5f5c3 Return expanded URLS when calling to find_urls 2017-09-17 23:19:04 -05:00
348b8da619 Removed twup.me from audio_services 2017-09-17 23:18:01 -05:00
904226cfd4 Shows message if there are no new updates. Fixed #163 2017-09-17 22:26:44 -05:00
2cf5caa90d Fixed #157 2017-09-08 13:39:13 -05:00
Jose Manuel Delicado
ff05c9cb23 Now the URLS are expanded using requests. It means proxy support for URL shortener, and follow all redirections to get the final URL 2017-08-12 21:32:56 +02:00
Jose Manuel Delicado
f18a03d4a1 acortame.py: if we try to expand an URL not shortened by the service, use generic URL unshortener in the base class 2017-08-12 21:07:02 +02:00
Jose Manuel Delicado
24756e73d3 acortame.py: use requests instead of urllib, so we can shorten and unshorten URLS through proxy servers 2017-08-12 21:03:52 +02:00
Jose Manuel Delicado
feb16d9773 Added compatibility with acorta.me URL shortener and set it as default 2017-08-12 12:54:18 +02:00
5b47e8806a Fixed #156 2017-08-06 11:22:14 -05:00
a073a5caaa Removed source language in translator. Also fixed #153 2017-07-30 09:58:39 -05:00
a69a26e107 Updated documentation 2017-07-30 09:21:40 -05:00
76582c6313 Show dialog while waiting for account authorisation. Possibly fixes #101. Needs tests 2017-07-30 04:05:32 -05:00
5a249ba942 Fixed a bug in timer handling. Fixes #151 2017-07-30 01:16:41 -05:00
Jose Manuel Delicado
696b6aa11d Changed version number to 0.92 2017-07-19 20:51:56 +02:00
José Manuel
44187c69de Merge pull request #152 from manuelcortez/revert-140-i140
Revert "update sound_lib"
2017-07-19 15:27:22 +02:00
José Manuel
efb8cac079 Revert "update sound_lib" 2017-07-19 15:25:09 +02:00
Jose Manuel Delicado
7997f23f9c Revert "Fixed sound.py when there are multiple sessions trying to load the library"
This reverts commit 80f2e8f984.
2017-07-19 15:23:34 +02:00
20d4023e58 Text copied to clipboard will be encoded as unicode. Fixes #150 2017-07-18 19:52:42 -05:00
José Manuel
b62f99bc5a Merge pull request #149 from manuelcortez/revert-145-bass
Revert "Update Bass library"
2017-07-18 19:51:57 +02:00
José Manuel
70bba44da7 Revert "Update Bass library" 2017-07-18 13:09:13 +02:00
Jose Manuel Delicado
d25ace8f98 setup.py: now the documentation is handled in all available languages, bug fixed 2017-07-16 13:47:44 +02:00
Jose Manuel Delicado
eb19417263 Added catalan documentation to the docs generator 2017-07-16 12:04:36 +02:00
Jose Manuel Delicado
982fd41ae3 Updated catalan changelog 2017-07-16 12:02:05 +02:00
cf19e644e4 Fixed a merge conflict 2017-07-16 04:28:41 -05:00
02c5b40315 Added Basque to changelog's generation 2017-07-16 04:26:45 -05:00
825a896414 Updated translations 2017-07-16 04:24:41 -05:00
Jose Manuel Delicado
dabb3a01b8 Fixed pot documentation files, they were damaged in the last update 2017-07-15 20:20:55 +02:00
Jose Manuel Delicado
5d68d1f1cb Removed bassmix.lib, it's a static library and TWBlue doesn't need it 2017-07-15 10:35:58 +02:00
José Manuel
85613da33a Merge pull request #145 from codeofdusk/bass
Update Bass library
2017-07-15 10:30:39 +02:00
268a123449 Fixed #138 2017-07-10 17:46:20 -05:00
4c22c29241 Changed the way used for detecting quoted tweets 2017-07-08 15:42:21 -05:00
Jose Manuel Delicado
7a7634833a Updated pot files 2017-07-08 13:56:09 +02:00
Jose Manuel Delicado
d70b5703d2 Fixed small bugs in reply to dialog title 2017-07-08 13:54:32 +02:00
Bill Dengler
21d6471bb2 Update bass_alac.dll. 2017-07-08 07:02:18 +00:00
Bill Dengler
a492baf486 Check-in additional libraries. 2017-07-08 07:02:12 +00:00
Bill Dengler
0163314e36 Added utility script to ease future updates. Just run it and it will create x86 and x64 dirs. Only depends on standard library. 2017-07-08 07:02:05 +00:00
Bill Dengler
1d7d376ca1 Update several Bass DLLs. 2017-07-08 07:01:54 +00:00
868002c78b Integrated fix for #143 in the main branch 2017-07-07 17:39:09 -05:00
c3b19f42d5 Fixed a typo 2017-07-07 17:23:16 -05:00
ee234995f5 Updated changelog 2017-07-07 17:06:45 -05:00
Jose Manuel Delicado
0472592991 Updated version to 0.91 2017-07-07 20:51:42 +02:00
Jose Manuel Delicado
5b8c28dd73 Updated dependencies upgrade command in readme.md 2017-07-07 20:47:42 +02:00
Jose Manuel Delicado
a8f854cbc5 libloader/com.py: call prepare_gencache() before trying to build the com cache. Fixes #100 2017-07-07 20:33:49 +02:00
80f2e8f984 Fixed sound.py when there are multiple sessions trying to load the library 2017-06-17 21:39:39 -05:00
d4b410cafd Merge pull request #140 from codeofdusk/i140
update sound_lib
2017-06-17 21:15:58 -05:00
Bill Dengler
af04bcfe3f Add new sound_lib files. 2017-06-16 19:05:40 +00:00
Bill Dengler
7349e3b3f3 Update sound_lib. 2017-06-16 19:02:26 +00:00
bf4c09d0bb Fixed getting previous items in searches. Closes #129 2017-06-15 09:57:45 -05:00
adc45ae767 Delete timer objects for buffers before destroying them 2017-06-15 08:26:30 -05:00
2618e0ac90 Language selection for OCR. Fixes #107 2017-05-29 02:25:50 +04:00
3feeb568d8 Updated windows 10 Keymap 2017-05-29 01:45:06 +04:00
fb977a70c2 Fixed unicode errors in account authorisation 2017-05-25 11:59:24 +04:00
c4a06a7bc0 Improved check_connection for avoiding a rece condition. Fixes #136 2017-05-25 11:52:29 +04:00
df5967079c Display users correctly in longtweets. Fixes #135 2017-05-08 14:14:31 +04:00
0a3219d12a Fixed a bugin inverted buffers 2017-05-08 04:12:06 +04:00
77baa06fc3 Fixed a typo 2017-05-08 04:03:00 +04:00
160d168c63 Don't add old tweets in buffers. Fixes #116 and #133 2017-05-07 10:45:35 +04:00
713ac0251b Added donation URL to the list of translatable strings 2017-05-06 23:34:50 +04:00
c655c76196 Fixed error with setters in view tweet dialog 2017-05-06 23:33:56 +04:00
3cf6ac5c06 Re-added SndUp's API key for audio uploads. Fixes #134 2017-05-06 19:40:31 +04:00
43bdb358dd Removed unneeded dependencies 2017-05-06 06:04:29 +04:00
6f622bdeba Switched to yandex.translate. Fixes #132 2017-05-06 05:49:00 +04:00
7e6103473f Merge pull request #131 from codeofdusk/next-gen
Close #130
2017-05-03 12:51:16 +04:00
Bill Dengler
caa051abae Close #130 2017-05-02 20:55:43 +00:00
fbe6eb6250 Updated contributors 2017-04-28 03:35:58 +04:00
b9d8e13bdf Removed TWUp from list of audio services 2017-04-27 04:10:25 +04:00
16a6fa2896 Shows error when loading timeline for suspended users. Fixes #125 2017-04-27 04:01:58 +04:00
Jose Manuel Delicado
089eea4c07 Updated version to 0.90 2017-04-05 10:09:39 +02:00
Jose Manuel Delicado
37e3af1c59 Updated Windows dependencies. Remember to run git submodule update before submiting new commits 2017-04-05 10:05:45 +02:00
562759f57e Updated locales 2017-04-05 02:54:42 -05:00
a9dc188c4b Saves value for mention all button only when the checkbox is shown 2017-03-25 07:54:28 -06:00
cced182063 Avoid timeline creation of unauthorized accounts. Fixes #125 2017-03-24 05:29:50 -06:00
66774174ae Added a few checks before removing buffers in local database 2017-03-24 05:25:02 -06:00
d9e972115b Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-03-24 05:11:13 -06:00
2d7c8e59dd Allow buffer removal without user interaction. 2017-03-24 05:10:15 -06:00
José Manuel
802c879795 Merge pull request #122 from codeofdusk/next-gen
Re-introduce patch from #23 to fix #121. Use braille output when it is supported in the selected accessible_output2 output class.
2017-03-07 11:14:50 +01:00
Bill Dengler
34f92b8af9 Fix #121 2017-03-06 17:57:33 +00:00
Jose Manuel Delicado
a72e8dd6a4 Updated spelling dictionaries. Remember to run git submodule update 2017-02-24 23:06:44 +01:00
4793aaf5e6 Convert HTML entities to unicode in long tweets. Fixes #118 2017-02-24 09:51:39 -06:00
c136c50afc Add image description from retweets. Fixes #119 2017-02-24 08:49:54 -06:00
Jose Manuel Delicado
3a4b34972d The requests fix is applied in non-frozen copies of TWBlue too. In this case, only the proxy is patched 2017-02-16 11:30:16 +01:00
Jose Manuel Delicado
607da14355 accessible_output2/outputs/auto.py: handle all possible exceptions when adding outputs to the list 2017-02-16 11:26:53 +01:00
Jose Manuel Delicado
17ccc30d9b update/updater.py: removed ConnectionError to handle all possible exceptions 2017-02-15 13:06:46 +01:00
3855407f52 Added config setting for #107 2017-02-14 17:45:22 -06:00
03415f6b24 Added extras panel in account settings, added OCR Language selection for #107 2017-02-14 17:42:46 -06:00
Jose Manuel Delicado
1061967adc TWBlue can run successfully if there are no sessions configured to run at program startup or the Internet connection doesn't work (for example, you are behind a proxy but you haven't configured it yet) 2017-02-13 13:35:32 +01:00
b165d564e0 spellchecker: selects the right language when is set to system. Fixes #117 2017-02-10 02:27:57 -06:00
20c2f844f5 ViewProfile: Show error for suspended accounts 2017-02-01 09:03:22 -06:00
ad9f2452b2 Updated changelog 2017-02-01 03:26:58 -06:00
a86a6f52d6 View profile: Shows an error if user does not exist. Fixes #114 2017-02-01 03:23:29 -06:00
4d82ecc8f2 Removed API Key for sndup. Closes #109 2017-01-29 17:59:57 -06:00
023e0979c6 Fixed a typo 2017-01-29 17:51:44 -06:00
ca6e78cd4d Updated changelog 2017-01-29 17:30:57 -06:00
8f4b1f9695 Don't try to load deleted tweets from twishort 2017-01-29 17:20:37 -06:00
20aaa39bc9 Fixed another bug in check_long_tweet 2017-01-29 16:46:21 -06:00
José Manuel
8197f0c0d9 Merge pull request #111 from Mohamed00/next-gen
Update view.py
2017-01-28 19:21:40 +01:00
Mohamed Al-Hajamy
aa1a3542e5 Update view.py 2017-01-28 12:19:58 -05:00
05c0fefc01 Use get_tweet in ocr function. Fixes #105 2017-01-24 09:21:19 -06:00
1fd90be4cb Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-01-24 08:18:22 -06:00
05a4e9b6e4 Fixed a bug in long tweet parsing. Fixes #103 2017-01-24 08:15:49 -06:00
Jose Manuel Delicado
9d07fe38b8 Updated version to 0.89 2017-01-22 21:10:45 +01:00
fedf153252 Updated translations 2017-01-22 14:05:36 -06:00
80f9125511 Modified image sound in classic and default soundpack 2017-01-22 13:48:54 -06:00
25c88cea3b Fixed a typo 2017-01-22 09:36:59 -06:00
c9161cd772 Replies made with twishort should display user mentions properly 2017-01-22 09:09:32 -06:00
f7c334ad96 open_timeline: set tweet_mode='extended' during tl creation 2017-01-22 09:00:43 -06:00
59f6cf13ad Fixed bug that prevents documentation to be opened after changelog 2017-01-22 08:56:17 -06:00
3684ec2783 Fixed bug that makes list to crash the client 2017-01-21 16:50:17 -06:00
6baf417d35 Removed old code for proxy support in streaming API modules 2017-01-21 16:06:20 -06:00
db52e8d851 Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-01-21 15:48:33 -06:00
0bf630d8c0 Added ocr_image to all keymaps 2017-01-21 15:47:58 -06:00
Jose Manuel Delicado
4bd9a2b899 Fixed errors in the installer script 2017-01-21 20:45:52 +01:00
7daacfa809 Updated soundpacks 2017-01-21 13:21:16 -06:00
Jose Manuel Delicado
b586b0729c Updated version to 0.88 2017-01-21 20:04:00 +01:00
d384ad9dd3 Updated interface translations 2017-01-21 12:41:46 -06:00
e7aac6c805 Updated translation catalogs 2017-01-21 12:38:58 -06:00
e34c84697e Updated translations for documentation and changelog 2017-01-21 12:38:16 -06:00
a639604179 Updated changelog 2017-01-21 12:26:45 -06:00
7b5022da09 View_changelog will look for the changelog in the user's language 2017-01-21 12:26:24 -06:00
Jose Manuel Delicado
620ee23edb Updated documentation and changelog 2017-01-17 12:16:21 +01:00
Jose Manuel Delicado
f19d7b0535 setup.py: use x64 bootstrap if we are building the x64 version. Convert application.authors to a single string 2017-01-16 21:50:27 +01:00
José Manuel
a5acc3ef56 Merge pull request #99 from TWBlueQS/next-gen
Corrected the reference to the old application.author
2017-01-16 21:43:01 +01:00
Iván Novegil
40fc175185 Corrected the reference to the old application.author in orderr to compile correctly binary versions again 2017-01-16 21:13:32 +01:00
Jose Manuel Delicado
67dee3e1c1 Added the image sound to all soundpacks 2017-01-16 15:51:05 +01:00
Jose Manuel Delicado
dab8be7c12 The proxy support should be fully functional now 2017-01-16 15:49:49 +01:00
Jose Manuel Delicado
b7dd6d43fe Fixed sintax errors. Added a new option to set the proxy type 2017-01-16 14:11:54 +01:00
Jose Manuel Delicado
8a701c450e Added support for socks4 and socks5 proxies. New Python packages must be installed, see readme for more information 2017-01-16 11:13:51 +01:00
Jose Manuel Delicado
2370c39c15 twitter/twitter.py: remove proxy related code, we don't need it 2017-01-16 10:46:19 +01:00
Jose Manuel Delicado
0851dc23d8 Updated readme. Pypubsub must be version 3.3.0, version 4.0 breaks compatibility with Python 2.x 2017-01-16 10:38:15 +01:00
Jose Manuel Delicado
232d39e0b3 Patched requests.sessions.Session.__init__ to get proxy configuration from config. Now TWBlue should be able to connect to http and https proxies with authentication 2017-01-16 10:35:38 +01:00
2c27a1968f Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2017-01-14 06:11:54 -06:00
4d5de6ca69 Save configs when they change. Fixes #95 2017-01-14 06:11:41 -06:00
José Manuel
fb349fc7b4 Merge pull request #97 from codeofdusk/next-gen
Allow users to enable/disable indications of audio tweets, geotweets and image tweets with sound
2017-01-11 17:18:19 +01:00
Bill Dengler
1a4d0d5b9a Implement indicate_audio, indicate_geo and indicate_img (allow user to enable/disable sound indications for audio tweets, geotweets and tweets with images). 2017-01-11 15:26:36 +00:00
Bill Dengler
5eff1b77fe Add indicate_audio, indicate_geo and indicate_img settings. 2017-01-11 15:18:11 +00:00
6bb534d250 fixed a bug about timeline creations introduced a few commits ago 2017-01-10 17:42:26 -06:00
2d8c706cde Updated documentation and translation catalogs 2017-01-10 17:38:47 -06:00
4e702c5428 Merge pull request #96 from Mohamed00/next-gen
Update soundsTutorial_constants.py
2017-01-10 10:14:03 -06:00
Mohamed00
6717cb5154 Update soundsTutorial_constants.py
Fixed a typo in the menu for the image sound.
2017-01-08 00:43:14 -05:00
590f59ca63 stop adding user's own quoted tweets to the mentions buffer 2017-01-07 07:45:49 -06:00
6bad20b784 Added media tweet to the sounds tutorial 2017-01-07 07:01:58 -06:00
146667144a Play a sound when a tweet contains images 2017-01-07 06:58:53 -06:00
cc60235503 Fixed bug when loading TWBlue's keys lib 2017-01-05 11:24:46 -06:00
31a149b022 Fixed a bug in long replies made with Twishort 2017-01-03 20:35:53 -06:00
ec58d02bb3 Added OCR support via the ocr.space API. Closes #93 2017-01-03 08:30:58 -06:00
516acb501a Added an option for displaying usernames instead full names 2017-01-02 13:19:16 -06:00
88a706dd7d Updated changelog and list of contributors 2017-01-02 11:47:56 -06:00
6d887d5762 Added code compatibility for username based timelines. Fixes #91 2017-01-02 11:17:47 -06:00
cd7fb6d36f Work with user IDS instead usernames in all timelines 2017-01-02 10:47:44 -06:00
Jose Manuel Delicado
020148ac0a twitter/authorisationHandler: call self.finish() after completing the http request in the local server 2016-12-29 19:38:18 +01:00
9d0558468a Only copy changed keystrokes in keymap.keymap and let unchanged entries in the main file 2016-12-29 11:41:31 -06:00
7d188a40b2 Updated translation catalog. Added changelog catalog 2016-12-29 11:14:17 -06:00
0c3d956d96 Updated changelog and documentation 2016-12-29 10:49:24 -06:00
44ca5a7f83 Fixed long tweets display for retweeted statuses 2016-12-29 10:47:18 -06:00
Jose Manuel Delicado
cdedd41101 Updated readme 2016-12-27 13:29:26 +01:00
Jose Manuel Delicado
87c113986d Updated Windows dependencies. Run git submodule update to get the changes 2016-12-27 13:26:17 +01:00
Jose Manuel Delicado
b0a6634e20 Updated NSIS script. Now it should be compatible with NSIS 3.0 2016-12-27 13:24:22 +01:00
53388696b6 Twishort shouldn't be added in some replies. Fix #90 2016-12-19 11:43:32 -06:00
fe7a69f490 Added changelot to translatable documentation 2016-12-09 10:35:42 -06:00
1351712db4 Changed how replies works in TWBlue 2016-12-09 10:15:39 -06:00
ca0f00e27d Merge pull request #85 from TWBlueQS/next-gen
Added the date indication to the new updates available dialog and updated readme
2016-11-09 13:18:06 -06:00
Jose Manuel Delicado
6290815a0c Updated Windows dependencies with a new catalan spelling dictionary 2016-10-22 23:32:50 +02:00
4a1162005d Fix for displaying mentions in twishort replies 2016-10-19 17:38:30 -05:00
72b4873dce All extended tweets should be handled successfully 2016-10-19 16:57:41 -05:00
a1ccdd6bf4 Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2016-10-19 16:56:13 -05:00
2cad567537 Removed some unneeded log messages 2016-10-19 16:55:07 -05:00
Jose Manuel Delicado
bb0af61483 Removed Technow from copyright 2016-10-13 20:22:59 +02:00
7a2e51ef03 Added changelog to the translatable documentation 2016-10-09 10:45:47 -05:00
b3451e229d Updated documentation 2016-10-09 10:17:21 -05:00
32dd232350 Changes to keystrokes are reflected in keystroke editor automatically 2016-10-09 09:03:21 -05:00
Manuel Eduardo Cortéz Vallejo
656b031c5c Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2016-10-08 11:47:55 -05:00
Manuel Eduardo Cortéz Vallejo
0f2bd2a9e1 Fixed a typo 2016-10-08 11:46:25 -05:00
Jose Manuel Delicado
12f47b85af Updated version to 0.87 2016-10-04 22:06:24 +02:00
30c0a8249e Removed an unneeded file in the romanian translation 2016-10-04 14:52:32 -05:00
62e51ad14b Updated translations 2016-10-04 14:49:55 -05:00
d076ed1f56 Fixed an exception where mention to all checkbox was not being shown 2016-10-04 09:35:18 -05:00
9bbe325517 Mention all status (enabled/disabled) will be saved in config 2016-10-04 03:55:36 -05:00
6f5ef6d3f1 Fixed reply to single user in tweets with multiple users 2016-10-04 03:37:12 -05:00
378d277a98 Fixed some bugs related to extended tweets 2016-10-03 22:54:54 -05:00
Jose Manuel Delicado
2fdbcbc152 Updated translation templates 2016-10-02 21:17:14 +02:00
Jose Manuel Delicado
ef7ba0fe40 Updated Windows 10 keymap. The authorization message returned by the webbrowser when authorizing a new account now is translatable 2016-10-02 20:46:27 +02:00
Jose Manuel Delicado
3c5de10fe6 pa.c/appinfo.ini: updated format version to 3.4 2016-10-02 17:04:37 +02:00
Jose Manuel Delicado
230e0fa951 Removed unnecesary txt file from arabic translation folder 2016-10-02 16:47:54 +02:00
31192a5801 Updated locales 2016-10-02 09:40:45 -05:00
f1c974b4cf Reply to tweets will always be quotes 2016-10-02 09:11:02 -05:00
Jose Manuel Delicado
a9f9cb7969 Updated Windows dependencies. Updated readme 2016-10-02 15:20:14 +02:00
Jose Manuel Delicado
3a3393e03a Increased version number to 0.86 2016-10-02 15:14:32 +02:00
3a7c0c8f12 Added a fix for composing tweets in the new way twitter provides them 2016-10-02 07:54:23 -05:00
bd2460e42b Return false in twishort module if a long tweet has been deleted 2016-10-02 07:52:02 -05:00
Jose Manuel Delicado
2dd262cc83 TWBlue can now send long tweets directly to twishort. TWBlue server is nolonger used for this purpose 2016-10-02 14:35:54 +02:00
Jose Manuel Delicado
a2cf1ac8d0 Merge branch 'next-gen' of github.com:manuelcortez/twblue into next-gen 2016-10-02 10:38:40 +02:00
df345b5eec Initial support for extended tweets 2016-09-28 17:25:03 -05:00
Jose Manuel Delicado
b535c996d6 Merge branch 'next-gen' of github.com:manuelcortez/twblue into next-gen 2016-08-13 12:37:06 +02:00
b131f50d42 Updated windows 10 keymap 2016-08-12 23:40:56 -05:00
d729f86898 Merge pull request #87 from masonasons/next-gen
Adds functions to seek the playing audio forward or back 5 seconds.
2016-08-11 03:00:31 -05:00
Mason Armstrong
51ef047fb6 Adds functions to seek the playing audio forward or back 5 seconds. Adds function in audio_player to play/pause the audio but wouldn't work right when bound to the UI so not implemented. 2016-08-10 21:59:19 -05:00
Iván Novegil
2497d01bd6 Updated documentation explaining how to add additional enchant dictionaries. 2016-08-08 17:57:28 +02:00
Iván Novegil
a57c44d566 Merge branch 'next-gen' of https://github.com/manuelcortez/twblue into next-gen 2016-08-08 17:16:25 +02:00
Jose Manuel Delicado
5565e08610 Updated translations and documentation 2016-08-06 22:40:10 +02:00
ab65a8f6db Fixed order for some timelines at startup 2016-08-06 15:11:10 -05:00
7f3c363da8 Call shelf for sessions every 5 minutes 2016-08-06 14:47:42 -05:00
7bc26a94c7 Fixed a bug with database and put_items_on_list 2016-08-06 14:09:27 -05:00
Jose Manuel Delicado
47b8575f55 Updated translations and documentation 2016-08-06 18:40:20 +02:00
Jose Manuel Delicado
2a27998831 Fixed sintax error in setup.py 2016-08-06 18:30:17 +02:00
Jose Manuel Delicado
a64e89994f Added spelling dictionaries for almost all application languages. Setup.py has been modified to handle them automatically. Remember running git submodule update. Increased version number to 0.85. Updated readme 2016-08-06 18:22:54 +02:00
05a8cb7a28 Added run at startup option for installed version 2016-08-05 15:31:22 -05:00
Jose Manuel Delicado
b2ebbf5b7a Merge branch 'next-gen' of github.com:manuelcortez/twblue into next-gen 2016-08-05 15:50:59 +02:00
Jose Manuel Delicado
a03ef851e3 The buffers dialog in account configuration now includes the buffer translated name 2016-08-05 15:50:46 +02:00
7a8d000635 Updated documentation. Updated translation catalogs 2016-08-05 08:34:28 -05:00
Iván Novegil
6a056749af Merge branch 'next-gen' of https://github.com/manuelcortez/twblue into next-gen 2016-08-05 09:48:56 +02:00
41b10e3a84 Long tweets are displayed properly in lists 2016-08-04 17:40:07 -05:00
4056c73052 Updated documentation and process to generate html files 2016-08-04 09:19:47 -05:00
ef95244f0c Merge branch 'next-gen' of https://github.com/manuelcortez/TWBlue into next-gen 2016-08-04 08:07:50 -05:00
143ad70073 Fixed a bug with session reconnection 2016-08-04 08:06:39 -05:00
817d7bd6bb Disabled response for tweet deletions due to a bug 2016-08-04 08:02:46 -05:00
Iván Novegil
99bdaca6f0 Based on the idea proposed by @jmdaweb. Added the date indication to the available update dialog.
ATTENTION!: It will be needed to add the date field to the json for the updates. With this commit (updates folder) is the format I propose to the string.
2016-08-03 18:35:46 +02:00
3fca5c20fb Merge pull request #84 from TWBlueQS/next-gen
Fixed a bug with galician, vasque and catala languages and arrow when selecting user default as application's language.
2016-08-03 11:07:13 -05:00
Iván Novegil
a373ef8dff Fixed a bug with galician, vasque and catala languages and arrow when selecting user default as application's language. 2016-08-03 17:55:33 +02:00
696d1764bd Changes default keymap to win10 keymap automatically 2016-08-03 09:45:31 -05:00
206 changed files with 64644 additions and 26248 deletions

4
.gitignore vendored
View File

@@ -17,4 +17,6 @@ src/Microsoft.VC90.MFC
src/launcher.bat
src/sounds/iOs
release-snapshot/
src/com_cache/
src/com_cache/
doc/strings.py
doc/changelog.py

View File

@@ -1,8 +1,6 @@
TWBlue -
======
Copyright (C) 2016. [Technow S.L.](https://www.technow.es)
TW Blue is an app designed to use Twitter simply and efficiently while using minimal system resources.
With this app youll have access to twitter features such as:
@@ -31,10 +29,10 @@ Although most dependencies can be found in the windows-dependencies directory, w
#### Dependencies packaged in windows installers
* [Python,](http://python.org) version 2.7.11
* [Python,](http://python.org) version 2.7.14
If you want to build both x86 and x64 binaries, you can install python x86 to C:\python27 and python x64 to C:\python27x64, for example.
* [wxPython](http://www.wxpython.org) for Python 2.7, version 3.0.2.0
* [Python windows extensions (pywin32)](http://www.sourceforge.net/projects/pywin32/) for python 2.7, build 220
* [Python windows extensions (pywin32)](http://www.sourceforge.net/projects/pywin32/) for python 2.7, build 221
* [PyEnchant,](http://pythonhosted.org/pyenchant/) version 1.6.6.
x64 version has been built by TWBlue developers, so you only will find it in windows-dependencies folder
@@ -59,21 +57,22 @@ setuptools installs a script, called easy_install. You can find it in the python
The -z switch unzips the package, instead of installing it compressed. If you add the --upgrade switch, you can upgrade a package to its latest version. The following packages need to be installed:
* pypubsub
* pypubsub==3.3.0
* configobj
* requests-oauthlib
* requests-toolbelt
* future
* pygeocoder
* suds
* arrow==0.6
* arrow
* markdown
* winpaths
* microsofttranslator
* PySocks
* win_inet_pton
* yandex.translate
easy_install will automatically get the additional libraries that these packages need to work properly.
Run the following command to quickly install and upgrade all packages and their dependencies:
easy_install -Z --upgrade six configobj goslate markdown future suds requests oauthlib requests-oauthlib requests-toolbelt pypubsub pygeocoder arrow==0.6 python-dateutil futures markdown microsofttranslator winpaths
Run the following command to quickly install and upgrade all packages and their dependencies:
easy_install -Z --upgrade six configobj markdown future requests oauthlib requests-oauthlib requests-toolbelt pypubsub==3.3.0 pygeocoder arrow python-dateutil futures winpaths PySocks win_inet_pton yandex.translate idna chardet urllib3
#### Other dependencies
@@ -86,16 +85,20 @@ This dependency has been built using pure basic 4.61. Its source can be found at
#### Dependencies required to build the installer
* [NSIS unicode,](http://www.scratchpaper.com/) version 2.46.5
* [NSIS,](http://nsis.sourceforge.net/) version 3.02.1
#### Dependencies required to build the portableApps.com format archive
* [NSIS Unicode Portable,](http://portableapps.com/apps/development/nsis_portable) version 2.46.5 rev 3
* [PortableApps.com Launcher,](http://portableapps.com/apps/development/portableapps.com_launcher) version 2.2
* [PortableApps.com Installer,](http://portableapps.com/apps/development/portableapps.com_installer) version 3.1.3
* [NSIS Portable,](http://portableapps.com/apps/development/nsis_portable) version 3.02.1
* [PortableApps.com Launcher,](http://portableapps.com/apps/development/portableapps.com_launcher) version 2.2.1
* [PortableApps.com Installer,](http://portableapps.com/apps/development/portableapps.com_installer) version 3.5.5
Important! Install these 3 apps into the same folder, otherwise you won't be able to build the pa.c version. For example: D:\portableApps\NSISPortable, D:\PortableApps\PortableApps.com installer, ...
#### Dependencies to make the spell checker multilingual ####
In order to add the support for spell checking in more languages than english you need to add some additional dictionaries to pyenchant. These are located on the dictionaries folder under windows-dependencies. Simply copy them to the share/enchant/myspell folder located in your enchant installation. They will be automatically copied when building a binary version.
### Running TW Blue from source
Now that you have installed all these packages, you can run TW Blue from source using a command prompt. Navigate to the repo's src directory, and type the following command:
@@ -106,8 +109,9 @@ Now that you have installed all these packages, you can run TW Blue from source
### Generating the documentation
To generate the documentation in html format, navigate to the doc folder inside this repo. After that, run this command:
python generator.py
To generate the documentation in html format, navigate to the doc folder inside this repo. After that, run these commands:
python document_importer.py
python generator.py
The documentation will be generated, placing each language in a separate folder in the doc directory. Move these folders (for example de, en, es, fr, it, ...) to src/documentation, creating the directory if necesary.
Also, copy the license.txt located in the root of the repo to the documentation folder.

View File

@@ -1,12 +1,8 @@
Manuel E. Cortéz
Bill Dengler
Johana Hidrobo
Marcelo Sosa
Isabel del Castillo
José Manuel Delicado
David Picón
Vicente Llopis
Javier Dorado
Guillem León
Marco Serrano
Bryner Villalobos
@@ -35,11 +31,11 @@ Anibal Hernández
Sussan Leiva
Brian Hartgen
PEDRO REINA COLOBON
Moora-Moora Arrilla
Blake Oliver
Steffen Schultz
Riku
Burak Yüksek
florian Ionașcu
Christian Leo Mameli
Natalia Hedlund (Наталья Хедлунд)
Natalia Hedlund (Наталья Хедлунд)
Valeria (Валерия)

View File

@@ -2,7 +2,7 @@
name = 'TWBlue'
snapshot = False
if snapshot == False:
version = "0.84"
version = "0.93"
update_url = 'http://twblue.es/updates/twblue_ngen.json'
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
else:
@@ -11,7 +11,7 @@ else:
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/snapshots.json'
author = u"Manuel Cortéz"
authorEmail = "manuel@manuelcortez.net"
copyright = u"Copyright (C) 2015, Technow S.L. \nCopyright (C) 2013-2015, Manuel cortéz."
copyright = u"Copyright (C) 2013-2016, Manuel cortéz."
description = unicode(name+" is an app designed to use Twitter simply and efficiently while using minimal system resources. This app provides access to most Twitter features.")
translators = [u"Bryner Villalobos, Bill Dengler (English)", u"Mohammed Al Shara (Arabic)", u"Joan Rabat, Juan Carlos Rivilla (Catalan)", u"Manuel cortéz (Spanish)", u"Sukil Etxenike Arizaleta (Basque)", u"Jani Kinnunen (finnish)", u"Rémy Ruiz (French)", u"Juan Buño (Galician)", u"Steffen Schultz (German)", u"Robert Osztolykan (Hungarian)", u"Paweł Masarczyk (Polish)", u"Odenilton Júnior Santos (Portuguese)", u"Alexander Jaszyn (Russian)", u"Burak (Turkish)"]
url = u"http://twblue.es"

152
doc/changelog.md Normal file
View File

@@ -0,0 +1,152 @@
TWBlue Changelog
## changes in this version
* A new soundpack has been added to TWBlue. Thanks to [@ValeriaK305](https://twitter.com/ValeriaK305)
* In the Windows 10 keymap, we have changed some default keystrokes as windows now uses some previously assigned shortcuts:
* For liking a tweet, press Control+Windows+alt+f
* for opening a trends buffer, press control+Windows+T
* TWBlue has received improvements in some functions for handling extended tweets, long tweets and quoted retweets. It should render some tweets in a better way.
* In the spell checker module, there is a new button that will allow you to add your own words to your personal dictionary so the module won't mark them as mispelled the next time you will check spelling.
* Added filtering capabilities to TWBlue. ([#102](https://github.com/manuelcortez/TWBlue/issues/102))
* You can create a filter for the current buffer from the buffer menu in the menu bar. At this moment, invisible interface does not have any shorcut for this.
* You can create filters by word or languages.
* For deleting already created filters, you can go to the filter manager in the buffer menu and delete the filters you won't need.
* Links should be opened properly in quoted tweets ([#167,](https://github.com/manuelcortez/TWBlue/issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))
* Increased display name limit up to 50 characters in update profile dialog.
* When authorising an account, you will see a dialogue with a cancel button, in case you want to abort the process. Also, NVDA will not be blocked when the process starts. ([#101](https://github.com/manuelcortez/TWBlue/issues/101))
* In the translator module, the list of available languages is fetched automatically from the provider. That means all of these languages will work and there will not be inconsistencies. Also we've removed the first combo box, because the language is detected automatically by Yandex'S API. ([#153](https://github.com/manuelcortez/TWBlue/issues/153))
* Trending topics, searches and conversation buffers will use mute settings set for the session in wich they were opened. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))
* The Tweet limit is now 280 characters lenght instead 140. It means you can tweet longer tweets. ([#172](https://github.com/manuelcortez/TWBlue/issues/172))
* Per popular request, Status for mention to all and long tweet checkboxes will not be saved in settings. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))
* Fixed a problem that was making TWBlue unable to start if it was being ran in Windows with Serbian language. ([#175](https://github.com/manuelcortez/TWBlue/issues/175))
* Added Danish translation.
* And more. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) [#173,](https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/manuelcortez/TWBlue/issues/174) [#176,](https://github.com/manuelcortez/TWBlue/issues/176))
## changes in version 0.91 and 0.92
* Fixed incorrect unicode handling when copying tweet to clipboard. ([#150](https://github.com/manuelcortez/TWBlue/issues/150))
* TWBlue will show an error when trying to open a timeline for a suspended user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))
* Removed TwUp as service as it no longer exists. ([#112](https://github.com/manuelcortez/TWBlue/issues/112))
* Release audio files after uploading them. ([#130](https://github.com/manuelcortez/TWBlue/issues/130))
* Now TWBlue will use Yandex's translation services instead microsoft translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))
* SndUp users will be able to upload audio in their account by using their API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))
* old tweets shouldn't be added as new items in buffers. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))
* All mentionned users should be displayed correctly in Twishort's long tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/issues/135))
* It is possible to select a language for OCR service from the extras panel, in the account settings dialogue. You can, however, set this to detect automatically. OCR should work better in languages with special characters or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/issues/107))
* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work normally in this update. [#100](https://github.com/manuelcortez/twblue/issues/100)
* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))
## Changes in version 0.90
* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))
* Now OCR will work in images from retweets. It fixes a bug where TWBlue was detecting images but couldn't apply OCR on them. ([#105](https://github.com/manuelcortez/TWBlue/issues/105))
* TWBlue won't try to load tweets already deleted, made with Twishort. Before, if someone posted a long tweet but deleted it in the Twishort's site, TWBlue was trying to load the tweet and it was causing problems in all the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))
* TWBlue shows an error message when you try to view the profile of an user that does not exist or has been suspended. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/TWBlue/issues/115))
* The spellchecker module should select the right language when is set to "user default". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))
* Image description will be displayed in retweets too. ([#119](https://github.com/manuelcortez/TWBlue/issues/119))
* When reading a long tweet, you shouldn't read strange entities anymore. ([#118](https://github.com/manuelcortez/twblue/issues/118))
* TWBlue will not try to load timelines if the user is blocking you. ([#125](https://github.com/manuelcortez/twblue/issues/125))
## Changes in version 0.88 and 0.89
* Fixed more issues with streams and reconnections.
* newer updates will indicate the release date in the updater.
* Changes to keystrokes are reflected in keystroke editor automatically.
* In replies with multiple users, if the mention to all checkbox is unchecked, you will see a checkbox per user so you will be able to control who will be mentioned in the reply.
* Fixed a bug that caused duplicated user mentions in replies when the tweet was made with Twishort.
* Retweets should be displayed normally again when the originating tweet is a Twishort's long tweet.
* Changed the way TWBlue saves user timelines in configuration. Now it uses user IDS instead usernames. With user IDS, if an user changes the username, TWBlue still will create his/her timeline. This was not possible by using usernames.
* Added a new setting in the account settings dialogue that makes TWBlue to show twitter usernames instead the full name.
* Added OCR in twitter pictures. There is a new item in the tweet menu that allows you to extract and display text in images. Also the keystroke alt+Win+o has been added for the same purpose from the invisible interface.
* Now TWBlue will play a sound when the focused tweet contains images.
* Your own quoted tweets will not appear in the mentions buffer anymore.
* The config file is saved in a different way, it should fix the bug where TWBlue needs to be restarted after the config folder is deleted.
* Mentioning people from friends or followers buffers works again.
* Support for proxy servers has been improved. Now TWBlue supports http, https, socks4 and socks5 proxies, with and without autentication.
## Changes in version 0.87
* Fixed stream connection errors.
* Now TWBlue can handle properly a reply to the sender without including all other mentioned users.
* Updated translations.
* The status of the mention to all checkbox will be remembered the next time you reply to multiple users.
## Changes in version 0.86
* Fixed a very important security issue. Now TWBlue will send tweets to twishort without using any other server.
* When you add a comment to a tweet, it will be sent as a quoted tweet, even if your reply plus the original tweet is not exceeding 140 characters.
* Updated windows 10 keymap for reflecting changes made in the last windows 10 build.
* Added last changes in the twitter API.
* When replying, it will not show the twitter username in the text box. When you send the tweet, the username will be added automatically.
* When replying to multiple users, you'll have a checkbox instead a button for mentioning all people. If this is checked, twitter usernames will be added automatically when you send your reply.
## Changes in version 0.85
* Long and quoted tweets should be displayed properly In lists.
* The connection should be more stable.
* Added an autostart option in the global settings dialogue.
* Updated translation.
* Updated russian documentation.
* Tweets in cached database should be loaded properly.
* Added some missed dictionaries for spelling correction.
* Timelines, lists and other buffer should be created in the right order at startup.
## Changes in version 0.84
* More improvements in quoted and long tweets.
* Updated translations: Russian, Italian, French, Romanian, Galician and Finnish.
* Improvements in the audio uploader module: Now it can handle audio with non-english characters.
* the title of the window should be updated properly when spellcheck, translate or shorten/unshorten URL buttons are pressed.
* the bug that changes the selected tweet in the home timeline shouldn't be happening so often.
## Changes in version 0.82 and 0.83
* If the tweet source (client) is an application with unicode characters (example: российская газета) it will not break the tweet displayer.
* Added a new field for image description in tweet displayer. When available, it will show description for images posted in tweets.
* users can add image descriptions to their photos. When uploading an image, a dialog will show for asking a description.
* Redesigned upload image dialog.
* Fixed photo uploads when posting tweets.
* When getting tweets for a conversation, ignores deleted tweets or some errors, now TWBlue will try to get as much tweets as possible, even if some of these are no longer available.
* Added audio playback from soundcloud.
* Now the session mute option don't makes the screen reader speaks.
* Fixed the direct message dialog. Now it should be displayed properly.
* when a tweet is deleted in twitter, TWBlue should reflect this change and delete that tweet in every buffer it is displayed.
* If your session is broken, TWBlue will be able to remove it automatically instead just crashing.
* audio uploader should display the current progress.
* users can disable the check for updates feature at startup from the general tab, in the global settings dialogue.
* The invisible interface and the window should be synchronized when the client reconnects.
* The documentation option in the systray icon should be enabled.
* In trending buffers, you can press enter for posting a tweet about the focused trend.
* Updated russian documentation and main program interface (thanks to Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/lifestar_n) in twitter)
* updated translations.
## Changes in Version 0.81
* Updated translations
* The updater module has received some improvements. Now it includes a Mirror URL for checking updates if the main URL is not available at the moment. If something is wrong and both locations don't work, the program will start anyway.
* some GUI elements now use keyboard shortcuts for common actions.
* fixed a bug in the geolocation dialog.
* the chicken nugget keymap should work properly.
* Added a new soundpack to the default installation of TWBlue, thanks to [@Deng90](https://twitter.com/deng90)
* Now the changelog is written in an html File.
* Added some missed dictionaries in last version for the spell checking feature.
* Trimmed the beginnings of the sounds in the default soundpack. Thanks to [@masonasons](https://github.com/masonasons)
* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons](https://github.com/masonasons)
* Added a source field in view tweet dialogue. Thanks to [@masonasons](https://github.com/masonasons)
* You can load previous items in followers and friend buffers for others.
* The Spell Checker dialogue should not display an error message when you have set "default language" in the global settings dialogue if your language is supported [#168](http://twblue.es/bugs/view.php?id=168)
* Updated romanian translation.
* Some code cleanups.
* The bug reports feature is fully operational again.
* TWBlue should work again for users that contains special characters in windows usernames.
* Added more options for the tweet searches.
* Added play_audio to the keymap editor.
* Windows key is no longer required in the keymap editor
* Switched to the Microsoft translator.
* You can update the current buffer by pressing ctrl+win+shift+u in the default keymap or in the buffer menu.
* Changed some keystrokes in the windows 10 default keymap
* New followers and friends buffer for user timelines.
---
Copyright © 2014-2017, Manuel Cortez.

View File

@@ -2,7 +2,7 @@
""" This script converts the hold documentation (saved in markdown files) in a python file with a list of strings to translate it using gettext."""
def prepare_documentation_in_file(fileSource, fileDest):
""" This takes documentation written in a markdown file and put all the contents in a python file, to create a internationalized documentation.
""" This takes documentation written in a markdown file and put all the contents in a python file, to create a translatable documentation.
@fileSource str: A markdown(.md) file.
@fileDest str: A file where this will put the new strings"""
@@ -10,14 +10,19 @@ def prepare_documentation_in_file(fileSource, fileDest):
f2 = open(fileDest, "w")
lns = f1.readlines()
f2.write("# -*- coding: utf-8 -*-\n")
f2.write("documentation = []\n")
f2.write("documentation = [\n")
for i in lns:
if len(i) > 2:
newvar = "documentation.append(_(u\"\"\"%s\"\"\"))\n" % (i[:-2])
if "\n" == i:
newvar = "\"\","
elif "\n" == i[-1]:
newvar = "_(u\"\"\"%s\"\"\"),\n" % (i[:-1])
else:
newvar = "documentation.append(_(u\"\"\"%s\"\"\"))\n" % (i)
newvar = "_(u\"\"\"%s\"\"\"),\n" % (i)
f2.write(newvar)
f1.close()
f2.write("]")
f2.close()
prepare_documentation_in_file("manual.md", "strings.py")
prepare_documentation_in_file("changelog.md", "changelog.py")

View File

@@ -5,16 +5,28 @@ from codecs import open as _open
import languageHandler
languageHandler.setLanguage("en")
import strings
import changelog
# the list of supported language codes of TW Blue
languages = ["en", "es", "fr", "de", "it", "gl", "ja", "ru", "ro"]
languages = ["en", "es", "fr", "de", "it", "gl", "ja", "ru", "ro", "eu", "ca", "da"]
#"eu", "ar", "ca", "es", "fi", "fr", "gl", "hu", "it", "pl", "pt", "ru", "tr"]
def generate_document(language):
def generate_document(language, document_type="documentation"):
reload(languageHandler)
languageHandler.setLanguage(language)
reload(strings)
markdown_file = markdown.markdown("\n".join(strings.documentation[1:]), extensions=["markdown.extensions.toc"])
if document_type == "documentation":
translation_file = "twblue-documentation"
languageHandler.setLanguage(language, translation_file)
reload(strings)
markdown_file = markdown.markdown("\n".join(strings.documentation[1:]), extensions=["markdown.extensions.toc"])
title = strings.documentation[0]
filename = "manual.html"
elif document_type == "changelog":
translation_file = "twblue-changelog"
languageHandler.setLanguage(language, translation_file)
reload(changelog)
markdown_file = markdown.markdown("\n".join(changelog.documentation[1:]), extensions=["markdown.extensions.toc"])
title = changelog.documentation[0]
filename = "changelog.html"
first_html_block = """<!doctype html>
<html lang="%s">
<head>
@@ -23,12 +35,12 @@ def generate_document(language):
</head>
<body>
<header><h1>%s</h1></header>
""" % (language, strings.documentation[0], strings.documentation[0])
""" % (language, title, title)
first_html_block = first_html_block+ markdown_file
first_html_block = first_html_block + "\n</body>\n</html>"
if not os.path.exists(language):
os.mkdir(language)
mdfile = _open("%s/manual.html" % language, "w", encoding="utf-8")
mdfile = _open("%s/%s" % (language, filename), "w", encoding="utf-8")
mdfile.write(first_html_block)
mdfile.close()
@@ -37,6 +49,7 @@ def create_documentation():
for i in languages:
print("Creating documentation for: %s" % (i,))
generate_document(i)
generate_document(i, "changelog")
print("Done")
create_documentation()

View File

@@ -117,7 +117,7 @@ def makePgettext(translations):
return unicode(message)
return pgettext
def setLanguage(lang):
def setLanguage(lang, translation_file="twblue-documentation"):
system = platform.system()
global curLang
try:
@@ -127,10 +127,10 @@ def setLanguage(lang):
localeName=locale.windows_locale[windowsLCID]
else:
localeName=locale.getlocale()[0]
trans=gettext.translation('twblue-documentation', localedir="locales", languages=[localeName])
trans=gettext.translation(translation_file, localedir="locales", languages=[localeName])
curLang=localeName
else:
trans=gettext.translation("twblue-documentation", localedir="locales", languages=[lang])
trans=gettext.translation(translation_file, localedir="locales", languages=[lang])
curLang=lang
localeChanged=False
#Try setting Python's locale to lang
@@ -150,7 +150,7 @@ def setLanguage(lang):
LCID=localeNameToWindowsLCID(lang)
ctypes.windll.kernel32.SetThreadLocale(LCID)
except IOError:
trans=gettext.translation("twblue-documentation",fallback=True)
trans=gettext.translation(translation_file,fallback=True)
curLang="en"
trans.install(unicode=True)
# Install our pgettext function.

Binary file not shown.

View File

@@ -0,0 +1,750 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: TWBlue-Changelog V0.91\n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-07-16 11:59+0200\n"
"Last-Translator: \n"
"Language-Team: Fran Torres Gallego. <frantorresgallego@gmail.com>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 2.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "Llista de cambis de TWBlue"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "##Cambis en aquesta versió"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"TWBlue ara mostra un error quan s'intenta accedir al time-line d'un usuari "
"que ha estat suspès. ([#128](https://github.com/manuelcortez/TWBlue/"
"issues/128))"
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
"S'ha eliminat el servei TWBlueUp ja que ha deixat d'existir. ([#112](https://"
"github.com/manuelcortez/TWBlue/issues/112))"
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
"Correixit un problema que impedia que els fitxers d'audio no "
"s'actualitcessin correctament tras carregar-los a algun servidor d'audio. "
"([#130](https://github.com/manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"TWBlue ara utilitza el servei de traducció de Microsoft Yandex. ([#132]"
"(https://github.com/manuelcortez/TWBlue/issues/132))"
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"Els usuaris de SndUp ja poden carregar audios al seu compte directament "
"utilitzant de nou la clau API. ([#134](https://github.com/manuelcortez/"
"TWBlue/issues/134))"
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
"Els tuits antics no deuen afegir-se als nous elements. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
"en tuits llargs, tots els usuaris aurien de mostrar-se correctament amb "
"twishort. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) "
"([#135](https://github.com/manuelcortez/TWBlue/issues/135))"
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"Es posible sel·leccionar l'idioma de l'OCR desde la finestra d'extres, al "
"diàleg configuració del compte. Pots establir l'idioma o, permetre que l'OCR "
"detecti automàticament el millor idioma. l'OCR treballa correctament amb "
"idiomas que tinguin simbols especials o sense puntuació anglessa. ([#107]"
"(https://github.com/manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
"Corregit un error amb JAWS for Windows i TWBlue. JAWS funciona de forma "
"normal en aquesta actualització. [#100](https://github.com/manuelcortez/"
"twblue/issues/100)"
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr "I més. ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:15
msgid "## Changes in version 0.90"
msgstr "##Cambis a la versió 0.90"
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"Correixit un error amb els tuits llargs que probocaven la desconexió a l'API "
"d'un stream. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
"Ara l'OCR pot treballar amb imatges procedents ddes del's retuits. Aquest "
"error es produía quan TWBlue detectava una imatge i no es podia aplicar "
"l'OCR. ([#105](https://github.com/manuelcortez/TWBlue/issues/105))"
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"TWBlue no intentarà carregar els tuits eliminats, fets amb twishort. Avans, "
"si algú postejava un tuit pero desprès s'el·liminava des del lloc de "
"twishort, TWBlue intentaba carregar el tuit llarg, caussant problemas en tot "
"el client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
"TWBlue mostra un missatge d'error quan s'intenta veure el perfil d'un usuari "
"inexistent o que ha estat suspès. ([#114,](https://github.com/manuelcortez/"
"TWBlue/issues/114) [#115](https://github.com/manuelcortez/TWBlue/issues/115))"
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"El corrector ortogràfic ha de ser capaç de detectar l'idioma correctament "
"quan es trova configurat com \"usuari per defecte\". ([#117](https://github."
"com/manuelcortez/TWBlue/issues/117))"
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
"La descripció d'imatges es mostrarà també als retuits. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
"Al llegir un tuit llarg, ja no s'aurien de mostrar mès elements extranys. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
"TWBlue no intentarà carregar els tuits del time-line d'un usuari que li està "
"bloquejant. ([#125](https://github.com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:24
msgid "## Changes in version 0.88 and 0.89"
msgstr "##cambis a les versións 0.88 i 0.89"
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr "*Eliminats molts errors amb els streams i les reconexions."
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr "*ara s'indica la data de la nova versió al mòdul d'actualitzacions."
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"*els cambis de tecles es mostraràn automàticament a l'editor del mapa de "
"teclat."
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
"*A les respostes amb multiples mencions, si la casella \"mencionar a tots\" "
"es trova desverificada, podreu veure una casella per usuari i també "
"controlar a qui mencioneu en la resposta."
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
"*corregit un bug que causava la duplicitat de mencions quan es creava un "
"twits mitjansant twisort."
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
"*Els retwits aurien de mostrar-se correctament de nou quan el twit original "
"es un twit llarg recortat amb twisort."
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
"*S'ha cambiat la forma en la que TWBlue guarda els fils temporals a la "
"configuración. Ara, en lloc dels noms d'usuari s'utilitzan identificadors. "
"D'aquesta manera, si l'usuari cambia el seu nom, TWBlue será capaç de "
"sincronitzar el seu fil temporal."
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
"*s'Ha afegit una nova configuració al diàleg de configuració de comptes per "
"fer que TWBlue mostri els noms d'usuari de twitter, així com el nom complert."
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
"*s'Ha afegit un OCR a les imatges de twitter. Es tracta d'un nou ítem al "
"menu twit que permet l'estracció i visualització del text d'una imatge. "
"També s'ha afegit el comandament alt+win+o des de l'interfaç invisible pel "
"mateix propossit."
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr "*Ara TWBlue pot reproduir un só quan un twit contingui imatges."
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr ""
"*Les tevés propies mencions a twits citats no tornaràn a apareixer més com a "
"mencions."
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
"*La configuración ara es guarda de forma diferent. D'aquesta manera ja no es "
"necessari eliminar el directori i reiniciar TWBlue."
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
"*Les mencións desde'l bufer \"amics\" o \"seguidors\" tornen a funcionar de "
"nou"
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
"*s'Ha implementat el suport per a servidors proxi. TWBlue ara suporta http, "
"https, socks4 i socks5; amb i sense autenticació."
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr "##Cambis a la versió 0.87"
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr "*Corregits errors a la conexión dels streams."
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
"*ara el TWBlue pot respondre correctament a l'emisor sense incluir totes les "
"mencions a la resta d'usuaris."
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr "*Traduccións actualitzades."
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
"*Es recorda l'estat de la casella per a mencionar a tothom per a futures "
"respostes a multiples usuaris."
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr "##cambis a la versió 0.86"
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
"El·liminat un error molt important de seguretat. TWBlue ara envía els twits "
"llargs mitjansant twishort sense utilizar cap altre servidor."
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
"*quan s'afegeix un comentari a un twit, aquest apareix com una citació "
"sempre que el twit original no excedeixi els 140 caràcters."
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
"*Actualitzats els accessos directes de teclat del mapa de Windows 10 per "
"reflectar el mapa de l'ùltima build de Windows 10."
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr "*Afegits els ùltims cambis a l'API de Twitter."
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
"*Quan es respòn, al quadre de edició no es mostra el nom d'usuari de "
"twitter. A l'enviar el twit, l'usuari s'afegirà automàticament."
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
"*Al respondre a multiples usuaris, tindreu una casella per mencionar a "
"tothom. Si està verificada, s'afegiràn els usuaris automàticament quan "
"s'envii el twit."
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr "## Cambis a la versió 0.85."
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
"*Els twits llargs i citats aurien de mostrar-se correctament en una llista."
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr "*La conexión auria de ser mes estable."
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr "*S'ha afegit l'opció per autoiniciar al diàleg de configuració."
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr "*traducció actualitzada."
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr "*Actualitzada la documentació en rus."
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr ""
"*els twits a la cachè de la base de dades s'han de carregar correctament."
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr ""
"*Afegits alguns diccionaris que faltaben per a la correcció d'escritura."
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
"*Fils temporals, twits, llistes i altres bufers, es creen en l'òrdre "
"correcte al iniciar."
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr "##Cambis a la versió 0.84"
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr "*Introduides algunes millores als twits curts i llargs."
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
"*Traduccións actualitzades: Rus, italià, francés, rumà, Galleg i finès."
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
"*Millorat el mòdul de càrrega de sons: Ara es poden carregar audios que no "
"utilitcin caracters anglosajons."
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
"*El titol de la finestra auria d'actualitzar-se correctament quan es "
"pressionen els botons de corregir, traduir o acortar/desacortar URL."
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
"*El bug que feia que el twit sel·leccionat cambiés a l'interfaç visible "
"auria d'estar parcialment corregit."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr "##cambis a les versións 0.82 i 0.83"
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
"*si la Font del twit (client) es una aplicación amb caràcters Unicode "
"(exemple: российская газета) no es trencarà el twit al mostrar-se."
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
"*Afegit un nou camp per descriure les imatges. Quan es trova disponible, es "
"mostren les descripcions de les imatges postejades a un twit."
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
"*els usuaris poden afegir una descripció a les imatges carregades. Al "
"carregar una imatge, es mostrarà un diàleg preguntant per una descripció."
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr "*Redissenyat el diàleg per a la càrrega d'imatges."
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr "*Corregit un problema al postear imatges."
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
"*Quan s'obtenen els twits d'una combersació, ignoren els twits eliminats o "
"alguns errors, TWBlue ara intenta obtener la major quantitat de twits sempre "
"que sigui posible."
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr "*Afegida la reproducció d'audio mitjançant soundcloud."
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
"*Al silenciar una sessió, el lector de pantalles ja no anunciarà cap "
"contingut automàticament."
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
"*Corregit un error al diàleg de missatges directes. Ara auria de mostrar-se "
"correctament."
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
"*Quan s'elimina un twit de twitter, TWBlue reflecteix els cambis i elimina "
"el twit al bufer mostrat."
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
"*Si una sessió de TWBlue ha estat danyada, el programa auria de ser capaç "
"d'eliminar-la i continuar, en lloc de no obrir-se."
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr "El carregador d'audio mostra el progres actual de forma correcta."
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
"*Els usuaris poden desactivar l'autoactualització desde la configuración "
"general, pestanya configuración global."
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
"*L'interfaç invisible i la finestra es sincronitcen quan el client es "
"reconecta."
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr ""
"*l'opció de documentació a l'àrea de notificacións del sistema auria de ser "
"activa."
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
"*Al bufer de tendencies, es pot presionar enter i postejar dintre de la "
"tendencia on es trova el focus."
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
"*Actualitzada la documentació e interfaç del programa. Gracies a Natalia "
"Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/lifestar_n) a "
"twitter)"
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr "*Actualitzades les traduccións"
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "##Cambis a la versió 0.81"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr "*Actualitzades les traduccións."
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
"*El mòdul d'actualitzacións ha rebut algunes millores. S'ha inclòç una URL "
"alternativa si el servidor principal no es trova disponible en el momento de "
"la comprobació. Si hi ha algún error o o alguna traducció no funciona, el "
"programa s'executarà de totes formes."
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"*Alguns elements de l'interfaç gràfica ara utilitza comandaments de teclat "
"per realizar algunes acción común."
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr "*Correixit un error al diàleg de la geolocalització."
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr "*El mapa de Chicken nougget auria de funcionar correctament."
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
"*Afegit un nou paquet de sons a l'instalador per defecte de TWBlue. Gracies "
"a [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr "*L'historial de cambis ara està escrit en un fitxer HTML."
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
"*Afegits nous diccionaris per a la funció de correcció d'escritura que no "
"s'habien afegit a la versió anterior."
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
"*s'han eliminat els silencis al principi dels sons al paquet de sons "
"predeterminat."
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"*Afegit suport Opus per la reproducció de só a TWBlue. Gracies a "
"[@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"*afegit un camp per veure la dirección al diàleg veure twit. Gracies a "
"[@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
"*Es poden carregar els ítems previs en els bufers d'amics i seguidors dels "
"altres."
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
"El diàleg de comprobació ortogràfica ja no auria de mostrar cap missatge "
"d'error quan s'ha establert lidioma per defecte al diàleg de configuració "
"global si el vostre idioma es troba soportat. [#168](http://twblue.es/bugs/"
"view.php?id=168)"
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr "*Actualitzada la traducció al rumà."
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr "*S'ha optimitzat el códi del programa."
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr "*El report d'errors torna a ser operatiu de nou."
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
"*TWBlue auria de treballar de nou correctament amb els nombs d'usuari en "
"Windows que continguin caràcters especials."
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr "*Afegides mes opcions per a la búsqueda de twits."
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr ""
"*S'ha afegit la funció de reproducció d'audio a l'editor de mapa de teclat."
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr "*La tecla Windows ja no es requerida a l'editor de teclat."
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr "S'ha començat a utilitzar el servei de traduccións de Microsoft."
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
"*pots actualitzar el bufer actual pressionant: ctrl+win+shift+u o des de'l "
"menú bufer."
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
"*s'han modificat algunes combinacions de teclat al mapa per defecte de "
"windows10."
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr ""
"*nous bufers per als seguidors i amics, separat del fil temporal de l'usuari."
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2017, Manuel Cortez."

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,875 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-12-11 11:04-0600\n"
"PO-Revision-Date: 2017-12-11 18:48+0100\n"
"Last-Translator: Steffen Schultz <schulle3o@yahoo.de>\n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 2.0.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "\\357\\273\\277TWBlue Changelog"
msgstr "\\357\\273\\277TWBlue Änderungsverlauf"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## Änderungen in dieser Version"
#: ../doc/changelog.py:5
msgid ""
"* A new soundpack has been added to TWBlue. Thanks to [@ValeriaK305](https://twitter.com/ValeriaK305)"
msgstr ""
"* Ein neues Sound-Paket hinzugefügt, vielen Dank an [@ValeriaK305](https://twitter.com/ValeriaK305)"
#: ../doc/changelog.py:6
msgid ""
"* In the Windows 10 keymap, we have changed some default keystrokes as windows now uses some "
"previously assigned shortcuts:"
msgstr ""
"* In der Tastenbelegung für Windows 10 wurden einige Tastenkürzel neu definiert, da diese "
"anderweitig von Windows genutzt werden:"
#: ../doc/changelog.py:7
msgid " * For liking a tweet, press Control+Windows+alt+f"
msgstr " * Um einen Tweet zu liken, drücke STRG+Windows+alt+f"
#: ../doc/changelog.py:8
msgid " * for opening a trends buffer, press control+Windows+T"
msgstr " * Zum Öffnen einer Trends-Ansicht drücke STRG+Windows+T"
#: ../doc/changelog.py:9
msgid ""
"* TWBlue has received improvements in some functions for handling extended tweets, long tweets and "
"quoted retweets. It should render some tweets in a better way."
msgstr ""
"* Einige TWBlue-Funktionen im Umgang mit erweiterten und langen Tweets sowie zitierten Retweets "
"wurden verbessert."
#: ../doc/changelog.py:10
msgid ""
"* In the spell checker module, there is a new button that will allow you to add your own words to "
"your personal dictionary so the module won't mark them as mispelled the next time you will check "
"spelling."
msgstr ""
"* Die Rechtschreibprüfung enthält jetzt eine Schaltfläche zum Hinzufügen eigener Begriffe, sodass "
"diese bei zukünftigen Prüfungen nicht mehr als falsch gekennzeichnet werden."
#: ../doc/changelog.py:11
msgid ""
"* Added filtering capabilities to TWBlue. ([#102](https://github.com/manuelcortez/TWBlue/issues/102))"
msgstr ""
"* Filtermöglichkeiten für TWBlue hinzugefügt. ([#102](https://github.com/manuelcortez/TWBlue/"
"issues/102))"
#: ../doc/changelog.py:12
msgid ""
" * You can create a filter for the current buffer from the buffer menu in the menu bar. At this "
"moment, invisible interface does not have any shorcut for this."
msgstr ""
" * Filter können für die aktuelle Ansicht im Ansichten-Menü erstellt werden. Derzeit gibt es im "
"unsichtbaren Interface keine Tastenkürzel hierfür."
#: ../doc/changelog.py:13
msgid " * You can create filters by word or languages."
msgstr " * Filter können nach Sprache oder Wort erstellt werden."
#: ../doc/changelog.py:14
msgid ""
" * For deleting already created filters, you can go to the filter manager in the buffer menu and "
"delete the filters you won't need."
msgstr ""
" * Um bereits erstellte Filter wieder zu löschen, verwende die Filterverwaltung im Ansichten-Menü."
#: ../doc/changelog.py:15
msgid ""
"* Links should be opened properly in quoted tweets ([#167,](https://github.com/manuelcortez/TWBlue/"
"issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))"
msgstr ""
"* Links in zitierten Tweets sollten nun richtig geöffnet werden ([#167,](https://github.com/"
"manuelcortez/TWBlue/issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))"
#: ../doc/changelog.py:16
msgid "* Increased display name limit up to 50 characters in update profile dialog."
msgstr "* Begrenzung des Anzeigenamens in der Profilbearbeitung auf 50 Zeichen erhöht."
#: ../doc/changelog.py:17
msgid ""
"* When authorising an account, you will see a dialogue with a cancel button, in case you want to "
"abort the process. Also, NVDA will not be blocked when the process starts. ([#101](https://github."
"com/manuelcortez/TWBlue/issues/101))"
msgstr ""
"* Beim Autorisieren eines Accounts wird ein Dialog mit einer Abbrechen-Schaltfläche angezeigt, "
"sofern der Vorgang unterbrochen werden soll. Des Weiteren wird NVDA während des Vorgangs nicht mehr "
"blockiert ([#101](https://github.com/manuelcortez/TWBlue/issues/101))"
#: ../doc/changelog.py:18
msgid ""
"* In the translator module, the list of available languages is fetched automatically from the "
"provider. That means all of these languages will work and there will not be inconsistencies. Also "
"we've removed the first combo box, because the language is detected automatically by Yandex'S API. "
"([#153](https://github.com/manuelcortez/TWBlue/issues/153))"
msgstr ""
"* Im Übersetzer wird die Liste der verfügbaren Sprachen vom Provider abgerufen. Dies bedeutet, dass "
"jede dieser Sprachen funktioniert, und keine Unstimmigkeiten in der Sprachenliste entstehen können. "
"Auch wurde die erste Kombobox entfernt, da die Yandex-API die Sprache automatisch erkennt. ([#153]"
"(https://github.com/manuelcortez/TWBlue/issues/153))"
#: ../doc/changelog.py:19
msgid ""
"* Trending topics, searches and conversation buffers will use mute settings set for the session in "
"wich they were opened. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))"
msgstr ""
"* Ansichten für Trends, Suchen und Unterhaltungen berücksichtigen die Stummschaltungs-Einstellungen "
"der Sitzung, in welcher sie geöffnet wurden. ([#157](https://github.com/manuelcortez/TWBlue/"
"issues/157))"
#: ../doc/changelog.py:20
msgid ""
"* The Tweet limit is now 280 characters lenght instead 140. It means you can tweet longer tweets. "
"([#172](https://github.com/manuelcortez/TWBlue/issues/172))"
msgstr ""
"* Die Zeichengrenze für Tweets wurde auf 280 erhöht. ([#172](https://github.com/manuelcortez/TWBlue/"
"issues/172))"
#: ../doc/changelog.py:21
msgid ""
"* Per popular request, Status for mention to all and long tweet checkboxes will not be saved in "
"settings. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))"
msgstr ""
"* Auf Wunsch der Community wird der Status der Kontrollfelder für lange Tweets und allen Antworten "
"nicht in den Einstellungen gespeichert. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))"
#: ../doc/changelog.py:22
msgid ""
"* Fixed a problem that was making TWBlue unable to start if it was being ran in Windows with Serbian "
"language. ([#175](https://github.com/manuelcortez/TWBlue/issues/175))"
msgstr ""
"* Ein Problem wurde behoben, welches den Start von TWBlue auf serbischen Windows-Systemen "
"verhinderte. ([#175](https://github.com/manuelcortez/TWBlue/issues/175))"
#: ../doc/changelog.py:23
msgid "* Added Danish translation."
msgstr "* Dänische Übersetzung hinzugefügt."
#: ../doc/changelog.py:24
msgid ""
"* And more. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/"
"manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) [#173,]"
"(https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/manuelcortez/TWBlue/"
"issues/174) [#176,](https://github.com/manuelcortez/TWBlue/issues/176))"
msgstr ""
"* und Weiteres. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github."
"com/manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) "
"[#173,](https://github.com/manuelcortez/TWBlue/issues/173) [#174,]"
#: ../doc/changelog.py:25
msgid "## changes in version 0.91 and 0.92"
msgstr "## Änderungen in Version 0.91 und 0.92"
#: ../doc/changelog.py:26
msgid ""
"* Fixed incorrect unicode handling when copying tweet to clipboard. ([#150](https://github.com/"
"manuelcortez/TWBlue/issues/150))"
msgstr ""
"* Inkorrekte Unicode-Behandlung beim Kopieren eines Tweets in die Zwischenablage behoben. ([#150]"
"(https://github.com/manuelcortez/TWBlue/issues/150))"
#: ../doc/changelog.py:27
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended user. ([#128](https://"
"github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBlue zeigt eine Fehlermeldung, wenn die Zeitleiste eines gesperrten Benutzers geöffnet wird. "
"([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
#: ../doc/changelog.py:28
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/manuelcortez/TWBlue/"
"issues/112))"
msgstr ""
"* TWUp als Dienst entfernt, da dieser nicht mehr existiert. ([#112](https://github.com/manuelcortez/"
"TWBlue/issues/112))"
#: ../doc/changelog.py:29
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/manuelcortez/TWBlue/"
"issues/130))"
msgstr ""
"* Audiodateien werden nach dem Hochladen freigegeben. ([#130](https://github.com/manuelcortez/TWBlue/"
"issues/130))"
#: ../doc/changelog.py:30
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft translator. ([#132](https://"
"github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* TWBlue verwendet den Yandex-Übersetzungsdienst anstelle des Microsoft-Übersetzers. ([#132](https://"
"github.com/manuelcortez/TWBlue/issues/132))"
#: ../doc/changelog.py:31
msgid ""
"* SndUp users will be able to upload audio in their account by using their API Key again. ([#134]"
"(https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* SndUp-Nutzer können Audiodateien wieder mit ihrem API-Schlüssel in ihrem Account hochladen. "
"([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
#: ../doc/changelog.py:32
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://github.com/manuelcortez/"
"TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Alte Tweets sollten nicht mehr als neue Einträge in Ansichten erscheinen. ([#116,](https://github."
"com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:33
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long tweets. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
msgstr ""
"* Alle erwähnten Benutzer sollten korrekt in Twishort-Tweets angezeigt werden. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
#: ../doc/changelog.py:34
msgid ""
"* It is possible to select a language for OCR service from the extras panel, in the account settings "
"dialogue. You can, however, set this to detect automatically. OCR should work better in languages "
"with special characters or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* Für die Texterkennung kann in der Extras-Registerkarte der Account-Einstellungen die Sprache für "
"die Erkennung gewählt werden. Eine automatische Erkennung ist jedoch ebenfalls möglich. Die "
"Erkennung sollte jetzt bei Sprachen mit speziellen Symbolen besser funktionieren. ([#107]"
#: ../doc/changelog.py:35
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work normally in this update. "
"[#100](https://github.com/manuelcortez/twblue/issues/100)"
msgstr ""
"* Ein Problem im Zusammenhang mit JAWS For Windows wurde behoben. In diesem Update sollte JAWS "
"wieder normal funktionieren. [#100](https://github.com/manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:36
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr "* Und weitere ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:37
msgid "## Changes in version 0.90"
msgstr "## Änderungen in Version 0.90"
#: ../doc/changelog.py:38
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the streaming API. ([#103]"
"(https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"* Fehler beim Verarbeiten langer Tweets behoben, der eine Verbindungstrennung zur Streaming-API "
"verursachte. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
#: ../doc/changelog.py:39
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was detecting images but "
"couldn't apply OCR on them. ([#105](https://github.com/manuelcortez/TWBlue/issues/105))"
msgstr ""
"* Die Texterkennung funktioniert jetzt auch bei Bildern aus Retweets. Zuvor hatte TWBlue zwar die "
"Bilder erkannt, konnte jedoch keine Texterkennung ausführen. ([#105](https://github.com/manuelcortez/"
"TWBlue/issues/105))"
#: ../doc/changelog.py:40
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. Before, if someone posted a "
"long tweet but deleted it in the Twishort's site, TWBlue was trying to load the tweet and it was "
"causing problems in all the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* TWBlue wird nicht mehr versuchen, via Twishort gelöschte Tweets zu laden, da dies in den Clients "
"Probleme verursachte. ([#113]"
#: ../doc/changelog.py:41
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user that does not exist or "
"has been suspended. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://"
"github.com/manuelcortez/TWBlue/issues/115))"
msgstr ""
"* TWBlue zeigt jetzt eine Fehlermeldung beim Versuch, das Profil eines gesperrten oder gelöschten "
"Benutzers aufzurufen. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://"
"github.com/manuelcortez/TWBlue/issues/115))"
#: ../doc/changelog.py:42
msgid ""
"* The spellchecker module should select the right language when is set to \"user default\". ([#117]"
"(https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"* Die Rechtschreibprüfung sollte jetzt die korrekte Sprache wählen, wenn \"Benutzerstandard\" "
"gewählt ist. ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
#: ../doc/changelog.py:43
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://github.com/manuelcortez/"
"TWBlue/issues/119))"
msgstr ""
"* Die Bildbeschreibung wird jetzt auch in Retweets angezeigt. ([#119](https://github.com/"
"manuelcortez/TWBlue/issues/119))"
#: ../doc/changelog.py:44
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. ([#118](https://github.com/"
"manuelcortez/twblue/issues/118))"
msgstr ""
"* Beim Lesen eines langen Tweets sollten jetzt keine seltsamen Zeichen mehr angezeigt werden. ([#118]"
"(https://github.com/manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:45
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125](https://github.com/"
"manuelcortez/twblue/issues/125))"
msgstr ""
"* Wenn man von einem Benutzer blockiert wurde, wird TWBlue nun dessen Zeitleisten nicht mehr "
"versuchen zu laden. ([#125](https://github.com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:46
msgid "## Changes in version 0.88 and 0.89"
msgstr "## Änderungen in Version 0.88 und 0.89"
#: ../doc/changelog.py:47
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Weitere Probleme mit Streams und Neuverbindungen behoben."
#: ../doc/changelog.py:48
msgid "* newer updates will indicate the release date in the updater."
msgstr "* Neuere Aktualisierungen zeigen das Release-Datum im Updater an."
#: ../doc/changelog.py:49
msgid "* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* Änderungen an Tastenkombinationen werden automatisch im Tastenkombinations-Editor übernommen."
#: ../doc/changelog.py:50
msgid ""
"* In replies with multiple users, if the mention to all checkbox is unchecked, you will see a "
"checkbox per user so you will be able to control who will be mentioned in the reply."
msgstr ""
"* In Antworten an mehrere Nutzer wird jetzt für jeden Nutzer eine Checkbox angezeigt, wenn die "
"Checkbox \"Alle erwähnen\" deaktiviert ist."
#: ../doc/changelog.py:51
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet was made with Twishort."
msgstr ""
"* Einen Fehler mit doppelten Erwähnungen in Antworten behoben, wenn der Tweet via Twishort gesendet "
"wurde."
#: ../doc/changelog.py:52
msgid ""
"* Retweets should be displayed normally again when the originating tweet is a Twishort's long tweet."
msgstr ""
"* Retweets sollten wieder normal angezeigt werden, wenn der Original-Tweet via Twishort gesendet "
"wurde."
#: ../doc/changelog.py:53
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses user IDS instead "
"usernames. With user IDS, if an user changes the username, TWBlue still will create his/her "
"timeline. This was not possible by using usernames."
msgstr ""
"* Änderung bei der Speicherung von Benutzer-Zeitleisten in der Konfiguration. Es werden jetzt "
"Benutzer-IDs anstatt der Benutzernamen verwendet. Hierdurch wird es möglich, Benutzer-Zeitleisten "
"auch nach einer Änderung des Benutzernamens weiterhin zu erstellen."
#: ../doc/changelog.py:54
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to show twitter usernames "
"instead the full name."
msgstr ""
"* Neue Option in den Account-Einstellungen hinzugefügt, die das Anzeigen von Benutzernamen anstatt "
"des vollen Namens erlaubt."
#: ../doc/changelog.py:55
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that allows you to extract "
"and display text in images. Also the keystroke alt+Win+o has been added for the same purpose from "
"the invisible interface."
msgstr ""
"* Texterkennung (OCR) für Twitter-Bildanhänge hinzugefügt. Ein neuer Eintrag im Tweet-Menü erlaubt "
"das Extrahieren von Text in Bildern. Alternativ kann die Tastenkombination alt+Win+o im unsichtbaren "
"Interface verwendet werden."
#: ../doc/changelog.py:56
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr "* TWBlue spielt einen Klang ab, wenn der gewählte Tweet Bilder enthält."
#: ../doc/changelog.py:57
msgid "* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr "* Die eigenen zitierten Tweets erscheinen nicht mehr in den Erwähnungen."
#: ../doc/changelog.py:58
msgid ""
"* The config file is saved in a different way, it should fix the bug where TWBlue needs to be "
"restarted after the config folder is deleted."
msgstr ""
"* Die Konfigurationsdatei wird nun anders gespeichert. Dies sollte den Fehler beheben, der einen "
"Neustart von TWBlue nach dem Löschen des Konfigurationsverzeichnisses erforderte."
#: ../doc/changelog.py:59
msgid "* Mentioning people from friends or followers buffers works again."
msgstr "* Erwähnung von Benutzern aus Freundes- und Folgeransicht funktioniert wieder."
#: ../doc/changelog.py:60
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, https, socks4 and socks5 "
"proxies, with and without autentication."
msgstr ""
"* Die Unterstützung für Proxy-Server wurde verbessert. TWBlue kann jetzt mit HTTP-, HTTPS-, Socks4- "
"und Socks5-Proxys umgehen. "
#: ../doc/changelog.py:61
msgid "## Changes in version 0.87"
msgstr "## Änderungen in Version 0.87"
#: ../doc/changelog.py:62
msgid "* Fixed stream connection errors."
msgstr "* Stream-Verbindungsfehler behoben."
#: ../doc/changelog.py:63
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all other mentioned users."
msgstr ""
"* TWBlue kann jetzt eine Antwort an den Absender korrekt behandeln, ohne dabei alle anderen "
"erwähnten Nutzer zu erwähnen."
#: ../doc/changelog.py:64
msgid "* Updated translations."
msgstr "* Übersetzungen aktualisiert."
#: ../doc/changelog.py:65
msgid ""
"* The status of the mention to all checkbox will be remembered the next time you reply to multiple "
"users."
msgstr ""
"* Status der \"Alle erwähnen\"-Checkbox wird für die nächste Antwort an mehrere Nutzer gespeichert."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.86"
msgstr "## Änderungen in Version 0.86"
#: ../doc/changelog.py:67
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to twishort without using any "
"other server."
msgstr ""
"* Ein wichtiges Sicherheits-Problem wurde behoben. Tweets via Twishort werden nun nicht mehr über "
"einen weiteren Server gesendet."
#: ../doc/changelog.py:68
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even if your reply plus the "
"original tweet is not exceeding 140 characters."
msgstr ""
"* Beim Kommentieren eines Tweets wird dieser als zitierter Tweet gesendet, auch wenn der Tweet und "
"der Original-Tweet zusammen 140 Zeichen nicht überschreiten."
#: ../doc/changelog.py:69
msgid "* Updated windows 10 keymap for reflecting changes made in the last windows 10 build."
msgstr ""
"* Windows-10-Tastenbelegung aktualisiert, um Änderungen aus dem letzten Build gerecht zu werden."
#: ../doc/changelog.py:70
msgid "* Added last changes in the twitter API."
msgstr "* Aktualisierungen der Twitter-API implementiert."
#: ../doc/changelog.py:71
msgid ""
"* When replying, it will not show the twitter username in the text box. When you send the tweet, the "
"username will be added automatically."
msgstr ""
"* Bei einer Antwort steht der Benutzername nicht mehr im Textfeld. Er wird automatisch hinzugefügt, "
"sobald der Tweet gesendet wird."
#: ../doc/changelog.py:72
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button for mentioning all "
"people. If this is checked, twitter usernames will be added automatically when you send your reply."
msgstr ""
"* Bei einer Antwort an mehrere Nutzer wurde der bisherige Button in eine Checkbox umgewandelt, um "
"alle Nutzer zu erwähnen. Ist diese aktiviert, werden die entsprechenden Benutzernamen automatisch "
"der Nachricht hinzugefügt."
#: ../doc/changelog.py:73
msgid "## Changes in version 0.85"
msgstr "## Änderungen in version 0.85"
#: ../doc/changelog.py:74
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr "* Lange und zitierte Tweets sollten jetzt korrekt in Listen angezeigt werden."
#: ../doc/changelog.py:75
msgid "* The connection should be more stable."
msgstr "* Die Verbindung sollte stabiler sein."
#: ../doc/changelog.py:76
msgid "* Added an autostart option in the global settings dialogue."
msgstr "* Eine Autostart-Option im globalen Einstellungsdialog hinzugefügt."
#: ../doc/changelog.py:77
msgid "* Updated translation."
msgstr "* Übersetzung aktualisiert."
#: ../doc/changelog.py:78
msgid "* Updated russian documentation."
msgstr "* Russische Dokumentation aktualisiert."
#: ../doc/changelog.py:79
msgid "* Tweets in cached database should be loaded properly."
msgstr "* Tweets in Cache-Datenbank sollten korrekt geladen werden."
#: ../doc/changelog.py:80
msgid "* Added some missed dictionaries for spelling correction."
msgstr "* Einige fehlende Wörterbücher für Rechtschreibprüfung hinzugefügt."
#: ../doc/changelog.py:81
msgid "* Timelines, lists and other buffer should be created in the right order at startup."
msgstr ""
"* Zeitleisten, Listen und andere Ansichten sollten beim Starten in richtiger Reihenfolge erstellt "
"werden."
#: ../doc/changelog.py:82
msgid "## Changes in version 0.84 "
msgstr "## Änderungen in Version 0.84"
#: ../doc/changelog.py:83
msgid "* More improvements in quoted and long tweets."
msgstr "* Weitere Verbesserungen in zitierten und langen Tweets."
#: ../doc/changelog.py:84
msgid "* Updated translations: Russian, Italian, French, Romanian, Galician and Finnish."
msgstr ""
"* Übersetzungen aktualisiert: Russisch, Italienisch, Französisch, Rumänisch, Galizisch und Finnisch."
#: ../doc/changelog.py:85
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with non-english characters."
msgstr ""
"* Verbesserungen im Audio-Upload-Modul: Dateien mit nicht-englischen Zeichen sind jetzt möglich."
#: ../doc/changelog.py:86
msgid ""
"* the title of the window should be updated properly when spellcheck, translate or shorten/unshorten "
"URL buttons are pressed."
msgstr ""
"* Der Fenstertitel sollte korrekt aktualisiert werden, wenn die Schaltflächen für Rechtschreibung, "
"Übersetzung oder URL-Verkürzung aktiviert wurden."
#: ../doc/changelog.py:87
msgid "* the bug that changes the selected tweet in the home timeline shouldn't be happening so often."
msgstr ""
"* Der Fehler, welcher den gewählten Tweet in der Start-Zeitleiste verändert, sollte jetzt nicht mehr "
"so häufig auftreten. "
#: ../doc/changelog.py:88
msgid "## Changes in version 0.82 and 0.83"
msgstr "## Änderungen in den Versionen 0.82 und 0.83"
#: ../doc/changelog.py:89
msgid ""
"* If the tweet source (client) is an application with unicode characters (example: "
"\\321\\200\\320\\276\\321\\201\\321\\201\\320\\270\\320\\271\\321\\201\\320\\272\\320\\260\\321\\217 "
"\\320\\263\\320\\260\\320\\267\\320\\265\\321\\202\\320\\260) it will not break the tweet displayer."
msgstr ""
"Enthält die Quelle eines Tweets (Client) Unicode-Zeichen (Beispiel: "
"\\321\\200\\320\\276\\321\\201\\321\\201\\320\\270\\320\\271\\321\\201\\320\\272\\320\\260\\321\\217 "
"\\320\\263\\320\\260\\320\\267\\320\\265\\321\\202\\320\\260), funktioniert die Tweet-Anzeige jetzt "
"wieder. "
#: ../doc/changelog.py:90
msgid ""
"* Added a new field for image description in tweet displayer. When available, it will show "
"description for images posted in tweets."
msgstr ""
"* Ein neues Feld in der Tweet-Anzeige für Bildbeschreibungen hinzugefügt. Sofern verfügbar, werden "
"hier die Beschreibungen für Bilder in Tweets angezeigt."
#: ../doc/changelog.py:91
msgid ""
"* users can add image descriptions to their photos. When uploading an image, a dialog will show for "
"asking a description."
msgstr ""
"* Benutzer können ihre Fotos mit Bildbeschreibungen versehen. Ein entsprechender Dialog wird während "
"des Hochladens angezeigt."
#: ../doc/changelog.py:92
msgid "* Redesigned upload image dialog."
msgstr "* Neues Design des Bild-Uploads. "
#: ../doc/changelog.py:93
msgid "* Fixed photo uploads when posting tweets."
msgstr "* Fehler bei Foto-Uploads behoben."
#: ../doc/changelog.py:94
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some errors, now TWBlue will try "
"to get as much tweets as possible, even if some of these are no longer available."
msgstr ""
"* Beim Abruf von Tweets einer Konversation versucht TWBlue so viele Tweets wie möglich abzurufen, "
"auch wenn einige davon nicht mehr verfügbar sind."
#: ../doc/changelog.py:95
msgid "* Added audio playback from soundcloud."
msgstr "* Audiowiedergabe von Soundcloud hinzugefügt."
#: ../doc/changelog.py:96
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr "* Die Option Sitzung stummschalten lässt nicht mehr den Screen-Reader ungewollt sprechen."
#: ../doc/changelog.py:97
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr "* Der Direktnachrichten-Dialog sollte jetzt richtig angezeigt werden."
#: ../doc/changelog.py:98
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and delete that tweet in "
"every buffer it is displayed."
msgstr ""
"* Wenn ein Tweet auf Twitter gelöscht wird, sollte TWBlue dies berücksichtigen und in allen "
"Ansichten löschen, in welchen der Tweet auftaucht."
#: ../doc/changelog.py:99
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically instead just crashing."
msgstr ""
"* Wenn eine Sitzung defekt ist, kann TWBlue sie automatisch entfernen und stürzt nicht mehr "
"kommentarlos ab."
#: ../doc/changelog.py:100
msgid "* audio uploader should display the current progress."
msgstr "* Der Audio-Uploader zeigt den momentanen Fortschritt an."
#: ../doc/changelog.py:101
msgid ""
"* users can disable the check for updates feature at startup from the general tab, in the global "
"settings dialogue."
msgstr ""
"* Der Update-Check beim Starten von TWBlue kann in den globalen Einstellungen deaktiviert werden."
#: ../doc/changelog.py:102
msgid "* The invisible interface and the window should be synchronized when the client reconnects."
msgstr ""
"* Das unsichtbare Interface und das Programmfenster sollten sich synchronisieren, wenn der Client "
"sich neu verbindet."
#: ../doc/changelog.py:103
msgid "* The documentation option in the systray icon should be enabled."
msgstr "* Die Dokumentations-Option im Infobereichsmenü ist jetzt verfügbar."
#: ../doc/changelog.py:104
msgid "* In trending buffers, you can press enter for posting a tweet about the focused trend."
msgstr ""
"* In einer Trends-Ansicht kann ein Tweet zu einem der Themen durch drücken von Enter verfasst werden."
#: ../doc/changelog.py:105
msgid ""
"* Updated russian documentation and main program interface (thanks to Natalia Hedlund "
"(\\320\\235\\320\\260\\321\\202\\320\\260\\320\\273\\321\\214\\321\\217 "
"\\320\\245\\320\\265\\320\\264\\320\\273\\321\\203\\320\\275\\320\\264), [@lifestar_n](https://"
"twitter.com/lifestar_n) in twitter)"
msgstr ""
"* Übersetzungen des russischen Interfaces und der Dokumentation aktualisiert (dank an Natalia "
"Hedlund (\\320\\235\\320\\260\\321\\202\\320\\260\\320\\273\\321\\214\\321\\217 "
"\\320\\245\\320\\265\\320\\264\\320\\273\\321\\203\\320\\275\\320\\264), [@lifestar_n](https://"
"twitter.com/lifestar_n) in twitter)"
#: ../doc/changelog.py:106
msgid "* updated translations."
msgstr "* Übersetzungen aktualisiert."
#: ../doc/changelog.py:107
msgid "## Changes in Version 0.81"
msgstr "* Änderungen in Version 0.81"
#: ../doc/changelog.py:108
msgid "* Updated translations"
msgstr "* Übersetzungen aktualisiert."
#: ../doc/changelog.py:109
msgid ""
"* The updater module has received some improvements. Now it includes a Mirror URL for checking "
"updates if the main URL is not available at the moment. If something is wrong and both locations "
"don't work, the program will start anyway."
msgstr ""
"* Verbesserungen im Updater-Modul. Es enthält jetzt eine Spiegel-URL, um nach Updates zu suchen. "
"Sind beide URLs nicht erreichbar, startet TWBlue trotzdem. "
#: ../doc/changelog.py:110
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr "* Einige GUI-Elemente verwenden Tastenkürzel für allgemeine Aktionen. "
#: ../doc/changelog.py:111
msgid "* fixed a bug in the geolocation dialog."
msgstr "* Fehler im Standort-Dialog behoben."
#: ../doc/changelog.py:112
msgid "* the chicken nugget keymap should work properly."
msgstr "* Die Chicken-Nugget-Tastaturbelegung sollte korrekt funktionieren."
#: ../doc/changelog.py:113
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to [@Deng90](https://twitter."
"com/deng90)"
msgstr "* Ein neues Sound-Paket hinzugefügt, vielen Dank an [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:114
msgid "* Now the changelog is written in an html File."
msgstr "* Der Änderungsverlauf befindet sich jetzt in einer HTML-Datei."
#: ../doc/changelog.py:115
msgid "* Added some missed dictionaries in last version for the spell checking feature."
msgstr "* Einige fehlende Wörterbücher für die Rechtschreibprüfung hinzugefügt."
#: ../doc/changelog.py:116
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to [@masonasons](https://"
"github.com/masonasons)"
msgstr ""
"* Sounds des Standard-Paketes beschnitten, vielen Dank an [@masonasons](https://github.com/"
"masonasons)."
#: ../doc/changelog.py:117
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons](https://github.com/"
"masonasons)"
msgstr ""
"* Opus-Unterstützung für die Soundwiedergabe hinzugefügt, vielen Dank an [@masonasons](https://"
"github.com/masonasons)."
#: ../doc/changelog.py:118
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons](https://github.com/masonasons)"
msgstr ""
"* Tweet-Quelle im Ansichtsdialog hinzugefügt, vielen Dank an [@masonasons](https://github.com/"
"masonasons)."
#: ../doc/changelog.py:119
msgid "* You can load previous items in followers and friend buffers for others."
msgstr "* Vorherige Einträge können in Folger- und Freundes-Ansichten anderer Benutzer geladen werden."
#: ../doc/changelog.py:120
msgid ""
"* The Spell Checker dialogue should not display an error message when you have set \"default language"
"\" in the global settings dialogue if your language is supported [#168](http://twblue.es/bugs/view."
"php?id=168)"
msgstr ""
"* Die Rechtschreibprüfung sollte keinen Fehler mehr ausgeben, wenn als Sprache in den globalen "
"Einstellungen \"Standardsprache\" gewählt ist und die Sprache unterstützt wird [#168](http://twblue."
"es/bugs/view.php?id=168)."
#: ../doc/changelog.py:121
msgid "* Updated romanian translation."
msgstr "* Rumänische Übersetzung aktualisiert."
#: ../doc/changelog.py:122
msgid "* Some code cleanups."
msgstr "* Bereinigung des Quellcodes."
#: ../doc/changelog.py:123
msgid "* The bug reports feature is fully operational again."
msgstr "* Der Bugreporter funktioniert wieder vollständig."
#: ../doc/changelog.py:124
msgid "* TWBlue should work again for users that contains special characters in windows usernames."
msgstr ""
"* TWBlue sollte wieder auf Systemen funktionieren, deren Windows-Benutzernamen Sonderzeichen "
"enthalten."
#: ../doc/changelog.py:125
msgid "* Added more options for the tweet searches."
msgstr "* Weitere Optionen für die Tweet-Suche hinzugefügt."
#: ../doc/changelog.py:126
msgid "* Added play_audio to the keymap editor."
msgstr "* Play_audio dem Tastenkombinations-Editor hinzugefügt."
#: ../doc/changelog.py:127
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* Die Windows-Taste ist im Tastenkombinations-Editor nicht mehr zwingend notwendig."
#: ../doc/changelog.py:128
msgid "* Switched to the Microsoft translator."
msgstr "* Wechsel zum Microsoft-Übersetzer."
#: ../doc/changelog.py:129
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the default keymap or in the "
"buffer menu."
msgstr ""
"* In der Standardbelegung kann die aktuelle Ansicht durch Drücken von STRG+Win+Umschalt+U "
"aktualisiert werden."
#: ../doc/changelog.py:130
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr "* Einige Tastenkombinationen in der Windows-10-Belegung geändert."
#: ../doc/changelog.py:131
msgid "* New followers and friends buffer for user timelines."
msgstr "* Neue Folger- und Freundes-Ansicht für Benutzerzeitleisten."
#: ../doc/changelog.py:132
msgid "---"
msgstr "---"
#: ../doc/changelog.py:133
msgid "Copyright \\302\\251 2014-2017, Manuel Cortez."
msgstr "Copyright \\302\\251 2014-2017, Manuel Cortez."
#~ msgid "TWBlue Changelog"
#~ msgstr "TWBlue Änderungsverlauf"
#~ msgid ""
#~ "* If the tweet source (client) is an application with unicode characters (example: российская "
#~ "газета) it will not break the tweet displayer."
#~ msgstr ""
#~ "* Wenn die Quelle eines Tweets (der Client) Unicode-Zeichen enthält (Beispiel: российская "
#~ "газета), wird dies die Tweet-Anzeige nicht mehr stören."
#~ msgid ""
#~ "* Updated russian documentation and main program interface (thanks to Natalia Hedlund (Наталья "
#~ "Хедлунд), [@lifestar_n](https://twitter.com/lifestar_n) in twitter)"
#~ msgstr ""
#~ "* Russische Dokumentation und Programm-Interface aktualisiert (Dank an Natalia Hedlund (Наталья "
#~ "Хедлунд), [@lifestar_n](https://twitter.com/lifestar_n) auf Twitter)"
#~ msgid "Copyright © 2014-2017, Manuel Cortez."
#~ msgstr "Copyright © 2014-2017, Manuel Cortez."
#~ msgid ""
#~ "* Updated russian documentation and main program interface (thanks to Natalia Hedlund "
#~ "(\\320\\235\\320\\260\\321\\202\\320\\260\\320\\273\\321\\214\\321\\217 "
#~ "\\320\\245\\320\\265\\320\\264\\320\\273\\321\\203\\320\\275\\320\\264), [\\@lifestar_n](https://"
#~ "twitter.com/lifestar_n) in twitter)"
#~ msgstr ""
#~ "Russische Dokumentation und Programm-Interface aktualisiert (vielen Dank an Natalia Hedlund "
#~ "(\\320\\235\\320\\260\\321\\202\\320\\260\\320\\273\\321\\214\\321\\217 "
#~ "\\320\\245\\320\\265\\320\\264\\320\\273\\321\\203\\320\\275\\320\\264), [\\@lifestar_n](https://"
#~ "twitter.com/lifestar_n) auf Twitter)"
#~ msgid "* Redessigned upload image dialog."
#~ msgstr "* Neues Design des Bild-Upload-Dialogs."
#~ msgid ""
#~ "* The updater module has receibed some improvements. Now it includes a Mirror URL for checking "
#~ "updates if the main URL is not available at the moment. If something is wrong and both locations "
#~ "don't work, the program will start anyway."
#~ msgstr ""
#~ "* Verbesserungen im Update-Modul. Wenn die Haupt-URL nicht verfügbar ist, wird auf einen Spiegel-"
#~ "Server zurückgegriffen. Sind beide Server nicht verfügbar, startet TWBlue trotzdem."
#~ msgid "* some GUI elements now use keyboard shorcuts for common actions."
#~ msgstr "* Einige GUI-Elemente sind jetzt mit Tastenkürzeln steuerbar."

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,847 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-12-11 11:05-0600\n"
"PO-Revision-Date: 2017-12-11 11:05-0600\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 2.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "\\357\\273\\277TWBlue Changelog"
msgstr "\\357\\273\\277Lista de cambios de TWBlue"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## Cambios en esta versión"
#: ../doc/changelog.py:5
msgid ""
"* A new soundpack has been added to TWBlue. Thanks to [@ValeriaK305](https://twitter.com/ValeriaK305)"
msgstr ""
"* Se ha añadido un nuevo paquete de sonidos a la instalación predeterminada de TWBlue, gracias a "
"[@ValeriaK305](https://twitter.com/ValeriaK305)"
#: ../doc/changelog.py:6
msgid ""
"* In the Windows 10 keymap, we have changed some default keystrokes as windows now uses some "
"previously assigned shortcuts:"
msgstr ""
"* En el mapa de teclado de Windows 10, se han cambiado algunas combinaciones de teclado, ya que "
"Windows ahora utiliza algunos de los atajos que utilizaba TWBlue:"
#: ../doc/changelog.py:7
msgid " * For liking a tweet, press Control+Windows+alt+f"
msgstr " * Para marcar como me gusta un tweet, presiona control+windows+alt+f"
#: ../doc/changelog.py:8
msgid " * for opening a trends buffer, press control+Windows+T"
msgstr " * Para abrir un buffer de tendencias, presiona Control+Windows+T"
#: ../doc/changelog.py:9
msgid ""
"* TWBlue has received improvements in some functions for handling extended tweets, long tweets and "
"quoted retweets. It should render some tweets in a better way."
msgstr ""
"* TWBlue ha recibido algunas mejoras en el manejo de tuits largos, extendidos y retuits citados. "
"Debería ser capaz de mostrar mejor algunos tuits."
#: ../doc/changelog.py:10
msgid ""
"* In the spell checker module, there is a new button that will allow you to add your own words to "
"your personal dictionary so the module won't mark them as mispelled the next time you will check "
"spelling."
msgstr ""
"* En el módulo de revisión ortográfica, ay una función que te permite añadir la palabra a tu "
"diccionario. De esta forma,en un futuro esa palabra no aparecerá marcada como mal escrita."
#: ../doc/changelog.py:11
msgid ""
"* Added filtering capabilities to TWBlue. ([#102](https://github.com/manuelcortez/TWBlue/issues/102))"
msgstr "* Se han añadido filtros a TWBlue. ([#102](https://github.com/manuelcortez/TWBlue/issues/102))"
#: ../doc/changelog.py:12
msgid ""
" * You can create a filter for the current buffer from the buffer menu in the menu bar. At this "
"moment, invisible interface does not have any shorcut for this."
msgstr ""
" * Puedes crear filtros para el buffer actual desde el menú buffer, ubicado en la barra de menú. "
"Por el momento, la interfaz invisible no cuenta con un atajo para esta acción."
#: ../doc/changelog.py:13
msgid " * You can create filters by word or languages."
msgstr " * Puedes crear filtros de palabras o de idiomas en el tuit."
#: ../doc/changelog.py:14
msgid ""
" * For deleting already created filters, you can go to the filter manager in the buffer menu and "
"delete the filters you won't need."
msgstr ""
"* Para eliminar los filtros, puedes acceder al gestor de filtros en el menú buffer, y eliminar desde "
"ahí los que ya no necesites."
#: ../doc/changelog.py:15
msgid ""
"* Links should be opened properly in quoted tweets ([#167,](https://github.com/manuelcortez/TWBlue/"
"issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))"
msgstr ""
"* Los enlaces en tuits citados deberían abrirse correctamente. ([#167,](https://github.com/"
"manuelcortez/TWBlue/issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))"
#: ../doc/changelog.py:16
msgid "* Increased display name limit up to 50 characters in update profile dialog."
msgstr ""
"* Se ha aumentado el número de caracteres permitidos en los nombres para mostrar en Twitter a 50 "
"caracteres."
#: ../doc/changelog.py:17
msgid ""
"* When authorising an account, you will see a dialogue with a cancel button, in case you want to "
"abort the process. Also, NVDA will not be blocked when the process starts. ([#101](https://github."
"com/manuelcortez/TWBlue/issues/101))"
msgstr ""
"* Cuando autorices una nueva cuenta, verás un botón para cancelar la acción, si quieres detener el "
"proceso. Además, NVDA no se bloqueará al iniciar la autorización para la cuenta. ([#101](https://"
"github.com/manuelcortez/TWBlue/issues/101))"
#: ../doc/changelog.py:18
msgid ""
"* In the translator module, the list of available languages is fetched automatically from the "
"provider. That means all of these languages will work and there will not be inconsistencies. Also "
"we've removed the first combo box, because the language is detected automatically by Yandex'S API. "
"([#153](https://github.com/manuelcortez/TWBlue/issues/153))"
msgstr ""
"* En el módulo de traducción, la lista de idiomas soportados se obtiene automáticamente desde la web "
"del proveedor. Esto significa que todos los idiomas funcionarán correctamente y no habrá problemas "
"al traducir. También hemos eliminado el primer cuadro combinado, ya que el idioma de origen se "
"determina de forma automática por el API de Yandex. ([#153](https://github.com/manuelcortez/TWBlue/"
"issues/153))"
#: ../doc/changelog.py:19
msgid ""
"* Trending topics, searches and conversation buffers will use mute settings set for the session in "
"wich they were opened. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))"
msgstr ""
"* los Buffers de tendencias, búsquedas y conversaciones respetarán las opciones de silencio en la "
"sesión de TWBlue donde fueron creados. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))"
#: ../doc/changelog.py:20
msgid ""
"* The Tweet limit is now 280 characters lenght instead 140. It means you can tweet longer tweets. "
"([#172](https://github.com/manuelcortez/TWBlue/issues/172))"
msgstr ""
"* Se ha aumentado el límite de caracteres en los tuits hasta 280. Esto significa que se pueden "
"escribir tuits más largos. [#172](https://github.com/manuelcortez/TWBlue/issues/172))"
#: ../doc/changelog.py:21
msgid ""
"* Per popular request, Status for mention to all and long tweet checkboxes will not be saved in "
"settings. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))"
msgstr ""
"* Por petición popular, no se guardará el estado de las casillas para escribir un tuit largo y "
"responder a todos. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))"
#: ../doc/changelog.py:22
msgid ""
"* Fixed a problem that was making TWBlue unable to start if it was being ran in Windows with Serbian "
"language. ([#175](https://github.com/manuelcortez/TWBlue/issues/175))"
msgstr ""
"* Se ha corregido un error que hacía a TWBlue incapaz de iniciarse cuando en el equipo se detectaba "
"el idioma serbio. ([#175](https://github.com/manuelcortez/TWBlue/issues/175))"
#: ../doc/changelog.py:23
msgid "* Added Danish translation."
msgstr "* Se ha añadido la traducción al Danés."
#: ../doc/changelog.py:24
msgid ""
"* And more. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/"
"manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) [#173,]"
"(https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/manuelcortez/TWBlue/"
"issues/174) [#176,](https://github.com/manuelcortez/TWBlue/issues/176))"
msgstr ""
"* Y más. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/"
"manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) [#173,]"
"(https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/manuelcortez/TWBlue/"
"issues/174) [#176,](https://github.com/manuelcortez/TWBlue/issues/176))"
#: ../doc/changelog.py:25
msgid "## changes in version 0.91 and 0.92"
msgstr "## Cambios en las versiones 0.91 y 0.92"
#: ../doc/changelog.py:26
msgid ""
"* Fixed incorrect unicode handling when copying tweet to clipboard. ([#150](https://github.com/"
"manuelcortez/TWBlue/issues/150))"
msgstr ""
"* Se ha corregido un error de Unicode al copiar tuits al portapapeles. ([#150](https://github.com/"
"manuelcortez/TWBlue/issues/150))"
#: ../doc/changelog.py:27
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended user. ([#128](https://"
"github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBlue mostrará un error si se intenta abrir una línea temporal para un usuario suspendido. ([#128]"
"(https://github.com/manuelcortez/TWBlue/issues/128))"
#: ../doc/changelog.py:28
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/manuelcortez/TWBlue/"
"issues/112))"
msgstr ""
"* Se ha removido el servicio de audio TWUp, debido a que ya no existe. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
#: ../doc/changelog.py:29
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/manuelcortez/TWBlue/"
"issues/130))"
msgstr ""
"* Corregido un error que hacía que los archivos de audio no se liberaran luego de haber sido subidos "
"a algún servicio de audio. ([#130](https://github.com/manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:30
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft translator. ([#132](https://"
"github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* Ahora TWBlue utilizará los servicios de traducción de Yandex en lugar de Microsoft Translator. "
"([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
#: ../doc/changelog.py:31
msgid ""
"* SndUp users will be able to upload audio in their account by using their API Key again. ([#134]"
"(https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* Los usuarios con cuenta de SNDUp podrán subir audios utilizando su clave de API de nuevo. ([#134]"
"(https://github.com/manuelcortez/TWBlue/issues/134))"
#: ../doc/changelog.py:32
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://github.com/manuelcortez/"
"TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Ya no se añadirán viejos tuits como si fueran recientes. ([#116,](https://github.com/manuelcortez/"
"TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:33
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long tweets. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
msgstr ""
"* Todos los usuarios mencionados deberán mostrarse correctamente en tuits hechos mediante Twishort. "
"([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/"
"TWBlue/issues/135))"
#: ../doc/changelog.py:34
msgid ""
"* It is possible to select a language for OCR service from the extras panel, in the account settings "
"dialogue. You can, however, set this to detect automatically. OCR should work better in languages "
"with special characters or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* Es posible seleccionar un idioma para la función de OCR en imágenes, desde la pestaña extras, en "
"el diálogo de opciones de cuenta. También puedes, sin embargo, establecer la opción en detectar "
"automáticamente. La característica de OCR en imágenes funcionará mejor en idiomas que utilicen "
"caracteres especiales o símbolos que no forman parte del alfabeto inglés. ([#107](https://github.com/"
"manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:35
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work normally in this update. "
"[#100](https://github.com/manuelcortez/twblue/issues/100)"
msgstr ""
"* Resuelto un problema entre JAWS for Windows y TWBlue. Ahora TWBlue debería funcionar de forma "
"correcta con este lector de pantalla. [#100](https://github.com/manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:36
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr "* Y más ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:37
msgid "## Changes in version 0.90"
msgstr "## Cambios en la versión 0.90"
#: ../doc/changelog.py:38
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the streaming API. ([#103]"
"(https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"* solucionado un problema en el Streaming API que causaba que TWBlue desconectara el Streaming. "
"([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
#: ../doc/changelog.py:39
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was detecting images but "
"couldn't apply OCR on them. ([#105](https://github.com/manuelcortez/TWBlue/issues/105))"
msgstr ""
"* Ahora el OCR en imágenes funcionará en Retuits también. Esto soluciona un error que causaba que "
"las imágenes se detectaran en los retuits, pero no se pudiera aplicar OCR en ellas. ([#105](https://"
"github.com/manuelcortez/TWBlue/issues/105))"
#: ../doc/changelog.py:40
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. Before, if someone posted a "
"long tweet but deleted it in the Twishort's site, TWBlue was trying to load the tweet and it was "
"causing problems in all the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* Ahora TWBlue ya no intentará cargar tuits hechos con Twishort que ya han sido eliminados. Antes, "
"si alguien creaba un tuit para después eliminarlo, desde Twishort, TWBlue de todos modos intentaba "
"cargar el tuit, causando problemas en todo el cliente. ([#113](https://github.com/manuelcortez/"
"TWBlue/issues/113))"
#: ../doc/changelog.py:41
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user that does not exist or "
"has been suspended. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://"
"github.com/manuelcortez/TWBlue/issues/115))"
msgstr ""
"* TWBlue muestra un mensaje de error si se intenta ver el perfil de una cuenta que no existe o ha "
"sido suspendida. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://github."
"com/manuelcortez/TWBlue/issues/115))"
#: ../doc/changelog.py:42
msgid ""
"* The spellchecker module should select the right language when is set to \"user default\". ([#117]"
"(https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"* El módulo de corrección ortográfica debería seleccionar el idioma apropiado cuando el idioma del "
"cliente se establece en \"Idioma predeterminado\". ([#117](https://github.com/manuelcortez/TWBlue/"
"issues/117))"
#: ../doc/changelog.py:43
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://github.com/manuelcortez/"
"TWBlue/issues/119))"
msgstr ""
"* La descripción de imágenes se mostrará en retuits también. ([#119](https://github.com/manuelcortez/"
"TWBlue/issues/119))"
#: ../doc/changelog.py:44
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. ([#118](https://github.com/"
"manuelcortez/twblue/issues/118))"
msgstr ""
"* cuando se lea un tuit largo, no deberían aparecer símbolos extraños. ([#118](https://github.com/"
"manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:45
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125](https://github.com/"
"manuelcortez/twblue/issues/125))"
msgstr ""
"* TWBlue no intentará cargar líneas temporales de usuarios que han bloqueado a la cuenta actual. "
"([#125](https://github.com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:46
msgid "## Changes in version 0.88 and 0.89"
msgstr "## Cambios en las versiones 0.88 y 0.89"
#: ../doc/changelog.py:47
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Corregidos más problemas con los streams y la reconexión."
#: ../doc/changelog.py:48
msgid "* newer updates will indicate the release date in the updater."
msgstr ""
"* Las actualizaciones más nuevas indicarán la fecha de lanzamiento en el módulo de actualización."
#: ../doc/changelog.py:49
msgid "* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* Los cambios en las combinaciones de teclado se reflejarán automáticamente en el editor de "
"combinaciones de teclado."
#: ../doc/changelog.py:50
msgid ""
"* In replies with multiple users, if the mention to all checkbox is unchecked, you will see a "
"checkbox per user so you will be able to control who will be mentioned in the reply."
msgstr ""
"* en respuestas donde hay múltiples usuarios, si la casilla mencionar a todos no está marcada, verás "
"una casilla para cada usuario, lo que te permitirá seleccionar a los usuarios que serán mencionados "
"en la respuesta."
#: ../doc/changelog.py:51
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet was made with Twishort."
msgstr ""
"* Corregido un error que causaba que TWBlue mostrara menciones duplicadas si el tuit había sido "
"enviado mediante Twishort."
#: ../doc/changelog.py:52
msgid ""
"* Retweets should be displayed normally again when the originating tweet is a Twishort's long tweet."
msgstr ""
"* Los Retuits deben mostrarse correctamente si el tuit original había sido enviado mediante Twishort."
#: ../doc/changelog.py:53
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses user IDS instead "
"usernames. With user IDS, if an user changes the username, TWBlue still will create his/her "
"timeline. This was not possible by using usernames."
msgstr ""
"* Cambiada la forma en la que TWBlue guarda las líneas temporales en la configuración. Ahora se "
"utilizan identificadores de usuario en lugar de nombres de usuario. Usando los identificadores para "
"cada usuario, si alguien cambia su nombre de usuario TWBlue todavía será capaz de crear la línea "
"temporal. Esto no era posible anteriormente."
#: ../doc/changelog.py:54
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to show twitter usernames "
"instead the full name."
msgstr ""
"* Añadida una opción en el diálogo de opciones de cuenta que hace que TWBlue muestre el nombre de "
"pantalla del usuario en lugar del nombre completo."
#: ../doc/changelog.py:55
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that allows you to extract "
"and display text in images. Also the keystroke alt+Win+o has been added for the same purpose from "
"the invisible interface."
msgstr ""
"* Añadido el reconocimiento óptico de caracteres en las imágenes de Twitter. Hay una nueva opción en "
"el menú tuit que permite extraer el texto a la imagen del tuit seleccionado. También se ha añadido "
"la combinación Alt + Windows +O para el mismo propósito en la interfaz invisible."
#: ../doc/changelog.py:56
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr "* Ahora TWBlue reproducirá un sonido cuando el tuit seleccionado contenga imágenes"
#: ../doc/changelog.py:57
msgid "* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr "* Tus tuits citados dejarán de mostrarse en el buffer de menciones."
#: ../doc/changelog.py:58
msgid ""
"* The config file is saved in a different way, it should fix the bug where TWBlue needs to be "
"restarted after the config folder is deleted."
msgstr ""
"* El archivo de configuración se guarda de una forma diferente. Esto debería solucionar el error que "
"requería borrar el directorio de configuraciones y reiniciar TWBlue."
#: ../doc/changelog.py:59
msgid "* Mentioning people from friends or followers buffers works again."
msgstr "* Es posible de nuevo mencionar usuarios desde los buffers de seguidores y amigos."
#: ../doc/changelog.py:60
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, https, socks4 and socks5 "
"proxies, with and without autentication."
msgstr ""
"* Se ha mejorado el soporte para servidores proxy. Ahora TWBlue soporta proxys http, https, socks4 y "
"socks5, con o sin autenticación."
#: ../doc/changelog.py:61
msgid "## Changes in version 0.87"
msgstr "## Cambios en la versión 0.87"
#: ../doc/changelog.py:62
msgid "* Fixed stream connection errors."
msgstr "* Arreglados errores en la conexión de los streams."
#: ../doc/changelog.py:63
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all other mentioned users."
msgstr ""
"* Ahora TWBlue puede manejar correctamente las respuestas sin incluir a todos los usuarios del tuit "
"original."
#: ../doc/changelog.py:64
msgid "* Updated translations."
msgstr "* Traducciones actualizadas."
#: ../doc/changelog.py:65
msgid ""
"* The status of the mention to all checkbox will be remembered the next time you reply to multiple "
"users."
msgstr ""
"* El estado de la casilla para mencionar a todos se recordará la próxima vez que escribas una "
"respuesta."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.86"
msgstr "## Cambios en la versión 0.86"
#: ../doc/changelog.py:67
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to twishort without using any "
"other server."
msgstr ""
"* Arreglado un error de seguridad muy importante. Ahora TWBlue enviará tuits hacia Twishort sin "
"utilizar un servidor intermedio."
#: ../doc/changelog.py:68
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even if your reply plus the "
"original tweet is not exceeding 140 characters."
msgstr ""
"* Cuando se añada unc omentario a un tuit, este será enviado como un tuit citado, incluso si el "
"comentario más el tuit original no supera los 140 caracteres."
#: ../doc/changelog.py:69
msgid "* Updated windows 10 keymap for reflecting changes made in the last windows 10 build."
msgstr "* Actualizado el mapa de teclado de Windows 10 debido a los cambios de la última build."
#: ../doc/changelog.py:70
msgid "* Added last changes in the twitter API."
msgstr "* Añadidos los últimos cambios en el API de Twitter."
#: ../doc/changelog.py:71
msgid ""
"* When replying, it will not show the twitter username in the text box. When you send the tweet, the "
"username will be added automatically."
msgstr ""
"* Cuando se responda a un tuit, no se mostrará el nombre de usuario en el campo de texto. El nombre "
"de usuario será añadido de forma automática al enviar el tuit."
#: ../doc/changelog.py:72
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button for mentioning all "
"people. If this is checked, twitter usernames will be added automatically when you send your reply."
msgstr ""
"* Cuando se responda a un tuit con múltiples usuarios, verás una casilla en lugar de un botón para "
"mencionar a todos. Si es marcada, los nombres de usuario de Twitter se añadirán automáticamente al "
"enviar el tuit."
#: ../doc/changelog.py:73
msgid "## Changes in version 0.85"
msgstr "## Cambios en la versión 0.85"
#: ../doc/changelog.py:74
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr "* Los tuits largos y citados deberían mostrarse correctamente en las listas."
#: ../doc/changelog.py:75
msgid "* The connection should be more stable."
msgstr "* La conexión debería ser más estable."
#: ../doc/changelog.py:76
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
"* Se ha añadido la opción para iniciar después de iniciar sesión en Windows en el diálogo de "
"opciones globales."
#: ../doc/changelog.py:77
msgid "* Updated translation."
msgstr "* Se han actualizado las traducciones."
#: ../doc/changelog.py:78
msgid "* Updated russian documentation."
msgstr "* Actualizada la documentación en ruso."
#: ../doc/changelog.py:79
msgid "* Tweets in cached database should be loaded properly."
msgstr "* Se deben cargar correctamente los tuits en la base de datos."
#: ../doc/changelog.py:80
msgid "* Added some missed dictionaries for spelling correction."
msgstr "* Se han añadido algunos nuevos diccionarios en el módulo de corrección ortográfica."
#: ../doc/changelog.py:81
msgid "* Timelines, lists and other buffer should be created in the right order at startup."
msgstr ""
"* Líneas temporales, listas y otros buffers deberían ser creados en el orden correcto al iniciar "
"TWBlue."
#: ../doc/changelog.py:82
msgid "## Changes in version 0.84 "
msgstr "## Cambios en la versión 0.84"
#: ../doc/changelog.py:83
msgid "* More improvements in quoted and long tweets."
msgstr "* Más mejoras en los tuits largos y citados."
#: ../doc/changelog.py:84
msgid "* Updated translations: Russian, Italian, French, Romanian, Galician and Finnish."
msgstr ""
"* Actualizadas las siguientes traducciones: Ruso, italiano, francés, rumano, gallego y finlandés."
#: ../doc/changelog.py:85
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with non-english characters."
msgstr ""
"* Mejoras en el módulo de carga de archivos de audio: Ahora es capaz de manejar archivos de audio "
"con caracteres especiales."
#: ../doc/changelog.py:86
msgid ""
"* the title of the window should be updated properly when spellcheck, translate or shorten/unshorten "
"URL buttons are pressed."
msgstr ""
"* El título de la ventana debe actualizarse correctamente cuando se utilizan funciones como "
"corrección ortográfica, traducción o acortar / expandir URL."
#: ../doc/changelog.py:87
msgid "* the bug that changes the selected tweet in the home timeline shouldn't be happening so often."
msgstr ""
"* El error que hacía que el tuit seleccionado cambiara en la interfaz visible debería estar "
"parcialmente corregido."
#: ../doc/changelog.py:88
msgid "## Changes in version 0.82 and 0.83"
msgstr "## Cambios en las versiones 0.82 y 0.83"
#: ../doc/changelog.py:89
msgid ""
"* If the tweet source (client) is an application with unicode characters (example: "
"\\321\\200\\320\\276\\321\\201\\321\\201\\320\\270\\320\\271\\321\\201\\320\\272\\320\\260\\321\\217 "
"\\320\\263\\320\\260\\320\\267\\320\\265\\321\\202\\320\\260) it will not break the tweet displayer."
msgstr ""
"* Si el cliente desde el que se ha publicado un tuit es una aplicación con caracteres Unicode en su "
"nombre (por ejemplo: российская газета), el visualizador de tuits lo podrá mostrar adecuadamente."
#: ../doc/changelog.py:90
msgid ""
"* Added a new field for image description in tweet displayer. When available, it will show "
"description for images posted in tweets."
msgstr ""
"* Añadido un campo para descripción de imágenes en el visualizador de tuits. Cuando estén "
"disponibles, se mostrarán descripciones para las imágenes en el tuit."
#: ../doc/changelog.py:91
msgid ""
"* users can add image descriptions to their photos. When uploading an image, a dialog will show for "
"asking a description."
msgstr ""
"* Los usuarios ahora pueden añadir descripción a sus fotos. Al subir la imagen, aparecerá un diálogo "
"para que se proporcione una descripción."
#: ../doc/changelog.py:92
msgid "* Redesigned upload image dialog."
msgstr "* El diálogo para subir imágenes ha sido rediseñado."
#: ../doc/changelog.py:93
msgid "* Fixed photo uploads when posting tweets."
msgstr "* Se ha corregido la carga de imágenes al publicar tuits."
#: ../doc/changelog.py:94
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some errors, now TWBlue will try "
"to get as much tweets as possible, even if some of these are no longer available."
msgstr ""
"* cuando se obtienen tuits para mostrar una conversación, ahora se ignoran los tuits eliminados y "
"algunos errores comunes. TWBlue cargará la mayor cantidad de tuits posible."
#: ../doc/changelog.py:95
msgid "* Added audio playback from soundcloud."
msgstr "* Añadida la reproducción de audio desde Soundcloud."
#: ../doc/changelog.py:96
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
"* Al silenciar una sesión, el lector de pantalla ya no anunciará ningún contenido automáticamente."
#: ../doc/changelog.py:97
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr "* Corregido el diálogo de mensaje directo. Ahora debería mostrarse correctamente."
#: ../doc/changelog.py:98
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and delete that tweet in "
"every buffer it is displayed."
msgstr ""
"* Cuando se elimina un tuit, TWBlue debería reflejar el cambio y eliminar el tuit de todos los "
"buffers donde se muestra."
#: ../doc/changelog.py:99
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically instead just crashing."
msgstr ""
"* Si la configuración de una sesión ha sido dañada, TWBlue debería ser capaz de eliminarla y "
"continuar en lugar de no abrirse."
#: ../doc/changelog.py:100
msgid "* audio uploader should display the current progress."
msgstr "* El diálogo de carga de archivos de audio ahora muestra el progreso actual."
#: ../doc/changelog.py:101
msgid ""
"* users can disable the check for updates feature at startup from the general tab, in the global "
"settings dialogue."
msgstr ""
"* Es posible desactivar la comprobación automática de actualizaciones en el diálogo de opciones "
"globales, en la pestaña General."
#: ../doc/changelog.py:102
msgid "* The invisible interface and the window should be synchronized when the client reconnects."
msgstr ""
"* La interfaz invisible y la ventana gráfica deben estar sincronizadas cuando el cliente se "
"reconecta."
#: ../doc/changelog.py:103
msgid "* The documentation option in the systray icon should be enabled."
msgstr "* La opción de documentación en la bandeja del sistema se encuentra activa."
#: ../doc/changelog.py:104
msgid "* In trending buffers, you can press enter for posting a tweet about the focused trend."
msgstr ""
"* En buffers de tendencias, puedes pulsar enter sobre cada tendencia para publicar un tuit acerca de "
"ella."
#: ../doc/changelog.py:105
msgid ""
"* Updated russian documentation and main program interface (thanks to Natalia Hedlund "
"(\\320\\235\\320\\260\\321\\202\\320\\260\\320\\273\\321\\214\\321\\217 "
"\\320\\245\\320\\265\\320\\264\\320\\273\\321\\203\\320\\275\\320\\264), [@lifestar_n](https://"
"twitter.com/lifestar_n) in twitter)"
msgstr ""
"* Actualizada la documentación e interfaz en ruso (gracias a Natalia Hedlund (Наталья Хедлунд), "
"[@lifestar_n](https://twitter.com/lifestar_n) en twitter)"
#: ../doc/changelog.py:106
msgid "* updated translations."
msgstr "* Actualizadas algunas traducciones."
#: ../doc/changelog.py:107
msgid "## Changes in Version 0.81"
msgstr "## Cambios en la versión 0.81"
#: ../doc/changelog.py:108
msgid "* Updated translations"
msgstr "* Traducciones actualizadas."
#: ../doc/changelog.py:109
msgid ""
"* The updater module has received some improvements. Now it includes a Mirror URL for checking "
"updates if the main URL is not available at the moment. If something is wrong and both locations "
"don't work, the program will start anyway."
msgstr ""
"* El módulo de actualizaciones ha recibido algunas mejoras. Ahora incluye una URL con información de "
"actualizaciones de respaldo por si la dirección principal no funciona."
#: ../doc/changelog.py:110
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Algunos elementos de la interfaz gráfica ahora utilizan atajos de teclado para acciones comunes."
#: ../doc/changelog.py:111
msgid "* fixed a bug in the geolocation dialog."
msgstr "* Corregido un error en el diálogo para mostrar la información geográfica en Tuits."
#: ../doc/changelog.py:112
msgid "* the chicken nugget keymap should work properly."
msgstr "* El mapa de teclado de chicken Nugget debería funcionar correctamente."
#: ../doc/changelog.py:113
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to [@Deng90](https://twitter."
"com/deng90)"
msgstr ""
"* Se ha añadido un nuevo paquete de sonidos a la instalación predeterminada de TWBlue, gracias a "
"[@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:114
msgid "* Now the changelog is written in an html File."
msgstr "* La lista de cambios ahora está escrita en un archivo HTML."
#: ../doc/changelog.py:115
msgid "* Added some missed dictionaries in last version for the spell checking feature."
msgstr ""
"* Se han añadido algunos diccionarios al módulo de corrección ortográfica que no habían sido "
"añadidos en la última versión. "
#: ../doc/changelog.py:116
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to [@masonasons](https://"
"github.com/masonasons)"
msgstr ""
"* Se han eliminado los silencios al principio de los sonidos en el paquete de sonidos "
"predeterminado. Gracias a [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:117
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons](https://github.com/"
"masonasons)"
msgstr ""
"* Añadido soporte al códec Opus en TWBlue. Gracias a [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:118
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons](https://github.com/masonasons)"
msgstr ""
"* Añadido un campo para mostrar el cliente desde el que se hace un tuit en el visualizador de tuits. "
"Gracias a [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:119
msgid "* You can load previous items in followers and friend buffers for others."
msgstr "* Se pueden cargar más elementos en los buffers de seguidores y amigos de otros usuarios."
#: ../doc/changelog.py:120
msgid ""
"* The Spell Checker dialogue should not display an error message when you have set \"default language"
"\" in the global settings dialogue if your language is supported [#168](http://twblue.es/bugs/view."
"php?id=168)"
msgstr ""
"* El módulo de corrección ortográfica no mostrará un mensaje de error al establecer \"Idioma "
"predeterminado\" en el diálogo de opciones globales si tu idioma se encuentra soportado. [#168]"
"(http://twblue.es/bugs/view.php?id=168)"
#: ../doc/changelog.py:121
msgid "* Updated romanian translation."
msgstr "* Actualizada la traducción al rumano."
#: ../doc/changelog.py:122
msgid "* Some code cleanups."
msgstr "* Limpieza del código."
#: ../doc/changelog.py:123
msgid "* The bug reports feature is fully operational again."
msgstr "* El sistema de reporte de errores es completamente operativo de nuevo."
#: ../doc/changelog.py:124
msgid "* TWBlue should work again for users that contains special characters in windows usernames."
msgstr ""
"* TWBlue debería funcionar de nuevo para usuarios que contienen caracteres especiales en sus nombres "
"de usuario de Windows."
#: ../doc/changelog.py:125
msgid "* Added more options for the tweet searches."
msgstr "* Añadidas más opciones para las búsquedas en Twitter."
#: ../doc/changelog.py:126
msgid "* Added play_audio to the keymap editor."
msgstr "* Añadida la función play_audio al editor de mapas de teclado."
#: ../doc/changelog.py:127
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* La tecla Windows no es obligatoria en el editor de mapas de teclado."
#: ../doc/changelog.py:128
msgid "* Switched to the Microsoft translator."
msgstr "* hemos pasado a usar el servicio Microsoft translator."
#: ../doc/changelog.py:129
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the default keymap or in the "
"buffer menu."
msgstr ""
"* Puedes actualizar el buffer actual pulsando ctrl+win+shift+u en la interfaz invisible o desde el "
"menú buffer."
#: ../doc/changelog.py:130
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr "* Cambiados algunos atajos de teclado en el mapa de teclado de Windows 10."
#: ../doc/changelog.py:131
msgid "* New followers and friends buffer for user timelines."
msgstr "* Nuevos buffers de amigos y seguidores para otros usuarios."
#: ../doc/changelog.py:132
msgid "---"
msgstr "---"
#: ../doc/changelog.py:133
msgid "Copyright \\302\\251 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2017, Manuel Cortéz."

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,716 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-07-15 23:43+0200\n"
"Last-Translator: Sukil Etxenike <sukiletxe@yahoo.es>\n"
"Language-Team: \n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 2.0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "TwBlueren aldaketak"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## Aldaketak bertsio honetan"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBluek errore bat erakutsiko du ezabatutako erabiltzaile batn denbora "
"lerro bat irekitzen saiatzean . ([#128](https://github.com/manuelcortez/"
"TWBlue/issues/128))"
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
"* TwUp zerbitzua kendu da, jada ez delako existitzen. ([#112](https://github."
"com/manuelcortez/TWBlue/issues/112)) "
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
"* Orain audio fitxategiak askatzen dira igo ondoren. ([#130](https://github."
"com/manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* Orain TWBluek Yandexen itzultzailea erabiltzen du Microsoften "
"itzultzailearen ordez. ([#132](https://github.com/manuelcortez/TWBlue/"
"issues/132))"
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* SndUp-en erabiltzaileek orain audioak igo ditzakete haien API kodea "
"erabilita. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Txio zaharrak ez lirateke buferretan elementu berri gisa agertu behar. "
"([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://"
"github.com/manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
"* Aipatutako erabiltzaile guztiak ondo agertu beharko lirateke Tuishort-en "
"txio luzeetan. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) "
"([#135](https://github.com/manuelcortez/TWBlue/issues/135))"
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* OCR zerbitzurako hizkuntza bat aukera daiteke ezarpen globaletan, "
"Bestelakoak erlaitzean. Hala ere, automatikoki detektatzeko aukera ere "
"baduzu. OCR zerbitzuak hobe funtziona beharko luke karaktere bereziak edo "
"sinbolo ez-ingelesak dituzten hizkuntzetan. ([#107](https://github.com/"
"manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
"JAWS For Windowsekin zegoen arazo bat konpondu da. Eguneratze honetan JAWS "
"For Windowsek ondo funtzionatu beharko luke. [#100](https://github.com/"
"manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr ""
"* Eta gehiago ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:15
msgid "## Changes in version 0.90"
msgstr "## 0.90 bertsioaren aldaketak"
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"* Txio luzeak irakurtzean TWBluek zeukan errore bat konpondu da. Errore "
"honek Twitterren streamingerako APIa deskonektatzea eragiten zuen. ([#103]"
"(https://github.com/manuelcortez/TWBlue/issues/103))"
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
"* Orain OCR zerbitzuak irudiak dituzten bertxioetan funtzionatuko du. "
"Lehenago, TWBluek irudiak detektatzen zituen baina ezin zuen testua "
"detektatu. ([#105](https://github.com/manuelcortez/TWBlue/issues/105))"
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* TWBlue jada ez da Twishortekin egindako eta ezabatutako txiorik kargatzen "
"saiatuko. Lehenago, norbaitek txio luze bat argitaratu eta Twishorten gunean "
"ezabatzen bazuen, TWBlue txioa kargatzen saiatuko zen, aplikaio osoan "
"arazoak sortuz. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
"* TWBluek errore bat erakutsiko du ezabatua izan den edo existitzen ez den "
"erabiltzaile baten profila erakusten saiatzen bazara. ezabatutako edo "
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"* Zuzentzaileak hizkuntza zuzena au,eratu beharko luke \"User default\" "
"aukeratzen bada. ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
"* Irudien deskribapena bertxioetan ere agertuko da. ([#119](https://github."
"com/manuelcortez/TWBlue/issues/119))"
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
"* Txio luze bat irakurtzean, orain ez zenuke sinbolo arrarorik irakurri "
"beharko. ([#118](https://github.com/manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
"* TWBlue ez da denbora lerrorik kargatzen saiatuko erabiltzaileak blokeatzen "
"bazaitu. ([#125](https://github.com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:24
msgid "## Changes in version 0.88 and 0.89"
msgstr "## 0.88 eta 0.89 bertsioen aldaketak"
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Streamekin eta berkonexioekin errore gehiago konpondu dira."
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr "* Eguneraketa berriagoek argitaratze-data erakutsiko dute."
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* Lasterbideen aldaketak lasterbideen editorean automatikoki agertuko dira."
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
"* Hainbat erabiltzaile dituzten elkarrizketetan, guztiak aipatu kontrol-"
"laukia desmarkatua badago, erabiltzaile bakoitzeko kontrol-lauki bat "
"agertuko da, horrela zein erabiltzaile aipatuko diren kontrolatu ahalko duzu."
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
"* Twishortekin egindako erantzunetan, aipamen bikoitzeko erantzunak agertzen "
"ziren. Errore hau konpondua izan da."
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
"* Bertxioak ondo agertu beharko lirateke berriro, jatorrizko txioa "
"Twishortekin egindako txio luze bat bada."
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
"* Erabiltzaileen denbora lerroen gordetzeko modua aldatua izan da. Orain "
"erabiltzaileen ID-ak erabiltzen dira erabitzaile-izenen ordez. "
"Erabiltzaileen ID-ekin, erabiltzaile batek bere erabiltzaile-izena aldatzen "
"badu, TWBluek bere denbora-lerroa sortuko du. Hau ezinezkoa zen erabiltzaile-"
"izenak erabilita."
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
"* TWBlueren ezarpenetan aukera bat gehitu da, erabiltzaile-izenak erakusteko "
"izen osoen ordez."
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
"* OCR (testu detekzioa) gehitu da irudientzat. Gainera, win+alt+o lasterbide "
"tekla gehitu da interfaze ikusezinean hori egiteko."
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr ""
"* Orain TWBluek soinu bat erreproduzituko du enfokatutako txioak irudi bat "
"baldin badu."
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr "* Zure zitatutako txioak ez dira aipamenetan agertuko."
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
"* Konfigurazioa modu ezberdin batean gordetzen da, honek TWBlue berrabiazi "
"beharra konpontzen du konfigurazioaren karpeta ezabatzean."
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
"* Jendea jarraitzaile edo lagunen denbora-lerroetatik berriz zuzen aipa "
"daiteke."
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
"* Proxy zerbitzari gehiago erabil daitezke: orain TWBluen http, https, "
"socks4 eta socks5 proxyak erabil daitezke, autentifikazioarekin edo gabe."
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr "## 0.87 bertsioaren aldaketak"
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr "* Streametara konektatzeko erroreak konpondu dira."
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
"* Orain TWBluek igorleari soilik bidalitako erantzunak (beste erabiltzaileak "
"barnean hartu gabe) zuzen erakusten eta bidaltzen ditu."
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr "* Itzulpenak eguneratu dira."
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
"* Guztiak aipatu kontrol-laukiaren egoera gogoratuko da hainbat "
"erabiltzaileri erantzuten diozun hurrengo aldian."
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr "## 0.86 bertsioaren aldaketak"
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
"* Segurtasun errore oso garrantzitsu bat konpondu da. Orain TWBluek "
"Twishortera txioak beste zerbitzari bat erabili gabe bidaliko ditu."
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
"* Orain txio bati iruzkin bat gehitzean, zitatutako txio bat bezala "
"erakutsiko da, jatorrizko txioaren eta iruzkinaren karaktere kopurua 140 "
"karaktere baino gutxiago bada ereere."
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
"* Windows 10 teklatu-mapa eguneratu da, Windows 10aren azken bertsioan "
"agertutako aldaketak kontuan hartzen dituena."
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr "* Twitterren APIaren azken aldaketak gehitu dira."
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr "## 0.85 bertsioko aldaketak"
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
"* Txio luzeak eta zitatutako txioak ondo agertu beharko lirateke zerrendetan."
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr "* Konexioa egonkorragoa izan beharko litzateke."
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
"* Automatikoki hasteko aukera gehitu da ezarpen globalen elkarrizketa-"
"koadroan."
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr "* Itzulpenak eguneratu dira."
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr ""
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr "* Errusieraz dagoen dokumentazioa eguneratu da."
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr "* Zuzentzailearentzat falta ziren hiztegi batzuk gehitu dira."
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
"* Denbora-lerroak, zerrendak eta beste buferrak orden egokian sortu beharko "
"lirateke aplikazioa hastean."
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr "## 0.84 bertsioaren aldaketak"
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr "* Hobekuntza gehiago zitatutako txioetan eta txio luzeetan."
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
"* Itzulpen hauek eguneratu dira: errusiera,italiera, frantsesa, errumaniera, "
"galegoa eta finlandiera."
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
"* Hobekuntzak audio igoeran: orain karaktere ez-ingelesdun audioak igo "
"daitezke."
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr "## 0.82 eta 0.83 bertsioen aldaketak"
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr ""
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr ""
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr ""
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
"* Zure sesioa hasi ezin bada, TWBluek sesioa ezabatuko du, irekitzea "
"galarazi ordez."
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr ""
"* Audioak igotzeko elkarrizketa-koadroak aurreratzea erakutsi beharko luke."
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
"* Erabiltzaileek aplikazioa hastean eguneratzeak bilatzea desaktiba dezakete "
"ezarpen globaletan, Orokorra erlaitzean."
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
"* Interfaze ikusezina eta leihoa bersinkronizatu beharko lirateke aplikazioa "
"berkonektatzean."
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr ""
"* Sistemaren ikonoetako dokumentazioa ikusteko aukera erabilgarria egon "
"beharko litzateke."
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
"* Tendentzien buferretan, enter saka dezakezu enfokatutako tendentziari "
"buruz txio bat argitaratzeko."
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr "* Itzulpenak eguneratuak izan dira."
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "## 0.81bertsioaren aldaketak"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr "* Itzulpenak eguneratuak izan dira"
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Interfaze grafikoko elementu batzuek lasterbide teklak dituzte ohiko "
"ekintzetarako."
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr "* Errore bat konpondu da geottxioen elkarrizketa-koadroan."
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr "* Chicken Nuggetaren teklatu-mapak ondo funtzionatu beharko luke."
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
"* Soinu pakete berri bat gehitu zaio TWBlueren lehenetsitako instalazioari, "
"eskerrak [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr "* Orain aldaketen fitxategia html fitxategi bat da."
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
"* Aurreko bertsioan falta ziren hiztegi batzuk gehitu dira, zuzentzaleak "
"erabiltzen dituenak."
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
"* ehenetsitako soiinu paketearen soinuen hasierak moztu dira. Eskerrak "
"[@masonasons-i.](https://github.com/masonasons)"
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* Opus formatua erreproduzi daiteke, eskerrak [@masonasons-i.](https://"
"github.com/masonasons)."
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* \"Iturria\" gehitu zaio txioa erakusteko elkarrizketa koadroari. Eskerrak "
"[@masonasons-i.](https://github.com/masonasons)"
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
"* Aurreko elementuak karga ditzakezu besteen jarraitzaile eta lagunen "
"buferretan."
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
"* Zuzentzailearen elkarrizketa-koadroak ez luke errorerik erakutsi behar "
"aukera globaletan \"Lehenetsitako hizkuntza\" aukeratua dagoenean eta zure "
"hizkuntza erabilgarria denean [#168](http://twblue.es/bugs/view.php?id=168)"
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr "* Errumaniera itzulpena eguneratua izan da."
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr "* Kode garbiketa batzuk."
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr "* Arazoez informatzeko ezaugarriak berriz funtzionaten du"
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
"* TWBluek berriz funtzionatu beharko luke haien Windows erabiltzaile-"
"izenetan karaktere bereziak dituzten erabiltzaileentzat."
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr "* Txioen bilaketarako aukera gehiago gehitu dira."
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr "* play_audio teklatu-mapen editorera gehitua izan da."
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* Windows tekla ez da jada bearrezkoa teklatu-mapen editorean."
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr "* Microsoften itzultzailera aldatu gara."
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
"* Enfokatutako uferra ktrl+shift+win+u sakatuta (lehenetsitako teklatu-"
"mapak) edo menuan eguneratu daitezke."
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
"* Lasterbide-tekla batzuk aldatuak izan dira Windows 10erako teklatu-mapan."
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr ""
"* Jarraitzaileen eta lagunen bufer berria erabiltzaileen denbora-lerroentzat."
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2017, Manuel Cortez."

View File

@@ -0,0 +1,635 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-07-15 19:44+0200\n"
"Last-Translator: Sukil Etxenike <sukiletxe@yahoo.es>\n"
"Language-Team: \n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 2.0.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "TwBlueren aldaketak"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## Aldaketak bertsio honetan"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBluek errore bat erakutsiko du ezabatutako erabiltzaile batn denbora "
"lerro bat irekitzen saiatzean . ([#128](https://github.com/manuelcortez/"
"TWBlue/issues/128))"
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
"* TwUp zerbitzua kendu da, jada ez delako existitzen. ([#112](https://github."
"com/manuelcortez/TWBlue/issues/112)) "
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
"* Orain audio fitxategiak askatzen dira igo ondoren. ([#130](https://github."
"com/manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* Orain TWBluek Yandexen itzultzailea erabiltzen du Microsoften "
"itzultzailearen ordez. ([#132](https://github.com/manuelcortez/TWBlue/"
"issues/132))"
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* SndUp-en erabiltzaileek orain audioak igo ditzakete haien API kodea "
"erabilita. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Txio zaharrak ez lirateke buferretan elementu berri gisa agertu behar. "
"([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://"
"github.com/manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
"* Aipatutako erabiltzaile guztiak ondo agertu beharko lirateke Tuishort-en "
"txio luzeetan. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) "
"([#135](https://github.com/manuelcortez/TWBlue/issues/135))"
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr ""
#: ../doc/changelog.py:15
msgid "## Changes in version 0.90"
msgstr ""
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
#: ../doc/changelog.py:24
msgid "## Changes in version 0.88 and 0.89"
msgstr ""
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr ""
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr ""
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr ""
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr ""
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr ""
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr ""
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr ""
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr ""
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr ""
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr ""
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr ""
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr ""
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr ""
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr ""
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr ""
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr ""
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr ""
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr ""
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr ""
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr ""
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr ""
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr ""
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr ""
"* Sistemaren ikonoetako dokumentazioa ikusteko aukera erabilgarria egon "
"beharko litzateke."
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
"* Tendentzien buferretan, enter saka dezakezu enfokatutako tendentziari "
"buruz txio bat argitaratzeko."
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr "* Itzulpenak eguneratuak izan dira."
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "## 0.81bertsioaren aldaketak"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr "* Itzulpenak eguneratuak izan dira"
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Interfaze grafikoko elementu batzuek lasterbide teklak dituzte ohiko "
"ekintzetarako."
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr "* Errore bat konpondu da geottxioen elkarrizketa-koadroan."
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr "* Chicken Nuggetaren teklatu-mapak ondo funtzionatu beharko luke."
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
"* Soinu pakete berri bat gehitu zaio TWBlueren lehenetsitako instalazioari, "
"eskerrak [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr "* Orain aldaketen fitxategia html fitxategi bat da."
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
"* Aurreko bertsioan falta ziren hiztegi batzuk gehitu dira, zuzentzaleak "
"erabiltzen dituenak."
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
"* ehenetsitako soiinu paketearen soinuen hasierak moztu dira. Eskerrak "
"[@masonasons-i.](https://github.com/masonasons)"
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* Opus formatua erreproduzi daiteke, eskerrak [@masonasons-i.](https://"
"github.com/masonasons)."
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* \"Iturria\" gehitu zaio txioa erakusteko elkarrizketa koadroari. Eskerrak "
"[@masonasons-i.](https://github.com/masonasons)"
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
"* Aurreko elementuak karga ditzakezu besteen jarraitzaile eta lagunen "
"buferretan."
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
"* Zuzentzailearen elkarrizketa-koadroak ez luke errorerik erakutsi behar "
"aukera globaletan \"Lehenetsitako hizkuntza\" aukeratua dagoenean eta zure "
"hizkuntza erabilgarria denean [#168](http://twblue.es/bugs/view.php?id=168)"
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr "* Errumaniera itzulpena eguneratua izan da."
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr "* Kode garbiketa batzuk."
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr "* Arazoez informatzeko ezaugarriak berriz funtzionaten du"
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
"* TWBluek berriz funtzionatu beharko luke haien Windows erabiltzaile-"
"izenetan karaktere bereziak dituzten erabiltzaileentzat."
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr "* Txioen bilaketarako aukera gehiago gehitu dira."
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr "* play_audio teklatu-mapen editorera gehitua izan da."
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* Windows tekla ez da jada bearrezkoa teklatu-mapen editorean."
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr "* Microsoften itzultzailera aldatu gara."
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
"* Enfokatutako uferra ktrl+shift+win+u sakatuta (lehenetsitako teklatu-"
"mapak) edo menuan eguneratu daitezke."
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
"* Lasterbide-tekla batzuk aldatuak izan dira Windows 10erako teklatu-mapan."
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr ""
"* Jarraitzaileen eta lagunen bufer berria erabiltzaileen denbora-lerroentzat."
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2017, Manuel Cortez."

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,821 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: twblue-changelog 0.90\n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-07-12 16:15+0200\n"
"Last-Translator: Rémy Ruiz <remyruiz@gmail.com>\n"
"Language-Team: Rémy Ruiz <remyruiz@gmail.com>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.8.12\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "Journal des Changements de TWBlue"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## Changements dans cette version"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBlue affichera une erreur en essayant d'ouvrir une chronologie pour un "
"utilisateur suspendu. ([#128](https://github.com/manuelcortez/TWBlue/"
"issues/128))"
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
"* Supprimé TwUp en tant que service car il n'existe plus. ([#112](https://"
"github.com/manuelcortez/TWBlue/issues/112))"
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
"* Relancez les fichiers audio après leur chargement. ([#130](https://github."
"com/manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* Maintenant, TWBlue utilisera les services de traduction de Yandex au lieu "
"du traducteur Microsoft. ([#132](https://github.com/manuelcortez/TWBlue/"
"issues/132))"
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* Les utilisateurs de SndUp pourront charger de l'audio dans leur compte à "
"l'aide de leur clé API à nouveau. ([#134](https://github.com/manuelcortez/"
"TWBlue/issues/134))"
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Les anciens tweets ne doivent pas être ajoutés en tant que nouveaux "
"éléments dans les tampons. ([#116,](https://github.com/manuelcortez/TWBlue/"
"issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
"* Tous les utilisateurs mentionnés doivent être affichés correctement dans "
"des long tweets de Twishort. ([#116,](https://github.com/manuelcortez/TWBlue/"
"issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/issues/135))"
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* Il est possible de sélectionner une langue pour le service OCR à partir de "
"l'onglet Supplémentaires, dans la boîte de dialogue Paramètres du compte. "
"Vous pouvez, cependant, définir ceci dans l'option Détecter automatiquement. "
"L'OCR devrait fonctionner mieux dans les langues avec des caractères "
"spéciaux ou des symboles non anglais. ([#107](https://github.com/"
"manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
"* Correction d'un problème avec JAWS pour Windows et TWBlue. Maintenant, "
"JAWS fonctionnera normalement dans cette mise à jour. [#100](https://github."
"com/manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr "* Et plus ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:15
msgid "## Changes in version 0.90"
msgstr "## Changements dans la version 0.90"
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"* Correction d'un bug durant l'analyse dans long tweet qui causé que TWBlue "
"se déconnecte du Streaming API. ([#103](https://github.com/manuelcortez/"
"TWBlue/issues/103))"
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
"* Maintenant, l'OCR fonctionnera dans des images à partir de retweets. Il "
"corrige un bug dans lequel TWBlue détectait des images mais ne pouvait pas "
"appliquer l'OCR sur elles. ([#105](https://github.com/manuelcortez/TWBlue/"
"issues/105))"
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* TWBlue n'essaiera pas de charger des tweets déjà supprimés, fait avec "
"Twishort. Avant, si quelqu'un a posté un long tweet, mais l'a supprimé sur "
"le site de Twishort, TWBlue Essayait de charger le tweet et causait des "
"problèmes dans tout le client. ([#113](https://github.com/manuelcortez/"
"TWBlue/issues/113))"
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
"* TWBlue affiche un message d'erreur lorsque vous essayez d'afficher le "
"profil d'un utilisateur qui n'existe pas ou qui a été suspendu. ([#114,]"
"(https://github.com/manuelcortez/TWBlue/issues/114) [#115]"
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"* Le module du correcteur orthographique doit sélectionner la langue "
"appropriée quand est défini sur \"Utilisateur par défaut\". ([#117](https://"
"github.com/manuelcortez/TWBlue/issues/117))"
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
"* La description de l'image sera également affichée dans les retweets. "
"([#119](https://github.com/manuelcortez/TWBlue/issues/119))"
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
"* Lors de la lecture d'un long tweet, vous ne devriez plus lire des entités "
"étranges. ([#118](https://github.com/manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
"* TWBlue n'essayera pas de charger les chronologies si l'utilisateur vous "
"bloque. ([#125](https://github.com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:24
msgid "## Changes in version 0.88 and 0.89"
msgstr "## Changements dans la version 0.88 et 0.89"
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Correction de plus de problèmes avec les flux et les reconnexions."
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr ""
"* Les nouvelles mises à jour indiqueront la date de sortie de la version "
"dans la mise à jour."
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* Les modifications apportées aux raccourcis sont reflétées automatiquement "
"dans le Modificateur de raccourci."
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
"* Dans les réponses avec plusieurs utilisateurs, si la case à cocher "
"Mentionner à tous est désactivée, vous verrez une case par utilisateur afin "
"que vous puissiez contrôler qui sera mentionné dans la réponse."
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
"* Correction d'un bug qui provoquait des mentions d'utilisateur dupliquées "
"dans les réponses lorsque le tweet était fait avec Twishort."
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
"* Les retweets devrait être affiché normalement à nouveau lorsque le tweet "
"d'origine est un long tweet de Twishort."
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
"* Changé la façon dont TWBlue enregistre les chronologies de l'utilisateur "
"dans la configuration. Maintenant, il utilise l'ID utilisateur plutôt que "
"les noms d'utilisateur. Avec l'ID utilisateur, si un utilisateur change le "
"nom d'utilisateur, TWBlue créera toujours son/sa chronologie. Cela n'était "
"pas possible en utilisant des noms d'utilisateur."
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
"* Ajout d'un nouveau paramètre dans la boîte de dialogue des paramètres du "
"compte qui fait que TWBlue affiche les noms d'utilisateur Twitter au lieu du "
"nom complet."
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
"* Ajout d'OCR dans les photos de twitter. Il ya un nouvel élément dans le "
"menu Tweet qui vous permet d'extraire et d'afficher du texte dans les "
"images. Aussi le raccourci alt+Win+o a été ajoutée pour le même but à partir "
"de l'interface invisible."
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr ""
"* Maintenant TWBlue jouera un son lorsque le tweet focalisé contient des "
"images."
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr ""
"* Vos propres tweets cités n'apparaîtront plus dans le tampon des mentions."
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
"* Le fichier de configuration est enregistré d'une manière différente, il "
"doit corriger le bogue où TWBlue doit être redémarré après la suppression du "
"dossier de configuration."
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
"* Mentionner les personnes depuis les tampons Abonnements ou Abonnés "
"fonctionne de nouveau."
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
"* Le support des serveurs proxy a été amélioré. Maintenant, TWBlue prend en "
"charge les proxies http, https, socks4 et socks5, avec et sans "
"authentification."
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr "## Changements dans la version 0.87"
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr "* Correction des erreurs de connexion de flux."
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
"* Maintenant TWBlue peut gérer correctement une réponse à l'expéditeur sans "
"inclure tous les autres utilisateurs mentionnés."
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr "* Traduction mise à jour."
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
"* Le statut de la case à cocher Mentionner à tous sera mémorisé la prochaine "
"fois que vous répondez à plusieurs utilisateurs."
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr "## Changements dans la version 0.86"
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
"* Correction d'un problème de sécurité très important. Maintenant TWBlue "
"enverra des tweets à twishort sans utiliser aucun autre serveur."
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
"* Lorsque vous ajoutez un commentaire à un tweet, il sera envoyé en tant que "
"tweet cité, même si votre réponse plus le tweet original ne dépasse pas 140 "
"caractères."
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
"* Mise à jour de la configuration clavier de Windows 10 pour refléter les "
"modifications apportées dans la dernière version de Windows 10."
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr "* Ajout des dernières modifications dans l'API de twitter."
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
"* Lors de la réponse, il ne montrera pas le nom d'utilisateur de twitter "
"dans la zone de texte. Lorsque vous envoyez le tweet, le nom d'utilisateur "
"sera automatiquement ajouté."
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
"* Lors de la réponse à plusieurs utilisateurs, vous aurez une case à cocher "
"au lieu d'un bouton pour mentionner toutes les personnes. Si cette option "
"est cochée, les noms d'utilisateur de twitter seront ajoutés automatiquement "
"lorsque vous envoyez votre réponse."
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr "## Changements dans la version 0.85"
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
"* Les tweets longs et les tweets cités doivent être affichés correctement "
"dans les listes."
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr "* La connexion doit être plus stable."
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
"* Ajout d'une option de démarrage automatique dans la boîte de dialogue "
"Paramètres Globaux."
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr "* Traduction mise à jour."
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr "* Mise à jour de la documentation en russe."
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr ""
"* Les tweets dans la base de données mis en cache doit être chargé "
"correctement."
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr ""
"* Ajout de quelques dictionnaires manquants pour la correction "
"orthographique."
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
"* Chronologies , listes et autres tampons doivent être créés dans le bon "
"ordre au démarrage."
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr "## Changements dans la version 0.84 "
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr "* Plus d'améliorations dans Les tweets cités et les tweets longs."
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
"* Traductions mises à jour: Russe, Italien, Français, Roumain, Galicien et "
"Finnois."
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
"* Améliorations dans le module chargeur audio: Maintenant, il peut gérer "
"l'audio avec des caractères non-anglais."
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
"* Le titre de la fenêtre doit être mis à jour correctement lorsque les "
"boutons Correction orthographique, Traduire ou Réduire URL/Élargir URL sont "
"enfoncés."
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
"* Le bogue qui modifie le tweet sélectionné dans la chronologie principal ne "
"devrait pas se produire si souvent."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr "## Changements dans la version 0.82 et 0.83"
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
"* Si la source du tweet (client) est une application avec des caractères "
"unicode (exemple:российская газета) il ne rompt pas l'affichage du tweet."
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
"* Ajout d'un nouveau champ pour la description d'image dans le tweet qui "
"s'affiche. Lorsqu'il est disponible, il affichera la description Pour les "
"images publiées dans les tweets."
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
"* Les utilisateurs peuvent ajouter des descriptions d'images à leurs photos. "
"Lors du chargement d'une image, une boîte de dialogue s'affiche pour "
"demander une description."
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr "* Redessiné la boîte de dialogue de chargement d'image."
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr "* Correction du chargement d'image lors de la publication de tweets."
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
"* Lorsque vous obtenez des tweets pour une conversation, ignore les tweets "
"supprimés ou quelques erreurs, TWBlue va maintenant essayer d'obtenir autant "
"de tweets que possible, même si certains d'entre eux ne sont plus "
"disponibles."
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr "* Ajout de la lecture audio à partir de soundcloud."
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
"* Maintenant, l'option Session muet ne fait pas verbaliser le lecteur "
"d'écran."
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
"* Correction de la boîte de dialogue Message Direct. Maintenant, il doit "
"être affiché correctement."
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
"* Lorsqu'un tweet est supprimé dans Twitter, TWBlue devrait refléter cette "
"modification et supprimer ce tweet dans chaque tampon, lorsqu'il est affiché."
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
"* Si votre session est cassée, TWBlue sera capable de le supprimer "
"automatiquement au lieu de se planter."
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr "* Le chargeur audio doit afficher la progression actuelle."
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
"* Les utilisateurs peuvent désactiver la fonctionnalité Vérifier les mises à "
"jour au démarrage depuis l'onglet général, dans la boîte de dialogue "
"Paramètres Globaux."
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
"* L'interface invisible et la fenêtre doivent être synchronisées lorsque le "
"client se reconnecte."
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr ""
"* L'option documentation dans l'icône de la barre d'état système doit être "
"activée."
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
"* Dans les buffers de Tendance, vous pouvez appuyer sur entrée pour poster "
"un tweet sur la tendance focalisé."
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
"* Mise à jour de la documentation en russe et de l'interface du programme "
"principal (grâce à Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://"
"twitter.com/lifestar_n) dans twitter)"
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr "* Traduction mise à jour."
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "## Changements dans la Version 0.81"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr "* Traduction mise à jour"
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
"* Le module de mise à jour a reçu quelques améliorations. Maintenant, il "
"inclut une URL miroir pour vérifier les mises à jour si l'URL principale "
"n'est pas disponible pour le moment. Si quelque chose ne va pas et que les "
"deux sites ne fonctionnent pas, le programme démarrera de toute façon."
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Certains éléments GUI utilisent maintenant des raccourcis clavier pour des "
"actions communes."
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr ""
"* Correction d'une erreur dans la boîte de dialogue Localisation "
"Géographique."
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr ""
"* La configuration clavier Chicken Nugget devrait fonctionner correctement."
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
"* Ajout d'un nouveau paquet de sons à l'installation par défaut de TWBlue, "
"merci à [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr "* Maintenant, le changelog est écrit dans un fichier html."
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
"* Ajout de quelques dictionnaires manquants dans la dernière version pour la "
"fonctionnalité de vérification orthographique."
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
"* Découpe les débuts des sons dans le paquet de sons par défaut. Merci à "
"[@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* Ajout du support Opus pour la lecture audio dans TWBlue. Merci à "
"[@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* Ajout d'un champ source dans la boîte de dialogue Voir Tweet. Merci à "
"[@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
"* Vous pouvez charger des éléments plus anciens dans les tampons Abonnés et "
"Abonnements pour les autres."
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
"* La boîte de dialogue Correcteur Orthographique ne doit pas afficher un "
"message d'erreur lorsque vous avez configuré la \"Langue par défaut\" dans "
"la boîte de dialogue Paramètres Globaux si votre langue est supporté [#168]"
"(http://twblue.es/bugs/view.php?id=168)"
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr "* Mise à jour de la traduction en roumain."
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr "* Quelques nettoyages de code."
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr ""
"* La fonction système de rapport d'erreurs est à nouveau opérationnelle."
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
"* TWBlue devrait fonctionner à nouveau pour les utilisateurs qui contiennent "
"des caractères spéciaux dans les noms d'utilisateur Windows."
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr "* Ajout d'options supplémentaires pour les recherches de tweet."
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr "* Ajout de play_audio au Modificateur de raccourci."
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr ""
"* La touche Windows n'est plus nécessaire dans le Modificateur de raccourci"
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr "* Basculé au traducteur Microsoft."
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
"* Vous pouvez mettre à jour le tampon actuel en appuyant sur Ctrl+win+maj+u "
"dans la configuration clavier par défaut ou dans le menu Tampon."
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
"* Modifié quelques raccourcis clavier dans la configuration clavier par "
"défaut de Windows 10"
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr ""
"* Nouveau tampon Abonnés et Abonnements pour les chronologies de "
"l'utilisateur."
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2017, Manuel Cortez."
#~ msgid "TWBlue Changelog"
#~ msgstr "TWBlue Changelog"
#~ msgid ""
#~ "* If the tweet source (client) is an application with unicode characters "
#~ "(example: ) it will not break the tweet displayer."
#~ msgstr ""
#~ "* Si la source du tweet (client) est une application avec des caractères "
#~ "unicode (exemple: ) il ne rompt pas l'affichage du tweet."
#~ msgid ""
#~ "* Updated russian documentation and main program interface (thanks to "
#~ "Natalia Hedlund (), [\\@lifestar_n](https://twitter.com/lifestar_n) in "
#~ "twitter)"
#~ msgstr ""
#~ "* Mise à jour de la documentation en russe et de l'interface du programme "
#~ "principal (merci à Natalia Hedlund (), [\\@lifestar_n](https://twitter."
#~ "com/lifestar_n) sur twitter)"
#~ msgid "* Redessigned upload image dialog."
#~ msgstr "* Boîte de dialogue chargement d'image redessinée."
#~ msgid ""
#~ "* The updater module has receibed some improvements. Now it includes a "
#~ "Mirror URL for checking updates if the main URL is not available at the "
#~ "moment. If something is wrong and both locations don't work, the program "
#~ "will start anyway."
#~ msgstr ""
#~ "* Le module de mise à jour a reçu quelques améliorations. Maintenant, il "
#~ "inclut une URL miroir pour vérifier les mises à jour si l'URL principale "
#~ "n'est pas disponible pour le moment. Si quelque chose ne va pas et que "
#~ "les deux sites ne fonctionnent pas, le programme démarrera de toute façon."
#~ msgid "* some GUI elements now use keyboard shorcuts for common actions."
#~ msgstr ""
#~ "* Certains éléments GUI utilisent maintenant des raccourcis clavier pour "
#~ "des actions communes."
#~ msgid "Copyright © 2014-2016, Manuel Cortez."
#~ msgstr "Copyright © 2014-2016, Manuel Cortez."

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,756 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-07-09 19:10+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.6.11\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "Lista de cambios do TWBlue"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## cambios nesta versión"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* O TWBlue amosará un erro se se intenta abrir una liña temporal para un "
"usuario suspendido. ([#128](https://github.com/manuelcortez/TWBlue/"
"issues/128))"
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
"* Eliminouse o servicio de audio TWUp, debido a que xa non existe. ([#112]"
"(https://github.com/manuelcortez/TWBlue/issues/112))"
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
"* Arranxado un erro que facía que os arquivos de audio non se liberaran "
"despois de se subir a algún servizo de audio. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* Agora o TWBlue usará os servizos de traducción de Yandex en lugar de "
"Microsoft Translator. ([#132](https://github.com/manuelcortez/TWBlue/"
"issues/132))"
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* Os usuarios con conta de SNDUp poderán subir audios usando a súa clave de "
"API de novo. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Xa non se engadirán tuits vellos coma se foran recentes. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
"* Todos os usuarios mencionados deberán amosarse correctamente en tuits "
"feitos mediante Twishort. ([#116,](https://github.com/manuelcortez/TWBlue/"
"issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/issues/135))"
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* É posible selecionar unha lingua para a función de OCR en imaxes, dende a "
"pestana extras, no diálogo de opcións da conta. Tamén podes, nembargantes, "
"estabrecer a opción en detectar automáticamente. A característica de OCR en "
"imaxes funcionará mellor en linguas que usen caracteres especiais ou "
"símbolos que non forman parte do alfabeto inglés. ([#107](https://github.com/"
"manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
"* Arranxado un problema entre JAWS for Windows e o TWBlue. Agora o TWBlue "
"debería funcionar de xeito correcto con este lector de pantalla. [#100]"
"(https://github.com/manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr "* E máis ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:15
msgid "## Changes in version 0.90"
msgstr "## Cambios na versión 0.90"
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"* Arranxado un problema na Streaming API que causaba que o TWBlue "
"desconectara o Streaming. ([#103](https://github.com/manuelcortez/TWBlue/"
"issues/103))"
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
"* Agora o OCR en imaxes funcionará nos Rechíos tamén. Esto soluciona un erro "
"que causaba que as imaxes se detectaran nos rechíos, pero non se poidera "
"aplicar o OCR nelas. ([#105](https://github.com/manuelcortez/TWBlue/"
"issues/105))"
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* Agora o TWBlue xa non intentará cargar chíos feitos co Twishort que xa "
"foron borrados. Antes, se alguén creaba un chío para despois borralo, dende "
"Twishort, o TWBlue de todos modos tentaba cargar o chío, causando problemas "
"en todo o cliente. ([#113](https://github.com/manuelcortez/TWBlue/"
"issues/113))"
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
"* O TWBlue amosa unha mensaxe de erro se se tenta ver o perfil dunha conta "
"que non existe ou que foi suspendida. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"* O módulo de correción ortográfica debería selecionar a lingua apropriada "
"cando a lingua do cliente se establece en \"Lingua predeterminada\". ([#117]"
"(https://github.com/manuelcortez/TWBlue/issues/117))"
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
"* A descripción de imaxes amosarase tamén en rechíos. ([#119](https://github."
"com/manuelcortez/TWBlue/issues/119))"
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
"* cando se lea un chío longo, non deberían aparecer símbolos extranos. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
"* O TWBlue non tentará cargar liñas temporais de usuarios que bloquearon á "
"conta actual. ([#125](https://github.com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:24
msgid "## Changes in version 0.88 and 0.89"
msgstr "## Cambios na versión 0.88 e 0.89"
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Correxidos máis problemas cos streams e ca reconexión."
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr ""
"* As actualizacións máis novas indicarán a data do lanzamento no módulo de "
"actualización."
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* Os cambios nas combinacións de teclado refrictiranse automáticamente no "
"editor de combinacións de teclado."
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
"* nas respostas onde hai varios usuarios, se a Caixa mencionar a todos non "
"está marcada, verás unha caixa para cada usuario, o que che permitirá "
"selecionar aos usuarios que serán mencionados na resposta."
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
"* Correxido un erro que causaba que o TWBlue amosara mencións duplicadas se "
"o chío se enviara mediante Twishort."
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
"* Os Rechíos deben amosarse correctamente se o chío orixinal fhabía se "
"enviara mediante Twishort."
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
"* Cambiada a maneira na que TWBlue garda as liñas temporais na "
"configuración. Agora úsanse identificadores de usuario en lugar de nomes de "
"usuario. Usando os identificadores para cada usuario, se alguén cambia o seu "
"nome de usuario TWBlue aínda será capaz de crear a liña temporal. Esto non "
"era posible anteriormente."
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
"* engadida unha opción no diálogo de opcións de conta que fai que o TWBlue "
"amose o nome de pantalla do usuario en lugar do nome completo."
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
"* Engadido o OCR nas imaxes de Twitter. Hai unha nova opción no menú chío "
"que permite extraer o texto á imaxen do tuit selecionado. Tamén se engadiu a "
"combinación Alt+Windows+O para o mesmo propósito na interfaz invisible."
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr ""
"* Agora o TWBlue reproducirá un son cando o chío selecionado conteña imaxes"
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr "* Os teus chíos citados deixarán de amosarse no búfer de mencións."
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
"* O ficheiro de configuración gárdase de un xeito diferente. Esto debería "
"solucionar o erro que requería borrar o directorio de configuracións e "
"reiniciar o TWBlue."
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
"* funciona de novo mencionar usuarios dende os búferes de seguidores e "
"amigos."
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
"* Mellorouse o soporte para servidores proxy. Agora o TWBlue soporta proxys "
"http, https, socks4 e socks5, con ou sen autenticación."
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr "## Cambios na versión 0.87"
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr "* Correxidos erros na conexión dos streams."
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
"* Agora o TWBlue pode manexar correctamente as respostas sen incluir a todos "
"os usuarios do chío orixinal."
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr "* Actualizáronse as traduccións."
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
"* O estado da caixa para mencionar a todos lembrarase a seguinte vez que "
"escrebas unha resposta."
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr "## Cambios na versión 0.86"
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
"* Correxido un erro de seguridade moi importante. Agora o TWBlue enviará "
"chíos cara Twishort sen usar un servidor intermedio."
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
"* Cando se engada un comentario a un chío, este enviarase coma un chío "
"citado, incluso se o comentario máis o chío orixinal non supera os 140 "
"caracteres."
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
"* Actualizado o mapa de teclado de Windows 10 debido aos cambios da última "
"build."
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr "* Engadidos os últimos cambios na API do Twitter."
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
"* Cando se resposte a un chío, non se amosará o nome do usuario no campo de "
"texto. O nome de usuario será engadido de forma automática ao enviar o chío."
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
"* Cando se resposte a un chío con varios usuarios, verás unha caixa en lugar "
"dun botón para mencionar a todos. Se é marcada, os nomes de usuario do "
"Twitter engadiranse automáticamente ao enviar o chío."
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr "## Cambios na versión 0.85"
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
"* Os chíos longos e citados deberían amosarse correctamente nas listas."
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr "* A conexión debería ser máis estable."
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
"* Engadiuse a opción para comezar despois de iniciar sesión en Windows no "
"diálogo de opcións globais."
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr "* Actualizadas as traduccións."
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr "* Actualizada a documentación en ruso."
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr "* Deberíanse cargar correctamente os chíos na base de datos."
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr ""
"* Engadíronse algúns diccionarios novos no módulo de corrección ortográfica."
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
"* As liñas temporais, as listas e outros búferes deberíanse crear na orden "
"correcta ao iniciar o TWBlue."
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr "## Cambios na versión 0.84 "
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr "* Máis melloras nos chíos longos e citados."
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
"* Actualizadas as traducións: Ruso, italiano, francés, rumano, galego e "
"finlandés."
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
"* Melloras no módulo de carga de ficheiros de audio: Agora é capaz de "
"manexar ficheiros de audio con caracteres especiais."
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
"* O título da ventá debería actualizarse correctamente cando se utilizan "
"funcións coma corrección ortográfica, traducción ou acurtar / expandir URL."
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
"* O erro que facía que o chío selecionado cambiara na interfaz visible "
"debería estar parcialmente correxido."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr "## Cambios na versión 0.82 e 0.83"
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
"* Se o cliente dende o que se publicou un chío é unha aplicación con "
"caracteres Unicode no seu nome (por exemplo: российская газета), o "
"visualizador de chíos poderáo amosar adecuadamente."
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
"* Engadido un campo para descripción de imaxes no visualizador de chíos, "
"Cando estean dispoñibles, amosaránse descripcións para as imaxes no chío."
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
"* Os usuarios agora poden engadir descripción ás súas fotos. Ao subir a "
"imaxen, aparecerá un diálogo para que se proporcione unha descripción."
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr "* Rediseñouse o diálogo para subir imaxes."
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr "* Correxiuse a carga das imaxes ao se publicar chíos."
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
"* cando se obteñen chíos para amosar unha conversa, agora ignóranse os chíos "
"borrados e algúns erros comúns. TWBlue cargará a maior cantidade de chíos "
"posible."
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr "* Engadida a reprodución de audio dende Soundcloud."
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
"* Ao se silenciar unha sesión, agora o lector de pantalla xa non anunciará "
"ningún contido automáticamente."
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
"* Correxido o diálogo de mensaxe directa. Agora debería amosarse "
"correctamente."
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
"* Cando se borra un chío, o TWBlue debería amosar o cambio e borrar o chío "
"de todos os búferes onde se amosa."
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
"* Se a configuración dunha sesión foi dañada, o TWBlue debería ser capaz de "
"borrala e de continuar en lugar de non se abrir."
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr ""
"* O diálogo de carga de ficheiros de audio agora amosa o progreso actual."
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
"* Os usuarios poden desactivar a comprobación automática de actualizacións "
"no diálogo de opcións globais, na pestana Xeral."
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
"* A interfaz invisible e a ventá gráfica deben estar sincronizadas cando o "
"cliente se reconecta."
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr "* A opción de documentación na bandexa do sistema atópase activa."
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
"* Nos búferes de tendencias, podes premer intro sobre cada tendencia para "
"publicar un chío acerca dela."
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
"* Actualizada a documentación e a interfaz en ruso (gracias a Natalia "
"Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/lifestar_n) "
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr "* Actualizadas as traduccións."
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "## Cambios na Versión 0.81"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr "* Actualizadas as traducións."
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
"* O módulo de actualizacións recibiu algunhas melloras. Agora inclúe unha "
"URL con información de actualizacións de copia de seguridade por se o "
"enderezo principal non funciona."
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Algúns elementos da interfaz gráfica agora usan atallos de teclado para "
"accións comúns."
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr ""
"* Correxido un erro no diálogo para amosar a información xeográfica en chíos."
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr "* O mapa de teclado de chicken Nugget debería funcionar correctamente."
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
"* Engadiuse un novo paquete de sons á instalación predeterminada do TWBlue, "
"gracias a [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr "* Agora o changelog escrébese nun Ficheiro html."
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
"* Engadíronse algúns dicionarios ao módulo de corrección ortográfica que non "
"foran engadidos na última versión. "
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
"* Borráronse os silenzos ao comezo dos sons no paquete de sons "
"predeterminado. Gracias a [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* Engadido o soporte ao códec Opus no TWBlue. Gracias a [@masonasons]"
"(https://github.com/masonasons)"
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* Engadido un campo para amosar o cliente dende o que se fai un chío no "
"visualizador de chíos. Gracias a [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
"* Podes cargar máis elementos nos búferes de seguedores e amigos de outros "
"usuarios."
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
"* O módulo de corrección ortográfica non amosará unha mensaxe de erro ao se "
"establecer \"Lingua predeterminada\" no diálogo de opcións globais se a túa "
"língua se atopa soportada. [#168](http://twblue.es/bugs/view.php?id=168)"
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr "* Actualizada a tradución ao romanés."
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr "* Limpeza do código."
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr ""
"* O sistema de información de erros está completamente operativo de novo."
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
"* O TWBlue debería funcionar de novo para usuarios que conteñan caracteres "
"especiais nos seus nomes de usuario do Windows."
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr "* Engadidas máis opcións para as procuras no Twitter."
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr "* Engadida a función play_audio ao editor de mapas de teclado."
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* A tecla Windows xa non é obrigatoria no editor de mapas de teclado."
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr "* Cambiamos a usar o servicio Microsoft translator."
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
"* Podes actualizar o búfer actual premendo ctrl+win+shift+u na interfaz "
"invisible ou dende o menú búfer."
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
"* Cambiados algúns atallos de teclado no mapa de teclado do Windows 10."
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr "* Novos búferes de amigos e seguedores para outros usuarios."
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2017, Manuel Cortez."

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,613 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-01-23 18:38+0900\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.8.7\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "TWBlue 更新履歴"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## changes in this version"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr ""
#: ../doc/changelog.py:15
#, fuzzy
msgid "## Changes in version 0.90"
msgstr "## バージョン0.87での変更点"
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
#: ../doc/changelog.py:24
#, fuzzy
msgid "## Changes in version 0.88 and 0.89"
msgstr "## バージョン0.82および0.83での変更点"
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr "* ストリームと再接続に関するその他の問題を修正。"
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr "* アップデータでリリース日を通知するように変更。"
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* 変更したキーストロークがキーストロークエディタに反映されるように変更。"
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
"* リプライに複数のユーザーが含まれている場合に、「全員にメンション」がチェッ"
"クされていないとき、ユーザーごとにチェックボックスを表示し、誰に返信するか制"
"御できるようにした。"
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
"* 返信時にTwishortを利用してツイートを作成した際に、ユーザーが重複していたバ"
"グを修正。"
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
"* 元のツイートがTwishortで作成した長いツイートのとき、リツイートが正常に表示"
"されるように修正。"
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
"* ユーザータイムラインの設定の保存方法を変更。ユーザー名の代わりにユーザーID"
"を利用しています。ユーザーIDで保存することにより、ユーザー名を変えてもタイム"
"ラインを作成することができます。ユーザー名を利用した場合は、これはできません"
"でした。"
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
"* アカウント設定ダイアログにTWBlueが表示名の代わりにユーザー名を表示する項目"
"を追加。"
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
"* ツイートに添付された画像をOCRする機能を追加。ツイートメニュー内に画像内のテ"
"キストを抽出して表示する項目を追加しました。また、GUI非表示インターフェイス"
"で、ALT + Windows + Oでもこの機能を実行することができます。"
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr "* 画像付きツイートを音声で通知するようにした。"
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr ""
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr "## バージョン0.87での変更点"
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr "* ストリーム接続時のエラーを修正。"
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr "* 翻訳を更新。"
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr "## バージョン0.86での変更点"
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr ""
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr "## バージョン0.85での変更点"
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr ""
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr ""
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr ""
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr ""
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr ""
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr "## バージョン0.84での変更点"
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr ""
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr "## バージョン0.82および0.83での変更点"
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr ""
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr ""
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr ""
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr ""
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr ""
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr ""
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "## バージョン0.81での変更点"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr ""
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr ""
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr ""
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr ""
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr ""
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr ""
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr ""
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr ""
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr ""
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr ""
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr ""
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr ""
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
#, fuzzy
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Copyright © 2014-2016, Manuel Cortez."
#~ msgid "\\357\\273\\277TWBlue Changelog"
#~ msgstr "\\357\\273\\277TWBlue 更新履歴"

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,748 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-07-08 16:25+Hora de verano central (Mxico)\n"
"PO-Revision-Date: 2017-07-11 11:54+0300\n"
"Last-Translator: Florian Ionașcu <florianionascu@hotmail.com>\n"
"Language-Team: \n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.8.9\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
"2:1));\n"
#: ../doc/changelog.py:3
msgid "TWBlue Changelog"
msgstr "Noutățile TWBlue"
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## modificări în această versiune"
#: ../doc/changelog.py:5
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended "
"user. ([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBlue va afișa o eroare la încercarea de deschidere a cronologiei unui "
"utilizator suspendat. ([#128](https://github.com/manuelcortez/TWBlue/"
"issues/128))"
#: ../doc/changelog.py:6
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/"
"manuelcortez/TWBlue/issues/112))"
msgstr ""
"* A fost eliminat serviciul TwUp, pentru că nu mai există. ([#112](https://"
"github.com/manuelcortez/TWBlue/issues/112))"
#: ../doc/changelog.py:7
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
msgstr ""
"* Lansarea fișierelor audio după încărcare. ([#130](https://github.com/"
"manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:8
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft "
"translator. ([#132](https://github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* TWBlue va utiliza serviciile de traducere ale lui Yandex în loc de "
"Microsoft Translator. ([#132](https://github.com/manuelcortez/TWBlue/"
"issues/132))"
#: ../doc/changelog.py:9
msgid ""
"* SndUp users will be able to upload audio in their account by using their "
"API Key again. ([#134](https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* Utilizatorii SndUp vor putea să-și încarce conținutul audio în contul lor "
"folosind din nou cheia API. ([#134](https://github.com/manuelcortez/TWBlue/"
"issues/134))"
#: ../doc/changelog.py:10
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/"
"manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Nu ar trebui ca postările vechi să fie adăugate în buffere ca elemente "
"noi. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#133]"
"(https://github.com/manuelcortez/TWBlue/issues/133))"
#: ../doc/changelog.py:11
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long "
"tweets. ([#116,](https://github.com/manuelcortez/TWBlue/issues/116)) ([#135]"
"(https://github.com/manuelcortez/TWBlue/issues/135))"
msgstr ""
"* Ar trebui ca toți utilizatorii mrnționați să fie afișați corect în "
"postările lungi ale Twishort-ului. ([#116,](https://github.com/manuelcortez/"
"TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
#: ../doc/changelog.py:12
msgid ""
"* It is possible to select a language for OCR service from the extras panel, "
"in the account settings dialogue. You can, however, set this to detect "
"automatically. OCR should work better in languages with special characters "
"or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* Este posibilă selectarea unei limbi pentru serviciul OCR din panoul extra, "
"în dialogul de setăei ale contului. Puteți, totuși, să setați asta la "
"detectare automată. Ar trebui ca OCR-ul să lucreze mai bine în limbi cu "
"caractere speciale sau cu simboluri non-englezești. ([#107](https://github."
"com/manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:13
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work "
"normally in this update. [#100](https://github.com/manuelcortez/twblue/"
"issues/100)"
msgstr ""
"* A fost reparată o problemă cu JAWS For Windows și TWBLU. Acum, Jaws va "
"funcționa normal în această actualizare. [#100](https://github.com/"
"manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:14
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr ""
"* Și mai multe ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:15
msgid "## Changes in version 0.90"
msgstr "## Modificări în versiunea 0.90"
#: ../doc/changelog.py:16
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the "
"streaming API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
#: ../doc/changelog.py:17
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was "
"detecting images but couldn't apply OCR on them. ([#105](https://github.com/"
"manuelcortez/TWBlue/issues/105))"
msgstr ""
"* OCR va lucra în imaginile din distribuiri. El repară o eroare în care "
"TWBlue detecta imagini, dar nu putea să aplice OCR-ul pe ele. ([#105]"
"(https://github.com/manuelcortez/TWBlue/issues/105))"
#: ../doc/changelog.py:18
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. "
"Before, if someone posted a long tweet but deleted it in the Twishort's "
"site, TWBlue was trying to load the tweet and it was causing problems in all "
"the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* TWBlue nu va mai încerca să încarce postări care sunt deja șterse, făcute "
"cu Twishort. Înainte, dacă cineva posta o postare lungă și o ștergea de pe "
"site-ul Twishort-ului, TWBlue încerca să încarce postarea și asta cauza "
"probleme în aplicație. ([#113](https://github.com/manuelcortez/TWBlue/"
"issues/113))"
#: ../doc/changelog.py:19
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user "
"that does not exist or has been suspended. ([#114,](https://github.com/"
"manuelcortez/TWBlue/issues/114) [#115](https://github.com/manuelcortez/"
"TWBlue/issues/115))"
msgstr ""
"* TWBlue va afișa un mesaj de eroare atunci când încercați să vizualizați "
"profilul unui utilizator care nu eistă sau care a fost suspendat. ([#114,]"
"(https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://github."
"com/manuelcortez/TWBlue/issues/115))"
#: ../doc/changelog.py:20
msgid ""
"* The spellchecker module should select the right language when is set to "
"\"user default\". ([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
#: ../doc/changelog.py:21
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://"
"github.com/manuelcortez/TWBlue/issues/119))"
msgstr ""
#: ../doc/changelog.py:22
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
msgstr ""
#: ../doc/changelog.py:23
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125]"
"(https://github.com/manuelcortez/twblue/issues/125))"
msgstr ""
#: ../doc/changelog.py:24
msgid "## Changes in version 0.88 and 0.89"
msgstr "## Modificări în versiunile 0.88 și 0.89"
#: ../doc/changelog.py:25
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Au fost reparate multe erori cu stream-urile și reconectările."
#: ../doc/changelog.py:26
msgid "* newer updates will indicate the release date in the updater."
msgstr "* Actualizările mai noi vor indica data lansării în actualizator."
#: ../doc/changelog.py:27
msgid ""
"* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr ""
"* Modificările la combinațiile de taste sunt reflectate automat în editorul "
"acestora."
#: ../doc/changelog.py:28
msgid ""
"* In replies with multiple users, if the mention to all checkbox is "
"unchecked, you will see a checkbox per user so you will be able to control "
"who will be mentioned in the reply."
msgstr ""
"* La răspunsurile cu utilizatori multipli, dacă mențiunea pentru toți este "
"nebifată, veți vedea o casetă de bifat per utilizator, deci veți fi capabil "
"să controlați cine va fi menționat în răspuns."
#: ../doc/changelog.py:29
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet "
"was made with Twishort."
msgstr ""
"* A fost reparată o eroare care a cauzat mențiunile duplicate ale "
"utilizatorului când postarea a fost făcută cu Twishort."
#: ../doc/changelog.py:30
msgid ""
"* Retweets should be displayed normally again when the originating tweet is "
"a Twishort's long tweet."
msgstr ""
"* Ar trebui ca distribuirile să fie afișate normal din nou când postarea "
"originală este o postare lungă a Twishort-ului."
#: ../doc/changelog.py:31
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses "
"user IDS instead usernames. With user IDS, if an user changes the username, "
"TWBlue still will create his/her timeline. This was not possible by using "
"usernames."
msgstr ""
"* A fost modificat modul TWBlue de salvarea cronologiei utilizatorului în "
"configurație. Acum el folosește IDS-ul utilizatorului în loc de numele de "
"utilizator. Cu IDS-ul utilizatorului, dacă un utilizator își schimbă numele, "
"TWBlue va crea cronologia lui/ei. Aceasta nu era posibilă folosind numele de "
"utilizator."
#: ../doc/changelog.py:32
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to "
"show twitter usernames instead the full name."
msgstr ""
"& A fost adăugată o nouă setare în dialogul de setări ale contului care face "
"TWBlue să afișeze numele de utilizator Twitter în loc de numele întreg."
#: ../doc/changelog.py:33
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that "
"allows you to extract and display text in images. Also the keystroke alt+Win"
"+o has been added for the same purpose from the invisible interface."
msgstr ""
"* A fost adăugat OCR-ul în pictogramele Twitter. Există un element nou în "
"meniul „Postare” care vă permite să extrageți și să afișați text în imagini. "
"De asemenea, scurtătura alt+Win+o a fost adăugată pentru interfața "
"invizibilă."
#: ../doc/changelog.py:34
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr "* TWBlue va reda un sunet când postarea focalizată conține imagini."
#: ../doc/changelog.py:35
msgid ""
"* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr ""
"Postările citate ale dumneavoastră nu vor apărea numai în buffer-ul mențiuni."
#: ../doc/changelog.py:36
msgid ""
"* The config file is saved in a different way, it should fix the bug where "
"TWBlue needs to be restarted after the config folder is deleted."
msgstr ""
"* Fișierul config este salvat într-un mod diferit, el ar trebui să repare "
"eroarea unde TWBlue are nevoie de o repornire după ștergerea dosarului "
"config."
#: ../doc/changelog.py:37
msgid "* Mentioning people from friends or followers buffers works again."
msgstr ""
"* Menționarea persoanelor din prieteni sau urmăritori funcționează din nou."
#: ../doc/changelog.py:38
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, "
"https, socks4 and socks5 proxies, with and without autentication."
msgstr ""
"* Suportul pentru serverele Proxy a fost îmbunătățit. Acum, TWBlue suportă "
"proxy-urile http, https, socks4 și socks5 cu și fără autentificare."
#: ../doc/changelog.py:39
msgid "## Changes in version 0.87"
msgstr "## Modificări în versiunea 0.87"
#: ../doc/changelog.py:40
msgid "* Fixed stream connection errors."
msgstr "* Au fost reparate erori de conectare la stream."
#: ../doc/changelog.py:41
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all "
"other mentioned users."
msgstr ""
"* Acum, TWBlue poate face un răspuns în mod corespunzător către expeditor "
"fără a-i include pe toți ceilalți utilizatori menționați."
#: ../doc/changelog.py:42
msgid "* Updated translations."
msgstr "* Au fost actualizate traducerile."
#: ../doc/changelog.py:43
msgid ""
"* The status of the mention to all checkbox will be remembered the next time "
"you reply to multiple users."
msgstr ""
"* Starea casetei de bifat mențiune la toți va fi amintită data viitoare, "
"când vei răspunde la utilizatori multipli."
#: ../doc/changelog.py:44
msgid "## Changes in version 0.86"
msgstr "## Modificări în versiunea 0.86"
#: ../doc/changelog.py:45
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to "
"twishort without using any other server."
msgstr ""
"* A fost reparată o eroare de securitate foarte importantă. TWBlue va "
"trimite postări către twishort fără a utiliza un alt server."
#: ../doc/changelog.py:46
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even "
"if your reply plus the original tweet is not exceeding 140 characters."
msgstr ""
"* Când adăugați un comentariu la o postare, el va fi trimis ca o postare "
"citată, chiar dacă răspundeți plus mesajul original nu depășește 140 de "
"caractere."
#: ../doc/changelog.py:47
msgid ""
"* Updated windows 10 keymap for reflecting changes made in the last windows "
"10 build."
msgstr ""
"* A fost actualizată harta de taste windows 10 pentru reflectarea "
"modificărilor făcute în ultimul build windows 10."
#: ../doc/changelog.py:48
msgid "* Added last changes in the twitter API."
msgstr "* Au fost adăugate ultimele modificări în API-ul twitter."
#: ../doc/changelog.py:49
msgid ""
"* When replying, it will not show the twitter username in the text box. When "
"you send the tweet, the username will be added automatically."
msgstr ""
"* Câmd răspundeți, nu se va afișa numele de utilizator twitter în caseta de "
"text. Când trimiteți postarea, numele de utilizator va fi adăugat automat."
#: ../doc/changelog.py:50
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button "
"for mentioning all people. If this is checked, twitter usernames will be "
"added automatically when you send your reply."
msgstr ""
"* când răspundeți la utilizatori multipli, veți avea o casetă de bifat în "
"loc de un buton pentru menționarea tuturor persoanelor. Dacă aceasta este "
"bifată, numele de utilizator twitter vor fi adăugate automat când trimiteți "
"răspunsul."
#: ../doc/changelog.py:51
msgid "## Changes in version 0.85"
msgstr "## Modificări în versiunea 0.85"
#: ../doc/changelog.py:52
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr ""
"* Ar trebui ca postările lungi și citate să fie afișate corect în liste. "
#: ../doc/changelog.py:53
msgid "* The connection should be more stable."
msgstr "* Conexiunea ar trebui să fie mult mai stabilă."
#: ../doc/changelog.py:54
msgid "* Added an autostart option in the global settings dialogue."
msgstr ""
"* A fost adăugată o opțiune de autopornire în dialogul setărilor globale."
#: ../doc/changelog.py:55
msgid "* Updated translation."
msgstr "* Traducerea a fost actualizată."
#: ../doc/changelog.py:56
msgid "* Updated russian documentation."
msgstr "* A fost actualizată documentația în limba rusă."
#: ../doc/changelog.py:57
msgid "* Tweets in cached database should be loaded properly."
msgstr ""
"* Ar trebui să fie afișate corect postările în baza de date din memoria "
"cache."
#: ../doc/changelog.py:58
msgid "* Added some missed dictionaries for spelling correction."
msgstr ""
"* Au fost adăugate unele dicționare omise pentru corectarea ortografică."
#: ../doc/changelog.py:59
msgid ""
"* Timelines, lists and other buffer should be created in the right order at "
"startup."
msgstr ""
"* Ar trebui ca listele, cronologiile și alte buffere să fie create în "
"ordinea corectă la pornire."
#: ../doc/changelog.py:60
msgid "## Changes in version 0.84 "
msgstr "## Modificări în versiunea 0.84 "
#: ../doc/changelog.py:61
msgid "* More improvements in quoted and long tweets."
msgstr "* Multe îmbunătățiri la postările lungi și citate."
#: ../doc/changelog.py:62
msgid ""
"* Updated translations: Russian, Italian, French, Romanian, Galician and "
"Finnish."
msgstr ""
"* Au fost actualizate traducerile: Rusă, Italiană, Franceză, Română, "
"Galiciană și Finlandeză."
#: ../doc/changelog.py:63
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with "
"non-english characters."
msgstr ""
"* Îmbunătățiri în modulul audio uploader: acum poate manipula audio cu "
"caractere non-englezești."
#: ../doc/changelog.py:64
msgid ""
"* the title of the window should be updated properly when spellcheck, "
"translate or shorten/unshorten URL buttons are pressed."
msgstr ""
"* Ar trebui ca titlul ferestrei să fie actualizat corect la verificarea "
"ortografică, la traducere sau când sunt apăsate butoanele scurtare/extindere "
"URL."
#: ../doc/changelog.py:65
msgid ""
"* the bug that changes the selected tweet in the home timeline shouldn't be "
"happening so often."
msgstr ""
"* Eroarea care modifică postarea selectată în cronologia principală nu ar "
"trebui să se întâmple atât de des."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.82 and 0.83"
msgstr "## Modificări în versiunile 0.82 și 0.83"
#: ../doc/changelog.py:67
msgid ""
"* If the tweet source (client) is an application with unicode characters "
"(example: российская газета) it will not break the tweet displayer."
msgstr ""
"* Dacă sursa postării (client) este o aplicație cu caractere unicode "
"(exemplu: nu va afecta afișatorul postării."
#: ../doc/changelog.py:68
msgid ""
"* Added a new field for image description in tweet displayer. When "
"available, it will show description for images posted in tweets."
msgstr ""
"* A fost adăugat un câmp pentru descrierea imaginei în afișatorul postării. "
"Când este disponibil, va afișa o descriere pentru imagini postate în postări."
#: ../doc/changelog.py:69
msgid ""
"* users can add image descriptions to their photos. When uploading an image, "
"a dialog will show for asking a description."
msgstr ""
"* Utilizatorii pot adăuga descrieri la imagini în fotografiile lor. Când se "
"încarcă o imagine, se va afișa un dialog pentru întrebarea unei descrieri."
#: ../doc/changelog.py:70
msgid "* Redesigned upload image dialog."
msgstr "* A fost reproiectat dialogul de încărcare al imaginii."
#: ../doc/changelog.py:71
msgid "* Fixed photo uploads when posting tweets."
msgstr "* A fost rezolvată problema cu încărcările pozelor când postezi."
#: ../doc/changelog.py:72
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some "
"errors, now TWBlue will try to get as much tweets as possible, even if some "
"of these are no longer available."
msgstr ""
"* Când primești postări de la o conversație ignorând postările șterse și "
"unele erori, TWBlue va încerca acum să afișeze cât mai multe postări "
"posibil, chiar dacă unele dintre acestea nu sunt disponibile."
#: ../doc/changelog.py:73
msgid "* Added audio playback from soundcloud."
msgstr "* A fost adăugată redarea audio din sound cloud."
#: ../doc/changelog.py:74
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
"* Opțiunea ”ignorare sesiune” nu-l face pe cititorul de ecran să vorbească."
#: ../doc/changelog.py:75
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
"* A fost fixată problema dialogului unui mesaj direct. Acum acesta ar trebui "
"să fie afișat corespunzător."
#: ../doc/changelog.py:76
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and "
"delete that tweet in every buffer it is displayed."
msgstr ""
"* Când o postare este ștearsă din Twitter, TWBlue ar trebui să reflecteze "
"această modificare și să șteargă din toate bufferele."
#: ../doc/changelog.py:77
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically "
"instead just crashing."
msgstr ""
"* Dacă sesiunea ta nu mai funcționează, TWBlue va avea capabilitatea de a o "
"șterge automat, înloc să mai facă crash."
#: ../doc/changelog.py:78
msgid "* audio uploader should display the current progress."
msgstr "* Încărcătorul audio ar trebui acum să arate bara de progres."
#: ../doc/changelog.py:79
msgid ""
"* users can disable the check for updates feature at startup from the "
"general tab, in the global settings dialogue."
msgstr ""
"* Utilizatorii pot dezactiva funcția de verificare pentru actualizări la "
"pornire din tabulatorul general, în dialogul de setări globale."
#: ../doc/changelog.py:80
msgid ""
"* The invisible interface and the window should be synchronized when the "
"client reconnects."
msgstr ""
"* Interfața invizibilă și fereastra normală ar trebui să se sincronizeze "
"când se re-conectează."
#: ../doc/changelog.py:81
msgid "* The documentation option in the systray icon should be enabled."
msgstr ""
"* Opțiunea „documentație” în iconița systray ar trebui să fie activată."
#: ../doc/changelog.py:82
msgid ""
"* In trending buffers, you can press enter for posting a tweet about the "
"focused trend."
msgstr ""
"* În buferele trending, puteți apăsa enter pentru publuicarea unei postări "
"despre trendul focalizat."
#: ../doc/changelog.py:83
msgid ""
"* Updated russian documentation and main program interface (thanks to "
"Natalia Hedlund (Наталья Хедлунд), [@lifestar_n](https://twitter.com/"
"lifestar_n) in twitter)"
msgstr ""
"* Au fost actualizate traducerile la documentația și interfața programului "
"în limba rusă (mulțumim Nataliei Hedlund (Наталья Хедлунд), [@lifestar_n]"
"(https://twitter.com/lifestar) pe Twitter)"
#: ../doc/changelog.py:84
msgid "* updated translations."
msgstr "* Au fost actualizate traducerile."
#: ../doc/changelog.py:85
msgid "## Changes in Version 0.81"
msgstr "## Modificările aduse în versiunea 0.81"
#: ../doc/changelog.py:86
msgid "* Updated translations"
msgstr "* Au fost actualizate traducerile."
#: ../doc/changelog.py:87
msgid ""
"* The updater module has received some improvements. Now it includes a "
"Mirror URL for checking updates if the main URL is not available at the "
"moment. If something is wrong and both locations don't work, the program "
"will start anyway."
msgstr ""
"* Verificatorul de actualizări, acum a mai fost îmbunătățit. Acum acesta "
"conține un URL alternativ de descărcare a actualizării în caz că linkul "
"normal nu mai funcționează. În caz că există o problemă și ambele nu mai "
"funcționează, TWBlue va porni oricum."
#: ../doc/changelog.py:88
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Unele elemente din GUI vor utiliza acum scurtături pentru tastatură "
"pentru acțiuni comune."
#: ../doc/changelog.py:89
msgid "* fixed a bug in the geolocation dialog."
msgstr "* A fost fixat un bug în dialogul locației geografice."
#: ../doc/changelog.py:90
msgid "* the chicken nugget keymap should work properly."
msgstr ""
"* keymap-ul chicken nugget-ului acum ar trebui să funcționeze corespunzător."
#: ../doc/changelog.py:91
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to "
"[@Deng90](https://twitter.com/deng90)"
msgstr ""
"* A fost adăugat un nou pachet de sunete la instalatorul implicit al TWBlue, "
"mulțumim lui [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:92
msgid "* Now the changelog is written in an html File."
msgstr "* Acum changelog-ul este scris într-un fișier html."
#: ../doc/changelog.py:93
msgid ""
"* Added some missed dictionaries in last version for the spell checking "
"feature."
msgstr ""
"* Au fost adăugate unele dicționare care lipseau în ultima versiune pentru "
"funcția de verificare a ortografiei."
#: ../doc/changelog.py:94
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to "
"[@masonasons](https://github.com/masonasons)"
msgstr ""
"* Au fost reduse începuturile sunetelor în pachetul de sunete implicit. Îi "
"mulțumim lui [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:95
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* A fost adăugat suportul Opus pentru redarea sunetului în TWBlue. Îi "
"mulțumim lui [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:96
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons]"
"(https://github.com/masonasons)"
msgstr ""
"* A fost adăugat un câmp sursă în dialogul „vizualizare postare”. Îi "
"mulțumim lui [@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:97
msgid ""
"* You can load previous items in followers and friend buffers for others."
msgstr ""
"* Puteți încărca elementele precedente în bufferele urmăritori și prieteni "
"pentru alții."
#: ../doc/changelog.py:98
msgid ""
"* The Spell Checker dialogue should not display an error message when you "
"have set \"default language\" in the global settings dialogue if your "
"language is supported [#168](http://twblue.es/bugs/view.php?id=168)"
msgstr ""
"* Nu ar trebui ca dialogul verificatorului ortografic să afișeze un mesaj de "
"eroare când aveți setată „limba implicită” în dialogul setărilor globale "
"dacă limba dumneavoastră este suportată [#168](http://twblue.es/bugs/view."
"php?id=168)"
#: ../doc/changelog.py:99
msgid "* Updated romanian translation."
msgstr "* A fost actualizată traducerea românească."
#: ../doc/changelog.py:100
msgid "* Some code cleanups."
msgstr "* Niște curățări de coduri."
#: ../doc/changelog.py:101
msgid "* The bug reports feature is fully operational again."
msgstr "* Caracteristica de raportare a erorile este funcțională din nou."
#: ../doc/changelog.py:102
msgid ""
"* TWBlue should work again for users that contains special characters in "
"windows usernames."
msgstr ""
"* Ar trebui ca TWBlue să funcționeze din nou pentru utilizatorii care conțin "
"caractere speciale în numele de utilizator Windows."
#: ../doc/changelog.py:103
msgid "* Added more options for the tweet searches."
msgstr "* Au fost adăugate multe opțiuni pentru căutările Twitter."
#: ../doc/changelog.py:104
msgid "* Added play_audio to the keymap editor."
msgstr "* A fost adăugată redarea audio pentru editorul hărțillor de taste."
#: ../doc/changelog.py:105
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* Tasta Windows nu mai este necesară în editorul hărților de taste."
#: ../doc/changelog.py:106
msgid "* Switched to the Microsoft translator."
msgstr "* Am comutat la Microsoft Translator."
#: ../doc/changelog.py:107
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the "
"default keymap or in the buffer menu."
msgstr ""
"* Puteți actualiza Buffer-ul apăsând ctrl+win+shift+u în harta de taste "
"implicită sau în meniul buffer-ului."
#: ../doc/changelog.py:108
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr ""
"* Au fost modificate niște combinații de taste în harta de taste implicită "
"Windows 10."
#: ../doc/changelog.py:109
msgid "* New followers and friends buffer for user timelines."
msgstr ""
"* Buffere noi „prieteni” și „urmăritori” pentru cronologiile utilizatorului."
#: ../doc/changelog.py:110
msgid "---"
msgstr "---"
#: ../doc/changelog.py:111
msgid "Copyright © 2014-2017, Manuel Cortez."
msgstr "Drepturi de autor © 2014-2017, Manuel Cortez."

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,835 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: 2017-12-11 11:09-0600\n"
"PO-Revision-Date: 2017-12-13 23:36+0100\n"
"Last-Translator: Наталья Хедлунд <natalia.hedlund@gmail.com>\n"
"Language-Team: \n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 1.8.8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../doc/changelog.py:3
msgid "\\357\\273\\277TWBlue Changelog"
msgstr "Список изменений в TWBlue "
#: ../doc/changelog.py:4
msgid "## changes in this version"
msgstr "## Изменения в этой версии"
#: ../doc/changelog.py:5
msgid ""
"* A new soundpack has been added to TWBlue. Thanks to [@ValeriaK305](https://twitter.com/ValeriaK305)"
msgstr ""
"* Добавлен новый звуковой пакет в TWBlue. спасибо [@ValeriaK305](https://twitter.com/ValeriaK305) "
#: ../doc/changelog.py:6
msgid ""
"* In the Windows 10 keymap, we have changed some default keystrokes as windows now uses some "
"previously assigned shortcuts:"
msgstr ""
"* В списке горячих клавиш для Windows 10 изменены некоторые сочетания, использовавшиеся по "
"умолчанию, поскольку теперь они используются windows:"
#: ../doc/changelog.py:7
msgid " * For liking a tweet, press Control+Windows+alt+f"
msgstr " * Чтобы добавить твит в список понравившиеся, нажмите Control+Windows+alt+f"
#: ../doc/changelog.py:8
msgid " * for opening a trends buffer, press control+Windows+T"
msgstr " * Чтобы просмотреть тренды, нажмите control+Windows+T"
#: ../doc/changelog.py:9
msgid ""
"* TWBlue has received improvements in some functions for handling extended tweets, long tweets and "
"quoted retweets. It should render some tweets in a better way."
msgstr ""
"* В TWBlue улучшена обработка расширенных твитов, длинных твитов и цитируемых ретвитов. Теперь они "
"отображаются более корректно."
#: ../doc/changelog.py:10
msgid ""
"* In the spell checker module, there is a new button that will allow you to add your own words to "
"your personal dictionary so the module won't mark them as mispelled the next time you will check "
"spelling."
msgstr ""
"* В модуле проверки орфографии появилась новая кнопка, позволяющая добавлять собственные слова в "
"личный словарь, чтобы при следующей проверке орфографии они не помечались как неправиьно написанные."
#: ../doc/changelog.py:11
msgid ""
"* Added filtering capabilities to TWBlue. ([#102](https://github.com/manuelcortez/TWBlue/issues/102))"
msgstr ""
"* В TWBlue добавлена возможность использование фильтров. ([#102](https://github.com/manuelcortez/"
"TWBlue/issues/102))"
#: ../doc/changelog.py:12
msgid ""
" * You can create a filter for the current buffer from the buffer menu in the menu bar. At this "
"moment, invisible interface does not have any shorcut for this."
msgstr ""
" * Создать фильтр для текущего буфера можно в меню буфер главного меню. В невидимом интерфейсе "
"пока нет сочетания клавиш для этого действия."
#: ../doc/changelog.py:13
msgid " * You can create filters by word or languages."
msgstr " * Создавать фильтры можно по слову или языкам."
#: ../doc/changelog.py:14
msgid ""
" * For deleting already created filters, you can go to the filter manager in the buffer menu and "
"delete the filters you won't need."
msgstr ""
" * Чтобы удалить уже созданный фильтр, войдите в пункт управление фильтрами меню Буфер и удалите "
"ненужное."
#: ../doc/changelog.py:15
msgid ""
"* Links should be opened properly in quoted tweets ([#167,](https://github.com/manuelcortez/TWBlue/"
"issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))"
msgstr ""
"* Ссылки теперь должны корректно открываться в цитируемых ретвитах ([#167,](https://github.com/"
"manuelcortez/TWBlue/issues/167) [#184](https://github.com/manuelcortez/TWBlue/issues/184))* Все "
"упомянутые пользователи должны отображаться корректно в длинных твитах Twishort. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
#: ../doc/changelog.py:16
msgid "* Increased display name limit up to 50 characters in update profile dialog."
msgstr "* В диалоге обновления профиля поле ввода имени увеличено до 50 символов."
#: ../doc/changelog.py:17
msgid ""
"* When authorising an account, you will see a dialogue with a cancel button, in case you want to "
"abort the process. Also, NVDA will not be blocked when the process starts. ([#101](https://github."
"com/manuelcortez/TWBlue/issues/101))"
msgstr ""
"* При авторизации аккаунта, вы увидите диалоговое окно с кнопкой Отмена, на случай, если вы захотите "
"отменить процесс. NVDA больше не блокируется во время начала авторизации. ([#101](https://github.com/"
"manuelcortez/TWBlue/issues/101))"
#: ../doc/changelog.py:18
msgid ""
"* In the translator module, the list of available languages is fetched automatically from the "
"provider. That means all of these languages will work and there will not be inconsistencies. Also "
"we've removed the first combo box, because the language is detected automatically by Yandex'S API. "
"([#153](https://github.com/manuelcortez/TWBlue/issues/153))"
msgstr ""
"* В модуле переводчика список доступных языков теперь автоматически загружается с сервера поставщика "
"услуг. Это значит, что все языки из списка рабочие и с переводом не должно возникать проблем. Также "
"мы удалили первый комбинированный список, поскольку язык оригинала автоматически определяется "
"приложением Яндекса. ([#153](https://github.com/manuelcortez/TWBlue/issues/153))"
#: ../doc/changelog.py:19
msgid ""
"* Trending topics, searches and conversation buffers will use mute settings set for the session in "
"wich they were opened. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))"
msgstr ""
"* Для буферов трендовых тем, поиска и бесед теперь используются те же настройки отключения, что и "
"для сессии, в которой они были открыты. ([#157](https://github.com/manuelcortez/TWBlue/issues/157))* "
"TWBlue выдаст ошибку при попытке просмотра ленты пользователя, аккаунт которого был заморожен. "
"([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
#: ../doc/changelog.py:20
msgid ""
"* The Tweet limit is now 280 characters lenght instead 140. It means you can tweet longer tweets. "
"([#172](https://github.com/manuelcortez/TWBlue/issues/172))"
msgstr ""
"* Длина твита теперь составляет 280 символов вместо 140. Это значит, что теперь вы можете писать "
"более развернутые твиты. ([#172](https://github.com/manuelcortez/TWBlue/issues/172))* Сервис TwUp "
"был удалён, так как больше не существует. ([#112](https://github.com/manuelcortez/TWBlue/issues/112))"
#: ../doc/changelog.py:21
msgid ""
"* Per popular request, Status for mention to all and long tweet checkboxes will not be saved in "
"settings. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))"
msgstr ""
"* По многочисленным просьбам, состояние флажков Упомянуть всех и Длинный твит больше не сохраняется "
"в настройках. ([#170](https://github.com/manuelcortez/TWBlue/issues/170))"
#: ../doc/changelog.py:22
msgid ""
"* Fixed a problem that was making TWBlue unable to start if it was being ran in Windows with Serbian "
"language. ([#175](https://github.com/manuelcortez/TWBlue/issues/175))"
msgstr ""
"* Исправлена ошибка, непозволявшая запускать TWBlue в Windows на сербском языке. ([#175](https://"
"github.com/manuelcortez/TWBlue/issues/175))"
#: ../doc/changelog.py:23
msgid "* Added Danish translation."
msgstr "* Обновлён датский перевод"
#: ../doc/changelog.py:24
msgid ""
"* And more. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://github.com/"
"manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/issues/159) [#173,]"
"(https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/manuelcortez/TWBlue/"
"issues/174) [#176,](https://github.com/manuelcortez/TWBlue/issues/176))"
msgstr ""
"* И другие исправления. ([#156,](https://github.com/manuelcortez/TWBlue/issues/156) [#163,](https://"
"github.com/manuelcortez/TWBlue/issues/163) [#159,](https://github.com/manuelcortez/TWBlue/"
"issues/159) [#173,](https://github.com/manuelcortez/TWBlue/issues/173) [#174,](https://github.com/"
"manuelcortez/TWBlue/issues/174) [#176,](https://github.com/manuelcortez/TWBlue/issues/176))"
#: ../doc/changelog.py:25
msgid "## changes in version 0.91 and 0.92"
msgstr "## Изменения в версиях 0.91 и 0.92"
#: ../doc/changelog.py:26
msgid ""
"* Fixed incorrect unicode handling when copying tweet to clipboard. ([#150](https://github.com/"
"manuelcortez/TWBlue/issues/150))"
msgstr ""
"* Исправлено некорректное отображение символов Юникод при копировании твита в буфер обмена. ([#150]"
"(https://github.com/manuelcortez/TWBlue/issues/150))"
#: ../doc/changelog.py:27
msgid ""
"* TWBlue will show an error when trying to open a timeline for a suspended user. ([#128](https://"
"github.com/manuelcortez/TWBlue/issues/128))"
msgstr ""
"* TWBlue выдаст ошибку при попытке просмотра ленты пользователя, аккаунт которого был заморожен. "
"([#128](https://github.com/manuelcortez/TWBlue/issues/128))"
#: ../doc/changelog.py:28
msgid ""
"* Removed TwUp as service as it no longer exists. ([#112](https://github.com/manuelcortez/TWBlue/"
"issues/112))"
msgstr ""
"* Сервис TwUp был удалён, так как больше не существует. ([#112](https://github.com/manuelcortez/"
"TWBlue/issues/112))"
#: ../doc/changelog.py:29
msgid ""
"* Release audio files after uploading them. ([#130](https://github.com/manuelcortez/TWBlue/"
"issues/130))"
msgstr ""
"* Теперь, после выгрузки аудио файлов, TWBlue закрывает их, так что они могут быть использованы, не "
"требуя перезапуска программы. ([#130](https://github.com/manuelcortez/TWBlue/issues/130))"
#: ../doc/changelog.py:30
msgid ""
"* Now TWBlue will use Yandex's translation services instead microsoft translator. ([#132](https://"
"github.com/manuelcortez/TWBlue/issues/132))"
msgstr ""
"* Теперь для функций перевода TWBlue используется Яндекс переводчик, а не Microsoft. ([#132](https://"
"github.com/manuelcortez/TWBlue/issues/132))"
#: ../doc/changelog.py:31
msgid ""
"* SndUp users will be able to upload audio in their account by using their API Key again. ([#134]"
"(https://github.com/manuelcortez/TWBlue/issues/134))"
msgstr ""
"* Пользователи SndUp смогут загружать аудио используя их API ключ. ([#134](https://github.com/"
"manuelcortez/TWBlue/issues/134))"
#: ../doc/changelog.py:32
msgid ""
"* old tweets shouldn't be added as new items in buffers. ([#116,](https://github.com/manuelcortez/"
"TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/issues/133))"
msgstr ""
"* Старые твиты не будут появляться в буферах как если бы это были новые элементы. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#133](https://github.com/manuelcortez/TWBlue/"
"issues/133))"
#: ../doc/changelog.py:33
msgid ""
"* All mentionned users should be displayed correctly in Twishort's long tweets. ([#116,](https://"
"github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
msgstr ""
"* Все упомянутые пользователи должны отображаться корректно в длинных твитах Twishort. ([#116,]"
"(https://github.com/manuelcortez/TWBlue/issues/116)) ([#135](https://github.com/manuelcortez/TWBlue/"
"issues/135))"
#: ../doc/changelog.py:34
msgid ""
"* It is possible to select a language for OCR service from the extras panel, in the account settings "
"dialogue. You can, however, set this to detect automatically. OCR should work better in languages "
"with special characters or non-english symbols. ([#107](https://github.com/manuelcortez/TWBlue/"
"issues/107))"
msgstr ""
"* Теперь можно выбрать язык OCR во вкладке Дополнительно, в настройках учётной записи. Также можно "
"установить автоматическое определение. OCR должен работать корректнее с не-латинскими символами. "
"([#107](https://github.com/manuelcortez/TWBlue/issues/107))"
#: ../doc/changelog.py:35
msgid ""
"* Fixed a problem with JAWS for Windows and TWBlue. Now JAWS will work normally in this update. "
"[#100](https://github.com/manuelcortez/twblue/issues/100)"
msgstr ""
"* Исправлен баг с работой Jaws при использовании с TWBlue на Windows. Теперь Jaws должен работать "
"нормально. [#100](https://github.com/manuelcortez/twblue/issues/100)"
#: ../doc/changelog.py:36
msgid "* And more ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
msgstr "* Подробнее ([#136,](https://github.com/manuelcortez/TWBlue/issues/136))"
#: ../doc/changelog.py:37
msgid "## Changes in version 0.90"
msgstr "## Изменения в версии 0.90"
#: ../doc/changelog.py:38
msgid ""
"* Fixed a bug in long tweet parsing that was making TWBlue to disconnect the streaming API. ([#103]"
"(https://github.com/manuelcortez/TWBlue/issues/103))"
msgstr ""
"* Исправлена ошибка в работе TWBlue с некоторыми из длинных твитов, которая вынуждала клиент "
"отключать поток API. ([#103](https://github.com/manuelcortez/TWBlue/issues/103))"
#: ../doc/changelog.py:39
msgid ""
"* Now OCR will work in images from retweets. It fixes a bug where TWBlue was detecting images but "
"couldn't apply OCR on them. ([#105](https://github.com/manuelcortez/TWBlue/issues/105))"
msgstr ""
"* Теперь OCR сможет работать и с изображениями в ретвитах. Т.е., баг, где TWBlue обнаруживал "
"изображения, но не мог применить OCR, исправлен. ([#105](https://github.com/manuelcortez/TWBlue/"
"issues/105))"
#: ../doc/changelog.py:40
msgid ""
"* TWBlue won't try to load tweets already deleted, made with Twishort. Before, if someone posted a "
"long tweet but deleted it in the Twishort's site, TWBlue was trying to load the tweet and it was "
"causing problems in all the client. ([#113](https://github.com/manuelcortez/TWBlue/issues/113))"
msgstr ""
"* TWBlue не будет пытаться загрузить уже удалённые твиты, сделанные с помощью Twishort. Ранее, если "
"кто-либо опубликовал длинный твит, но удалил его на сайте Twishort, TWBlue пытался загрузить твит "
"тем самым, создавая проблемы для сессии вцелом. ([#113](https://github.com/manuelcortez/TWBlue/"
"issues/113))"
#: ../doc/changelog.py:41
msgid ""
"* TWBlue shows an error message when you try to view the profile of an user that does not exist or "
"has been suspended. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115](https://"
"github.com/manuelcortez/TWBlue/issues/115))"
msgstr ""
"* TWBlue выдаст ошибку при попытке просмотреть профиль пользователя, которого не существует, или "
"аккаунт которого был заморожен. ([#114,](https://github.com/manuelcortez/TWBlue/issues/114) [#115]"
"(https://github.com/manuelcortez/TWBlue/issues/115))"
#: ../doc/changelog.py:42
msgid ""
"* The spellchecker module should select the right language when is set to \"user default\". ([#117]"
"(https://github.com/manuelcortez/TWBlue/issues/117))"
msgstr ""
"* Модуль проверки орфографии теперь выбирает язык правильно, если установлен на \"по умолчанию\". "
"([#117](https://github.com/manuelcortez/TWBlue/issues/117))"
#: ../doc/changelog.py:43
msgid ""
"* Image description will be displayed in retweets too. ([#119](https://github.com/manuelcortez/"
"TWBlue/issues/119))"
msgstr ""
"* Описание изображений также будет отображаться и в ретвитах. ([#119](https://github.com/"
"manuelcortez/TWBlue/issues/119))"
#: ../doc/changelog.py:44
msgid ""
"* When reading a long tweet, you shouldn't read strange entities anymore. ([#118](https://github.com/"
"manuelcortez/twblue/issues/118))"
msgstr ""
"* При чтении длинных твитов, смайлы будут отображаться должным образом, никаких странных символов. "
"([#118](https://github.com/manuelcortez/twblue/issues/118))"
#: ../doc/changelog.py:45
msgid ""
"* TWBlue will not try to load timelines if the user is blocking you. ([#125](https://github.com/"
"manuelcortez/twblue/issues/125))"
msgstr ""
"* TWBlue больше не будет загружать ленты заблокировавших вас пользователей. ([#125](https://github."
"com/manuelcortez/twblue/issues/125))"
#: ../doc/changelog.py:46
msgid "## Changes in version 0.88 and 0.89"
msgstr "## Изменения в версиях 0.88 и 0.89"
#: ../doc/changelog.py:47
msgid "* Fixed more issues with streams and reconnections."
msgstr "* Исправлены ошибки подключения к серверу и воспроизведения потоковых файлов."
#: ../doc/changelog.py:48
msgid "* newer updates will indicate the release date in the updater."
msgstr "* Теперь в диалоге обновления отображается дата выхода новой версии."
#: ../doc/changelog.py:49
msgid "* Changes to keystrokes are reflected in keystroke editor automatically."
msgstr "* Изменения клавиатурных команд автоматически отображаются в редакторе горячих клавиш."
#: ../doc/changelog.py:50
msgid ""
"* In replies with multiple users, if the mention to all checkbox is unchecked, you will see a "
"checkbox per user so you will be able to control who will be mentioned in the reply."
msgstr ""
"* В диалоге ответа нескольким пользователям, если не отмечен флажок Упомянуть всех, появится флажок "
"для каждого пользователя, чтобы можно было выбирать кого именно упоминать в ответе."
#: ../doc/changelog.py:51
msgid ""
"* Fixed a bug that caused duplicated user mentions in replies when the tweet was made with Twishort."
msgstr ""
"* Исправлена ошибка, приводившая к двойному упоминанию пользователей в ответах, отправленных через "
"Twishort."
#: ../doc/changelog.py:52
msgid ""
"* Retweets should be displayed normally again when the originating tweet is a Twishort's long tweet."
msgstr "* Снова должны отображаться правильно ретвиты длинных твитов, созданных через Twishort."
#: ../doc/changelog.py:53
msgid ""
"* Changed the way TWBlue saves user timelines in configuration. Now it uses user IDS instead "
"usernames. With user IDS, if an user changes the username, TWBlue still will create his/her "
"timeline. This was not possible by using usernames."
msgstr ""
"* Изменено сохранение пользовательских лент в настройках TWBlue. Теперь вместо имени пользователя "
"используется его ID. Если пользователь изменит имя, TWBlue все равно будет создавать его / ее ленту, "
"используя пользовательский ID. При использовании имен пользователей, это было невозможно."
#: ../doc/changelog.py:54
msgid ""
"* Added a new setting in the account settings dialogue that makes TWBlue to show twitter usernames "
"instead the full name."
msgstr ""
"* В диалоговое окно настроек учетной записи добавлена новая настройка, позволяющая TWBlue показывать "
"имя пользователя в Твиттере вместо полного имени."
#: ../doc/changelog.py:55
msgid ""
"* Added OCR in twitter pictures. There is a new item in the tweet menu that allows you to extract "
"and display text in images. Also the keystroke alt+Win+o has been added for the same purpose from "
"the invisible interface."
msgstr ""
"* Добавлена функция оптического распознавания текста для изображений в Твиттере. В меню Твит "
"появился новый пункт, позволяющий получить и прочесть текст с картинки. В невидимом интерфейсе для "
"этой же цели добавлено сочетание клавиш Альт+Win+o."
#: ../doc/changelog.py:56
msgid "* Now TWBlue will play a sound when the focused tweet contains images."
msgstr "* Теперь, если в твите содержатся изображения, TWBlue будет воспроизводить звук."
#: ../doc/changelog.py:57
msgid "* Your own quoted tweets will not appear in the mentions buffer anymore."
msgstr "* Ваши собственные процитированные твиты больше не будут появляться в буфере Упоминания."
#: ../doc/changelog.py:58
msgid ""
"* The config file is saved in a different way, it should fix the bug where TWBlue needs to be "
"restarted after the config folder is deleted."
msgstr ""
"* Теперь по-другому сохраняется файл конфигурации, Это должно исправить ошибку, при которой "
"приходилось перезапускать TWBlue после удаления папки конфигурации."
#: ../doc/changelog.py:59
msgid "* Mentioning people from friends or followers buffers works again."
msgstr "* Снова работает упоминание пользователей из лент читающих и читаемых."
#: ../doc/changelog.py:60
msgid ""
"* Support for proxy servers has been improved. Now TWBlue supports http, https, socks4 and socks5 "
"proxies, with and without autentication."
msgstr ""
"* Улучшена поддержка Прокси серверов. TWBlue теперь поддерживает прокси http, https, socks4 и socks5 "
"с аутентификацией и без нее."
#: ../doc/changelog.py:61
msgid "## Changes in version 0.87"
msgstr "## Изменения в версии 0.87"
#: ../doc/changelog.py:62
msgid "* Fixed stream connection errors."
msgstr "* Исправлены ошибки подключения к потоку."
#: ../doc/changelog.py:63
msgid ""
"* Now TWBlue can handle properly a reply to the sender without including all other mentioned users."
msgstr ""
"* TWBlue теперь правильно обрабатывает ответы отправителю, в которые не включены другие упомянутые "
"пользователи."
#: ../doc/changelog.py:64
msgid "* Updated translations."
msgstr "* Обновлены переводы."
#: ../doc/changelog.py:65
msgid ""
"* The status of the mention to all checkbox will be remembered the next time you reply to multiple "
"users."
msgstr ""
"* При последующем ответе нескольким пользователям запоминается положение флажка Упомянуть всех."
#: ../doc/changelog.py:66
msgid "## Changes in version 0.86"
msgstr "## Изменения в версии 0.86"
#: ../doc/changelog.py:67
msgid ""
"* Fixed a very important security issue. Now TWBlue will send tweets to twishort without using any "
"other server."
msgstr ""
"* Решена серьезная проблема безопасности. Теперь TWBlue будет отправлять твиты на twishort напрямую, "
"не используя другие серверы."
#: ../doc/changelog.py:68
msgid ""
"* When you add a comment to a tweet, it will be sent as a quoted tweet, even if your reply plus the "
"original tweet is not exceeding 140 characters."
msgstr ""
"* При добавлении комментария к твиту, он будет отправлен как процитированный, даже если ваш ответ "
"плюс оригинальный твит не превышают 140 символов."
#: ../doc/changelog.py:69
msgid "* Updated windows 10 keymap for reflecting changes made in the last windows 10 build."
msgstr ""
"* В соответствии с изменениями, внесенными в последнюю версию windows 10, обновлен список "
"клавиатурных команд для windows 10."
#: ../doc/changelog.py:70
msgid "* Added last changes in the twitter API."
msgstr "* Добавлены последние изменения API Твиттера."
#: ../doc/changelog.py:71
msgid ""
"* When replying, it will not show the twitter username in the text box. When you send the tweet, the "
"username will be added automatically."
msgstr ""
"* При ответе, в поле ввода текста теперь не отображается имя пользователя. Оно будет добавлено "
"автоматически при отправке твита."
#: ../doc/changelog.py:72
msgid ""
"* When replying to multiple users, you'll have a checkbox instead a button for mentioning all "
"people. If this is checked, twitter usernames will be added automatically when you send your reply."
msgstr ""
"* При ответе нескольким пользователям, вместо кнопки Упомянуть всех, появился флажок. Если он "
"отмечен, имена пользователей будут подставляться в ответ автоматически при отправке твита."
#: ../doc/changelog.py:73
msgid "## Changes in version 0.85"
msgstr "## Изменения в версии 0.85"
#: ../doc/changelog.py:74
msgid "* Long and quoted tweets should be displayed properly In lists."
msgstr "* Длинные и цитируемые твиты должны корректно отображаться в списках."
#: ../doc/changelog.py:75
msgid "* The connection should be more stable."
msgstr "* соединение с сервером должно быть более стабильным."
#: ../doc/changelog.py:76
msgid "* Added an autostart option in the global settings dialogue."
msgstr "* В диалог Основные настройки добавлена опция автозапуска."
#: ../doc/changelog.py:77
msgid "* Updated translation."
msgstr "* Обновлены переводы."
#: ../doc/changelog.py:78
msgid "* Updated russian documentation."
msgstr "* Обновлена документация на русском языке."
#: ../doc/changelog.py:79
msgid "* Tweets in cached database should be loaded properly."
msgstr "* Корректно должны загружаться твиты из кэша."
#: ../doc/changelog.py:80
msgid "* Added some missed dictionaries for spelling correction."
msgstr "* Добавлены некоторые отсутствовавшие словари для проверки орфографии."
#: ../doc/changelog.py:81
msgid "* Timelines, lists and other buffer should be created in the right order at startup."
msgstr "* При запуске программы ленты, списки и другие буферы должны создаваться в правильном порядке."
#: ../doc/changelog.py:82
msgid "## Changes in version 0.84 "
msgstr "## Изменения в версии 0.84 "
#: ../doc/changelog.py:83
msgid "* More improvements in quoted and long tweets."
msgstr "* Изменения в обработке длинных и процитированных твитов."
#: ../doc/changelog.py:84
msgid "* Updated translations: Russian, Italian, French, Romanian, Galician and Finnish."
msgstr "* Обновлены переводы: русский, итальянский, французский, румынский, галисийский и финский"
#: ../doc/changelog.py:85
msgid ""
"* Improvements in the audio uploader module: Now it can handle audio with non-english characters."
msgstr ""
"* Изменения в модуле загрузки аудио: Теперь он может обрабатывать аудио, содержащие символы, "
"отличные от латинского алфавита."
#: ../doc/changelog.py:86
msgid ""
"* the title of the window should be updated properly when spellcheck, translate or shorten/unshorten "
"URL buttons are pressed."
msgstr ""
"* При нажатии кнопок Проверка орфографии, перевести или Сократить /развернуть ссылку должен "
"обновляться заголовок окна."
#: ../doc/changelog.py:87
msgid "* the bug that changes the selected tweet in the home timeline shouldn't be happening so often."
msgstr ""
"* Гораздо реже должна появляться ошибка, приводящая к изменению выделения твита в главной ленте."
#: ../doc/changelog.py:88
msgid "## Changes in version 0.82 and 0.83"
msgstr "## Изменения в версиях 0.82 и 0.83"
#: ../doc/changelog.py:89
msgid ""
"* If the tweet source (client) is an application with unicode characters (example: "
"\\321\\200\\320\\276\\321\\201\\321\\201\\320\\270\\320\\271\\321\\201\\320\\272\\320\\260\\321\\217 "
"\\320\\263\\320\\260\\320\\267\\320\\265\\321\\202\\320\\260) it will not break the tweet displayer."
msgstr ""
"* Если в названии источника твита (клиента) содержатся символы Юникод (например: российская газета) "
"не будет появляться ошибка при показе твита."
#: ../doc/changelog.py:90
msgid ""
"* Added a new field for image description in tweet displayer. When available, it will show "
"description for images posted in tweets."
msgstr ""
"* В окно показа твита добавлено новое поле для описания изображений. При наличии описаний "
"изображений, размещенных в твитах, они будут отображены."
#: ../doc/changelog.py:91
msgid ""
"* users can add image descriptions to their photos. When uploading an image, a dialog will show for "
"asking a description."
msgstr ""
"* Пользователи могут добавлять описания к своим фотографиям. При загрузке изображения будет "
"появляться диалог, предлагающий ввести описание."
#: ../doc/changelog.py:92
msgid "* Redesigned upload image dialog."
msgstr "* Переделано диалоговое окно загрузки изображений."
#: ../doc/changelog.py:93
msgid "* Fixed photo uploads when posting tweets."
msgstr "* Исправлена ошибка загрузки фотографий при создании твитов."
#: ../doc/changelog.py:94
msgid ""
"* When getting tweets for a conversation, ignores deleted tweets or some errors, now TWBlue will try "
"to get as much tweets as possible, even if some of these are no longer available."
msgstr ""
"* Если при получении твитов для диалога игнорируются удаленные твиты, либо некоторые ошибки, TWBlue "
"теперь будет пытаться загрузить столько твитов, сколько возможно, даже если некоторые из них уже не "
"существуют."
#: ../doc/changelog.py:95
msgid "* Added audio playback from soundcloud."
msgstr "* Добавлена возможность воспроизведения файлов с soundcloud."
#: ../doc/changelog.py:96
msgid "* Now the session mute option don't makes the screen reader speaks."
msgstr ""
"* Теперь при отключении звука в сессии, программа экранного доступа не будет сообщать о событиях, "
"происходящих в данной сессии."
#: ../doc/changelog.py:97
msgid "* Fixed the direct message dialog. Now it should be displayed properly."
msgstr ""
"* Исправлена ошибка касающаяся личных сообщений, теперь диалоговое окно для данной функции должно "
"отображаться правильно."
#: ../doc/changelog.py:98
msgid ""
"* when a tweet is deleted in twitter, TWBlue should reflect this change and delete that tweet in "
"every buffer it is displayed."
msgstr ""
"* При удалении твита из твиттера, TWBlue также удалит его из всех буферов где этот твит показывался "
"ранее."
#: ../doc/changelog.py:99
msgid ""
"* If your session is broken, TWBlue will be able to remove it automatically instead just crashing."
msgstr ""
"* Если сессия неожиданно завершилась, TWBlue автоматически удалит ее, не выдавая никаких ошибок."
#: ../doc/changelog.py:100
msgid "* audio uploader should display the current progress."
msgstr "* аудио загрузчик должен отображать текущий прогресс."
#: ../doc/changelog.py:101
msgid ""
"* users can disable the check for updates feature at startup from the general tab, in the global "
"settings dialogue."
msgstr ""
"* Пользователи могут отключить автоматическую проверку обновлений при запуске клиента во вкладке "
"общее, в основных настройках."
#: ../doc/changelog.py:102
msgid "* The invisible interface and the window should be synchronized when the client reconnects."
msgstr "* Невидимый интерфейс и окно программы будут синхронизироваться при перезапуске клиента."
#: ../doc/changelog.py:103
msgid "* The documentation option in the systray icon should be enabled."
msgstr "* В меню иконки, расположенной в системной области теперь доступна опция показа документации."
#: ../doc/changelog.py:104
msgid "* In trending buffers, you can press enter for posting a tweet about the focused trend."
msgstr "* В буфере трендов, вы можете нажать enter чтобы опубликовать твит о выбранном тренде."
#: ../doc/changelog.py:105
msgid ""
"* Updated russian documentation and main program interface (thanks to Natalia Hedlund "
"(\\320\\235\\320\\260\\321\\202\\320\\260\\320\\273\\321\\214\\321\\217 "
"\\320\\245\\320\\265\\320\\264\\320\\273\\321\\203\\320\\275\\320\\264), [@lifestar_n](https://"
"twitter.com/lifestar_n) in twitter)"
msgstr ""
"* Обновлены русская документация и интерфейс программы (Спасибо (Наталье Хедлунд), [@lifestar]"
"(https://twitter.com/lifestar) в твиттере)"
#: ../doc/changelog.py:106
msgid "* updated translations."
msgstr "* Обновлены переводы."
#: ../doc/changelog.py:107
msgid "## Changes in Version 0.81"
msgstr "## Изменения в версии 0.81"
#: ../doc/changelog.py:108
msgid "* Updated translations"
msgstr "* Обновлены переводы."
#: ../doc/changelog.py:109
msgid ""
"* The updater module has received some improvements. Now it includes a Mirror URL for checking "
"updates if the main URL is not available at the moment. If something is wrong and both locations "
"don't work, the program will start anyway."
msgstr ""
"* Теперь, при запуске клиента, если главный адрес, предназначенный для проверки обновлений, будет "
"недоступен, клиент попытается использовать другой предназначенный для этого действия адрес. Если же "
"оба адреса недоступны, программа запустится в любом случае."
#: ../doc/changelog.py:110
msgid "* some GUI elements now use keyboard shortcuts for common actions."
msgstr ""
"* Теперь возможно использование клавиатурных команд для стандартных действий в некоторых элементах "
"графического интерфейса."
#: ../doc/changelog.py:111
msgid "* fixed a bug in the geolocation dialog."
msgstr "* Исправлена ошибка касающаяся геолокаций."
#: ../doc/changelog.py:112
msgid "* the chicken nugget keymap should work properly."
msgstr "* Список клавиатурных команд chicken nugget теперь работает нормально."
#: ../doc/changelog.py:113
msgid ""
"* Added a new soundpack to the default installation of TWBlue, thanks to [@Deng90](https://twitter."
"com/deng90)"
msgstr ""
"* Добавлен новый звуковой пакет в список по умолчанию, спасибо [@Deng90](https://twitter.com/deng90)"
#: ../doc/changelog.py:114
msgid "* Now the changelog is written in an html File."
msgstr "* Теперь список изменений написан на html"
#: ../doc/changelog.py:115
msgid "* Added some missed dictionaries in last version for the spell checking feature."
msgstr "* В последней версии, добавлены недостающие словари для функции проверки орфографии"
#: ../doc/changelog.py:116
msgid ""
"* Trimmed the beginnings of the sounds in the default soundpack. Thanks to [@masonasons](https://"
"github.com/masonasons)"
msgstr ""
"* Тишина, бывшая в начале звуков из звукового пакета по умолчанию, удалена. Спасибо [@masonasons]"
"(https://github.com/masonasons)"
#: ../doc/changelog.py:117
msgid ""
"* Added Opus support for sound playback in TWBlue. Thanks to [@masonasons](https://github.com/"
"masonasons)"
msgstr ""
"* Теперь клиент поддерживает воспроизведение файлов формата Opus, спасибо [@masonasons](https://"
"github.com/masonasons)"
#: ../doc/changelog.py:118
msgid ""
"* Added a source field in view tweet dialogue. Thanks to [@masonasons](https://github.com/masonasons)"
msgstr ""
"* При просмотре твита теперь возможно увидить источник, с которого тот был отправлен, спасибо "
"[@masonasons](https://github.com/masonasons)"
#: ../doc/changelog.py:119
msgid "* You can load previous items in followers and friend buffers for others."
msgstr "* Возможен просмотр предыдущих элементов в буфере читающих и читаемых."
#: ../doc/changelog.py:120
msgid ""
"* The Spell Checker dialogue should not display an error message when you have set \"default language"
"\" in the global settings dialogue if your language is supported [#168](http://twblue.es/bugs/view."
"php?id=168)"
msgstr ""
"* При проверке орфографии теперь не должна появляться ошибка, если в основных настройках установлен "
"язык по умолчанию, и данный язык поддерживается клиентом."
#: ../doc/changelog.py:121
msgid "* Updated romanian translation."
msgstr "* Обновлён румынский перевод"
#: ../doc/changelog.py:122
msgid "* Some code cleanups."
msgstr "* Удалено лишнее изх кода."
#: ../doc/changelog.py:123
msgid "* The bug reports feature is fully operational again."
msgstr "* Функция Сообщить об ошибке сново работает."
#: ../doc/changelog.py:124
msgid "* TWBlue should work again for users that contains special characters in windows usernames."
msgstr ""
"* TWBlue Должен снова работать у пользователей, логины которых в windows содержат специальные "
"символы."
#: ../doc/changelog.py:125
msgid "* Added more options for the tweet searches."
msgstr "* Добавлены дополнительные параметры для поиска."
#: ../doc/changelog.py:126
msgid "* Added play_audio to the keymap editor."
msgstr "* в редактор горячих клавиш добавлена команда воспроизвести_аудио."
#: ../doc/changelog.py:127
msgid "* Windows key is no longer required in the keymap editor"
msgstr "* Больше не обязательно использование клавиши Windows при редактировании клавиатурных команд."
#: ../doc/changelog.py:128
msgid "* Switched to the Microsoft translator."
msgstr "* В клиенте теперь используется Microsoft переводчик."
#: ../doc/changelog.py:129
msgid ""
"* You can update the current buffer by pressing ctrl+win+shift+u in the default keymap or in the "
"buffer menu."
msgstr ""
"* Теперь можно обновлять буфер нажав ctrl+win+shift+u, команду из списка клавиатурных команд по "
"умолчанию, или с помощью меню буфер, выбрав соответствующий пункт."
#: ../doc/changelog.py:130
msgid "* Changed some keystrokes in the windows 10 default keymap"
msgstr "* Внесены некоторые изменения в список клавиатурных команд windows 10"
#: ../doc/changelog.py:131
msgid "* New followers and friends buffer for user timelines."
msgstr "* В пользовательских лентах новые буферы Читающие и читаемые."
#: ../doc/changelog.py:132
msgid "---"
msgstr "---"
#: ../doc/changelog.py:133
msgid "Copyright \\302\\251 2014-2017, Manuel Cortez."
msgstr "Авторское право © 2014-2017, Мануэль Кортез."

File diff suppressed because it is too large Load Diff

353
doc/manual.md Normal file
View File

@@ -0,0 +1,353 @@
Documentation for TWBlue - 0.88
## Table of contents
[TOC]
## Warning!
You are reading documentation produced for a program still in development. The object of this manual is to explain some details of the operation of the program. Bear in mind that as the software is in the process of active development, parts of this user guide may change in the near future, so it is advisable to keep checking from time to time to avoid missing important information.
If you want to see what has changed from the previous version, [read the list of updates here.](changes.html)
## Introduction
TWBlue is an application to make Twitter simple and fast, while using as few resources as possible. With TWBlue, you can do things like the following:
* Tweet, reply to, retweet and delete tweets,
* Like and unlike a tweet,
* Send and delete direct messages,
* See your friends and followers,
* Follow, unfollow, report and block a user,
* Open a user's timeline to see their tweets separately,
* Open URLs from a tweet or direct message,
* Play several types of audio files from addresses,
* And more.
## Usage
Twitter is a social networking or micro-blogging tool which allows you to compose short status updates of your activities in 140 characters or less. Twitter is a way for friends, family and co-workers to communicate and stay connected through the exchange of quick, frequent messages. You can restrict delivery of updates to those in your circle of friends or, by default, allow anyone to access them.
You can monitor the status of updates from your friends, family or co-workers (known as following), and they in turn can read any updates you create, (known as followers). The updates are referred to as Tweets. The Tweets are posted to your Twitter profile or Blog and are searchable using Twitter Search.
In order to use TWBlue, you must first have created an account on the Twitter website. The process for signing up for a Twitter account is very accessible. During the account registration, you will need to choose a Twitter username. This serves two purposes. This is the method through which people will comunicate with you, but most importantly, your username and password will be required to connect TWBlue to your Twitter account. We suggest you choose a username which is memorable both to you and the people you hope will follow you.
We'll start from the premise that you have a Twitter account with its corresponding username and password.
### Authorising the application
First of all, it's necessary to authorise the program so it can access your Twitter account and act on your behalf. The authorisation process is quite simple, and the program never retains data such as your password. In order to authorise the application, you just need to run the main executable file, called TWBlue.exe (on some computers it may appear simply as TWBlue if Windows Explorer is not set to display file extensions). We suggest you may like to place a Windows shortcut on your Desktop pointing to this executable file for quick and easy location.
You can log into several Twitter accounts simultaneously. The program refers to each Twitter account you have configured as a "Session". If this is the first time you have launched TWBlue, and if no Twitter session exists, you will see the Session Manager. This dialogue box allows you to authorise as many accounts as you wish. If you press the Tab key to reach the "new account" button and activate it by pressing the Space Bar, a dialogue box will advise you that your default internet browser will be opened in order to authorise the application and you will be asked if you would like to continue. Activate the "yes" Button by pressing the letter "Y" so the process may start.
Your default browser will open on the Twitter page to request authorisation. Enter your username and password into the appropriate edit fields if you're not already logged in, select the authorise button, and press it.
Once you've authorised your twitter account, the website will redirect you to a page which will notify you that TWBlue has been authorised successfully. Now you are able to close the page by pressing ALT+F4 which will return you to the Session Manager. On the session list, you will see a new item temporarily called "Authorised account x" -where x is a number. The session name will change once you open that session.
To start running TWBlue, press the Ok button in the Session Manager dialogue. By default, the program starts all the configured sessions automatically, however, you can change this behavior.
If all went well, the application will start playing sounds, indicating your data is being updated.
When the process is finished, by default the program will play another sound, and the screen reader will say "ready" (this behaviour can be configured).
## General concepts
Before starting to describe TWBlue's usage, we'll explain some concepts that will be used extensively throughout this manual.
### Buffer
A buffer is a list of items to manage the data which arrives from Twitter, after being processed by the application. When you configure a new session on TWBlue and start it, many buffers are created. Each of them may contain some of the items which this program works with: Tweets, direct messages, users, trends or events. According to the buffer you are focusing, you will be able to do different actions with these items.
The following is a description for every one of TWBlue's buffers and the kind of items they work with.
* Home: this shows all the tweets on the main timeline. These are the tweets by users you follow.
* Mentions: if a user, whether you follow them or not, mentions you on Twitter, you will find it in this list.
* Direct messages: here you will find the private direct messages you exchange with users who follow you , or with any user, if you allow direct messages from everyone (this setting is configurable from Twitter). This list only shows received messages.
* Sent direct messages: this buffer shows all the direct messages sent from your account.
* Sent tweets: this shows all the tweets sent from your account.
* Likes: here you will see all the tweets you have liked.
* Followers: when users follow you, you'll be able to see them on this buffer, with some of their account details.
* Friends: the same as the previous buffer, but these are the users you follow.
* User timelines: these are buffers you may create. They contain only the tweets by a specific user. They're used so you can see the tweets by a single person and you don't want to look all over your timeline. You may create as many as you like.
* Events: An event is anything that happens on Twitter, such as when someone follows you, when someone adds or removes one of your tweets from their likes list, or when you subscribe to a list. There are many more, but the program shows the most common ones in the events buffer so that you can easily keep track of what is happening on your account.
* Lists: A list is similar to a user timeline, except that you can configure it to contain tweets from multiple users.
* Search: A search buffer contains the results of a search operation.
* User likes: You can have the program create a buffer containing tweets liked by a particular user.
* Trending Topics: a trend buffer shows the top ten most used terms in a geographical region. This region may be a country or a city. Trends are updated every five minutes.
If a tweet contains a URL, you can press enter in the GUI or Control + Windows + Enter in the invisible interface to open it. If it contains audio, you can press Control + Enter or Control + Windows + Alt + Enter to play it, respectively. TWBlue will play a sound if the tweet contains the \#audio hashtag, but there may be tweets which contain audio without this. Finally, if a tweet contains geographical information, you can press Control + Windows + G in the invisible interface to retrieve it.
### Username fields
These fields accept a Twitter username (without the at sign) as the input. They are present in the send direct message and the user actions dialogue boxes. Those dialogues will be discussed later. The initial value of these fields depends on where they were opened from. They are prepopulated with the username of the sender of the focused tweet (if they were opened from the home and sent timelines, from users' timelines or from lists), the sender of the focused direct message (if from the received or sent direct message buffers) or in the focused user (if from the followers' or friends' buffer). If one of those dialogue boxes is opened from a tweet, and if there are more users mentioned in it, you can use the arrow keys to switch between them. Alternatively, you can also type a username.
## The program's interfaces
### The graphical user interface (GUI)
The graphical user interface of TWBlue consists of a window containing:
* a menu bar accomodating six menus (application, tweet, user, buffer, audio and help);
* One tree view,
* One list of items
* Four buttons in most dialogs: Tweet, retweet , reply and direct message.
The actions that are available for every item will be described later.
In summary, the GUI contains two core components. These are the controls you will find while pressing the Tab key within the program's interface, and the different elements present on the menu bar.
#### Buttons in the application
* Tweet: this button opens up a dialogue box to write your tweet. Normal tweets must not exceed 140 characters. However you can press the long tweet checkbox and your tweet will be posted throught Twishort, wich will allow you to write longer tweets (10000 characters). If you write past this limit, a sound will play to warn you. Note that the character count is displayed in the title bar. You may use the shorten and expand URL buttons to comply with the character limit. You can upload a picture, check spelling, attach audio or translate your message by selecting one of the available buttons in the dialogue box. In addition, you can autocomplete the entering of users by pressing Alt + C or the button for that purpose if you have the database of users configured. Press enter to send the tweet. If all goes well, you'll hear a sound confirming it. Otherwise, the screen reader will speak an error message in English describing the problem.
* Retweet: this button retweets the message you're reading. After you press it, if you haven't configured the application not to do so, you'll be asked if you want to add a comment or simply send it as written. If you choose to add a comment, it will post a quoted tweet, that is, the comment with a link to the originating tweet.
* Reply: when you're viewing a tweet, you can reply to the user who sent it by pressing this button. A dialogue will open up similar to the one for tweeting. If there are more users referred to in the tweet, you can press tab and activate the mention to all checkbox, or enabling checkbox for the users you want to mention separately. When you're on the friends or followers lists, the button will be called mention instead.
* Direct message: exactly like sending a tweet, but it's a private message which can only be read by the user you send it to. Press shift-tab twice to see the recipient. If there were other users mentioned in the tweet you were reading, you can arrow up or down to choose which one to send it to, or write the username yourself without the at sign. In addition, you can autocomplete the entering of users by pressing Alt + C or the button for that purpose if you have the database of users configured.
Bear in mind that buttons will appear according to which actions are possible on the list you are browsing. For example, on the home timeline, mentions, sent, likes and user timelines you will see the four buttons, while on the direct messages list you'll only get the direct message and tweet buttons, and on friends and followers lists the direct message, tweet, and mention buttons will be available.
#### Menus
Visually, Towards the top of the main application window, can be found a menu bar which contains many of the same functions as listed in the previous section, together with some additional items. To access the menu bar, press the alt key. You will find six menus listed: application, tweet, user, buffer, audio and help. This section describes the items on each one of them.
##### Application menu
* Manage accounts: Opens a window with all the sessions configured in TWBlue, where you can add new sessions or delete the ones you've already created.
* Update profile: opens a dialogue where you can update your information on Twitter: name, location, website and bio. If you have already set this up the fields will be prefilled with the existing information. Also, you can upload a photo to your profile.
* Hide window: turns off the Graphical User Interface. Read the section on the invisible interface for further details.
* Search: shows a dialogue box where you can search for tweets or users on Twitter.
* Lists Manager: This dialogue box allows you to manage your Twitter lists. In order to use them, you must first create them. Here, you can view, edit, create, delete or, optionally, open them in buffers similar to user timelines.
* Edit keystrokes: this opens a dialogue where you can see and edit the shortcuts used in the invisible interface.
* Account settings: Opens a dialogue box which lets you customize settings for the current account.
* Global settings: Opens a dialogue which lets you configure settings for the entire application.
* Exit: asks whether you want to exit the program. If the answer is yes, it closes the application. If you do not want to be asked for confirmation before exiting, uncheck the checkbox from the global settings dialogue box.
##### Tweet menu
* You will first find the items to tweet, reply and retweet, which are equivalent to the buttons with the same name.
* Like: Adds the tweet you're viewing to your likes list.
* Unlike: removes the tweet from your likes, but not from Twitter.
* Show tweet: opens up a dialogue box where you can read the tweet, direct message, friend or follower which has focus. You can read the text with the arrow keys. It's a similar dialog box as used for composing tweets, without the ability to send the tweet, file attachment and autocompleting capabilities. It does however include a retweets and likes count. If you are in the followers or the friends list, it will only contain a read-only edit box with the information in the focused item and a close button.
* View address: If the selected tweet has geographical information, TWBlue may display a dialogue box where you can read the tweet address. This address is retrieved by sending the geographical coordinates of the tweet to Google maps.
* View conversation: If you are focusing a tweet with a mention, it opens a buffer where you can view the whole conversation.
* Read text in pictures: Attempt to apply OCR technology to the image attached to the tweet. The result will be displayed in another dialog.
* Delete: permanently removes the tweet or direct message which has focus from Twitter and from your lists. Bear in mind that Twitter only allows you to delete tweets you have posted yourself.
##### User menu
* Actions: Opens a dialogue where you can interact with a user. This dialogue box will be populated with the user who sent the tweet or direct message in focus or the selected user in the friends or followers buffer. You can edit it or leave it as is and choose one of the following actions:
* Follow: Follows a user. This means you'll see his/her tweets on your home timeline, and if he/she also follows you, you'll be able to exchange direct messages. You may also send / receive direct messages from each other if you have configured the option to allow direct messages from anyone.
* Unfollow: Stops following a user, which causes you not being able to see his/her tweets on your main timeline neither exchanging direct messages, unless they have enabled receiving direct messages from anyone.
* Mute: While muting someone, TWBlue won't show you nor his/her tweets on your main timeline; neither will you see that person's mentions. But you both will be able to exchange direct messages. The muted user is not informed of this action.
* Unmute: this option allows TWBlue to display the user's tweets and mentions again.
* Block: Blocks a user. This forces the user to unfollow you .
* Unblock: Stops blocking a user.
* Report as spam: this option sends a message to Twitter suggesting the user is performing prohibited practices on the social network.
* Ignore tweets from this client: Adds the client from which the focused tweet was sent to the ignored clients list.
* View timeline: Lets you open a user's timeline by choosing the user in a dialog box. It is created when you press enter. If you invoke this option relative to a user that has no tweets, the operation will fail. If you try creating an existing timeline the program will warn you and will not create it again.
* Direct message: same action as the button.
* Add to List: In order to see someone's tweets in one or more of your lists, you must add them first. In the dialogue box that opens after selecting the user, you will be asked to select the list you wish to add the user to. Thereafter, the list will contain a new member and their tweets will be displayed there.
* Remove from list: lets you remove a user from a list.
* View lists: Shows the lists created by a specified user.
* Show user profile: opens a dialogue with the profile of the specified user.
* View likes: Opens a buffer where you can see the tweets which have been liked by a particular user.
##### Buffer menu
* New trending topics buffer: This opens a buffer to get the worlwide trending topics or those of a country or a city. You'll be able to select from a dialogue box if you wish to retrieve countries' trends, cities' trends or worldwide trends (this option is in the cities' list) and choose one from the selected list. The trending topics buffer will be created once the "OK" button has been activated within the dialogue box. Remember this kind of buffer will be updated every five minutes.
* Load previous items: This allows more items to be loaded for the specified buffer.
* Mute: Mutes notifications of a particular buffer so you will not hear when new tweets arrive.
* autoread: When enabled, the screen reader or SAPI 5 Text to Speech voice (if enabled) will read the text of incoming tweets. Please note that this could get rather chatty if there are a lot of incoming tweets.
* Clear buffer: Deletes all items from the buffer.
* Destroy: dismisses the list you're on.
##### Audio menu
* Play/pause: try to play audio for the selected item (if available), or stop the currently played audio.
* Seek back 5 seconds: If an audio is being played, seek 5 seconds back in the playback. This will work only in audio files. This feature cannot be used in radio stations or other streamed files.
* Seek forward 5 seconds: If an audio is being played, seek 5 seconds forward in the playback. This feature cannot be used in radio stations or other streamed files.
##### Help menu
* Documentation: opens up this file, where you can read some useful program concepts.
* Sounds tutorial: Opens a dialog box where you can familiarize yourself with the different sounds of the program.
* What's new in this version?: opens up a document with the list of changes from the current version to the earliest.
* Check for updates: every time you open the program it automatically checks for new versions. If an update is available, it will ask you if you want to download the update. If you accept, the updating process will commence. When complete, TWBlue will be restarted. This item checks for new updates without having to restart the application.
* TWBlue's website: visit our [home page](http://twblue.es) where you can find all relevant information and downloads for TWBlue and become a part of the community.
* About TWBlue: shows the credits of the program.
### The invisible user interface
The invisible interface, as its name suggests, has no graphical window and works directly with screen readers such as JAWS for Windows, NVDA and System Access. This interface is disabled by default, but you can enable it by pressing Control + M. It works similarly to TheQube and Chicken Nugget. Its shortcuts are similar to those found in these two clients. In addition, the program has builtin support for the keymaps for these applications, configurable through the global settings dialogue. By default, you cannot use this interface's shortcuts in the GUI, but you can configure this in the global settings dialogue.
The next section contains a list of keyboard shortcuts for both interfaces. Bear in mind that we will only describe the default keymap.
## Keyboard shortcuts
### Shortcuts of the graphical user interface (GUI)
* Enter: Open URL.
* Control + Enter: Play audio.
* Control + M: Hide the GUI.
* Control + N: Compose a new tweet.
* Control + R: Reply / mention.
* Control + Shift + R: Retweet.
* Control + D: Send a direct message.
* control + F: Add tweet to likes.
* Control + Shift + F: Remove a tweet from likes.
* Control + S: Open the user actions dialogue.
* Control + Shift + V: Show tweet.
* Control + Q: Quit this program.
* Control + I: Open user timeline.
* Control + Shift + i: Destroy buffer.
* F5: Increase volume by 5%.
* F6: Decrease volume by 5%.
* Control + P: Edit your profile.
* Control + Delete: Delete a tweet or direct message.
* Control + Shift + Delete: Empty the current buffer.
### Shortcuts of the invisible interface (default keymap)
The invisible interface of TWBlue can be customised by using a keymap. Every keymap defines a set of keystrokes to be used along with the invisible interface. You can change the keymap in the global settings dialogue, under the application menu in the menu bar, and check or edit keystrokes for the selected keymap in the keystroke editor, also available in the application menu.
* Control + Windows + Up Arrow: moves to the previous item in the buffer.
* Control + Windows + Down Arrow: moves to the next item in the buffer.
* Control + Windows + Left Arrow: Move to the previous buffer.
* Control + Windows + Right Arrow: Move to the next buffer.
* Control + Windows + Shift + Left: Focus the previous session.
* Control + Windows + Shift + Right: Focus the next session.
* Control + Windows + C: View conversation.
* Control + Windows + Enter: Open URL.
* Control + Windows + ALT + Enter: Play audio.
* Control + Windows + M: Show or hide the GUI.
* Control + Windows + N: New tweet.
* Control + Windows + R: Reply / Mention.
* Control + Windows + Shift + R: Retweet.
* Control + Windows + D: Send direct message.
* Windows+ Alt + F: Like a tweet.
* Alt + Windows + Shift + F: Remove from likes.
* Control + Windows + S: Open the user actions dialogue.
* Control + Windows + Alt + N: See user details.
* Control + Windows + V: Show tweet.
* Control + Windows + F4: Quit TWBlue.
* Control + Windows + I: Open user timeline.
* Control + Windows + Shift + I: Destroy buffer.
* Control + Windows + Alt + Up: Increase volume by 5%.
* Control + Windows + Alt + Down: Decrease volume by 5%.
* Control + Windows + Home: Jump to the first element of the current buffer.
* Control + Windows + End: Jump to the last element of the current buffer.
* Control + Windows + PageUp: Jump 20 elements up in the current buffer.
* Control + Windows + PageDown: Jump 20 elements down in the current buffer.
* Windows + Alt + P: Edit profile.
* Control + Windows + Delete: Delete a tweet or direct message.
* Control + Windows + Shift + Delete: Empty the current buffer.
* Control + Windows + Space: Repeat last item.
* Control + Windows + Shift + C: Copy to clipboard.
* Control + Windows+ A: Add user to list.
* Control + Windows + Shift + A: Remove user from list.
* Control + Windows + Shift + M: Mute / unmute the current buffer.
* Windows + Alt + M: Mute / unmute the current session.
* Control + Windows + E: Toggle the automatic reading of incoming tweets in the current buffer.
* Control + Windows + -: Search on Twitter.
* Control + Windows + K: Show the keystroke editor.
* Control + Windows + L: Show lists for a specified user.
* Windows + Alt + PageUp: Load previous items for the current buffer.
* Control + Windows + G: Get geolocation.
* Control + Windows + Shift + G: Display the tweet's geolocation in a dialogue.
* Control + Windows + T: Create a trending topics' buffer.
* Control + Windows + {: Find a string in the current buffer.
* Alt + Windows + O: Extracts text from the picture and display the result in a dialog.
## Configuration
As described above, this application has two configuration dialogues, the global settings dialogue and the account settings dialogue.
### The account settings dialogue
#### General tab
* Autocompletion settings: Allows you to configure the autocompletion database. You can add users manually or let TWBlue add your followers, friends or both.
* Relative timestamps: Allows you to configure whether the application will calculate the time the tweet or direct message was sent or received based on the current time, or simply say the time it was received or sent.
* API calls: Allows you to adjust the number of API calls to be made to Twitter by this program.
* Items on each API call: Allows you to specify how many items should be retrieved from Twitter for each API call (default and maximum is 200).
* Inverted buffers: Allows you to specify whether the buffers should be inverted, which means that the oldest items will show at the end of them and the newest at the beginning.
* Retweet mode: Allows you to specify the behaviour when posting a retweet: you can choose between retweeting with a comment, retweeting without comment or being asked.
* Number of items per buffer to cache in database: This allows you to specify how many items TWBlue should cache in a database. You can type any number, 0 to cache all items, or leave blank to disable caching entirely.
#### buffers tab
This tab displays a list for each buffer you have available in TWBlue, except for searches, timelines, likes' timelines and lists. You can show, hide and move them.
#### The ignored clients tab
In this tab, you can add and remove clients to be ignored by the program.
#### Sound tab
In this tab, you can adjust the sound volume, select the input and output device and set the soundpack used by the program.
#### Audio service tab
In this tab, you can enter your SndUp API key (if you have one) to upload audio to SndUp with your account. Note that if account credentials are not specified you will upload anonimously.
### Global settings
This dialogue allows you to configure some settings which will affect the entire application.
#### General tab {#general-tab_1}
* Language: This allows you to change the language of this program. Currently supported languages are arabic, Catalan, German, English, Spanish, Basque, Finnish, French, Galician, Croatian, Hungarian, Italian, Polish, Portuguese, Russian and Turkish.
* Ask before exiting TWBlue: This checkbox allows you to control whetherthe program will ask for confirmation before exiting.
* Play a sound when TWBlue launches: This checkbox allows you to configure whether the application will play a sound when it has finished loading the buffers.
* Speak a message when TWBlue launches: This is the same as the previous option, but this checkbox configures whether the screen reader will say "ready".
* Use the invisible interface's shortcuts in the GUI: As the invisible interface and the Graphical User Interface have their own shortcuts, you may want to use the invisible interface's keystrokes all the time. If this option is checked, the invisible interface's shortcuts will be usable in the GUI.
* Activate SAPI5 when any other screen reader is not being run: This checkbox allows to activate SAPI 5 TTS when no other screen reader is being run.
* Hide GUI on launch: This allows you to configure whether TWBlue will start with the GUI or the invisible interface.
* Keymap: This option allows you to change the keymap used by the program in the invisible interface. The shipped keymaps are Default, Qwitter, Windows 10 and Chicken Nugget. The keymaps are in the "keymaps" folder, and you can create new ones. Just create a new ".keymap" file and change the keystrokes associated with the actions, as it is done in the shipped keymaps.
#### Proxi tab
In this tab you can configure TWBlue to use a Proxy server by completing the fields displayed (type, server, port, user and password).
## License, source code and donations
Tw Blue is free software, licensed under the GNU GPL license, either version 2 or, at your option, any later version. You can view the license in the file named license.txt, or online at <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>.
The source code of the program is available on GitHub at <https://www.github.com/manuelcortez/twblue>.
If you want to donate to the project, you can do so at <https://twblue.es/donate>. Thank you for your support!
## Contact
If you still have questions after reading this document, if you wish to collaborate to the project in some other way, or if you simply want to get in touch with the application developer, follow the Twitter account [@tw\_blue2](https://twitter.com/tw_blue2) or [@manuelcortez00.](https://twitter.com/manuelcortez00) You can also visit [our website](https://twblue.es)
## Credits
TWBlue is developed and maintained by [Manuel Cortéz](https://twitter.com/manuelcortez00) and [José Manuel Delicado](https://twitter.com/jmdaweb).
We would also like to thank the translators of TWBlue, who have allowed the spreading of the application.
* Arabic: [Mohammed Al Shara,](https://twitter.com/mohammed0204) [Hatoun Felemban](https://twitter.com/HatounFelemban)
* Basque: [Sukil Etxenike](https://twitter.com/sukil2011).
* Catalan: [Francisco Torres](https://twitter.com/ftgalleg)
* Croatian: [Zvonimir Stanečić](https://twitter.com/zvonimirek222).
* English: [Manuel Cortéz](https://twitter.com/manuelcortez00).
* Finnish: [Jani Kinnunen](https://twitter.com/jani_kinnunen).
* French: [Rémy Ruiz](https://twitter.com/blindhelp38).
* Galician: [Juan Buño](https://twitter.com/Quetzatl_).
* German: [Steffen Schultz](https://twitter.com/schulle4u).
* Hungarian: Robert Osztolykan.
* Italian: [Christian Leo Mameli](https://twitter.com/llajta2012).
* Japanese: [Riku](https://twitter.com/_riku02)
* Polish: [Pawel Masarczyk.](https://twitter.com/Piciok)
* Portuguese: [Odenilton Júnior Santos.](https://twitter.com/romaleif)
* Romanian: [Florian Ionașcu](https://twitter.com/florianionascu7) and [Nicușor Untilă](https://twitter.com/dj_storm2001)
* Russian: [Наталья Хедлунд](https://twitter.com/Lifestar_n) and [Валерия Кузнецова](https://twitter.com/ValeriaK305).
* Serbian: [Aleksandar Đurić](https://twitter.com/sokodtreshnje)
* Spanish: [Manuel Cortéz](https://twitter.com/manuelcortez00).
* Turkish: [Burak Yüksek](https://twitter.com/burakyuksek).
Many thanks also to the people who worked on the documentation. Initially, [Manuel Cortez](https://twitter.com/manuelcortez00) did the documentation in Spanish, and translated to English by [Bryner Villalobos](https://twitter.com/Bry_StarkCR), [Robert Spangler](https://twitter.com/glasscity1837), [Sussan Rey](https://twitter.com/sussanrey17), [Anibal Hernandez](https://twitter.com/AnimalMetal), and [Holly Scott-Gardner](https://twitter.com/CatchTheseWords). It was updated by [Sukil Etxenike](https://twitter.com/sukil2011), with some valuable corrections by [Brian Hartgen](https://twitter.com/brianhartgen) and [Bill Dengler](https://twitter.com/codeofdusk).
------------------------------------------------------------------------
Copyright © 2013-2017. Manuel Cortéz

View File

@@ -1,432 +0,0 @@
# -*- coding: utf-8 -*-
import application
documentation = []
documentation.append(_(u"""Documentation for TWBlue - {0}""").format(application.version))
# Translators: This is the new line character, don't change it in the translations.
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Table of contents"""))
# Table of contents for the python markdown extension
documentation.append("""[TOC]""")
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Warning!"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""You are reading documentation produced for a program still in development. The object of this manual is to explain some details of the operation of the program. Bear in mind that as the software is in the process of active development, parts of this user guide may change in the near future, so it is advisable to keep checking from time to time to avoid missing important information."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""If you want to see what has changed from the previous version, [read the list of updates here.](changes.html)"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Introduction"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""TWBlue is an application to make Twitter simple and fast, while using as few resources as possible. With TWBlue, you can do things like the following:"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Tweet, reply to, retweet and delete tweets,"""))
documentation.append(_(u"""* Mark and unmark a tweet as favourite,"""))
documentation.append(_(u"""* Send and delete direct messages,"""))
documentation.append(_(u"""* See your friends and followers,"""))
documentation.append(_(u"""* Follow, unfollow, report and block a user,"""))
documentation.append(_(u"""* Open a user's timeline to see their tweets separately,"""))
documentation.append(_(u"""* Open URLs from a tweet or direct message,"""))
documentation.append(_(u"""* Play several types of audio files from addresses,"""))
documentation.append(_(u"""* And more."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Usage"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Twitter is a social networking or micro-blogging tool which allows you to compose short status updates of your activities in 140 characters or less. Twitter is a way for friends, family and co-workers to communicate and stay connected through the exchange of quick, frequent messages. You can restrict delivery of updates to those in your circle of friends or, by default, allow anyone to access them."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""You can monitor the status of updates from your friends, family or co-workers (known as following), and they in turn can read any updates you create, (known as followers). The updates are referred to as Tweets. The Tweets are posted to your Twitter profile or Blog and are searchable using Twitter Search."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""In order to use TWBlue, you must first have created an account on the Twitter website. The process for signing up for a Twitter account is very accessible. During the account registration, you will need to choose a Twitter username. This serves two purposes. This is the method through which people will comunicate with you, but most importantly, your username and password will be required to connect TWBlue to your Twitter account. We suggest you choose a username which is memorable both to you and the people you hope will follow you."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""We'll start from the premise that you have a Twitter account with its corresponding username and password."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### Authorising the application"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""First of all, it's necessary to authorise the program so it can access your Twitter account and act on your behalf. The authorisation process is quite simple, and the program never retains data such as your password. In order to authorise the application, you just need to run the main executable file, called TWBlue.exe (on some computers it may appear simply as TWBlue if Windows Explorer is not set to display file extensions). We suggest you may like to place a Windows shortcut on your Desktop pointing to this executable file for quick and easy location."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""You can log into several Twitter accounts simultaneously. The program refers to each Twitter account you have configured as a "Session". If this is the first time you have launched TWBlue, and if no Twitter session exists, you will see the Session Manager. This dialogue box allows you to authorise as many accounts as you wish. If you press the Tab key to reach the "new account" button and activate it by pressing the Space Bar, a dialogue box will advise you that your default internet browser will be opened in order to authorise the application and you will be asked if you would like to continue. Activate the "yes" Button by pressing the letter "Y" so the process may start."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Your default browser will open on the Twitter page to request authorisation. Enter your username and password into the appropriate edit fields if you're not already logged in, select the authorise button, and press it."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Once you've authorised your twitter account, the website will redirect you to a page which will notify you that TWBlue has been authorised successfully. Now you are able to close the page by pressing ALT+F4 which will return you to the Session Manager. On the session list, you will see a new item temporarily called "Authorised account x" -where x is a number. The session name will change once you open that session."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""To start running TWBlue, press the Ok button in the Session Manager dialogue. By default, the program starts all the configured sessions automatically, however, you can change this behavior."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""If all went well, the application will start playing sounds, indicating your data is being updated."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""When the process is finished, by default the program will play another sound, and the screen reader will say "ready" (this behaviour can be configured)."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## General concepts"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Before starting to describe TWBlue's usage, we'll explain some concepts that will be used extensively throughout this manual."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### Buffer"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""A buffer is a list of items to manage the data which arrives from Twitter, after being processed by the application. When you configure a new session on TWBlue and start it, many buffers are created. Each of them may contain some of the items which this program works with: Tweets, direct messages, users, trends or events. According to the buffer you are focusing, you will be able to do different actions with these items."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""The following is a description for every one of TWBlue's buffers and the kind of items they work with."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Home: this shows all the tweets on the main timeline. These are the tweets by users you follow."""))
documentation.append(_(u"""* Mentions: if a user, whether you follow them or not, mentions you on Twitter, you will find it in this list."""))
documentation.append(_(u"""* Direct messages: here you will find the private direct messages you exchange with users who follow you , or with any user, if you allow direct messages from everyone (this setting is configurable from Twitter). This list only shows received messages."""))
documentation.append(_(u"""* Sent direct messages: this buffer shows all the direct messages sent from your account."""))
documentation.append(_(u"""* Sent tweets: this shows all the tweets sent from your account."""))
documentation.append(_(u"""* Favourites: here you will see all the tweets you have favourited."""))
documentation.append(_(u"""* Followers: when users follow you, you'll be able to see them on this buffer, with some of their account details."""))
documentation.append(_(u"""* Friends: the same as the previous buffer, but these are the users you follow."""))
documentation.append(_(u"""* User timelines: these are buffers you may create. They contain only the tweets by a specific user. They're used so you can see the tweets by a single person and you don't want to look all over your timeline. You may create as many as you like."""))
documentation.append(_(u"""* Events: An event is anything that happens on Twitter, such as when someone follows you, when someone adds or removes one of your tweets from their favourites list, or when you subscribe to a list. There are many more, but the program shows the most common ones in the events buffer so that you can easily keep track of what is happening on your account."""))
documentation.append(_(u"""* Lists: A list is similar to a user timeline, except that you can configure it to contain tweets from multiple users."""))
documentation.append(_(u"""* Search: A search buffer contains the results of a search operation."""))
documentation.append(_(u"""* User favourites: You can have the program create a buffer containing tweets favourited by a particular user."""))
documentation.append(_(u"""* Trending Topics: a trend buffer shows the top ten most used terms in a geographical region. This region may be a country or a city. Trends are updated every five minutes."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""If a tweet contains a URL, you can press enter in the GUI or Control + Windows + Enter in the invisible interface to open it. If it contains audio, you can press Control + Enter or Control + Windows + Alt + Enter to play it, respectively. TWBlue will play a sound if the tweet contains the #audio hashtag, but there may be tweets which contain audio without this. Finally, if a tweet contains geographical information, you can press Control + Windows + G in the invisible interface to retrieve it."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### Username fields"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""These fields accept a Twitter username (without the at sign) as the input. They are present in the send direct message and the user actions dialogue boxes. Those dialogues will be discussed later. The initial value of these fields depends on where they were opened from. They are prepopulated with the username of the sender of the focused tweet (if they were opened from the home and sent timelines, from users' timelines or from lists), the sender of the focused direct message (if from the received or sent direct message buffers) or in the focused user (if from the followers' or friends' buffer). If one of those dialogue boxes is opened from a tweet, and if there are more users mentioned in it, you can use the arrow keys to switch between them. Alternatively, you can also type a username."""))
documentation.append(_(u"""## The program's interfaces"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### The graphical user interface (GUI)"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""The graphical user interface of TWBlue consists of a window containing:"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* a menu bar accomodating five menus (application, tweet, user, buffer and help);"""))
documentation.append(_(u"""* One tree view,"""))
documentation.append(_(u"""* One list of items"""))
documentation.append(_(u"""* Four buttons in most dialogs: Tweet, retweet , reply and direct message."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""The actions that are available for every item will be described later."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""In summary, the GUI contains two core components. These are the controls you will find while pressing the Tab key within the program's interface, and the different elements present on the menu bar."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### Buttons in the application"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Tweet: this button opens up a dialogue box to write your tweet. The message must not exceed 140 characters. If you write past this limit, a sound will play to warn you. Note that the character count is displayed in the title bar. You may use the shorten and expand URL buttons to comply with the character limit. You can upload a picture, check spelling, attach audio or translate your message by selecting one of the available buttons in the dialogue box. In addition, you can autocomplete the entering of users by pressing Alt + A or the button for that purpose if you have the database of users configured. Press enter to send the tweet. If all goes well, you'll hear a sound confirming it. Otherwise, the screen reader will speak an error message in English describing the problem."""))
documentation.append(_(u"""* Retweet: this button retweets the message you're reading. After you press it, if you haven't configured the application not to do so, you'll be asked if you want to add a comment or simply send it as written. If you choose to add a comment, and if the original tweet plus the comment exceeds 140 characters, you will be asked if you want to post it as a comment with a mention to the original user and a link to the originating tweet."""))
documentation.append(_(u"""* Reply: when you're viewing a tweet, you can reply to the user who sent it by pressing this button. A dialogue will open up similar to the one for tweeting, but with the name of the user already filled in (for example @user) so you only need to write your message. If there are more users referred to in the tweet, you can press shift-tab and activate the mention all users button. When you're on the friends or followers lists, the button will be called mention instead."""))
documentation.append(_(u"""* Direct message: exactly like sending a tweet, but it's a private message which can only be read by the user you send it to. Press shift-tab to see the recipient. If there were other users mentioned in the tweet you were reading, you can arrow up or down to choose which one to send it to, or write the username yourself without the at sign."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Bear in mind that buttons will appear according to which actions are possible on the list you are browsing. For example, on the home timeline, mentions, sent, favourites and user timelines you will see the four buttons, while on the direct messages list you'll only get the direct message and tweet buttons, and on friends and followers lists the direct message, tweet, and mention buttons will be available."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### Menus"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Visually, Towards the top of the main application window, can be found a menu bar which contains many of the same functions as listed in the previous section, together with some additional items. To access the menu bar, press the alt key. You will find five menus listed: application, tweet, user, buffer and help. This section describes the items on each one of them."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""##### Application menu"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Manage accounts: Opens a window with all the sessions configured in TWBlue, where you can add new sessions or delete the ones you've already created."""))
documentation.append(_(u"""* Update profile: opens a dialogue where you can update your information on Twitter: name, location, website and bio. If you have already set this up the fields will be prefilled with the existing information. Also, you can upload a photo to your profile."""))
documentation.append(_(u"""* Hide window: turns off the Graphical User Interface. Read the section on the invisible interface for further details."""))
documentation.append(_(u"""* Search: shows a dialogue box where you can search for tweets or users on Twitter."""))
documentation.append(_(u"""* Lists Manager: This dialogue box allows you to manage your Twitter lists. In order to use them, you must first create them. Here, you can view, edit, create, delete or, optionally, open them in buffers similar to user timelines."""))
documentation.append(_(u"""* Edit keystrokes: this opens a dialogue where you can see and edit the shortcuts used in the invisible interface."""))
documentation.append(_(u"""* Account settings: Opens a dialogue box which lets you customize settings for the current account."""))
documentation.append(_(u"""* Global settings: Opens a dialogue which lets you configure settings for the entire application."""))
documentation.append(_(u"""* Exit: asks whether you want to exit the program. If the answer is yes, it closes the application. If you do not want to be asked for confirmation before exiting, uncheck the checkbox from the global settings dialogue box."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""##### Tweet menu"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* You will first find the items to tweet, reply and retweet, which are equivalent to the buttons with the same name."""))
documentation.append(_(u"""* Add to favourites: marks the tweet you're viewing as a favourite."""))
documentation.append(_(u"""* Remove from favourites: removes the tweet from your favourites, but not from Twitter."""))
documentation.append(_(u"""* Show tweet: opens up a dialogue box where you can read the tweet, direct message, friend or follower which has focus. You can read the text with the arrow keys. It's a similar dialog box as used for composing tweets, without the ability to send the tweet, file attachment and autocompleting capabilities. It does however include a retweets and favourites count. If you are in the followers or the friends list, it will only contain a read-only edit box with the information in the focused item and a close button."""))
documentation.append(_(u"""* View address: If the selected tweet has geographical information, TWBlue may display a dialogue box where you can read the tweet address. This address is retrieved by sending the geographical coordinates of the tweet to Google maps."""))
documentation.append(_(u"""* View conversation: If you are focusing a tweet with a mention, it opens a buffer where you can view the whole conversation."""))
documentation.append(_(u"""* Delete: permanently removes the tweet or direct message which has focus from Twitter and from your lists. Bear in mind that Twitter only allows you to delete tweets you have posted yourself."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""##### User menu"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Actions: Opens a dialogue where you can interact with a user. This dialogue box will be populated with the user who sent the tweet or direct message in focus or the selected user in the friends or followers buffer. You can edit it or leave it as is and choose one of the following actions:"""))
documentation.append(_(u""" * Follow: Follows a user. This means you'll see his/her tweets on your home timeline, and if he/she also follows you, you'll be able to exchange direct messages. You may also send / receive direct messages from each other if you have configured the option to allow direct messages from anyone."""))
documentation.append(_(u""" * Unfollow: Stops following a user, which causes you not being able to see his/her tweets on your main timeline neither exchanging direct messages, unless they have enabled receiving direct messages from anyone."""))
documentation.append(_(u""" * Mute: While muting someone, TWBlue won't show you nor his/her tweets on your main timeline; neither will you see that person's mentions. But you both will be able to exchange direct messages. The muted user is not informed of this action."""))
documentation.append(_(u""" * Unmute: this option allows TWBlue to display the user's tweets and mentions again."""))
documentation.append(_(u""" * Block: Blocks a user. This forces the user to unfollow you ."""))
documentation.append(_(u""" * Unblock: Stops blocking a user."""))
documentation.append(_(u""" * Report as spam: this option sends a message to Twitter suggesting the user is performing prohibited practices on the social network."""))
documentation.append(_(u""" * Ignore tweets from this client: Adds the client from which the focused tweet was sent to the ignored clients list."""))
documentation.append(_(u"""* View timeline: Lets you open a user's timeline by choosing the user in a dialog box. It is created when you press enter. If you invoke this option relative to a user that has no tweets, the operation will fail. If you try creating an existing timeline the program will warn you and will not create it again."""))
documentation.append(_(u"""* Direct message: same action as the button."""))
documentation.append(_(u"""* Add to List: In order to see someone's tweets in one or more of your lists, you must add them first. In the dialogue box that opens after selecting the user, you will be asked to select the list you wish to add the user to. Thereafter, the list will contain a new member and their tweets will be displayed there."""))
documentation.append(_(u"""* Remove from list: lets you remove a user from a list."""))
documentation.append(_(u"""* View lists: Shows the lists created by a specified user."""))
documentation.append(_(u"""* Show user profile: opens a dialogue with the profile of the specified user."""))
documentation.append(_(u"""* View favourites: Opens a buffer where you can see the tweets which have been favourited by a particular user."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""##### Buffer menu"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* New trending topics buffer: This opens a buffer to get the worlwide trending topics or those of a country or a city. You'll be able to select from a dialogue box if you wish to retrieve countries' trends, cities' trends or worldwide trends (this option is in the cities' list) and choose one from the selected list. The trending topics buffer will be created once the "OK" button has been activated within the dialogue box. Remember this kind of buffer will be updated every five minutes."""))
documentation.append(_(u"""* Load previous items: This allows more items to be loaded for the specified buffer."""))
documentation.append(_(u"""* Mute: Mutes notifications of a particular buffer so you will not hear when new tweets arrive."""))
documentation.append(_(u"""* autoread: When enabled, the screen reader or SAPI 5 Text to Speech voice (if enabled) will read the text of incoming tweets. Please note that this could get rather chatty if there are a lot of incoming tweets."""))
documentation.append(_(u"""* Clear buffer: Deletes all items from the buffer."""))
documentation.append(_(u"""* Destroy: dismisses the list you're on."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""##### Help menu"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Documentation: opens up this file, where you can read some useful program concepts."""))
documentation.append(_(u"""* Sounds tutorial: Opens a dialog box where you can familiarize yourself with the different sounds of the program."""))
documentation.append(_(u"""* What's new in this version?: opens up a document with the list of changes from the current version to the earliest."""))
documentation.append(_(u"""* Check for updates: every time you open the program it automatically checks for new versions. If an update is available, it will ask you if you want to download the update. If you accept, the updating process will commence. When complete, TWBlue will be restarted. This item checks for new updates without having to restart the application."""))
documentation.append(_(u"""* Report an error: opens up a dialogue box to report a bug by completing a small number of fields. Pressing enter will send the report. If the operation doesn't succeed the program will display a warning."""))
documentation.append(_(u"""* TWBlue's website: visit our [home page](http://twblue.es) where you can find all relevant information and downloads for TWBlue and become a part of the community."""))
documentation.append(_(u"""* About TWBlue: shows the credits of the program."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### The invisible user interface"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""The invisible interface, as its name suggests, has no graphical window and works directly with screen readers such as JAWS for Windows, NVDA and System Access. This interface is disabled by default, but you can enable it by pressing Control + M. It works similarly to TheQube and Chicken Nugget. Its shortcuts are similar to those found in these two clients. In addition, the program has builtin support for the keymaps for these applications, configurable through the global settings dialogue. By default, you cannot use this interface's shortcuts in the GUI, but you can configure this in the global settings dialogue."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""The next section contains a list of keyboard shortcuts for both interfaces. Bear in mind that we will only describe the default keymap."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Keyboard shortcuts"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### Shortcuts of the graphical user interface (GUI)"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Enter: Open URL."""))
documentation.append(_(u"""* Control + Enter: Play audio."""))
documentation.append(_(u"""* Control + M: Hide the GUI."""))
documentation.append(_(u"""* Control + N: Compose a new tweet."""))
documentation.append(_(u"""* Control + R: Reply / mention."""))
documentation.append(_(u"""* Control + Shift + R: Retweet."""))
documentation.append(_(u"""* Control + D: Send a direct message."""))
documentation.append(_(u"""* control + F: Add tweet to favourites."""))
documentation.append(_(u"""* Control + Shift + F: Remove a tweet from favourites."""))
documentation.append(_(u"""* Control + S: Open the user actions dialogue."""))
documentation.append(_(u"""* Control + Shift + V: Show tweet."""))
documentation.append(_(u"""* Control + Q: Quit this program."""))
documentation.append(_(u"""* Control + I: Open user timeline."""))
documentation.append(_(u"""* Control + Shift + i: Destroy buffer."""))
documentation.append(_(u"""* F5: Increase volume by 5%."""))
documentation.append(_(u"""* F6: Decrease volume by 5%."""))
documentation.append(_(u"""* Control + P: Edit your profile."""))
documentation.append(_(u"""* Control + Delete: Delete a tweet or direct message."""))
documentation.append(_(u"""* Control + Shift + Delete: Empty the current buffer."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### Shortcuts of the invisible interface (default keymap)"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Control + Windows + Up Arrow: moves to the previous item in the buffer."""))
documentation.append(_(u"""* Control + Windows + Down Arrow: moves to the next item in the buffer."""))
documentation.append(_(u"""* Control + Windows + Left Arrow: Move to the previous buffer."""))
documentation.append(_(u"""* Control + Windows + Right Arrow: Move to the next buffer."""))
documentation.append(_(u"""* Control + Windows + Shift + Left: Focus the previous session."""))
documentation.append(_(u"""* Control + Windows + Shift + Right: Focus the next session."""))
documentation.append(_(u"""* Control + Windows + C: View conversation."""))
documentation.append(_(u"""* Control + Enter: Open URL."""))
documentation.append(_(u"""* Control + Windows + Enter: Play audio."""))
documentation.append(_(u"""* Control + Windows + M: Show or hide the GUI."""))
documentation.append(_(u"""* Control + Windows + N: New tweet."""))
documentation.append(_(u"""* Control + Windows + R: Reply / Mention."""))
documentation.append(_(u"""* Control + Windows + Shift + R: Retweet."""))
documentation.append(_(u"""* Control + Windows + D: Send direct message."""))
documentation.append(_(u"""* Windows+ Alt + F: Mark as favourite."""))
documentation.append(_(u"""* Alt + Windows + Shift + F: Remove from favourites."""))
documentation.append(_(u"""* Control + Windows + S: Open the user actions dialogue."""))
documentation.append(_(u"""* Control + Windows + Alt + N: See user details."""))
documentation.append(_(u"""* Control + Windows + V: Show tweet."""))
documentation.append(_(u"""* Control + Windows + F4: Quit TWBlue."""))
documentation.append(_(u"""* Control + Windows + I: Open user timeline."""))
documentation.append(_(u"""* Control + Windows + Shift + I: Destroy buffer."""))
documentation.append(_(u"""* Control + Windows + Alt + Up: Increase volume by 5%."""))
documentation.append(_(u"""* Control + Windows + Alt + Down: Decrease volume by 5%."""))
documentation.append(_(u"""* Control + Windows + Home: Jump to the first element of the current buffer."""))
documentation.append(_(u"""* Control + Windows + End: Jump to the last element of the current buffer."""))
documentation.append(_(u"""* Control + Windows + PageUp: Jump 20 elements up in the current buffer."""))
documentation.append(_(u"""* Control + Windows + PageDown: Jump 20 elements down in the current buffer."""))
documentation.append(_(u"""* Windows + Alt + P: Edit profile."""))
documentation.append(_(u"""* Control + Windows + Delete: Delete a tweet or direct message."""))
documentation.append(_(u"""* Control + Windows + Shift + Delete: Empty the current buffer."""))
documentation.append(_(u"""* Control + Windows + Space: Repeat last item."""))
documentation.append(_(u"""* Control + Windows + Shift + C: Copy to clipboard."""))
documentation.append(_(u"""* Control + Windows+ A: Add user to list."""))
documentation.append(_(u"""* Control + Windows + Shift + A: Remove user from list."""))
documentation.append(_(u"""* Control + Windows + M: Mute / unmute the current buffer."""))
documentation.append(_(u"""* Windows + Alt + M: Mute / unmute the current session."""))
documentation.append(_(u"""* Control + Windows + E: Toggle the automatic reading of incoming tweets in the current buffer."""))
documentation.append(_(u"""* Control + Windows + -: Search on Twitter."""))
documentation.append(_(u"""* Control + Windows + K: Show the keystroke editor."""))
documentation.append(_(u"""* Control + Windows + L: Show lists for a specified user."""))
documentation.append(_(u"""* Windows + Alt + PageUp: Load previous items for the current buffer."""))
documentation.append(_(u"""* Control + Windows + G: Get geolocation."""))
documentation.append(_(u"""* Control + Windows + Shift + G: Display the tweet's geolocation in a dialogue."""))
documentation.append(_(u"""* Control + Windows + T: Create a trending topics' buffer."""))
documentation.append(_(u"""* Control + Windows + {: Find a string in the current buffer."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Configuration"""))
documentation.append(_(u"""As described above, this application has two configuration dialogues, the global settings dialogue and the account settings dialogue."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### The account settings dialogue"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### General tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Autocompletion settings: Allows you to configure the autocompletion database. You can add users manually or let TWBlue add your followers, friends or both."""))
documentation.append(_(u"""* Relative timestamps: Allows you to configure whether the application will calculate the time the tweet or direct message was sent or received based on the current time, or simply say the time it was received or sent."""))
documentation.append(_(u"""* API calls: Allows you to adjust the number of API calls to be made to Twitter by this program."""))
documentation.append(_(u"""* Items on each API call: Allows you to specify how many items should be retrieved from Twitter for each API call (default and maximum is 200)."""))
documentation.append(_(u"""* Inverted buffers: Allows you to specify whether the buffers should be inverted, which means that the oldest items will show at the end of them and the newest at the beginning."""))
documentation.append(_(u"""* Retweet mode: Allows you to specify the behaviour when posting a retweet: you can choose between retweeting with a comment, retweeting without comment or being asked."""))
documentation.append(_(u"""* Number of items per buffer to cache in database: This allows you to specify how many items TWBlue should cache in a database. You can type any number, 0 to cache all items, or leave blank to disable caching entirely."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### buffers tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""This tab displays a list for each buffer you have available in TWBlue, except for searches, timelines, favourites' timelines and lists. You can show, hide and move them."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### The ignored clients tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""In this tab, you can add and remove clients to be ignored by the program."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### Sound tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""In this tab, you can adjust the sound volume, select the input and output device and set the soundpack used by the program."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### Audio service tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""In this tab, you can enter your SndUp API key (if you have one) to upload audio to SndUp with your account. Note that if account credentials are not specified you will upload anonimously."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""### Global settings"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""This dialogue allows you to configure some settings which will affect the entire application."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### General tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* Language: This allows you to change the language of this program. Currently supported languages are arabic, Catalan, German, English, Spanish, Basque, Finnish, French, Galician, Croatian, Hungarian, Italian, Polish, Portuguese, Russian and Turkish."""))
documentation.append(_(u"""* Ask before exiting TWBlue: This checkbox allows you to control whetherthe program will ask for confirmation before exiting."""))
documentation.append(_(u"""* Play a sound when TWBlue launches: This checkbox allows you to configure whether the application will play a sound when it has finished loading the buffers."""))
documentation.append(_(u"""* Speak a message when TWBlue launches: This is the same as the previous option, but this checkbox configures whether the screen reader will say \"ready\"."""))
documentation.append(_(u"""* Use the invisible interface's shortcuts in the GUI: As the invisible interface and the Graphical User Interface have their own shortcuts, you may want to use the invisible interface's keystrokes all the time. If this option is checked, the invisible interface's shortcuts will be usable in the GUI."""))
documentation.append(_(u"""* Activate SAPI5 when any other screen reader is not being run: This checkbox allows to activate SAPI 5 TTS when no other screen reader is being run."""))
documentation.append(_(u"""* Hide GUI on launch: This allows you to configure whether TWBlue will start with the GUI or the invisible interface."""))
documentation.append(_(u"""* Keymap: This option allows you to change the keymap used by the program in the invisible interface. The shipped keymaps are Default, Qwitter, Windows 10 and Chicken Nugget. The keymaps are in the \"keymaps\" folder, and you can create new ones. Just create a new \".keymap\" file and change the keystrokes associated with the actions, as it is done in the shipped keymaps."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""#### Proxi tab"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""In this tab you can configure TWBlue to use a Proxy server by completing the fields displayed (server, port, user and password)."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## License, source code and donations"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Tw Blue is free software, licensed under the GNU GPL license, either version 2 or, at your option, any later version. You can view the license in the file named license.txt, or online at <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""The source code of the program is available on GitHub at <https://www.github.com/manuelcortez/twblue>."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""If you want to donate to the project, you can do so at <http://twblue.es/?q=node/3&language=en>. Thank you for your support!"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Contact"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""If you still have questions after reading this document, if you wish to collaborate to the project in some other way, or if you simply want to get in touch with the application developer, follow the Twitter account [@tw_blue2](https://twitter.com/tw_blue2) or [@manuelcortez00.](https://twitter.com/manuelcortez00) You can also visit [our website](http://twblue.es)"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""## Credits"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""TWBlue is developed and mantained by [Manuel Cortéz](https://twitter.com/manuelcortez00), [José Manuel Delicado](https://twitter.com/jmdaweb), and [Bill Dengler](https://twitter.com/codeofdusk). It's supported and sponsored by [Technow S. L.](https://twitter.com/technow)"""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""We would also like to thank the translators of TWBlue, who have allowed the spreading of the application."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""* English: [Bryner Villalobos](https://twitter.com/Bry_StarkCR) and [Bill Dengler](https://twitter.com/codeofdusk)."""))
documentation.append(_(u"""* Arabic: [Mohammed Al Shara](https://twitter.com/mohammed0204)."""))
documentation.append(_(u"""* Catalan: [Joan Rabat](https://twitter.com/joanrabat) and Juan Carlos Rivilla."""))
documentation.append(_(u"""* Spanish: [Manuel Cortéz](https://twitter.com/manuelcortez00)."""))
documentation.append(_(u"""* Basque: [Sukil Etxenike](https://twitter.com/sukil2011)."""))
documentation.append(_(u"""* Finnish: [Jani Kinnunen](https://twitter.com/jani_kinnunen)."""))
documentation.append(_(u"""* French: [Rémi Ruiz](https://twitter.com/blindhelp38)."""))
documentation.append(_(u"""* Galician: [Juan Buño](https://twitter.com/Quetzatl_)."""))
documentation.append(_(u"""* German: [Steffen Schultz](https://twitter.com/schulle4u)."""))
documentation.append(_(u"""* Croatian: [Zvonimir Stanečić](https://twitter.com/zvonimirek222)."""))
documentation.append(_(u"""* Hungarian: Robert Osztolykan."""))
documentation.append(_(u"""* Italian: [Christian Leo Mameli](https://twitter.com/llajta2012)."""))
documentation.append(_(u"""* Japanese: [Riku](https://twitter.com/riku_sub001)"""))
documentation.append(_(u"""* Polish: [Pawel Masarczyk.](https://twitter.com/Piciok)"""))
documentation.append(_(u"""* Portuguese: Odenilton Júnior Santos."""))
documentation.append(_(u"""* Romanian: [Florian Ionașcu](https://twitter.com/7ro) and [Răzvan Ciule](https://twitter.com/pilgrim89)"""))
documentation.append(_(u"""* Russian: [Александр Яшин](https://twitter.com/radovest)."""))
documentation.append(_(u"""* Serbian: [Aleksandar Đurić](https://twitter.com/sokodtreshnje)"""))
documentation.append(_(u"""* Turkish: [Burak Yüksek](https://twitter.com/burakyuksek)."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""Many thanks also to the people who worked on the documentation. Initially, [Manuel Cortez](https://twitter.com/manuelcortez00) did the documentation in Spanish, and translated to English by [Bryner Villalobos](https://twitter.com/Bry_StarkCR), [Robert Spangler](https://twitter.com/glasscity1837), [Sussan Rey](https://twitter.com/sussanrey17), [Anibal Hernandez](https://twitter.com/anibalmetal), and [Holly Scott-Gardner](https://twitter.com/holly1994). It was updated by [Sukil Etxenike](https://twitter.com/sukil2011), with some valuable corrections by [Brian Hartgen](https://twitter.com/brianhartgen) and [Bill Dengler](https://twitter.com/codeofdusk)."""))
documentation.append(_(u"""
"""))
documentation.append(_(u"""---"""))
documentation.append(_(u"""Copyright © 2013-2015. Manuel Cortéz"""))

View File

@@ -1,6 +1,6 @@
[Format]
Type=PortableApps.comFormat
Version=3.3
Version=3.5
[Details]
Name=tw blue portable
@@ -20,8 +20,8 @@ CommercialUse=true
EULAVersion=2
[Version]
PackageVersion=0.84.0.0
DisplayVersion=0.84
PackageVersion=0.93.0.0
DisplayVersion=0.93
[Control]
Icons=1

View File

@@ -1,7 +1,9 @@
!include "MUI2.nsh"
!include "LogicLib.nsh"
!include "x64.nsh"
Unicode true
CRCCheck on
ManifestSupportedOS all
XPStyle on
Name "TWBlue"
OutFile "TWBlue_setup.exe"
@@ -13,9 +15,10 @@ SetCompressor /solid lzma
SetDatablockOptimize on
VIAddVersionKey ProductName "TWBlue"
VIAddVersionKey LegalCopyright "Copyright 2016 Manuel Cortéz."
VIAddVersionKey ProductVersion "0.84"
VIAddVersionKey FileVersion "0.84"
VIProductVersion "0.84.0.0"
VIAddVersionKey ProductVersion "0.93"
VIAddVersionKey FileVersion "0.93"
VIProductVersion "0.93.0.0"
VIFileVersion "0.93.0.0"
!insertmacro MUI_PAGE_WELCOME
!define MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro MUI_PAGE_LICENSE "license.txt"
@@ -69,10 +72,10 @@ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "D
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "InstallLocation" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall" "Publisher" "Manuel Cortéz"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.84"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "DisplayVersion" "0.93"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "URLInfoAbout" "http://twblue.es"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMajor" 0
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 84
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "VersionMinor" 93
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\twblue" "NoRepair" 1
SectionEnd

View File

@@ -13,6 +13,7 @@ time_to_check_streams = integer(default=30)
announce_stream_status = boolean(default=True)
retweet_mode = string(default="ask")
persist_size = integer(default=0)
show_screen_names = boolean(default=False)
buffer_order = list(default=list('home','mentions','dm','sent_dm','sent_tweets','favorites','followers','friends','blocks','muted','events'))
[sound]
@@ -21,6 +22,9 @@ input_device = string(default="Default")
output_device = string(default="Default")
session_mute = boolean(default=False)
current_soundpack = string(default="default")
indicate_audio = boolean(default=True)
indicate_geo = boolean(default=True)
indicate_img = boolean(default=True)
sndup_api_key = string(default="")
[other_buffers]
@@ -38,4 +42,6 @@ autoread_buffers = list(default=list(mentions, direct_messages, events))
spelling_language = string(default="")
save_followers_in_autocompletion_db = boolean(default=False)
save_friends_in_autocompletion_db = boolean(default=False)
twishort_enabled = boolean(default=False)
ocr_language = string(default="")
[filters]

View File

@@ -9,8 +9,9 @@ class Auto(Output):
self.outputs = []
for output in output_classes:
try:
self.outputs.append(output())
except OutputError:
a=output()
self.outputs.append(a)
except:
pass
def get_first_available_output(self):
@@ -33,6 +34,7 @@ class Auto(Output):
output = self.get_first_available_output()
if output:
output.speak(*args, **kwargs)
output.braille(*args, **kwargs)
def is_system_output(self):
output = self.get_first_available_output()

View File

@@ -8,6 +8,7 @@ language = string(default="system")
hide_gui = boolean(default=False)
voice_enabled = boolean(default=False)
ask_at_exit = boolean(default=True)
autostart = boolean(default=False)
handle_longtweets = boolean(default=True)
use_invisible_keyboard_shorcuts = boolean(default=True)
play_ready_sound = boolean(default=True)
@@ -18,6 +19,7 @@ donation_dialog_displayed = boolean(default=False)
check_for_updates = boolean(default=True)
[proxy]
type = string(default="Direct connection")
server = string(default="")
port = string(default="")
user = string(default="")

View File

@@ -2,17 +2,18 @@
name = 'TWBlue'
snapshot = False
if snapshot == False:
version = "0.84"
update_url = 'http://twblue.es/updates/twblue_ngen.json'
version = "0.93"
update_url = 'https://twblue.es/updates/stable.php'
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/stable.json'
else:
version = "10.99"
update_url = 'http://twblue.es/updates/snapshots_ngen.json'
version = "3"
update_url = 'https://twblue.es/updates/snapshot.php'
mirror_update_url = 'https://raw.githubusercontent.com/manuelcortez/TWBlue/next-gen/updates/snapshots.json'
author = u"Manuel Cortéz"
authors = [u"Manuel Cortéz", u"José Manuel Delicado"]
authorEmail = "manuel@manuelcortez.net"
copyright = u"Copyright (C) 2015, Technow S.L. \nCopyright (C) 2013-2015, Manuel cortéz."
copyright = u"Copyright (C) 2013-2017, Manuel cortéz."
description = unicode(name+" is an app designed to use Twitter simply and efficiently while using minimal system resources. This app provides access to most Twitter features.")
translators = [u"Bryner Villalobos, Bill Dengler (English)", u"Mohammed Al Shara (Arabic)", u"Joan Rabat, Juan Carlos Rivilla (Catalan)", u"Manuel cortéz (Spanish)", u"Sukil Etxenike Arizaleta (Basque)", u"Jani Kinnunen (finnish)", u"Rémy Ruiz (French)", u"Juan Buño (Galician)", u"Steffen Schultz (German)", u"Robert Osztolykan (Hungarian)", u"Paweł Masarczyk (Polish)", u"Odenilton Júnior Santos (Portuguese)", u"Alexander Jaszyn (Russian)", u"Burak (Turkish)"]
url = u"http://twblue.es"
report_bugs_url = "http://twblue.es/bugs/api/soap/mantisconnect.php?wsdl"
translators = [u"Manuel Cortéz (English)", u"Mohammed Al Shara, Hatoun Felemban (Arabic)", u"Francisco Torres (Catalan)", u"Manuel cortéz (Spanish)", u"Sukil Etxenike Arizaleta (Basque)", u"Jani Kinnunen (finnish)", u"Rémy Ruiz (French)", u"Juan Buño (Galician)", u"Steffen Schultz (German)", u"Zvonimir Stanečić (Croatian)", u"Robert Osztolykan (Hungarian)", u"Christian Leo Mameli (Italian)", u"Riku (Japanese)", u"Paweł Masarczyk (Polish)", u"Odenilton Júnior Santos (Portuguese)", u"Florian Ionașcu, Nicușor Untilă (Romanian)", u"Natalia Hedlund, Valeria Kuznetsova (Russian)", u"Aleksandar Đurić (Serbian)", u"Burak Yüksek (Turkish)"]
url = u"https://twblue.es"
report_bugs_url = "https://github.com/manuelcortez/twblue/issues"
supported_languages = []

View File

@@ -28,21 +28,5 @@ def convert_soundcloud (url):
else:
raise TypeError('%r is not streamable' % url)
@matches_url('http://twup.me')
def convert_twup(url):
result = re.match("^http://twup.me/(?P<audio_id>[A-Za-z0-9]+/?)$", url, re.I)
if not result or result.group("audio_id") is None:
raise TypeError('%r is not a valid URL' % url)
audio_id = result.group("audio_id")
return 'http://twup.me/%s' % audio_id
#@matches_url('http://sndup.net')
#def convert_sndup(url):
# result = re.match("^http://sndup.net/(?P<audio_id>[a-z0-9]+/?)(|d|l|a)/?$", url, re.I)
# if not result or result.group("audio_id") is None:
# raise TypeError('%r is not a valid URL' % url)
# audio_id = result.group("audio_id")
# return 'http://sndup.net/%s/a' % audio_id
def convert_generic_audio(url):
return url

View File

@@ -2,18 +2,26 @@
import config_utils
import paths
import logging
import platform
log = logging.getLogger("config")
MAINFILE = "twblue.conf"
MAINSPEC = "app-configuration.defaults"
proxyTypes=[u"http", u"https", u"socks4", u"socks5"]
app = None
keymap=None
changed_keymap = False
def setup ():
global app
log.debug("Loading global app settings...")
app = config_utils.load_config(paths.config_path(MAINFILE), paths.app_path(MAINSPEC))
log.debug("Loading keymap...")
global keymap
keymap = config_utils.load_config(paths.config_path("keymap.keymap"), paths.app_path("keymaps/"+app['app-settings']['load_keymap']))
if float(platform.version()[:2]) >= 10 and app["app-settings"]["load_keymap"] == "default.keymap":
app["app-settings"]["load_keymap"] = "Windows 10.keymap"
app.write()
global changed_keymap
changed_keymap = True
keymap = config_utils.load_config(paths.config_path("keymap.keymap"), paths.app_path("keymaps/"+app['app-settings']['load_keymap']), copy=False)

View File

@@ -8,16 +8,14 @@ log = getLogger("config_utils")
class ConfigLoadError(Exception): pass
def load_config(config_path, configspec_path=None, *args, **kwargs):
if os.path.exists(config_path):
clean_config(config_path)
def load_config(config_path, configspec_path=None, copy=True, *args, **kwargs):
spec = ConfigObj(configspec_path, encoding='UTF8', list_values=False, _inspec=True)
try:
config = ConfigObj(infile=config_path, configspec=spec, create_empty=True, encoding='UTF8', *args, **kwargs)
except ParseError:
raise ConfigLoadError("Unable to load %r" % config_path)
validator = Validator()
validated = config.validate(validator, preserve_errors=False, copy=True)
validated = config.validate(validator, preserve_errors=False, copy=copy)
if validated == True:
config.write()
return config

View File

@@ -74,6 +74,7 @@ class bufferController(object):
if hasattr(sound.URLPlayer, "stream"):
sound.URLPlayer.stream.volume = self.session.settings["sound"]["volume"]
self.session.sound.play("volume_changed.ogg")
self.session.settings.write()
def volume_up(self):
if self.session.settings["sound"]["volume"] < 1.0:
@@ -84,6 +85,7 @@ class bufferController(object):
if hasattr(sound.URLPlayer, "stream"):
sound.URLPlayer.stream.volume = self.session.settings["sound"]["volume"]
self.session.sound.play("volume_changed.ogg")
self.session.settings.write()
def start_stream(self, mandatory=False):
if mandatory == True:
@@ -134,11 +136,10 @@ class bufferController(object):
def post_tweet(self, *args, **kwargs):
title = _(u"Tweet")
caption = _(u"Write the tweet here")
tweet = messages.tweet(self.session, title, caption, "", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
tweet = messages.tweet(self.session, title, caption, "")
if tweet.message.get_response() == widgetUtils.OK:
self.session.settings["mysc"]["twishort_enabled"] = tweet.message.long_tweet.GetValue()
text = tweet.message.get_text()
if len(text) > 140 and tweet.message.get("long_tweet") == True:
if len(text) > 280 and tweet.message.get("long_tweet") == True:
if not hasattr(tweet, "attachments"):
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
else:
@@ -148,13 +149,14 @@ class bufferController(object):
else:
call_threaded(self.post_with_media, text=text, attachments=tweet.attachments)
if hasattr(tweet.message, "destroy"): tweet.message.destroy()
self.session.settings.write()
def post_with_media(self, text, attachments):
media_ids = []
for i in attachments:
photo = open(i["file"], "rb")
img = self.session.twitter.twitter.upload_media(media=photo)
self.session.twitter.twitter.set_description(media_id=img["media_id"], alt_text=dict(text=i["description"]))
self.session.twitter.twitter.create_metadata(media_id=img["media_id"], alt_text=dict(text=i["description"]))
media_ids.append(img["media_id"])
self.session.twitter.twitter.update_status(status=text, media_ids=media_ids)
@@ -209,6 +211,7 @@ class accountPanel(bufferController):
else:
self.buffer.change_autostart(False)
config.app["sessions"]["ignored_sessions"].append(self.account_id)
config.app.write()
class emptyPanel(bufferController):
def __init__(self, parent, name, account):
@@ -224,7 +227,7 @@ class emptyPanel(bufferController):
self.needs_init = True
class baseBufferController(bufferController):
def __init__(self, parent, function, name, sessionObject, account, sound=None, bufferType=None, *args, **kwargs):
def __init__(self, parent, function, name, sessionObject, account, sound=None, bufferType=None, compose_func="compose_tweet", *args, **kwargs):
super(baseBufferController, self).__init__(parent, function, *args, **kwargs)
log.debug("Initializing buffer %s, account %s" % (name, account,))
if bufferType != None:
@@ -235,20 +238,30 @@ class baseBufferController(bufferController):
self.name = name
self.type = self.buffer.type
self.session = sessionObject
self.compose_function = compose.compose_tweet
self.compose_function = getattr(compose, compose_func)
log.debug("Compose_function: %s" % (self.compose_function,))
self.account = account
self.buffer.account = account
self.bind_events()
self.sound = sound
if "-timeline" in self.name or "-favorite" in self.name:
self.finished_timeline = False
# Add a compatibility layer for username based timelines from config.
# ToDo: Remove this in some new versions of the client, when user ID timelines become mandatory.
try:
int(self.kwargs["user_id"])
except ValueError:
self.is_screen_name = True
self.kwargs["screen_name"] = self.kwargs["user_id"]
self.kwargs.pop("user_id")
def get_formatted_message(self):
if self.type == "dm" or self.name == "sent_tweets" or self.name == "sent_direct_messages": return self.compose_function(self.get_right_tweet(), self.session.db, self.session.settings["general"]["relative_times"])[1]
if self.type == "dm" or self.name == "sent_tweets" or self.name == "sent_direct_messages": return self.compose_function(self.get_right_tweet(), self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])[1]
return self.get_message()
def get_message(self):
tweet = self.get_right_tweet()
return " ".join(self.compose_function(tweet, self.session.db, self.session.settings["general"]["relative_times"]))
return " ".join(self.compose_function(tweet, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"]))
def get_full_tweet(self):
tweet = self.get_right_tweet()
@@ -258,10 +271,10 @@ class baseBufferController(bufferController):
if tweet.has_key("message"):
message = tweet["message"]
try:
tweet = self.session.twitter.twitter.show_status(id=tweet_id, include_ext_alt_text=True)
urls = utils.find_urls_in_text(tweet["text"])
tweet = self.session.twitter.twitter.show_status(id=tweet_id, include_ext_alt_text=True, tweet_mode="extended")
urls = utils.find_urls_in_text(tweet["full_text"])
for url in range(0, len(urls)):
try: tweet["text"] = tweet["text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
try: tweet["full_text"] = tweet["full_text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
except TwythonError as e:
utils.twitter_error(e)
@@ -272,10 +285,10 @@ class baseBufferController(bufferController):
while l != False:
tweetsList.append(tweet)
try:
tweet = self.session.twitter.twitter.show_status(id=l, include_ext_alt_text=True)
urls = utils.find_urls_in_text(tweet["text"])
tweet = self.session.twitter.twitter.show_status(id=l, include_ext_alt_text=True, tweet_mode="extended")
urls = utils.find_urls_in_text(tweet["full_text"])
for url in range(0, len(urls)):
try: tweet["text"] = tweet["text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
try: tweet["full_text"] = tweet["full_text"].replace(urls[url], tweet["entities"]["urls"][url]["expanded_url"])
except IndexError: pass
except TwythonError as e:
utils.twitter_error(e)
@@ -296,6 +309,12 @@ class baseBufferController(bufferController):
number_of_items = self.session.order_buffer(self.name, val)
log.debug("Number of items retrieved: %d" % (number_of_items,))
self.put_items_on_list(number_of_items)
if hasattr(self, "finished_timeline") and self.finished_timeline == False:
if "-timeline" in self.name:
self.username = val[0]["user"]["screen_name"]
elif "-favorite" in self.name:
self.username = self.session.api_call("show_user", **self.kwargs)["screen_name"]
self.finished_timeline = True
if number_of_items > 0 and self.name != "sent_tweets" and self.name != "sent_direct_messages" and self.sound != None:
self.session.sound.play(self.sound)
return number_of_items
@@ -311,7 +330,7 @@ class baseBufferController(bufferController):
except TwythonError as e:
output.speak(e.message, True)
for i in items:
if utils.is_allowed(i, self.session.settings["twitter"]["ignored_clients"]) == True and utils.find_item(i["id"], self.session.db[self.name]) == None:
if utils.is_allowed(i, self.session.settings, self.name) == True and utils.find_item(i["id"], self.session.db[self.name]) == None:
i = self.session.check_quoted_status(i)
i = self.session.check_long_tweet(i)
elements.append(i)
@@ -322,33 +341,43 @@ class baseBufferController(bufferController):
selection = self.buffer.list.get_selected()
if self.session.settings["general"]["reverse_timelines"] == False:
for i in elements:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(True, *tweet)
else:
for i in items:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(False, *tweet)
# self.buffer.list.select_item(selection+elements)
# else:
self.buffer.list.select_item(selection)
output.speak(_(u"%s items retrieved") % (str(len(elements))), True)
def remove_buffer(self):
def remove_buffer(self, force=False):
if "-timeline" in self.name:
dlg = commonMessageDialogs.remove_buffer()
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-9] in self.session.settings["other_buffers"]["timelines"]:
self.session.settings["other_buffers"]["timelines"].remove(self.name[:-9])
self.session.db.pop(self.name)
self.session.settings.write()
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
return True
elif dlg == widgetUtils.NO:
return False
elif "favorite" in self.name:
dlg = commonMessageDialogs.remove_buffer()
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-9] in self.session.settings["other_buffers"]["favourites_timelines"]:
self.session.settings["other_buffers"]["favourites_timelines"].remove(self.name[:-9])
self.session.db.pop(self.name)
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
self.session.settings.write()
return True
elif dlg == widgetUtils.NO:
return False
@@ -364,30 +393,30 @@ class baseBufferController(bufferController):
self.remove_item(i)
def put_items_on_list(self, number_of_items):
if number_of_items == 0: return
if number_of_items == 0 and self.session.settings["general"]["persist_size"] == 0: return
log.debug("The list contains %d items " % (self.buffer.list.get_count(),))
log.debug("Putting %d items on the list" % (number_of_items,))
if self.buffer.list.get_count() == 0:
for i in self.session.db[self.name]:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(False, *tweet)
self.buffer.set_position(self.session.settings["general"]["reverse_timelines"])
elif self.buffer.list.get_count() > 0:
elif self.buffer.list.get_count() > 0 and number_of_items > 0:
if self.session.settings["general"]["reverse_timelines"] == False:
items = self.session.db[self.name][len(self.session.db[self.name])-number_of_items:]
for i in items:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(False, *tweet)
else:
items = self.session.db[self.name][0:number_of_items]
items.reverse()
for i in items:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(True, *tweet)
log.debug("Now the list contains %d items " % (self.buffer.list.get_count(),))
def add_new_item(self, item):
tweet = self.compose_function(item, self.session.db, self.session.settings["general"]["relative_times"])
tweet = self.compose_function(item, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
if self.session.settings["general"]["reverse_timelines"] == False:
self.buffer.list.insert_item(False, *tweet)
else:
@@ -479,21 +508,39 @@ class baseBufferController(bufferController):
tweet = self.get_right_tweet()
screen_name = tweet["user"]["screen_name"]
id = tweet["id"]
users = utils.get_all_mentioned(tweet, self.session.db)
message = messages.reply(self.session, _(u"Reply"), _(u"Reply to %s") % (screen_name,), "@%s " % (screen_name,), twishort_enabled=self.session.settings["mysc"]["twishort_enabled"], users=users)
twishort_enabled = tweet.has_key("twishort")
users = utils.get_all_mentioned(tweet, self.session.db, field="screen_name")
ids = utils.get_all_mentioned(tweet, self.session.db, field="id_str")
# Build the window title
if len(users) < 1:
title=_("Reply to {arg0}").format(arg0=screen_name)
else:
title=_("Reply")
message = messages.reply(self.session, title, _(u"Reply to %s") % (screen_name,), "", users=users, ids=ids)
if message.message.get_response() == widgetUtils.OK:
self.session.settings["mysc"]["twishort_enabled"] = message.message.long_tweet.GetValue()
params = {"_sound": "reply_send.ogg", "in_reply_to_status_id": id,}
text = message.message.get_text()
if len(text) > 140 and message.message.get("long_tweet") == True:
if twishort_enabled == False:
excluded_ids = message.get_ids()
params["exclude_reply_user_ids"] =excluded_ids
params["auto_populate_reply_metadata"] =True
else:
mentioned_people = message.get_people()
text = "@"+screen_name+" "+mentioned_people+u" "+text
if len(text) > 280 and message.message.get("long_tweet") == True:
if message.image == None:
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
else:
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text, 1)
params["status"] = text
if message.image == None:
call_threaded(self.session.api_call, call_name="update_status", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text)
params["call_name"] = "update_status"
else:
call_threaded(self.session.api_call, call_name="update_status_with_media", _sound="reply_send.ogg", in_reply_to_status_id=id, status=text, media=message.file)
params["call_name"] = "update_status_with_media"
params["media"] = message.file
call_threaded(self.session.api_call, **params)
if hasattr(message.message, "destroy"): message.message.destroy()
self.session.settings.write()
@_tweets_exist
def direct_message(self, *args, **kwargs):
@@ -534,20 +581,16 @@ class baseBufferController(bufferController):
self._retweet_with_comment(tweet, id)
def _retweet_with_comment(self, tweet, id, comment=''):
retweet = messages.tweet(self.session, _(u"Retweet"), _(u"Add your comment to the tweet"), u"“@%s: %s" % (tweet["user"]["screen_name"], tweet["text"]), max=116, messageType="retweet", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
if tweet.has_key("full_text"):
comments = tweet["full_text"]
else:
comments = tweet["text"]
retweet = messages.tweet(self.session, _(u"Quote"), _(u"Add your comment to the tweet"), u"“@%s: %s" % (tweet["user"]["screen_name"], comments), max=256, messageType="retweet")
if comment != '':
retweet.message.set_text(comment)
if retweet.message.get_response() == widgetUtils.OK:
text = retweet.message.get_text()
comments=text
if len(text+ u"“@%s: %s" % (tweet["user"]["screen_name"], tweet["text"])) < 140:
text = text+u"“@%s: %s" % (tweet["user"]["screen_name"], tweet["text"])
else:
answer = commonMessageDialogs.retweet_as_link(self.buffer)
if answer == widgetUtils.YES:
text = text+" https://twitter.com/{0}/status/{1}".format(tweet["user"]["screen_name"], id)
else:
return self._retweet_with_comment(tweet, id, comment=comments)
text = text+" https://twitter.com/{0}/status/{1}".format(tweet["user"]["screen_name"], id)
if retweet.image == None:
call_threaded(self.session.api_call, call_name="update_status", _sound="retweet_send.ogg", status=text, in_reply_to_status_id=id)
else:
@@ -564,10 +607,12 @@ class baseBufferController(bufferController):
original_date = arrow.get(self.session.db[self.name][self.buffer.list.get_selected()]["created_at"], "ddd MMM D H:m:s Z YYYY", locale="en")
ts = original_date.humanize(locale=languageHandler.getLanguage())
self.buffer.list.list.SetStringItem(self.buffer.list.get_selected(), 2, ts)
if utils.is_audio(tweet):
if self.session.settings['sound']['indicate_audio'] and utils.is_audio(tweet):
self.session.sound.play("audio.ogg")
if utils.is_geocoded(tweet):
if self.session.settings['sound']['indicate_geo'] and utils.is_geocoded(tweet):
self.session.sound.play("geo.ogg")
if self.session.settings['sound']['indicate_img'] and utils.is_media(tweet):
self.session.sound.play("image.ogg")
# @_tweets_exist
def audio(self, url='', *args, **kwargs):
@@ -585,10 +630,10 @@ class baseBufferController(bufferController):
url=urls_list.get_string()
if hasattr(urls_list, "destroy"): urls_list.destroy()
if url != '':
try:
sound.URLPlayer.play(url, self.session.settings["sound"]["volume"])
except:
log.error("Exception while executing audio method.")
# try:
sound.URLPlayer.play(url, self.session.settings["sound"]["volume"])
# except:
# log.error("Exception while executing audio method.")
# @_tweets_exist
def url(self, url='', announce=True, *args, **kwargs):
@@ -677,20 +722,25 @@ class listBufferController(baseBufferController):
super(listBufferController, self).start_stream(mandatory)
def get_user_ids(self):
self.users = []
next_cursor = -1
while(next_cursor):
users = self.session.twitter.twitter.get_list_members(list_id=self.list_id, cursor=next_cursor, include_entities=False, skip_status=True)
for i in users['users']:
self.users.append(i["id"])
if i["id"] not in self.users:
self.users.append(i["id"])
next_cursor = users["next_cursor"]
def remove_buffer(self):
dlg = commonMessageDialogs.remove_buffer()
def remove_buffer(self, force=False):
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-5] in self.session.settings["other_buffers"]["lists"]:
self.session.settings["other_buffers"]["lists"].remove(self.name[:-5])
self.session.db.pop(self.name)
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
self.session.settings.write()
return True
elif dlg == widgetUtils.NO:
return False
@@ -715,7 +765,7 @@ class eventsBufferController(bufferController):
return "%s. %s" % (self.buffer.list.list.GetItemText(self.buffer.list.get_selected()), self.buffer.list.list.GetItemText(self.buffer.list.get_selected(), 1))
def add_new_item(self, item):
tweet = self.compose_function(item, self.session.db["user_name"])
tweet = self.compose_function(item, self.session.db["user_name"], self.session.settings["general"]["show_screen_names"])
if self.session.settings["general"]["reverse_timelines"] == False:
self.buffer.list.insert_item(False, *tweet)
else:
@@ -755,23 +805,43 @@ class peopleBufferController(baseBufferController):
log.debug("Compose_function: %s" % (self.compose_function,))
self.get_tweet = self.get_right_tweet
self.url = self.interact
if "-followers" in self.name or "-friends" in self.name:
self.finished_timeline = False
# Add a compatibility layer for username based timelines from config.
# ToDo: Remove this in some new versions of the client, when user ID timelines become mandatory.
try:
int(self.kwargs["user_id"])
except ValueError:
self.is_screen_name = True
self.kwargs["screen_name"] = self.kwargs["user_id"]
self.kwargs.pop("user_id")
def remove_buffer(self):
def remove_buffer(self, force=True):
if "-followers" in self.name:
dlg = commonMessageDialogs.remove_buffer()
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-10] in self.session.settings["other_buffers"]["followers_timelines"]:
self.session.settings["other_buffers"]["followers_timelines"].remove(self.name[:-10])
self.session.db.pop(self.name)
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
self.session.settings.write()
return True
elif dlg == widgetUtils.NO:
return False
elif "-friends" in self.name:
dlg = commonMessageDialogs.remove_buffer()
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-8] in self.session.settings["other_buffers"]["friends_timelines"]:
self.session.settings["other_buffers"]["friends_timelines"].remove(self.name[:-8])
self.session.db.pop(self.name)
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
self.session.settings.write()
return True
elif dlg == widgetUtils.NO:
return False
@@ -783,7 +853,7 @@ class peopleBufferController(baseBufferController):
pass
def get_message(self):
return " ".join(self.compose_function(self.get_tweet(), self.session.db, self.session.settings["general"]["relative_times"]))
return " ".join(self.compose_function(self.get_tweet(), self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"]))
def delete_item(self): pass
@@ -808,6 +878,9 @@ class peopleBufferController(baseBufferController):
log.debug("args: %s, kwargs: %s" % (self.args, self.kwargs))
val = self.session.get_cursored_stream(self.name, self.function, *self.args, **self.kwargs)
self.put_items_on_list(val)
if hasattr(self, "finished_timeline") and self.finished_timeline == False:
self.username = self.session.api_call("show_user", **self.kwargs)["screen_name"]
self.finished_timeline = True
return val
def get_more_items(self):
@@ -906,26 +979,63 @@ class searchBufferController(baseBufferController):
log.debug("args: %s, kwargs: %s" % (self.args, self.kwargs))
log.debug("Function: %s" % (self.function,))
# try:
val = self.session.search(self.name, *self.args, **self.kwargs)
val = self.session.search(self.name, count=self.session.settings["general"]["max_tweets_per_call"], *self.args, **self.kwargs)
# except:
# return None
num = self.session.order_buffer(self.name, val)
self.put_items_on_list(num)
if num > 0:
if num > 0 and self.session.settings["sound"]["session_mute"] == False and self.name not in self.session.settings["other_buffers"]["muted_buffers"]:
self.session.sound.play("search_updated.ogg")
return num
def remove_buffer(self):
dlg = commonMessageDialogs.remove_buffer()
def remove_buffer(self, force=False):
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]:
self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11])
self.timer.cancel()
self.session.db.pop(self.name)
self.session.settings.write()
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
return True
elif dlg == widgetUtils.NO:
return False
def get_more_items(self):
elements = []
if self.session.settings["general"]["reverse_timelines"] == False:
last_id = self.session.db[self.name][0]["id"]
else:
last_id = self.session.db[self.name][-1]["id"]
try:
items = self.session.search(self.name, count=self.session.settings["general"]["max_tweets_per_call"], max_id=last_id, *self.args, **self.kwargs)
except TwythonError as e:
output.speak(e.message, True)
for i in items:
if utils.is_allowed(i, self.session.settings, self.name) == True and utils.find_item(i["id"], self.session.db[self.name]) == None:
i = self.session.check_quoted_status(i)
i = self.session.check_long_tweet(i)
elements.append(i)
if self.session.settings["general"]["reverse_timelines"] == False:
self.session.db[self.name].insert(0, i)
else:
self.session.db[self.name].append(i)
selection = self.buffer.list.get_selected()
if self.session.settings["general"]["reverse_timelines"] == False:
for i in elements:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(True, *tweet)
else:
for i in items:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"], self.session.settings["general"]["show_screen_names"])
self.buffer.list.insert_item(False, *tweet)
# self.buffer.list.select_item(selection+elements)
# else:
self.buffer.list.select_item(selection)
output.speak(_(u"%s items retrieved") % (str(len(elements))), True)
class searchPeopleBufferController(peopleBufferController):
def __init__(self, parent, function, name, sessionObject, account, bufferType="peoplePanel", *args, **kwargs):
@@ -936,6 +1046,8 @@ class searchPeopleBufferController(peopleBufferController):
self.args = args
self.kwargs = kwargs
self.function = function
if self.kwargs.has_key("page") == False:
self.kwargs["page"] = 1
def start_stream(self, mandatory=False):
# starts stream every 3 minutes.
@@ -952,17 +1064,50 @@ class searchPeopleBufferController(peopleBufferController):
number_of_items = self.session.order_cursored_buffer(self.name, val)
log.debug("Number of items retrieved: %d" % (number_of_items,))
self.put_items_on_list(number_of_items)
if number_of_items > 0:
if number_of_items > 0 and self.session.settings["sound"]["session_mute"] == False and self.name not in self.session.settings["other_buffers"]["muted_buffers"]:
self.session.sound.play("search_updated.ogg")
return number_of_items
def remove_buffer(self):
dlg = commonMessageDialogs.remove_buffer()
def get_more_items(self, *args, **kwargs):
self.kwargs["page"] += 1
try:
items = self.session.get_more_items(self.function, users=True, name=self.name, count=self.session.settings["general"]["max_tweets_per_call"], *self.args, **self.kwargs)
except TwythonError as e:
output.speak(e.message, True)
return
for i in items:
if self.session.settings["general"]["reverse_timelines"] == False:
self.session.db[self.name]["items"].insert(0, i)
else:
self.session.db[self.name]["items"].append(i)
selected = self.buffer.list.get_selected()
# self.put_items_on_list(len(items))
if self.session.settings["general"]["reverse_timelines"] == True:
for i in items:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
self.buffer.list.insert_item(True, *tweet)
self.buffer.list.select_item(selected)
else:
for i in items:
tweet = self.compose_function(i, self.session.db, self.session.settings["general"]["relative_times"])
self.buffer.list.insert_item(True, *tweet)
# self.buffer.list.select_item(selection)
# else:
# self.buffer.list.select_item(selection-elements)
output.speak(_(u"%s items retrieved") % (len(items)), True)
def remove_buffer(self, force=False):
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-11] in self.session.settings["other_buffers"]["tweet_searches"]:
self.session.settings["other_buffers"]["tweet_searches"].remove(self.name[:-11])
self.timer.cancel()
self.session.db.pop(self.name)
self.session.settings.write()
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
return True
elif dlg == widgetUtils.NO:
return False
@@ -999,7 +1144,8 @@ class trendsBufferController(bufferController):
self.name_ = data[0]["locations"][0]["name"]
self.trends = data[0]["trends"]
self.put_items_on_the_list()
self.session.sound.play(self.sound)
if self.session.settings["sound"]["session_mute"] == False and self.name not in self.session.settings["other_buffers"]["muted_buffers"]:
self.session.sound.play(self.sound)
def put_items_on_the_list(self):
selected_item = self.buffer.list.get_selected()
@@ -1024,13 +1170,17 @@ class trendsBufferController(bufferController):
def get_message(self):
return self.compose_function(self.trends[self.buffer.list.get_selected()])[0]
def remove_buffer(self):
dlg = commonMessageDialogs.remove_buffer()
def remove_buffer(self, force=False):
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
if self.name[:-3] in self.session.settings["other_buffers"]["trending_topic_buffers"]:
self.session.settings["other_buffers"]["trending_topic_buffers"].remove(self.name[:-3])
self.timer.cancel()
self.session.db.pop(self.name)
self.session.settings.write()
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
return True
elif dlg == widgetUtils.NO:
return False
@@ -1063,12 +1213,11 @@ class trendsBufferController(bufferController):
if self.buffer.list.get_count() == 0: return
title = _(u"Tweet")
caption = _(u"Write the tweet here")
tweet = messages.tweet(self.session, title, caption, self.get_message()+ " ", twishort_enabled=self.session.settings["mysc"]["twishort_enabled"])
tweet = messages.tweet(self.session, title, caption, self.get_message()+ " ")
tweet.message.set_cursor_at_end()
if tweet.message.get_response() == widgetUtils.OK:
self.session.settings["mysc"]["twishort_enabled"] = tweet.message.long_tweet.GetValue()
text = tweet.message.get_text()
if len(text) > 140 and tweet.message.get("long_tweet") == True:
if len(text) > 280 and tweet.message.get("long_tweet") == True:
if tweet.image == None:
text = twishort.create_tweet(self.session.settings["twitter"]["user_key"], self.session.settings["twitter"]["user_secret"], text)
else:
@@ -1100,7 +1249,7 @@ class conversationBufferController(searchBufferController):
tweet = self.tweet
while tweet["in_reply_to_status_id"] != None:
try:
tweet = self.session.twitter.twitter.show_status(id=tweet["in_reply_to_status_id"])
tweet = self.session.twitter.twitter.show_status(id=tweet["in_reply_to_status_id"], tweet_mode="extended")
except TwythonError as err:
break
self.statuses.insert(0, tweet)
@@ -1108,7 +1257,7 @@ class conversationBufferController(searchBufferController):
if tweet["in_reply_to_status_id"] == None:
self.kwargs["since_id"] = tweet["id"]
self.ids.append(tweet["id"])
val2 = self.session.search(self.name, *self.args, **self.kwargs)
val2 = self.session.search(self.name, tweet_mode="extended", *self.args, **self.kwargs)
for i in val2:
if i["in_reply_to_status_id"] in self.ids:
self.statuses.append(i)
@@ -1117,23 +1266,18 @@ class conversationBufferController(searchBufferController):
number_of_items = self.session.order_buffer(self.name, self.statuses)
log.debug("Number of items retrieved: %d" % (number_of_items,))
self.put_items_on_list(number_of_items)
if number_of_items > 0:
if number_of_items > 0 and self.session.settings["sound"]["session_mute"] == False and self.name not in self.session.settings["other_buffers"]["muted_buffers"]:
self.session.sound.play("search_updated.ogg")
return number_of_items
def remove_buffer(self):
dlg = commonMessageDialogs.remove_buffer()
def remove_buffer(self, force=False):
if force == False:
dlg = commonMessageDialogs.remove_buffer()
else:
dlg = widgetUtils.YES
if dlg == widgetUtils.YES:
self.timer.cancel()
if self.session.db.has_key(self.name):
self.session.db.pop(self.name)
return True
elif dlg == widgetUtils.NO:
return False
class pocketBufferController(baseBufferController):
def __init__(self, parent, name, sessionObject, account, sound=None, function=None, bufferType=None, *args, **kwargs):
super(pocketBufferController, self).__init__(parent, name, sessionObject, account, sound, function, bufferType, *args, **kwargs)
self.type = "pocket"
def start_stream(self):
log.debug("Starting stream for buffer %s, account %s and type %s" % (self.name, self.account, self.type))
log.debug("args: %s, kwargs: %s" % (self.args, self.kwargs))

View File

@@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
import time
import widgetUtils
import application
from wxUI.dialogs import filterDialogs
from wxUI import commonMessageDialogs
class filter(object):
def __init__(self, buffer, filter_title=None, if_word_exists=None, in_lang=None, regexp=None, word=None, in_buffer=None):
self.buffer = buffer
self.dialog = filterDialogs.filterDialog(languages=[i["name"] for i in application.supported_languages])
if self.dialog.get_response() == widgetUtils.OK:
title = self.dialog.get("title")
contains = self.dialog.get("contains")
term = self.dialog.get("term")
regexp = self.dialog.get("regexp")
load_language = self.dialog.get("load_language")
ignore_language = self.dialog.get("ignore_language")
lang_option = None
if ignore_language:
lang_option = False
elif load_language:
lang_option = True
langs = self.dialog.get_selected_langs()
langcodes = []
for i in application.supported_languages:
if i["name"] in langs:
langcodes.append(i["code"])
d = dict(in_buffer=self.buffer.name, word=term, regexp=regexp, in_lang=lang_option, languages=langcodes, if_word_exists=contains)
if self.buffer.session.settings["filters"].has_key(title):
return commonMessageDialogs.existing_filter()
self.buffer.session.settings["filters"][title] = d
self.buffer.session.settings.write()
class filterManager(object):
def __init__(self, session):
self.session = session
self.dialog = filterDialogs.filterManagerDialog()
self.insert_filters(self.session.settings["filters"])
if self.dialog.filters.get_count() == 0:
self.dialog.edit.Enable(False)
self.dialog.delete.Enable(False)
else:
widgetUtils.connect_event(self.dialog.edit, widgetUtils.BUTTON_PRESSED, self.edit_filter)
widgetUtils.connect_event(self.dialog.delete, widgetUtils.BUTTON_PRESSED, self.delete_filter)
response = self.dialog.get_response()
def insert_filters(self, filters):
self.dialog.filters.clear()
for f in filters.keys():
# ToDo: Add titles to filters.
filterName = f
buffer = filters[f]["in_buffer"]
if filters[f]["if_word_exists"] == "True" and filters[f]["word"] != "":
filter_by_word = "True"
else:
filter_by_word = "False"
filter_by_lang = ""
if filters[f]["in_lang"] != "None":
filter_by_lang = "True"
b = [f, buffer, filter_by_word, filter_by_lang]
self.dialog.filters.insert_item(False, *b)
def edit_filter(self, *args, **kwargs):
pass
def delete_filter(self, *args, **kwargs):
filter_title = self.dialog.filters.get_text_column(self.dialog.filters.get_selected(), 0)
response = commonMessageDialogs.delete_filter()
if response == widgetUtils.YES:
self.session.settings["filters"].pop(filter_title)
self.session.settings.write()
self.insert_filters(self.session.settings["filters"])

View File

@@ -1,7 +0,0 @@
# -*- coding: utf-8 -*-
from wxUI.dialogs import filters
class filterController(object):
def __init__(self):
self.dialog = filters.filterDialog()
self.dialog.get_response()

View File

@@ -6,14 +6,15 @@ if system == "Windows":
from update import updater
from wxUI import (view, dialogs, commonMessageDialogs, sysTrayIcon)
import settings
from extra import SoundsTutorial
from extra import SoundsTutorial, ocr
import keystrokeEditor
from keyboard_handler.wx_handler import WXKeyboardHandler
import userActionsController
import trendingTopics
import user
import listsController
from issueReporter import issueReporter
import filterController
# from issueReporter import issueReporter
elif system == "Linux":
from gtkUI import (view, commonMessageDialogs)
from twitter import utils, compose
@@ -25,7 +26,7 @@ from sessionmanager import session as session_
from pubsub import pub
import sound
import output
from twython import TwythonError
from twython import TwythonError, TwythonAuthError
from mysc.thread_utils import call_threaded
from mysc.repeating_timer import RepeatingTimer
from mysc import restart
@@ -120,6 +121,7 @@ class Controller(object):
pub.subscribe(self.manage_item_in_list, "item-in-list")
pub.subscribe(self.restart_streams_, "restart_streams")
pub.subscribe(self.on_tweet_deleted, "tweet-deleted")
pub.subscribe(self.buffer_title_changed, "buffer-title-changed")
widgetUtils.connect_event(self.view, widgetUtils.CLOSE_EVENT, self.exit_)
def bind_other_events(self):
@@ -138,10 +140,12 @@ class Controller(object):
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.search, menuitem=self.view.menuitem_search)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.list_manager, menuitem=self.view.lists)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.get_trending_topics, menuitem=self.view.trends)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.filter, menuitem=self.view.filter)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.manage_filters, menuitem=self.view.manage_filters)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.find, menuitem=self.view.find)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.accountConfiguration, menuitem=self.view.account_settings)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.configuration, menuitem=self.view.prefs)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.ocr_image, menuitem=self.view.ocr)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.learn_sounds, menuitem=self.view.sounds_tutorial)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.exit, menuitem=self.view.close)
widgetUtils.connect_event(self.view, widgetUtils.CLOSE_EVENT, self.exit)
@@ -175,6 +179,8 @@ class Controller(object):
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_timeline, self.view.timeline)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_favs_timeline, self.view.favs)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.open_conversation, menuitem=self.view.view_conversation)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.seekLeft, menuitem=self.view.seekLeft)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.seekRight, menuitem=self.view.seekRight)
if widgetUtils.toolkit == "wx":
widgetUtils.connect_event(self.view.nb, widgetUtils.NOTEBOOK_PAGE_CHANGED, self.buffer_changed)
widgetUtils.connect_event(self.view, widgetUtils.MENU, self.report_error, self.view.reportError)
@@ -214,6 +220,7 @@ class Controller(object):
self.view = view.mainFrame()
# buffers list.
self.buffers = []
self.started = False
# accounts list.
self.accounts = []
# This saves the current account (important in invisible mode)
@@ -249,6 +256,8 @@ class Controller(object):
# Connection checker executed each minute.
self.checker_function = RepeatingTimer(60, self.check_connection)
self.checker_function.start()
self.save_db = RepeatingTimer(300, self.save_data_in_db)
self.save_db.start()
def start(self):
""" Starts all buffer objects. Loads their items."""
@@ -260,6 +269,7 @@ class Controller(object):
session_.sessions[session_.sessions.keys()[0]].sound.play("ready.ogg")
if config.app["app-settings"]["speak_ready_msg"] == True:
output.speak(_(u"Ready"))
self.started = True
def create_ignored_session_buffer(self, session):
self.accounts.append(session.settings["twitter"]["user_name"])
@@ -289,27 +299,27 @@ class Controller(object):
self.view.add_buffer(account.buffer , name=session.db["user_name"])
for i in session.settings['general']['buffer_order']:
if i == 'home':
home = buffersController.baseBufferController(self.view.nb, "get_home_timeline", "home_timeline", session, session.db["user_name"])
home = buffersController.baseBufferController(self.view.nb, "get_home_timeline", "home_timeline", session, session.db["user_name"], tweet_mode="extended")
self.buffers.append(home)
self.view.insert_buffer(home.buffer, name=_(u"Home"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'mentions':
mentions = buffersController.baseBufferController(self.view.nb, "get_mentions_timeline", "mentions", session, session.db["user_name"], sound="mention_received.ogg")
mentions = buffersController.baseBufferController(self.view.nb, "get_mentions_timeline", "mentions", session, session.db["user_name"], sound="mention_received.ogg", tweet_mode="extended")
self.buffers.append(mentions)
self.view.insert_buffer(mentions.buffer, name=_(u"Mentions"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'dm':
dm = buffersController.baseBufferController(self.view.nb, "get_direct_messages", "direct_messages", session, session.db["user_name"], bufferType="dmPanel", sound="dm_received.ogg", full_text=True)
dm = buffersController.baseBufferController(self.view.nb, "get_direct_messages", "direct_messages", session, session.db["user_name"], bufferType="dmPanel", compose_func="compose_dm", sound="dm_received.ogg", full_text=True)
self.buffers.append(dm)
self.view.insert_buffer(dm.buffer, name=_(u"Direct messages"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'sent_dm':
sent_dm = buffersController.baseBufferController(self.view.nb, "get_sent_messages", "sent_direct_messages", session, session.db["user_name"], bufferType="dmPanel", full_text=True)
sent_dm = buffersController.baseBufferController(self.view.nb, "get_sent_messages", "sent_direct_messages", session, session.db["user_name"], bufferType="dmPanel", compose_func="compose_dm", full_text=True)
self.buffers.append(sent_dm)
self.view.insert_buffer(sent_dm.buffer, name=_(u"Sent direct messages"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'sent_tweets':
sent_tweets = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "sent_tweets", session, session.db["user_name"], bufferType="dmPanel", screen_name=session.db["user_name"])
sent_tweets = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "sent_tweets", session, session.db["user_name"], bufferType="dmPanel", screen_name=session.db["user_name"], tweet_mode="extended")
self.buffers.append(sent_tweets)
self.view.insert_buffer(sent_tweets.buffer, name=_(u"Sent tweets"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
elif i == 'favorites':
favourites = buffersController.baseBufferController(self.view.nb, "get_favorites", "favourites", session, session.db["user_name"])
favourites = buffersController.baseBufferController(self.view.nb, "get_favorites", "favourites", session, session.db["user_name"], tweet_mode="extended")
self.buffers.append(favourites)
self.view.insert_buffer(favourites.buffer, name=_(u"Likes"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
@@ -337,14 +347,14 @@ class Controller(object):
self.buffers.append(timelines)
self.view.insert_buffer(timelines.buffer , name=_(u"Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
for i in session.settings["other_buffers"]["timelines"]:
tl = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "%s-timeline" % (i,), session, session.db["user_name"], bufferType=None, screen_name=i)
tl = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "%s-timeline" % (i,), session, session.db["user_name"], bufferType=None, user_id=i, tweet_mode="extended")
self.buffers.append(tl)
self.view.insert_buffer(tl.buffer, name=_(u"Timeline for {}").format(i,), pos=self.view.search("timelines", session.db["user_name"]))
favs_timelines = buffersController.emptyPanel(self.view.nb, "favs_timelines", session.db["user_name"])
self.buffers.append(favs_timelines)
self.view.insert_buffer(favs_timelines.buffer , name=_(u"Likes timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
for i in session.settings["other_buffers"]["favourites_timelines"]:
tl = buffersController.baseBufferController(self.view.nb, "get_favorites", "%s-favorite" % (i,), session, session.db["user_name"], bufferType=None, screen_name=i)
tl = buffersController.baseBufferController(self.view.nb, "get_favorites", "%s-favorite" % (i,), session, session.db["user_name"], bufferType=None, user_id=i, tweet_mode="extended")
self.buffers.append(tl)
self.view.insert_buffer(tl.buffer, name=_(u"Likes for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
tl.timer = RepeatingTimer(300, tl.start_stream)
@@ -353,33 +363,33 @@ class Controller(object):
self.buffers.append(followers_timelines)
self.view.insert_buffer(followers_timelines.buffer , name=_(u"Followers' Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
for i in session.settings["other_buffers"]["followers_timelines"]:
tl = buffersController.peopleBufferController(self.view.nb, "get_followers_list", "%s-followers" % (i,), session, session.db["user_name"], screen_name=i)
tl = buffersController.peopleBufferController(self.view.nb, "get_followers_list", "%s-followers" % (i,), session, session.db["user_name"], user_id=i)
self.buffers.append(tl)
self.view.insert_buffer(tl.buffer, name=_(u"Followers for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
self.view.insert_buffer(tl.buffer, name=_(u"Followers for {}").format(i,), pos=self.view.search("followers_timelines", session.db["user_name"]))
tl.timer = RepeatingTimer(300, tl.start_stream)
tl.timer.start()
friends_timelines = buffersController.emptyPanel(self.view.nb, "friends_timelines", session.db["user_name"])
self.buffers.append(friends_timelines)
self.view.insert_buffer(friends_timelines.buffer , name=_(u"Friends' Timelines"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
for i in session.settings["other_buffers"]["friends_timelines"]:
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (i,), session, session.db["user_name"], screen_name=i)
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (i,), session, session.db["user_name"], user_id=i)
self.buffers.append(tl)
self.view.insert_buffer(tl.buffer, name=_(u"Friends for {}").format(i,), pos=self.view.search("favs_timelines", session.db["user_name"]))
self.view.insert_buffer(tl.buffer, name=_(u"Friends for {}").format(i,), pos=self.view.search("friends_timelines", session.db["user_name"]))
tl.timer = RepeatingTimer(300, tl.start_stream)
tl.timer.start()
lists = buffersController.emptyPanel(self.view.nb, "lists", session.db["user_name"])
self.buffers.append(lists)
self.view.insert_buffer(lists.buffer , name=_(u"Lists"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
for i in session.settings["other_buffers"]["lists"]:
tl = buffersController.listBufferController(self.view.nb, "get_list_statuses", "%s-list" % (i,), session, session.db["user_name"], bufferType=None, list_id=utils.find_list(i, session.db["lists"]))
tl = buffersController.listBufferController(self.view.nb, "get_list_statuses", "%s-list" % (i,), session, session.db["user_name"], bufferType=None, list_id=utils.find_list(i, session.db["lists"]), tweet_mode="extended")
session.lists.append(tl)
self.buffers.append(tl)
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(i), pos=self.view.search("timelines", session.db["user_name"]))
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(i), pos=self.view.search("lists", session.db["user_name"]))
searches = buffersController.emptyPanel(self.view.nb, "searches", session.db["user_name"])
self.buffers.append(searches)
self.view.insert_buffer(searches.buffer , name=_(u"Searches"), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
for i in session.settings["other_buffers"]["tweet_searches"]:
tl = buffersController.searchBufferController(self.view.nb, "search", "%s-searchterm" % (i,), session, session.db["user_name"], bufferType="searchPanel", q=i, count=session.settings["general"]["max_tweets_per_call"])
tl = buffersController.searchBufferController(self.view.nb, "search", "%s-searchterm" % (i,), session, session.db["user_name"], bufferType="searchPanel", q=i, tweet_mode="extended")
self.buffers.append(tl)
self.view.insert_buffer(tl.buffer, name=_(u"Search for {}").format(i), pos=self.view.search("searches", session.db["user_name"]))
tl.timer = RepeatingTimer(180, tl.start_stream)
@@ -393,7 +403,7 @@ class Controller(object):
buffer.timer.start()
self.view.insert_buffer(buffer.buffer, name=_(u"Trending topics for %s") % (buffer.name_), pos=self.view.search(session.db["user_name"], session.db["user_name"]))
def set_buffer_positions(self,session):
def set_buffer_positions(self, session):
"Sets positions for buffers if values exist in the database."
for i in self.buffers:
if i.account == session.db["user_name"] and session.db.has_key(i.name+"_pos") and hasattr(i.buffer,'list'):
@@ -433,8 +443,9 @@ class Controller(object):
if dlg.get("tweets") == True:
if term not in buffer.session.settings["other_buffers"]["tweet_searches"]:
buffer.session.settings["other_buffers"]["tweet_searches"].append(term)
buffer.session.settings.write()
args = {"lang": dlg.get_language(), "result_type": dlg.get_result_type()}
search = buffersController.searchBufferController(self.view.nb, "search", "%s-searchterm" % (term,), buffer.session, buffer.session.db["user_name"], bufferType="searchPanel", q=term, count=buffer.session.settings["general"]["max_tweets_per_call"], **args)
search = buffersController.searchBufferController(self.view.nb, "search", "%s-searchterm" % (term,), buffer.session, buffer.session.db["user_name"], bufferType="searchPanel", q=term, tweet_mode="extended", **args)
else:
log.error("A buffer for the %s search term is already created. You can't create a duplicate buffer." % (term,))
return
@@ -469,16 +480,43 @@ class Controller(object):
output.speak(_(u"Empty buffer."), True)
return
start = page.buffer.list.get_selected()
for i in xrange(start,count):
page.buffer.list.select_item(i)
if string.lower() in page.get_message().lower():
for i in xrange(start, count):
if string.lower() in page.buffer.list.get_text_column(i, 1).lower():
page.buffer.list.select_item(i)
return output.speak(page.get_message(), True)
output.speak(_(u"{0} not found.").format(string,), True)
page.buffer.list.select_item(start)
def filter(self, *args, **kwargs):
page = self.get_current_buffer()
if not hasattr(page.buffer, "list"):
output.speak(_(u"No session is currently in focus. Focus a session with the next or previous session shortcut."), True)
return
# Let's prevent filtering of some buffers (people buffers, direct messages, events and sent items).
if (page.name == "direct_messages" or page.name =="sent_direct_messages" or page.name == "sent_tweets" or page.name == "events") or page.type == "people":
output.speak(_(u"Filters cannot be applied on this buffer"))
return
new_filter = filterController.filter(page)
def manage_filters(self, *args, **kwargs):
page = self.get_best_buffer()
manage_filters = filterController.filterManager(page.session)
def seekLeft(self, *args, **kwargs):
try:
sound.URLPlayer.seek(-5)
except:
output.speak("Unable to seek.",True)
def seekRight(self, *args, **kwargs):
try:
sound.URLPlayer.seek(5)
except:
output.speak("Unable to seek.",True)
def edit_keystrokes(self, *args, **kwargs):
editor = keystrokeEditor.KeystrokeEditor()
if editor.changed == True:
config.keymap.write()
register = False
# determines if we need to reassign the keymap.
if self.showing == False:
@@ -620,12 +658,8 @@ class Controller(object):
for i in self.buffers: i.save_positions()
log.debug("Exiting...")
log.debug("Saving global configuration...")
config.app.write()
config.keymap.write()
for item in session_.sessions:
if session_.sessions[item].logged == False: continue
log.debug("Saving config for %s session" % (session_.sessions[item].session_id,))
session_.sessions[item].settings.write()
log.debug("Disconnecting streams for %s session" % (session_.sessions[item].session_id,))
if hasattr(session_.sessions[item], "main_stream"): session_.sessions[item].main_stream.disconnect()
if hasattr(session_.sessions[item], "timelinesStream"): session_.sessions[item].timelinesStream.disconnect()
@@ -777,6 +811,9 @@ class Controller(object):
if dlg.get_response() == widgetUtils.OK:
usr = utils.if_user_exists(buff.session.twitter.twitter, dlg.get_user())
if usr != None:
if usr == dlg.get_user():
commonMessageDialogs.suspended_user()
return
if usr["protected"] == True:
if usr["following"] == False:
commonMessageDialogs.no_following()
@@ -788,71 +825,88 @@ class Controller(object):
if usr["statuses_count"] == 0:
commonMessageDialogs.no_tweets()
return
if dlg.get_user() in buff.session.settings["other_buffers"]["timelines"]:
if usr["id_str"] in buff.session.settings["other_buffers"]["timelines"]:
commonMessageDialogs.timeline_exist()
return
tl = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "%s-timeline" % (dlg.get_user(),), buff.session, buff.session.db["user_name"], bufferType=None, screen_name=dlg.get_user())
tl.start_stream()
tl = buffersController.baseBufferController(self.view.nb, "get_user_timeline", "%s-timeline" % (usr["id_str"],), buff.session, buff.session.db["user_name"], bufferType=None, user_id=usr["id_str"], tweet_mode="extended")
try:
tl.start_stream()
except TwythonAuthError:
commonMessageDialogs.unauthorized()
return
pos=self.view.search("timelines", buff.session.db["user_name"])
self.insert_buffer(tl, pos+1)
# self.buffers.insert(pos+1, tl)
self.view.insert_buffer(tl.buffer, name=_(u"Timeline for {}").format(dlg.get_user()), pos=pos)
buff.session.settings["other_buffers"]["timelines"].append(dlg.get_user())
buff.session.settings["other_buffers"]["timelines"].append(usr["id_str"])
pub.sendMessage("buffer-title-changed", buffer=tl)
pub.sendMessage("restart-streams", streams=["timelinesStream"], session=buff.session)
buff.session.sound.play("create_timeline.ogg")
elif tl_type == "favourites":
if usr["favourites_count"] == 0:
commonMessageDialogs.no_favs()
return
if dlg.get_user() in buff.session.settings["other_buffers"]["favourites_timelines"]:
if usr["id_str"] in buff.session.settings["other_buffers"]["favourites_timelines"]:
commonMessageDialogs.timeline_exist()
return
tl = buffersController.baseBufferController(self.view.nb, "get_favorites", "%s-favorite" % (dlg.get_user(),), buff.session, buff.session.db["user_name"], bufferType=None, screen_name=dlg.get_user())
tl = buffersController.baseBufferController(self.view.nb, "get_favorites", "%s-favorite" % (usr["id_str"],), buff.session, buff.session.db["user_name"], bufferType=None, user_id=usr["id_str"], tweet_mode="extended")
try:
tl.start_stream()
except TwythonAuthError:
commonMessageDialogs.unauthorized()
return
pos=self.view.search("favs_timelines", buff.session.db["user_name"])
self.insert_buffer(tl, pos+1)
# self.buffers.insert(pos+1, tl)
self.view.insert_buffer(buffer=tl.buffer, name=_(u"Likes for {}").format(dlg.get_user()), pos=pos)
tl.start_stream()
tl.timer = RepeatingTimer(300, tl.start_stream)
tl.timer.start()
buff.session.settings["other_buffers"]["favourites_timelines"].append(dlg.get_user())
buff.session.settings["other_buffers"]["favourites_timelines"].append(usr["id_str"])
pub.sendMessage("buffer-title-changed", buffer=buff)
buff.session.sound.play("create_timeline.ogg")
elif tl_type == "followers":
if usr["followers_count"] == 0:
commonMessageDialogs.no_followers()
return
if dlg.get_user() in buff.session.settings["other_buffers"]["followers_timelines"]:
if usr["id_str"] in buff.session.settings["other_buffers"]["followers_timelines"]:
commonMessageDialogs.timeline_exist()
return
tl = buffersController.peopleBufferController(self.view.nb, "get_followers_list", "%s-followers" % (dlg.get_user(),), buff.session, buff.session.db["user_name"], screen_name=dlg.get_user())
tl = buffersController.peopleBufferController(self.view.nb, "get_followers_list", "%s-followers" % (usr["id_str"],), buff.session, buff.session.db["user_name"], user_id=usr["id_str"])
try:
tl.start_stream()
except TwythonAuthError:
commonMessageDialogs.unauthorized()
return
pos=self.view.search("followers_timelines", buff.session.db["user_name"])
self.insert_buffer(tl, pos+1)
# self.buffers.insert(pos+1, tl)
self.view.insert_buffer(buffer=tl.buffer, name=_(u"Followers for {}").format(dlg.get_user()), pos=pos)
tl.start_stream()
tl.timer = RepeatingTimer(300, tl.start_stream)
tl.timer.start()
buff.session.settings["other_buffers"]["followers_timelines"].append(dlg.get_user())
buff.session.settings["other_buffers"]["followers_timelines"].append(usr["id_str"])
buff.session.sound.play("create_timeline.ogg")
pub.sendMessage("buffer-title-changed", buffer=i)
elif tl_type == "friends":
if usr["friends_count"] == 0:
commonMessageDialogs.no_friends()
return
if dlg.get_user() in buff.session.settings["other_buffers"]["friends_timelines"]:
if usr["id_str"] in buff.session.settings["other_buffers"]["friends_timelines"]:
commonMessageDialogs.timeline_exist()
return
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (dlg.get_user(),), buff.session, buff.session.db["user_name"], screen_name=dlg.get_user())
tl = buffersController.peopleBufferController(self.view.nb, "get_friends_list", "%s-friends" % (usr["id_str"],), buff.session, buff.session.db["user_name"], user_id=usr["id_str"])
try:
tl.start_stream()
except TwythonAuthError:
commonMessageDialogs.unauthorized()
return
pos=self.view.search("friends_timelines", buff.session.db["user_name"])
self.insert_buffer(tl, pos+1)
self.view.insert_buffer(buffer=tl.buffer, name=_(u"Friends for {}").format(dlg.get_user()), pos=pos)
tl.start_stream()
tl.timer = RepeatingTimer(300, tl.start_stream)
tl.timer.start()
buff.session.settings["other_buffers"]["friends_timelines"].append(dlg.get_user())
buff.session.settings["other_buffers"]["friends_timelines"].append(usr["id_str"])
buff.session.sound.play("create_timeline.ogg")
pub.sendMessage("buffer-title-changed", buffer=i)
else:
commonMessageDialogs.user_not_exist()
buff.session.settings.write()
def open_conversation(self, *args, **kwargs):
buffer = self.get_current_buffer()
@@ -894,9 +948,10 @@ class Controller(object):
self.view.insert_buffer(buffer.buffer, name=_(u"Trending topics for %s") % (trends.get_string()), pos=pos)
self.buffers.append(buffer)
buffer.start_stream()
timer = RepeatingTimer(300, buffer.start_stream)
timer.start()
buffer.timer = RepeatingTimer(300, buffer.start_stream)
buffer.timer.start()
buffer.session.settings["other_buffers"]["trending_topic_buffers"].append(woeid)
buffer.session.settings.write()
def reverse_geocode(self, event=None):
try:
@@ -949,6 +1004,11 @@ class Controller(object):
buff = self.view.search(buffer.name, buffer.account)
answer = buffer.remove_buffer()
if answer == False: return
log.debug("destroying buffer...")
if hasattr(buffer, "timer"):
log.debug("Stopping timer...")
buffer.timer.cancel()
log.debug("Timer cancelled.")
self.right()
self.view.delete_buffer(buff)
buffer.session.sound.play("delete_timeline.ogg")
@@ -981,7 +1041,8 @@ class Controller(object):
if buffer != None: break
else:
buffer = self.view.search("home_timeline", buf.session.db["user_name"])
self.view.change_buffer(buffer)
if buffer!=None:
self.view.change_buffer(buffer)
def up(self, *args, **kwargs):
page = self.get_current_buffer()
@@ -1161,6 +1222,8 @@ class Controller(object):
return keymap
def register_invisible_keyboard_shorcuts(self, keymap):
if config.changed_keymap:
commonMessageDialogs.changed_keymap()
self.keyboard_handler = WXKeyboardHandler(self.view)
self.keyboard_handler.register_keys(keymap)
@@ -1295,7 +1358,24 @@ class Controller(object):
log.debug("starting buffers... Session %s" % (session.session_id,))
for i in self.buffers:
if i.session == session and i.needs_init == True:
i.start_stream()
if hasattr(i, "finished_timeline") and i.finished_timeline == False:
change_title = True
else:
change_title = False
try:
i.start_stream()
except TwythonAuthError:
buff = self.view.search(i.name, i.account)
i.remove_buffer(force=True)
commonMessageDialogs.blocked_timeline()
if self.get_current_buffer() == i:
self.right()
self.view.delete_buffer(buff)
self.buffers.remove(i)
del i
continue
if change_title:
pub.sendMessage("buffer-title-changed", buffer=i)
log.debug("Starting the streaming endpoint")
session.start_streaming()
@@ -1306,24 +1386,28 @@ class Controller(object):
def manage_stream_errors(self, session):
log.error(" Restarting %s session streams. It will be destroyed" % (session,))
s = session_.sessions[session]
if hasattr(s, "main_stream"):
s.main_stream.disconnect()
log.error("main stream disconnected")
del s.main_stream
if hasattr(s, "timelinesStream"):
s.timelinesStream.disconnect()
del s.timelinesStream
try:
if hasattr(s, "main_stream"):
s.main_stream.disconnect()
log.error("main stream disconnected")
del s.main_stream
if hasattr(s, "timelinesStream"):
s.timelinesStream.disconnect()
del s.timelinesStream
except AttributeError:
pass
s.counter = 0
# s.reconnection_function_active = False
# for i in self.buffers:
# if i.invisible == True and i.session.session_id == s.session_id and i.type != "people":
# i.start_stream()
# s.listen_stream_error()
def check_connection(self):
if self.started == False:
return
for i in session_.sessions:
if session_.sessions[i].is_logged == False: continue
session_.sessions[i].check_connection()
try:
if session_.sessions[i].is_logged == False: continue
session_.sessions[i].check_connection()
except TwythonError: # We shouldn't allow this function to die.
pass
def create_new_buffer(self, buffer, account, create):
buff = self.search_buffer("home_timeline", account)
@@ -1370,6 +1454,7 @@ class Controller(object):
self.view.insert_buffer(tl.buffer, name=_(u"List for {}").format(create), pos=self.view.search("lists", buff.session.db["user_name"]))
tl.start_stream()
buff.session.settings["other_buffers"]["lists"].append(create)
buff.session.settings.write()
pub.sendMessage("restart-streams", streams=["timelinesStream"], session=buff.session)
def restart_streams(self, streams=[], session=None):
@@ -1424,6 +1509,7 @@ class Controller(object):
elif buffer.name in buffer.session.settings["other_buffers"]["autoread_buffers"]:
buffer.session.settings["other_buffers"]["autoread_buffers"].remove(buffer.name)
output.speak(_(u"The auto-reading of new tweets is disabled for this buffer"), True)
buffer.session.settings.write()
def toggle_session_mute(self, *args, **kwargs):
buffer = self.get_best_buffer()
@@ -1433,6 +1519,7 @@ class Controller(object):
elif buffer.session.settings["sound"]["session_mute"] == True:
buffer.session.settings["sound"]["session_mute"] = False
output.speak(_(u"Session mute off"), True)
buffer.session.settings.write()
def toggle_buffer_mute(self, *args, **kwargs):
buffer = self.get_current_buffer()
@@ -1443,6 +1530,7 @@ class Controller(object):
elif buffer.name in buffer.session.settings["other_buffers"]["muted_buffers"]:
buffer.session.settings["other_buffers"]["muted_buffers"].remove(buffer.name)
output.speak(_(u"Buffer mute off"), True)
buffer.session.settings.write()
def view_documentation(self, *args, **kwargs):
lang = localization.get("documentation")
@@ -1451,9 +1539,13 @@ class Controller(object):
os.chdir("../../")
def view_changelog(self, *args, **kwargs):
os.chdir("documentation")
webbrowser.open("changelog.html")
os.chdir("../")
if application.snapshot == True:
webbrowser.open("https://github.com/manuelcortez/twblue/blob/next-gen/doc/changelog.md")
else:
lang = localization.get("documentation")
os.chdir("documentation/%s" % (lang,))
webbrowser.open("changelog.html")
os.chdir("../../")
def insert_buffer(self, buffer, position):
self.buffers.insert(position, buffer)
@@ -1470,12 +1562,19 @@ class Controller(object):
getattr(self, action)()
def restart_streams_(self, session):
for i in self.buffers:
for i in self.buffers[:]:
if i.session != None and i.session.session_id == session:
i.start_stream()
def __del__(self):
config.app.write()
try:
i.start_stream()
except TwythonAuthError:
buff = self.view.search(i.name, i.account)
i.remove_buffer(force=True)
commonMessageDialogs.blocked_timeline()
if self.get_current_buffer() == i:
self.right()
self.view.delete_buffer(buff)
self.buffers.remove(i)
del i
def update_buffer(self, *args, **kwargs):
bf = self.get_current_buffer()
@@ -1492,4 +1591,51 @@ class Controller(object):
id = data["delete"]["status"]["id"]
for i in self.buffers:
if hasattr(i, "remove_tweet") and hasattr(i, "name"):
i.remove_tweet(id)
i.remove_tweet(id)
def buffer_title_changed(self, buffer):
if "-timeline" in buffer.name:
title = _(u"Timeline for {}").format(buffer.username,)
elif "-favorite" in buffer.name:
title = _(u"Likes for {}").format(buffer.username,)
elif "-followers" in buffer.name:
title = _(u"Followers for {}").format(buffer.username,)
elif "-friends" in buffer.name:
title = _(u"Friends for {}").format(buffer.username,)
buffer_index = self.view.search(buffer.name, buffer.account)
self.view.set_page_title(buffer_index, title)
def ocr_image(self, *args, **kwargs):
buffer = self.get_current_buffer()
if hasattr(buffer, "get_right_tweet") == False:
output.speak(_(u"Invalid buffer"))
return
tweet = buffer.get_tweet()
if tweet.has_key("entities") == False or tweet["entities"].has_key("media") == False:
output.speak(_(u"This tweet doesn't contain images"))
return
if len(tweet["entities"]["media"]) > 1:
image_list = [_(u"Picture {0}").format(i,) for i in xrange(0, len(tweet["entities"]["media"]))]
dialog = dialogs.urlList.urlList(title=_(u"Select the picture"))
if dialog.get_response() == widgetUtils.OK:
img = tweet["entities"]["media"][dialog.get_item()]
else:
return
else:
img = tweet["entities"]["media"][0]
if buffer.session.settings["mysc"]["ocr_language"] != "":
ocr_lang = buffer.session.settings["mysc"]["ocr_language"]
else:
ocr_lang = ocr.OCRSpace.short_langs.index(tweet["lang"])
ocr_lang = ocr.OCRSpace.OcrLangs[ocr_lang]
api = ocr.OCRSpace.OCRSpaceAPI()
try:
text = api.OCR_URL(img["media_url"], lang=ocr_lang)
except ocr.OCRSpace.APIError as er:
output.speak(_(u"Unable to extract text"))
return
msg = messages.viewTweet(text["ParsedText"], [], False)
def save_data_in_db(self):
for i in session_.sessions:
session_.sessions[i].shelve()

View File

@@ -18,12 +18,12 @@ from twitter import utils
class basicTweet(object):
""" This class handles the tweet main features. Other classes should derive from this class."""
def __init__(self, session, title, caption, text, messageType="tweet", max=140):
def __init__(self, session, title, caption, text, messageType="tweet", max=280, *args, **kwargs):
super(basicTweet, self).__init__()
self.max = max
self.title = title
self.session = session
self.message = getattr(message, messageType)(title, caption, text)
self.message = getattr(message, messageType)(title, caption, text, *args, **kwargs)
widgetUtils.connect_event(self.message.spellcheck, widgetUtils.BUTTON_PRESSED, self.spellcheck)
widgetUtils.connect_event(self.message.attach, widgetUtils.BUTTON_PRESSED, self.attach)
# if system == "Windows":
@@ -40,9 +40,8 @@ class basicTweet(object):
dlg = translator.gui.translateDialog()
if dlg.get_response() == widgetUtils.OK:
text_to_translate = self.message.get_text()
source = [x[0] for x in translator.translator.available_languages()][dlg.get("source_lang")]
dest = [x[0] for x in translator.translator.available_languages()][dlg.get("dest_lang")]
msg = translator.translator.translate(text=text_to_translate, source=source, target=dest)
msg = translator.translator.translate(text=text_to_translate, target=dest)
self.message.set_text(msg)
self.text_processor()
self.message.text_focus()
@@ -125,14 +124,11 @@ class basicTweet(object):
self.message.text_focus()
class tweet(basicTweet):
def __init__(self, session, title, caption, text, twishort_enabled, messageType="tweet", max=140):
super(tweet, self).__init__(session, title, caption, text, messageType, max)
def __init__(self, session, title, caption, text, max=280, messageType="tweet", *args, **kwargs):
super(tweet, self).__init__(session, title, caption, text, messageType, max, *args, **kwargs)
self.image = None
widgetUtils.connect_event(self.message.upload_image, widgetUtils.BUTTON_PRESSED, self.upload_image)
widgetUtils.connect_event(self.message.autocompletionButton, widgetUtils.BUTTON_PRESSED, self.autocomplete_users)
if twishort_enabled == False:
try: self.message.long_tweet.SetValue(False)
except AttributeError: pass
self.text_processor()
def upload_image(self, *args, **kwargs):
@@ -145,20 +141,41 @@ class tweet(basicTweet):
c.show_menu()
class reply(tweet):
def __init__(self, session, title, caption, text, twishort_enabled, users=None):
super(reply, self).__init__(session, title, caption, text, twishort_enabled, messageType="reply")
def __init__(self, session, title, caption, text, users=[], ids=[]):
super(reply, self).__init__(session, title, caption, text, messageType="reply", users=users)
self.ids = ids
self.users = users
if self.users != None and len(self.users) > 1:
widgetUtils.connect_event(self.message.mentionAll, widgetUtils.BUTTON_PRESSED, self.mention_all)
if len(users) > 0:
widgetUtils.connect_event(self.message.mentionAll, widgetUtils.CHECKBOX, self.mention_all)
self.message.enable_button("mentionAll")
self.message.set("mentionAll", True)
self.mention_all()
self.message.set_cursor_at_end()
self.text_processor()
def mention_all(self, *args, **kwargs):
self.message.set_text(self.message.get_text()+self.users)
self.message.set_cursor_at_end()
self.message.text_focus()
self.text_processor()
if self.message.mentionAll.GetValue() == True:
for i in self.message.checkboxes:
i.SetValue(True)
i.Hide()
else:
for i in self.message.checkboxes:
i.SetValue(False)
i.Show()
def get_ids(self):
excluded_ids = ""
for i in xrange(0, len(self.message.checkboxes)):
if self.message.checkboxes[i].GetValue() == False:
excluded_ids = excluded_ids + "{0},".format(self.ids[i],)
return excluded_ids
def get_people(self):
people = ""
for i in xrange(0, len(self.message.checkboxes)):
if self.message.checkboxes[i].GetValue() == True:
people = people + "{0} ".format(self.message.checkboxes[i].GetLabel(),)
return people
class dm(basicTweet):
def __init__(self, session, title, caption, text):
@@ -184,10 +201,10 @@ class viewTweet(basicTweet):
if tweetList[i].has_key("message") and tweetList[i]["is_quote_status"] == False:
value = "message"
else:
value = "text"
value = "full_text"
if tweetList[i].has_key("retweeted_status") and tweetList[i]["is_quote_status"] == False:
if tweetList[i].has_key("message") == False:
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["text"])
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i]["retweeted_status"]["full_text"])
else:
text = text + "rt @%s: %s\n" % (tweetList[i]["retweeted_status"]["user"]["screen_name"], tweetList[i][value])
else:
@@ -197,6 +214,10 @@ class viewTweet(basicTweet):
for z in tweetList[i]["extended_entities"]["media"]:
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
image_description.append(z["ext_alt_text"])
if tweetList[i].has_key("retweeted_status") and tweetList[i]["retweeted_status"].has_key("extended_entities") and tweetList[i]["retweeted_status"]["extended_entities"].has_key("media"):
for z in tweetList[i]["retweeted_status"]["extended_entities"]["media"]:
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
image_description.append(z["ext_alt_text"])
# set rt and likes counters.
rt_count = str(tweet["retweet_count"])
favs_count = str(tweet["favorite_count"])
@@ -206,10 +227,10 @@ class viewTweet(basicTweet):
if tweet.has_key("message"):
value = "message"
else:
value = "text"
value = "full_text"
if tweet.has_key("retweeted_status"):
if tweet.has_key("message") == False:
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["text"])
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet["retweeted_status"]["full_text"])
else:
text = "rt @%s: %s" % (tweet["retweeted_status"]["user"]["screen_name"], tweet[value])
else:
@@ -219,6 +240,10 @@ class viewTweet(basicTweet):
for z in tweet["extended_entities"]["media"]:
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
image_description.append(z["ext_alt_text"])
if tweet.has_key("retweeted_status") and tweet["retweeted_status"].has_key("extended_entities") and tweet["retweeted_status"]["extended_entities"].has_key("media"):
for z in tweet["retweeted_status"]["extended_entities"]["media"]:
if z.has_key("ext_alt_text") and z["ext_alt_text"] != None:
image_description.append(z["ext_alt_text"])
self.message = message.viewTweet(text, rt_count, favs_count, source.decode("utf-8"))
self.message.set_title(len(text))
[self.message.set_image_description(i) for i in image_description]

View File

@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
import os
import webbrowser
#import pocket
import sound_lib
import paths
import widgetUtils
@@ -12,13 +11,14 @@ import application
from wxUI.dialogs import configuration
from wxUI import commonMessageDialogs
from extra.autocompletionUsers import settings
from extra.ocr import OCRSpace
from pubsub import pub
import logging
import config_utils
#from pocket_utils import authorisationHandler
import BaseHTTPServer
log = logging.getLogger("Settings")
import keys
from collections import OrderedDict
from platform_utils.autostart import windows as autostart_windows
class globalSettingsController(object):
def __init__(self):
@@ -56,8 +56,11 @@ class globalSettingsController(object):
self.dialog.create_general(langs,self.kmfriendlies)
self.dialog.general.language.SetSelection(id)
self.dialog.general.km.SetSelection(self.kmid)
if paths.mode == "installed":
self.dialog.set_value("general", "autostart", config.app["app-settings"]["autostart"])
else:
self.dialog.general.autostart.Enable(False)
self.dialog.set_value("general", "ask_at_exit", config.app["app-settings"]["ask_at_exit"])
self.dialog.set_value("general", "play_ready_sound", config.app["app-settings"]["play_ready_sound"])
self.dialog.set_value("general", "speak_ready_msg", config.app["app-settings"]["speak_ready_msg"])
self.dialog.set_value("general", "handle_longtweets", config.app["app-settings"]["handle_longtweets"])
@@ -65,7 +68,12 @@ class globalSettingsController(object):
self.dialog.set_value("general", "disable_sapi5", config.app["app-settings"]["voice_enabled"])
self.dialog.set_value("general", "hide_gui", config.app["app-settings"]["hide_gui"])
self.dialog.set_value("general", "check_for_updates", config.app["app-settings"]["check_for_updates"])
self.dialog.create_proxy()
proxyTypes=config.proxyTypes
self.dialog.create_proxy([_(u"Direct connection")]+proxyTypes)
if config.app["proxy"]["type"] not in proxyTypes:
self.dialog.proxy.type.SetSelection(0)
else:
self.dialog.proxy.type.SetSelection(proxyTypes.index(config.app["proxy"]["type"])+1)
self.dialog.set_value("proxy", "server", config.app["proxy"]["server"])
self.dialog.set_value("proxy", "port", config.app["proxy"]["port"])
self.dialog.set_value("proxy", "user", config.app["proxy"]["user"])
@@ -85,6 +93,9 @@ class globalSettingsController(object):
kmFile.close()
self.needs_restart = True
if config.app["app-settings"]["autostart"] != self.dialog.get_value("general", "autostart") and paths.mode == "installed":
config.app["app-settings"]["autostart"] = self.dialog.get_value("general", "autostart")
autostart_windows.setAutoStart(application.name, enable=self.dialog.get_value("general", "autostart"))
if config.app["app-settings"]["use_invisible_keyboard_shorcuts"] != self.dialog.get_value("general", "use_invisible_shorcuts"):
config.app["app-settings"]["use_invisible_keyboard_shorcuts"] = self.dialog.get_value("general", "use_invisible_shorcuts")
pub.sendMessage("invisible-shorcuts-changed", registered=self.dialog.get_value("general", "use_invisible_shorcuts"))
@@ -95,9 +106,10 @@ class globalSettingsController(object):
config.app["app-settings"]["play_ready_sound"] = self.dialog.get_value("general", "play_ready_sound")
config.app["app-settings"]["speak_ready_msg"] = self.dialog.get_value("general", "speak_ready_msg")
config.app["app-settings"]["check_for_updates"] = self.dialog.get_value("general", "check_for_updates")
if config.app["proxy"]["server"] != self.dialog.get_value("proxy", "server") or config.app["proxy"]["port"] != self.dialog.get_value("proxy", "port") or config.app["proxy"]["user"] != self.dialog.get_value("proxy", "user") or config.app["proxy"]["password"] != self.dialog.get_value("proxy", "password"):
if config.app["proxy"]["type"]!=self.dialog.get_value("proxy", "type") or config.app["proxy"]["server"] != self.dialog.get_value("proxy", "server") or config.app["proxy"]["port"] != self.dialog.get_value("proxy", "port") or config.app["proxy"]["user"] != self.dialog.get_value("proxy", "user") or config.app["proxy"]["password"] != self.dialog.get_value("proxy", "password"):
if self.is_started == True:
self.needs_restart = True
config.app["proxy"]["type"]=self.dialog.get_value("proxy", "type")
config.app["proxy"]["server"] = self.dialog.get_value("proxy", "server")
config.app["proxy"]["port"] = self.dialog.get_value("proxy", "port")
config.app["proxy"]["user"] = self.dialog.get_value("proxy", "user")
@@ -116,6 +128,7 @@ class accountSettingsController(globalSettingsController):
self.dialog.create_general_account()
widgetUtils.connect_event(self.dialog.general.au, widgetUtils.BUTTON_PRESSED, self.manage_autocomplete)
self.dialog.set_value("general", "relative_time", self.config["general"]["relative_times"])
self.dialog.set_value("general", "show_screen_names", self.config["general"]["show_screen_names"])
self.dialog.set_value("general", "apiCalls", self.config["general"]["max_api_calls"])
self.dialog.set_value("general", "itemsPerApiCall", self.config["general"]["max_tweets_per_call"])
self.dialog.set_value("general", "reverse_timelines", self.config["general"]["reverse_timelines"])
@@ -149,13 +162,13 @@ class accountSettingsController(globalSettingsController):
self.dialog.set_value("sound", "output", self.config["sound"]["output_device"])
self.dialog.set_value("sound", "session_mute", self.config["sound"]["session_mute"])
self.dialog.set_value("sound", "soundpack", self.config["sound"]["current_soundpack"])
self.dialog.create_services()
# if self.config["services"]["pocket_access_token"] == "":
# self.dialog.services.set_pocket(False)
# else:
# self.dialog.services.set_pocket(True)
# widgetUtils.connect_event(self.dialog.services.pocketBtn, widgetUtils.BUTTON_PRESSED, self.manage_pocket)
self.dialog.set_value("services", "apiKey", self.config["sound"]["sndup_api_key"])
self.dialog.set_value("sound", "indicate_audio", self.config["sound"]["indicate_audio"])
self.dialog.set_value("sound", "indicate_geo", self.config["sound"]["indicate_geo"])
self.dialog.set_value("sound", "indicate_img", self.config["sound"]["indicate_img"])
self.dialog.create_extras(OCRSpace.translatable_langs)
self.dialog.set_value("extras", "sndup_apiKey", self.config["sound"]["sndup_api_key"])
language_index = OCRSpace.OcrLangs.index(self.config["mysc"]["ocr_language"])
self.dialog.extras.ocr_lang.SetSelection(language_index)
self.dialog.realize()
self.dialog.set_title(_(u"Account settings for %s") % (self.user,))
self.response = self.dialog.get_response()
@@ -164,6 +177,7 @@ class accountSettingsController(globalSettingsController):
if self.config["general"]["relative_times"] != self.dialog.get_value("general", "relative_time"):
self.needs_restart = True
self.config["general"]["relative_times"] = self.dialog.get_value("general", "relative_time")
self.config["general"]["show_screen_names"] = self.dialog.get_value("general", "show_screen_names")
self.config["general"]["max_api_calls"] = self.dialog.get_value("general", "apiCalls")
self.config["general"]["max_tweets_per_call"] = self.dialog.get_value("general", "itemsPerApiCall")
if self.config["general"]["persist_size"] != self.dialog.get_value("general", "persist_size"):
@@ -190,7 +204,7 @@ class accountSettingsController(globalSettingsController):
if set(self.config["general"]["buffer_order"]) != set(buffers_list) or buffers_list != self.config["general"]["buffer_order"]:
self.needs_restart = True
self.config["general"]["buffer_order"] = buffers_list
self.config["mysc"]["ocr_language"] = OCRSpace.OcrLangs[self.dialog.extras.ocr_lang.GetSelection()]
# if self.config["other_buffers"]["show_followers"] != self.dialog.get_value("buffers", "followers"):
# self.config["other_buffers"]["show_followers"] = self.dialog.get_value("buffers", "followers")
# pub.sendMessage("create-new-buffer", buffer="followers", account=self.user, create=self.config["other_buffers"]["show_followers"])
@@ -224,9 +238,13 @@ class accountSettingsController(globalSettingsController):
self.config["sound"]["volume"] = self.dialog.get_value("sound", "volumeCtrl")/100.0
self.config["sound"]["session_mute"] = self.dialog.get_value("sound", "session_mute")
self.config["sound"]["current_soundpack"] = self.dialog.sound.get("soundpack")
self.config["sound"]["indicate_audio"] = self.dialog.get_value("sound", "indicate_audio")
self.config["sound"]["indicate_geo"] = self.dialog.get_value("sound", "indicate_geo")
self.config["sound"]["indicate_img"] = self.dialog.get_value("sound", "indicate_img")
self.config["sound"]["sndup_api_key"] = self.dialog.get_value("extras", "sndup_apiKey")
self.buffer.session.sound.config = self.config["sound"]
self.buffer.session.sound.check_soundpack()
self.config["sound"]["sndup_api_key"] = self.dialog.get_value("services", "apiKey")
self.config.write()
def toggle_state(self,*args,**kwargs):
return self.dialog.buffers.change_selected_item()
@@ -248,14 +266,25 @@ class accountSettingsController(globalSettingsController):
self.dialog.ignored_clients.remove_(id)
def get_buffers_list(self):
all_buffers = ['home','mentions','dm','sent_dm','sent_tweets','favorites','followers','friends','blocks','muted','events']
all_buffers=OrderedDict()
all_buffers['home']=_(u"Home")
all_buffers['mentions']=_(u"Mentions")
all_buffers['dm']=_(u"Direct Messages")
all_buffers['sent_dm']=_(u"Sent direct messages")
all_buffers['sent_tweets']=_(u"Sent tweets")
all_buffers['favorites']=_(u"Likes")
all_buffers['followers']=_(u"Followers")
all_buffers['friends']=_(u"Friends")
all_buffers['blocks']=_(u"Blocked users")
all_buffers['muted']=_(u"Muted users")
all_buffers['events']=_(u"Events")
list_buffers = []
hidden_buffers=[]
for i in all_buffers:
for i in all_buffers.keys():
if i in self.config["general"]["buffer_order"]:
list_buffers.append((i, True))
list_buffers.append((i, all_buffers[i], True))
else:
hidden_buffers.append((i, False))
hidden_buffers.append((i, all_buffers[i], False))
list_buffers.extend(hidden_buffers)
return list_buffers

View File

@@ -1,8 +1,11 @@
# -*- coding: utf-8 -*-
import wx
import webbrowser
import widgetUtils
import output
from wxUI.dialogs import update_profile, show_user
import logging
log = logging.getLogger("controller.user")
from twython import TwythonError
class profileController(object):
@@ -12,14 +15,22 @@ class profileController(object):
self.session = session
self.user = user
if user == None:
self.dialog = update_profile.updateProfileDialog()
self.get_data(screen_name=self.session.db["user_name"])
self.dialog = update_profile.updateProfileDialog()
self.fill_profile_fields()
self.uploaded = False
widgetUtils.connect_event(self.dialog.upload_image, widgetUtils.BUTTON_PRESSED, self.upload_image)
else:
try:
self.get_data(screen_name=self.user)
except TwythonError as err:
if err.error_code == 404:
wx.MessageDialog(None, _(u"That user does not exist"), _(u"Error"), wx.ICON_ERROR).ShowModal()
if err.error_code == 403:
wx.MessageDialog(None, _(u"User has been suspended"), _(u"Error"), wx.ICON_ERROR).ShowModal()
log.error("error %d: %s" % (err.error_code, err.msg))
return
self.dialog = show_user.showUserProfile()
self.get_data(screen_name=self.user)
string = self.get_user_info()
self.dialog.set("text", string)
self.dialog.set_title(_(u"Information for %s") % (self.data["screen_name"]))

View File

@@ -76,4 +76,5 @@ class userActionsController(object):
return
client = re.sub(r"(?s)<.*?>", "", tweet["source"])
if client not in self.session.settings["twitter"]["ignored_clients"]:
self.session.settings["twitter"]["ignored_clients"].append(client)
self.session.settings["twitter"]["ignored_clients"].append(client)
self.session.settings.write()

View File

@@ -57,8 +57,6 @@ class audioUploader(object):
url = base_url + '?apikey=' + self.config['sound']['sndup_api_key']
else:
url = base_url
elif self.dialog.get("services") == "TwUp":
url = "http://api.twup.me/post.json"
self.uploaderFunction = transfer.Upload(obj=self, field='file', url=url, filename=self.file, completed_callback=completed_callback)
pub.subscribe(self.uploaderDialog.update, "uploading")
self.uploaderDialog.get_response(self.uploaderFunction.perform_threaded)
@@ -66,7 +64,6 @@ class audioUploader(object):
def get_available_services(self):
services = []
services.append("SNDUp")
services.append("TwUp")
return services
def on_pause(self, *args, **kwargs):

View File

@@ -22,7 +22,8 @@ class Upload(object):
self.local_filename=os.path.basename(self.filename)
if isinstance(self.local_filename, unicode):
self.local_filename=self.local_filename.encode(sys.getfilesystemencoding())
self.m = MultipartEncoder(fields={field:(self.local_filename, open(self.filename, 'rb'), "application/octet-stream")})
self.fin=open(self.filename, 'rb')
self.m = MultipartEncoder(fields={field:(self.local_filename, self.fin, "application/octet-stream")})
self.monitor = MultipartEncoderMonitor(self.m, self.progress_callback)
self.response=None
self.obj=obj
@@ -66,6 +67,7 @@ class Upload(object):
def complete_transfer(self):
if callable(self.completed_callback):
self.completed_callback(self.obj)
if hasattr(self,'fin') and callable(self.fin.close):
self.fin.close()
def get_url(self):
return self.response.json()['url']

View File

@@ -10,6 +10,7 @@ actions = reverse_sort.reverse_sort([ ("audio", _(u"Audio tweet.")),
("favourite", _(u"Tweet liked.")),
("favourites_timeline_updated", _(u"Likes buffer updated.")),
("geo", _(u"Geotweet.")),
("image", _("Tweet contains one or more images")),
("limit", _(u"Boundary reached.")),
("list_tweet", _(u"List updated.")),
("max_length", _(u"Too many characters.")),
@@ -24,4 +25,4 @@ actions = reverse_sort.reverse_sort([ ("audio", _(u"Audio tweet.")),
("trends_updated", _(u"Trending topics buffer updated.")),
("tweet_timeline", _(u"New tweet in user timeline buffer.")),
("update_followers", _(u"New follower.")),
("volume_changed", _(u"Volume changed."))])
("volume_changed", _(u"Volume changed."))])

View File

@@ -1,15 +1,17 @@
# -*- coding: utf-8 -*-
import logging
log = logging.getLogger("extra.SpellChecker.spellChecker")
import wx_ui
import widgetUtils
import output
import config
import languageHandler
import enchant
import paths
import twitterFilter
from enchant.checker import SpellChecker
from enchant.errors import DictNotFoundError
from enchant import tokenize
import twitterFilter
log = logging.getLogger("extra.SpellChecker.spellChecker")
class spellChecker(object):
def __init__(self, text, dictionary):
@@ -19,15 +21,16 @@ class spellChecker(object):
try:
if config.app["app-settings"]["language"] == "system":
log.debug("Using the system language")
self.checker = SpellChecker(filters=[twitterFilter.TwitterFilter, tokenize.EmailFilter, tokenize.URLFilter])
self.dict = enchant.DictWithPWL(languageHandler.curLang[:2], paths.config_path("wordlist.dict"))
else:
log.debug("Using language: %s" % (languageHandler.getLanguage(),))
self.checker = SpellChecker(languageHandler.getLanguage(), filters=[twitterFilter.TwitterFilter, tokenize.EmailFilter, tokenize.URLFilter])
self.checker.set_text(text)
self.dict = enchant.DictWithPWL(languageHandler.getLanguage()[:2], paths.config_path("wordlist.dict"))
except DictNotFoundError:
log.exception("Dictionary for language %s not found." % (dictionary,))
wx_ui.dict_not_found_error()
self.active = False
self.checker = SpellChecker(self.dict, filters=[twitterFilter.TwitterFilter, tokenize.EmailFilter, tokenize.URLFilter])
self.checker.set_text(text)
if self.active == True:
log.debug("Creating dialog...")
self.dialog = wx_ui.spellCheckerDialog()
@@ -35,6 +38,7 @@ class spellChecker(object):
widgetUtils.connect_event(self.dialog.ignoreAll, widgetUtils.BUTTON_PRESSED, self.ignoreAll)
widgetUtils.connect_event(self.dialog.replace, widgetUtils.BUTTON_PRESSED, self.replace)
widgetUtils.connect_event(self.dialog.replaceAll, widgetUtils.BUTTON_PRESSED, self.replaceAll)
widgetUtils.connect_event(self.dialog.add, widgetUtils.BUTTON_PRESSED, self.add)
self.check()
self.dialog.get_response()
self.fixed_text = self.checker.get_text()
@@ -51,8 +55,6 @@ class spellChecker(object):
log.debug("Process finished.")
wx_ui.finished()
self.dialog.Destroy()
# except AttributeError:
# pass
def ignore(self, ev):
self.check()
@@ -67,4 +69,8 @@ class spellChecker(object):
def replaceAll(self, ev):
self.checker.replace_always(self.dialog.get_selected_suggestion())
self.check()
self.check()
def add(self, ev):
self.checker.add()
self.check()

View File

@@ -18,6 +18,7 @@
############################################################
import wx
import application
class spellCheckerDialog(wx.Dialog):
def __init__(self):
super(spellCheckerDialog, self).__init__(None, 1)
@@ -42,12 +43,14 @@ class spellCheckerDialog(wx.Dialog):
self.ignoreAll = wx.Button(panel, -1, _(u"Ignore all"))
self.replace = wx.Button(panel, -1, _(u"Replace"))
self.replaceAll = wx.Button(panel, -1, _(u"Replace all"))
self.add = wx.Button(panel, -1, _(u"Add to personal dictionary"))
close = wx.Button(panel, wx.ID_CANCEL)
btnBox = wx.BoxSizer(wx.HORIZONTAL)
btnBox.Add(self.ignore, 0, wx.ALL, 5)
btnBox.Add(self.ignoreAll, 0, wx.ALL, 5)
btnBox.Add(self.replace, 0, wx.ALL, 5)
btnBox.Add(self.replaceAll, 0, wx.ALL, 5)
btnBox.Add(self.add, 0, wx.ALL, 5)
btnBox.Add(close, 0, wx.ALL, 5)
sizer.Add(wordBox, 0, wx.ALL, 5)
sizer.Add(contextBox, 0, wx.ALL, 5)

43
src/extra/ocr/OCRSpace.py Normal file
View File

@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
""" original module taken and modified from https://github.com/ctoth/cloudOCR"""
import requests
translatable_langs = [_(u"Detect automatically"), _(u"Danish"), _(u"Dutch"), _(u"English"), _(u"Finnish"), _(u"French"), _(u"German"), _(u"Hungarian"), _(u"Korean"), _(u"Italian"), _(u"Japanese"), _(u"Polish"), _(u"Portuguese"), _(u"Russian"), _(u"Spanish"), _(u"Turkish")]
short_langs = ["", "da", "du", "en", "fi", "fr", "de", "hu", "ko", "it", "ja", "pl", "pt", "ru", "es", "tr"]
OcrLangs = ["", "dan", "dut", "eng", "fin", "fre", "ger", "hun", "kor", "ita", "jpn", "pol", "por", "rus", "spa", "tur"]
class APIError(Exception):
pass
class OCRSpaceAPI(object):
def __init__(self, key="4e72ae996f88957", url='https://api.ocr.space/parse/image'):
self.key = key
self.url = url
def OCR_URL(self, url, overlay=False, lang=None):
payload = {
'url': url,
'isOverlayRequired': overlay,
'apikey': self.key,
}
if lang != None:
payload.update(language=lang)
r = requests.post(self.url, data=payload)
result = r.json()['ParsedResults'][0]
if result['ErrorMessage']:
raise APIError(result['ErrorMessage'])
return result
def OCR_file(self, fileobj, overlay=False):
payload = {
'isOverlayRequired': overlay,
'apikey': self.key,
'lang': 'es',
}
r = requests.post(self.url, data=payload, files={'file': fileobj})
results = r.json()['ParsedResults']
if results[0]['ErrorMessage']:
raise APIError(results[0]['ErrorMessage'])
return results

View File

@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
import OCRSpace

View File

@@ -1,11 +1,13 @@
# -*- coding: utf-8 -*-
from microsofttranslator import Translator
def translate(text="", source="auto", target="en"):
t = Translator("twblue", "4KZA26GYIfmVAqQA/z16Hlucbg64hVSDTIpRjT2FqIU=")
return t.translate(text, target)
from yandex_translate import YandexTranslate
def translate(text="", target="en"):
t = YandexTranslate("trnsl.1.1.20161012T134532Z.d01b9c75fc39aa74.7d1be75a5166a80583eeb020e10f584168da6bf7")
vars = dict(text=text, lang=target)
return t.translate(**vars)["text"][0]
supported_langs = None
d = None
languages = {
"af": _(u"Afrikaans"),
"sq": _(u"Albanian"),
@@ -71,7 +73,7 @@ languages = {
"ps": _(u"Pashto"),
"fa": _(u"Persian"),
"pl": _(u"Polish"),
"pt-PT": _(u"Portuguese"),
"pt": _(u"Portuguese"),
"pa": _(u"Punjabi"),
"ro": _(u"Romanian"),
"ru": _(u"Russian"),
@@ -101,8 +103,11 @@ languages = {
}
def available_languages():
l = languages.keys()
d = languages.values()
l.insert(0, '')
d.insert(0, _(u"autodetect"))
return sorted(zip(l, d))
global supported_langs, d
if supported_langs == None and d == None:
t = YandexTranslate("trnsl.1.1.20161012T134532Z.d01b9c75fc39aa74.7d1be75a5166a80583eeb020e10f584168da6bf7")
supported_langs = t.langs
d = []
for i in supported_langs:
d.append(languages[i])
return sorted(zip(supported_langs, d))

View File

@@ -25,15 +25,11 @@ class translateDialog(baseDialog.BaseWXDialog):
super(translateDialog, self).__init__(None, -1, title=_(u"Translate message"))
panel = wx.Panel(self)
sizer = wx.BoxSizer(wx.VERTICAL)
staticSource = wx.StaticText(panel, -1, _(u"Source language"))
self.source_lang = wx.ComboBox(panel, -1, choices=[x[1] for x in translator.available_languages()], style = wx.CB_READONLY)
self.source_lang.SetFocus()
staticDest = wx.StaticText(panel, -1, _(u"Target language"))
self.source_lang.SetSelection(0)
self.dest_lang = wx.ComboBox(panel, -1, choices=[x[1] for x in translator.available_languages()], style = wx.CB_READONLY)
self.dest_lang.SetFocus()
self.dest_lang.SetSelection(0)
listSizer = wx.BoxSizer(wx.HORIZONTAL)
listSizer.Add(staticSource)
listSizer.Add(self.source_lang)
listSizer.Add(staticDest)
listSizer.Add(self.dest_lang)
ok = wx.Button(panel, wx.ID_OK)

View File

@@ -9,5 +9,7 @@ def setup():
fix_arrow.fix()
if hasattr(sys, "frozen"):
fix_win32com.fix()
fix_requests.fix()
fix_requests.fix(True)
else:
fix_requests.fix(False)
fix_urllib3_warnings.fix()

View File

@@ -1,29 +1,22 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
from arrow import locales
from arrow.locales import Locale
def fix():
''' This function adds the Catala, Basque and galician locales to the list of locales supported in Arrow.
it also fixes capitalizations in names from turkish and arabian locales.
see https://github.com/crsmithdev/arrow/pull/207 for following the pull request.'''
locales.CatalaLocale = CatalaLocale
locales.GalicianLocale = GalicianLocale
locales.BasqueLocale = BasqueLocale
locales.TurkishLocale.names[-1] = "tr_tr"
locales.ArabicLocale.names[-1] = "ar_eg"
# insert a modified function so if there is no language available in arrow, returns English locale.
locales.get_locale = get_locale
# We need to reassign the locales list for updating the list with our new contents.
locales._locales = locales._map_locales()
def get_locale(name):
locale_cls = locales._locales.get(name.lower())
if locale_cls is None:
return locales.EnglishLocale()
name = name[:2]
locale_cls = locales._locales.get(name.lower())
if locale_cls == None:
return locales.EnglishLocale()
return locale_cls()
class CatalaLocale(Locale):
names = ['ca', 'ca_ca']
names = ['ca', 'ca_es', 'ca_ca']
past = 'Fa {0}'
future = '{0}' # I don't know what's the right phrase in catala for the future.
@@ -48,9 +41,9 @@ class CatalaLocale(Locale):
day_abbreviations = ['', 'Dilluns', 'Dimars', 'Dimecres', 'Dijous', 'Divendres', 'Disabte', 'Diumenge']
class GalicianLocale(Locale):
names = ['gl', 'gl_gl']
names = ['gl', 'gl_es', 'gl_gl']
past = 'Fai {0}'
future = '{0}' # I don't know what's the right phrase in Galician for the future.
future = 'En {0}'
timeframes = {
'now': 'Agora mesmo',
@@ -73,7 +66,7 @@ class GalicianLocale(Locale):
day_abbreviations = ['', 'Lun', 'Mar', 'Mer', 'xov', 'Ven' 'Sab', 'Dom']
class BasqueLocale(Locale):
names = ['eu', 'eu_eu']
names = ['eu', 'eu_es', 'eu_eu']
past = 'duela {0}'
future = '{0} igarota'

View File

@@ -1,10 +1,26 @@
from requests import certs, utils, adapters
import paths
import config
import requests.sessions
orig_session_init=requests.sessions.Session.__init__
def patched_where():
return paths.app_path(u"cacert.pem")
def fix():
certs.where=patched_where
utils.DEFAULT_CA_BUNDLE_PATH=patched_where()
adapters.DEFAULT_CA_BUNDLE_PATH=patched_where()
def fix(frozen):
if frozen==True:
certs.where=patched_where
utils.DEFAULT_CA_BUNDLE_PATH=patched_where()
adapters.DEFAULT_CA_BUNDLE_PATH=patched_where()
requests.sessions.Session.__init__=patched_session_init
requests.Session.__init__=patched_session_init
requests.session.__init__=patched_session_init
def patched_session_init(self):
orig_session_init(self)
if config.app["proxy"]["server"] != "" and config.app["proxy"]["port"] != "" and config.app["proxy"]["type"] in config.proxyTypes:
self.proxies={"http":"{0}://{1}:{2}/".format(config.app["proxy"]["type"], config.app["proxy"]["server"], config.app["proxy"]["port"]),
"https": "{0}://{1}:{2}/".format(config.app["proxy"]["type"], config.app["proxy"]["server"], config.app["proxy"]["port"])}
if config.app["proxy"]["user"] != "" and config.app["proxy"]["password"] != "":
self.proxies={"http": "{0}://{1}:{2}@{3}:{4}/".format(config.app["proxy"]["type"], config.app["proxy"]["user"], config.app["proxy"]["password"], config.app["proxy"]["server"], config.app["proxy"]["port"]),
"https": "{0}://{1}:{2}@{3}:{4}/".format(config.app["proxy"]["type"], config.app["proxy"]["user"], config.app["proxy"]["password"], config.app["proxy"]["server"], config.app["proxy"]["port"])}

View File

@@ -32,4 +32,5 @@ check_for_updates = string(default="alt+win+u")
list_manager = string(default="control+win+shift+l")
configuration = string(default="control+win+o")
accountConfiguration = string(default="control+win+shift+o")
update_buffer = string(default="control+win+shift+u")
update_buffer = string(default="control+win+shift+u")
ocr_image = string(default="win+alt+o")

View File

@@ -51,4 +51,5 @@ check_for_updates = string(default="control+win+u")
list_manager = string(default="control+win+shift+l")
configuration = string(default="control+win+o")
accountConfiguration = string(default="control+win+shift+o")
update_buffer = string(default="control+win+shift+u")
update_buffer = string(default="control+win+shift+u")
ocr_image = string(default="win+alt+o")

View File

@@ -11,14 +11,14 @@ right = string(default="alt+win+right")
next_account = string(default="alt+win+shift+right")
previous_account = string(default="alt+win+shift+left")
open_conversation = string(default="alt+win+c")
show_hide = string(default="alt+win+w")
show_hide = string(default="control+win+w")
post_tweet = string(default="alt+win+n")
post_reply = string(default="control+win+r")
post_retweet = string(default="alt+win+shift+r")
send_dm = string(default="alt+win+d")
add_to_favourites = string(default="alt+win+f")
send_dm = string(default="alt+win+shift+d")
add_to_favourites = string(default="control+alt+win+f")
remove_from_favourites = string(default="alt+shift+win+f")
follow = string(default="alt+win+s")
follow = string(default="alt+win+shift+s")
user_details = string(default="alt+win+shift+n")
view_item = string(default="alt+win+v")
exit = string(default="alt+win+f4")
@@ -48,9 +48,10 @@ view_user_lists = string(default="alt+win+l")
get_more_items = string(default="alt+win+pageup")
reverse_geocode = string(default="alt+win+g")
view_reverse_geocode = string(default="alt+win+shift+g")
get_trending_topics = string(default="alt+win+t")
get_trending_topics = string(default="control+win+t")
check_for_updates = string(default="alt+win+u")
list_manager = string(default="alt+win+shift+l")
configuration = string(default="control+win+o")
accountConfiguration = string(default="control+win+shift+o")
update_buffer = string(default="control+alt+shift+u")
update_buffer = string(default="control+alt+shift+u")
ocr_image = string(default="win+alt+o")

View File

@@ -54,4 +54,5 @@ check_for_updates = string(default="control+win+u")
list_manager = string(default="control+win+shift+l")
configuration = string(default="control+win+o")
accountConfiguration = string(default="control+win+shift+o")
update_buffer = string(default="control+win+shift+u")
update_buffer = string(default="control+win+shift+u")
ocr_image = string(default="win+alt+o")

View File

@@ -52,4 +52,5 @@ actions = {
"accountConfiguration": _(u"Opens the account settings dialogue"),
"audio": _(u"Try to play an audio file"),
"update_buffer": _(u"Updates the buffer and retrieves possible lost items there."),
"ocr_image": _(u"Extracts the text from a picture and displays the result in a dialog."),
}

View File

@@ -28,6 +28,7 @@ class KeystrokeEditor(object):
if new_keystroke != self.map[action]:
self.changed = True
self.map[action] = new_keystroke
self.dialog.put_keystrokes(constants.actions, self.map)
def set_keystroke(self, keystroke, dialog):
for i in keystroke.split("+"):

View File

@@ -29,6 +29,8 @@ class keystrokeEditorDialog(baseDialog.BaseWXDialog):
self.SetClientSize(sizer.CalcMin())
def put_keystrokes(self, actions, keystrokes):
selection = self.keys.get_selected()
self.keys.clear()
for i in keystrokes:
if actions.has_key(i) == False:
continue
@@ -36,6 +38,7 @@ class keystrokeEditorDialog(baseDialog.BaseWXDialog):
self.actions.append(i)
keystroke = keystrokes[i]
self.keys.insert_item(False, *[action, keystroke])
self.keys.select_item(selection)
def get_action(self):
return self.keys.get_selected()

View File

@@ -3,6 +3,8 @@ import os
import sys
import ctypes
import locale
# add mapping for Serbian (latin) language
locale.windows_locale[9242]='sr_RS'
import gettext
import paths
import platform
@@ -190,7 +192,8 @@ def langToWindowsLocale(lang):
languages = {"en": "eng",
"ar": "ara",
"ca": "cat",
"de": "deu",
"da": "dan",
"de": "deu",
"es": "esp",
"fi": "fin",
"fr": "fre_FRA",

View File

@@ -20,6 +20,7 @@ def load_com(*names):
global fixed
if fixed==False:
gencache._GetModule=patched_getmodule
prepare_gencache()
fixed=True
result = None
for name in names:

View File

@@ -29,7 +29,7 @@ class LibraryLoadError(OSError): pass
def load_library(library, x86_path='.', x64_path='.', *args, **kwargs):
lib = find_library_path(library, x86_path=x86_path, x64_path=x64_path)
loaded = _do_load(lib, *args, **kwargs)
loaded = _do_load(str(lib), *args, **kwargs)
if loaded is not None:
return loaded
raise LibraryLoadError('unable to load %r. Provided library path: %r' % (library, lib))

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

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